c语言习题册及答案

.

}

作业07 数组

一.选择题

1.设有数组定义:char array[ ]=”China”;,则数组array所占的空间为( A)4个字节 B)5个字节 C)6个字节 D)7个字节 )。

2.下列程序执行后的输出结果是( )。 #include void main()

{ char arr[2][4];

strcpy(arr,“you”); strcpy(arr[1],“me”); arr[0][3]=‘&’;

printf(“%s\\n”,arr); }

A)you&me B)you C)me D)err 3.有如下程序的输出结果是( )。 #include void main()

{ int n[5]={0,0,0},i,k=2; for(i=0;i

printf(“%d\\n”,n[k]); }

A)不定值 B)2 C)1 D)0 4.如下程序的输出结果是( )。 #include void main()

{ int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0; for(i=1;i<3;i++) for(j=0;j

printf(“%d\\n”,s); }

A)14 B)19 C)20 D)21

5.当执行下面的程序时,如果输入ABC,则输出结果是( #include #include void main()

{ char ss[10]=”1,2,3,4,5”;

gets(ss);strcat(ss,”6789”);printf(“%s\\n”,ss); }

.

)。 .

A)ABC6789 B)ABC67 C)12345ABC6 D)ABC456789 6.以下程序的输出结果是( )。 #include

f(int b[ ],int m,int n) { int i,s=0;

for(i=m;i

{ int x,a[ ]={1,2,3,4,5,6,7,8,9}; x=f(a,3,7);

printf(“%d\\n”,x); }

A)10 B)18 C)8 D)15

7.以下程序中函数sort()的功能是对数组a中的数据进行由大到小的排序。 #include

void sort(int a[ ],int n) { int i,j,t;

for(i=0;i

{t=a[i];a[i]=a[j];a[j]=t;}

}

void main()

{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(&aa[3],5); for(i=0;i<10;i++)

printf(“%d,”,aa[i]); printf(“\\n”); }

程序运行后的输出结果是( )。

A)1,2,3,4,5,6,7,8,9,10 B)10,9,8,7,6,5,4,3,2,1 C)1,2,3,8,7,6,5,4,9,10, D)1,2,10,9,8,7,6,5,4,3 8.有以下程序:

#include #include void main()

{ char a[ ]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’\\0’}; int i,j;

i=sizeof(a);j=strlen(a); printf(“%d,%d\\n”,i,j); }

.

.

程序运行后的输出结果是( )。

A)9,9 B)8,9 C)1,8 D)9,8

9.以下程序中函数reverse()的功能是将a所指数组中的内容进行逆置。 #include

void reverse(int a[ ],int n) { int i,t;

for(i=0;i

{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;} }

void main()

{ int b[10]={1,2,3,4,5,6,7,8,9,10}; int i,s=0; reverse(b,8);

for(i=6;i<10;i++) s+=b[i];

printf(“%d\\n”,s); }

程序运行后的输出结果是( )。

A)22 B)10 C)34 D)30 10.以下程序的输出结果是( )。 #include #include void main()

{ char str[12]={‘s’,’t’,’r’,’i’,’n’,’g’}; printf(“%d\\n”,strlen(str)); } A)6 B)7 C)11 D)12

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

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

12.若有说明:int a[3][4];则对a数组元素的非法引用是( )。 A)a[0][2*1] B)a[1][3] C)a[4-2][0] D)a[0][4] 13.若有说明:int a[ ][4]={0,0};,则下面不正确的叙述是( )。 A)数组a的每个元素都可得到初值0 B)二维数组a的第一维大小为1

C)因为二维数组a中初值的个数不能被第二维大小的值整除,则第一维的大小等于所得商数再加1,故数组a的行数为1

D)只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0 14.下面程序中的错误的行是( )。 (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(“%f\\n”,a[0]); (8)}

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

15.若有说明:int a[ ][3]={1,2,3,4,5,6,7};,则a数组第一维的大小是( A)2 B)3 C)4 D)无确定值 16.对两个数组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长度长 17.有下面的程序段:

char a[3],b[ ]=”china”; a=b;

printf(“%s”,a); 则( )。

A)运行后将输出china B)运行后将输出ch C)运行后将输出chi D)编译出错

18.判断字符串s1是否大于字符串s2,应使用( )。 A)if(s1>s2) B)if(strcmp(s1,s2)) C)if(strcmp(s2,s1)>0 D)if(strcmp(s1,s2)>0) 19.下面程序的运行结果是( )。 #include void 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

.

。 )

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4