内容发布更新时间 : 2024/11/3 3:29:58星期一 下面是文章的全部内容请认真阅读。
.
}
作业07 数组
一.选择题
1.设有数组定义:char array[ ]=”China”;,则数组array所占的空间为( A)4个字节 B)5个字节 C)6个字节 D)7个字节 )。
2.下列程序执行后的输出结果是( )。 #include
{ 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
{ 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 { 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 { 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 { 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 { 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 { 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 . 。 )