第六章 数组作业

更新时间:2023-06-04 05:00:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第六章数组

6.1 选择题

6.1在c语言中,引用数组元素时,其数组下标的数据类型是。

A)整型常量B)整型表达式

C)整型常量或整型表达式D)任何类型的表达式

6.2以下对一维数组a的正确说明是。

A) int n; scanf("%d",&n); int a[n]; B)int n=10,a[n];

C) int a(10); D)#define SIZE 10

int a[SIZE];

6.3若有说明:int a[10];则对数组元素的正确引用是。

A)a[10] B)a[3,5] C)a(5) D)a[10-10]

6.4 在C语言中,一维数组的定义方式为:类型说明符数组名。

A)[常量表达式] B)[整型表达式]

C)[整型表达式]或[整型常量] D)[整型常量]

6.5 以下能对一维数组a进行正确初始化的语句是。

A)int a[10]=(0,0,0); B)int a[10]={};

C)int a[]={0}; D)int a[10]={10*1};

6.6 以下对二维数组a的正确说明是。

A)int a[3][]; B)float a(3,4);

C)double a[1][4]; D)float a(3)(4);

6.7若有说明:int a[3][4];则对a数组元素的正确引用是。

A)a[2][4] B)a[1,3] C)a[1+1][0] D)a(2)(1)

6.8 若有说明:int a[3][4];则对a数组元素的非法引用是。

A)a[0][2*1] B)a[1][3] C)a[4-2][0] D)a[0][4]

6.9 以下能对二维数组a进行正确初始化的语句是。

A)int a[2][]={{1,0,1},{5,2,3}};

B)int a[][3]={{1,2,3},{4,5,6}};

C)int a[2][4]={{1,2,3},{4,5},{6}};

D)int a[][3]={{1,0,1}{},{1,1}};

6.10以下不能对二维数组a进行正确初始化的说明是。

A)int a[2][3]={0}; B)int a[][3]={{1,2},{0}};

C)int a[2][3]={{1,2},{3,4},{5,6}}; D)int a[][3]={1,2,3,4,5,6};

6.11 若有说明:int a[3][4]={0};则下面正确的叙述是。

A)只有元素a[0][0]可以得到初值0

B)此说明语句不正确

C)数组中各元素都可以得到初值,但其值不一定为0

D)数组中每个元素均可得到初值0

6.12若有说明:int a[][4]={0,0};则下面不正确的叙述是。

A)数组a的每个元素都可得到初值0

B)二维数组a的第一维大小为1

C)因为二维数组a中第二维大小的值除初值个数的商为0,故数组a的行数为1

D)只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

6.13 若有说明:static int a[3][4];则数组中各元素。

A)可在程序的运行阶段得到初值0

B)可在程序的编译阶段得到初值0

C)不能得到确定的初值

D)可在程序的编译或运行阶段得到初值0

6.14 以下各组选项中,均能正确定义二维实型数组a的选项是。

A)float a[3][4]; B)float a(3,4);

float a[][4]; float a[3][4];

float a[3][]={{1},{0}}; float a[][]={{0},{0}};

C)float a[3][4]; D)float a[3][4];

static float a[][4]={{0},{0}}; float a[3][];

auto float a[][4]={{0},{0},{0}}; float a[][4];

6.15 下面程序有错误的行是(行前数字表示行号)。

1 main()

2 { int a[3]={3*0};

3 int i;

4 for(i=0;i<3;i++)

5 scanf("%d",&a[i]);

6 for(i=1;i<3;i++) a[0]=a[0]+a[i];

7 printf("%d\n",a[0]);

8 }

A)第2行有错误B)第6行有错误

C)第7行有错误D)没有错误

6.16下面程序有错误的行是(行前数字表示行号)。

1 main()

2 {

3 float a[10]={0.0};

4 int i;

5 for(i=0;i<3;i++) scanf("%d",&a[i]);

6 for(i=1;i<10;i++) a[0]=a[0]+a[i];

7 printf("%f\n",a[0]);

8 }

A)没有错误B)第3行有错误

