第6章 数组
一、选择题
1、以下错误的定义语句是(C) A) int x[][3]={{0},{1},{1,2,3}};
B) int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; C) int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; D) int x[][3]={1,2,3,4};
2、若有定义:int a[2][3];以下选项中对a数组元素正确引用的是(D) A) a[2][!1] B) a[2][3] C) a[0][3] D) a[1>2][!1] 3、以下能正确定义一维数组的选项是(B)。
A) int num(5*2); B)int num[5*2]; C) int long[10]; 4、以下能正确定义一维数组的选项是(B)。 A) int num[];
B) #define N 100 ?int num[N];
C) int num[0..100];
D) int N=100; ? int num[N];
5、以下选项中正确的语句组是(D)
A) char s[];s=”BOOK!” B) char *s; s={“BOOK!”};C) char s[10]; s=”BOOK!” D) char *s; s=”BOOK!”; 6、若以下说明,则数值为4的表达式是(D)。 int a[12]={1,2,3,4,5,6,7,8,9,10}; char c=?a?,d,g;
A) a[g-c] B) a[4] C) a[?d?-?c?] D) a[?d?-c] 7、以下程序的输出结果是(C)。 main()
{ int i, a[10];
for(i=9;i>=0;i--) a[i]=10-i;
printf(“%d%d%d”,a[2],a[5],a[8]); }
A) 258 B) 741
C) 852 D) 369
8、有以下程序,程序运行后的输出结果是(D)。 main()
{
int i,k,a[10],p[3]; k=5;
for(i=0;i<10;i++) a[i]=i; for(i=0;i<3;i++) p[i]=a[i*(i+1)]; for(i=0;i<3;i++) k+=p[i]*2; printf(“%d\\n”,k);
1
D) int num(10); }
A)60 B)61 C)62 D)63 9、有如下程序 main( )
{ int n[5]={0,0,0},i,k=2; for(i=0;i 该程序的输出结果是(D)。 A) 不确定的值 B) 2 C) 1 D) 0 10、以下程序的输出结果是(A)。 main() { int a[4][4]={{1,3,5},{2,4,6},{3,5,7}}; printf(\} A) 0650 B) 1470 C) 5430 D) 输出值不定 11、有以下程序,执行后输出结果是(C)。 main() { int m[][3]={1,4,7,2,5,8,3,6,9}; int i,j,k=2; for(i=0;i<3;i++) printf(\} A) 4 5 6 B) 2 5 8 C) 3 6 9 D) 7 8 9 12、以下程序的输出结果是(A)。 A) 18 B) 19 C) 20 D) 21 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<=i;j++)s+=a[i][j]; printf(“%d\\n”,s); } 13、以下程序的输出结果是(C)。 main() { int i, x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf(\} A) 1,5,9, B) 1,4,7, C) 3,5,7, D)3,6,9, 14、有以下程序,执行后输出的结果是(D)。 main() { int p[7]={11,13,14,15,16,17,18},i=0,k=0; 2 while(i<7&&p[i]%2) {k=k+p[i]; i++; } printf(\ } A) 58 B) 56 C) 45 D) 24 15、有以下程序 main() { int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i; for(i=0;i<12;i++) c[s[i]]++; for(i=1;i<5;i++) printf(\ printf(\} 程序的运行结果是(C) A) 1 2 3 4 B) 2 3 4 4 C)4 3 3 2 D) 1 1 2 3 16、有以下程序 main() { int p[8]={11,12,13,14,15,16,17,18},i=0,j=0; while(i++<7) if(p[i]%2) j+=p[i]; printf(\} 程序运行后的输出结果是(B) A)42 B)45 C)56 D)60 17、当执行下列程序时,如果输入ABC,则输出结果是(A)。 main() { char ss[10]=”12345”; gets(ss);strcat(ss,”6789”); printf(“%s\\n”,ss); } A)ABC6789 B)ABC67 C)12345ABC6 D)ABC45678 18、有以下程序,程序运行后的输出结果是(A)。 main() { char arr[2][4]; strcpy(arr[0],\ strcpy(arr[1],\ arr[0][3]='&'; printf(\ } A)you&me B)you C)me D)err 19、有以下程序,程序运行后的输出结果是(A)。 3 main() { int a[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j; for (i=0;i<3;i++) for (j=0;j<3;j++) { a[i][j]=i+j; if(i=j) sum=sum+a[i][j]; } printf(“sum=%d”,sum); } A)sum=26 B)sum=1 C)sum=6 D)sum=25 20、有以下程序,程序运行后的输出结果是(A)。 main() {char s[10]=”12134211”; int v[4]={0,0,0,0},k,i; for(k=0;s[k];k++) { switch(s[k]) { case ?1?:i=0;break; case ?2?:i=1;break; case ?3?:i=2;break; case ?4?:i=3;break; } v[i]++; } for(k=0;k<4;k++) printf(“%d”,v[k]); } A)4 2 1 1 B)0 0 0 8 C)4 6 7 8 D)8 8 8 8 21、以下程序的输出结果是(B)。 main() { char st[20]=\ printf(\} A) 9 9 B) 5 20 C) 13 20 D) 20 20 22、以下程序的输出结果是(D)。 main() { int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<3;i++) 4 for(j=i;j<=i;j++) t=t+b[i][b[j][j]]; printf(\} A) 3 B) 2 C) 7 D) 4 23、以下程序的输出结果是(B) main() { char cf[3][5]={\ printf(\} A) \ B) \ C) \ D) \ 24、若有定义语句:char s[10]=”1234567\\0\\0”;则strlen(s)的值是(A) A) 7 B) 8 C) 9 D) 10 25、有以下程序 void fun(int a, int b) { int t; t=a;a=b;b=t; } main() { int c[10]={1,2,3,4,5,6,7,8,9,0},i; for(i=0;i<10;i+=2) fun(c[i],c[i+1]); for(i=0;i<10;i++) printf(\ printf(\} 程序的运行结果是(A) A) 1,2,3,4,5,6,7,8,9,0, B)2,1,4,3,6,5,8,7,0,9, C) 0,9,8,7,6,5,4,3,2,1, D)0,1,2,3,4,5,6,7,8,9, 26、有以下程序 void f(char p[][10], int n ) /* 字符串从小到大排序 */ { char t[10]; int i,j; for(i=0;i if(strcmp(p[i],p[j])>0) {strcpy(t,p[i]); strcpy(p[i],p[j]); strcpy(p[i],t); } main() { char p[5][10]={\ f(p,5); printf(\}程序运行后的输出结果是(D) A) 2 B) 4 C) 6 D) 3 27、有以下程序 5 }