C)第5行有错误D)第7行有错误

6.17下面程序有错误的行是(行前数字表示行号)。

1 main()

2 {

3 int a[3]={1};

4 int i;

5 scanf("%d",&a);

6 for(i=1;i<3;i++) a[0]=a[0]+a[i];

7 printf("a[0]=%d\n",a[0]);

8 }

A)3 B)6 C)7 D)5

6.18下面程序有错误的行是(行前数字表示行号)。

1 main()

2 {

3 int a[3]={0};

4 int i;

5 for(i=0;i<3;i++) scanf("%d",&a[i]);

6 for(i=1;i<4;i++) a[0]=a[0]+a[i];

7 printf("%d\n",a[0]);

8 }

A)没有错误B)3 C)5 D)6

6.19 若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为(假设a[0][0]位于数组的第一个位置上)。

A)i*m+j B)j*m+i C)i*m+j-1 D)i*m+j+1

6.20 对说明语句int a[10]={6,7,8,9,10};的正确理解是。

A)将5个初值依次a[1]至a[5]

B)将5个初值依次a[0]至a[4]

C)将5个初值依次a[5]至a[9]

D)将5个初值依次a[6]至a[10]

6.21 以下不正确的定义语句是。

A)double x[5]={2.0,4.0,6.0,8.0,10.0};

B)int y[5]={0,1,3,5,7,9};

C)char c1[]={'1','2','3','4','5'};

D)char c2[]={'\x10','\xa','\x8'};

6.22 若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是。

A)2 B)3 C)4 D)无法确定

6.23 若二维数组a有m列,则在a[i][j]前的元素个数为。

A)j*m+i B)i*m+j C)i*m+j-1 D)i*m+j+1

6.24 定义如下变量和数组:int k,a[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是。

for(k=0;k<3;k++) printf("%d ",a[k][2-k]);

A)3 5 7 B)3 6 9 C)1 5 9 D)1 4 7

6.25以下程序段的作用是。

int a[]={4,0,2,3,1},i,j,t;

for (i=1;i<5;i++)

{t=a[i];j=i-1;

while (j>=0&&t>a[j])

{a[j+1]=a[j];j- -;}

a[j+1]=t;

}

A)对数组a进行插入排序(升序)

B)对数组a进行插入排序(降序)

C)对数组a进行选择排序(升序)

D)对数组a进行选择排序(降序)

6.26 以下正确的定义语句是。

A)int a[1][4]={1,2,3,4,5}; B)float x[3][]={{1},{2},{3}};

C)long b[2][3]={{1},{2,3},{4,5,6}}; D)double y[][3]={0};

6.28 下面程序的运行结果是。

#include<stdio.h>

main()

{int a[6],i;

for(i=1;i<6;i++)

{a[i]=9*(i-2+4*(i>3))%5;

printf("%2d",a[i]);

}

}

A)-4 0 4 0 4 B)-4 0 4 0 3 C)-4 0 4 4 3 D)-4 0 4 4 0

*6.29下面是对s的初始化,其中不正确的是。

A)char s[5]={"abc"}; B)char s[5]={'a','b','c'};

C)char s[5]=""; D)char s[5]="abcde";

*6.30下面程序段的运行结果是。

char c[5]={'a','b','\0','c','\0'};

printf("%s",c);

A)'a''b' B)ab C)ab c D)ab▄(▄表示空格)

*6.31对两个数组a和b进行如下初始化

char a[]="ABCDEF";

char b[]={'A','B','C','D','E','F'};

则以下叙述正确的是。

A)a与b数组完全相同B)a与b数组长度相同

C)a和b中都存放字符串D)a数组比b数组长度长

6.32有两个字符数组a、b,则以下正确的输入语句是。

A)gets(a,b); B)scanf("%s%s",a,b);

C)scanf("%s%s",&a,&b); D)gets("a");gets("b");

6.33有字符数组a[80]和b[80],则正确的输出语句是。

A)puts(a,b); B)printf("%s,%s",a[],b[]);

C)putchar(a,b); D)puts(a),puts(b);

*6.34 下面程序段的运行结果是。

char a[7]="abcdef",b[4]="ABC";

strcpy(a,b);

printf("%c",a[4]);

A)■ B)\0 C)e D)ef

6.35有下面程序段,上机运行,将。

char a[3],b[]="China";

a=b;

printf("%s",a);

A)输出China B)输出Chi C)输出Ch D)编译出错

*6.36下面程序段的运行结果是。

char c[]="\t\v\\\0will\n";

printf("%d",strlen(c));

A)3 B)6 C)9 D)14

6.37 判断字符串a和b是否相等,应当使用。

A)if(a==b) B)if(a=b) C)if(strcmp(a,b)) D)if(strcmp(a,b)==0)

6.38判断字符串s1是否大于字符串s2,应当使用。

A) if (s1>s2) B) if (strcmp(s1,s2)

C)if(strcmp(s2,s1)>0) D)if(strcmp(s1,s2)>0)

6.39下面程序段输出两个字符串中对应相等的字符。请分析程序填空。

char x[]="programming";

char y[]="Fortran";

ini i=0;

while (x[i]!='\0'&&y[i]!='\0')

if (x[i]= =y[i]) printf("%c", );

else i++;

A)x[i++] B)y[++i] C)x[i] D)y[i]

6.40 下面描述正确的是。

A)两个字符串包含的字符个数相同时,才能比较字符串

B)字符个数多的字符串比字符个数少的字符串大

C)字符串"STOP"与"STOP■"相等

D)字符串"That"小于字符串"The"

6.41 下面对C语言字符数组的描述中错误的是。

A)字符数组可以存放字符串

B)字符数组的字符串可以整体输入、输出

C)可以在赋值语句中通过赋值运算符对字符数组整体赋值

D)不可以用关系运算符对字符数组中的字符串进行比较

***6.44下面程序的功能是将字符串s中所有的字符'c'删除。

#include "stdio.h"

main()

{char s[80];

int i,j;

gets(s);

for (i=j=0;s[i]!='\0';i++)

if (s[i]!='c') ;

s[j]='\0';

puts(s);}

A)s[j++]=s[i] B)s[++j]=s[i] C)s[j]=s[i];j++ D)s[j]=s[i]

*6.45 下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔。请分析程序填空。

#include<stdio.h>

main()

{char s[80],c1,c2=' ';

int i=0,num=0;

gets(s);

while(s[i]!='\0')

{c1=s[i];

if( ) num++;

i++;

c2=c1;

}

printf("There are %d words.\n",num);

}

A)c1==' '&&c2==' ' B)c1!=' '&&c2==' '

C)c1==' '&&c2!=' ' D)c1!=' '&&c2!=' '

6.46 下面程序的运行结果是。

#include<stdio.h>

main()

{char ch[7]={"12ab56"};

int i,s=0;

for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)

s=10*s+ch[i]-'0';

printf("%d\n",s);

}

A)1 B)1256 C)12ab56 D)1 2 5 6

6.48 当运行以下程序时,从键盘输入ab<CR>c<CR>def<CR>,则下面程序的运行结果是。

#include<stdio.h>

#define N 6

main()

{char c[N];int i=0;

for(;i<N;c[i]=getchar(),i++);

for(i=0;i<N;i++) putchar(c[i]);

}

A)abcdef B)ab C)a D)ab

c c c

def d d

6.50 下面程序的运行结果是。

#include<stdio.h>

#include<string.h>

main()

{char a[20]="AB",b[20]="LMNP";

int i=0;strcat(a,b);

while(a[i++]!='\0') b[i]=a[i];

puts(b);

}

A)LB B)ABLMNP C)AB D)LBLMNP

6.52下面程序的运行结果是。

#include<stdio.h>

main()

{char a[]="morning",t;

int i,j=0;

for(i=1;i<7;i++) if(a[j]<a[i]) j=i;

t=a[j];a[j]=a[7];a[7]=t;

puts(a);

}

A)mogninr B)mo C)morning D)mornin

本文来源:https://www.bwwdw.com/article/qwn1.html

Top