第六章 数 组 |
一、选择题 1、若已定义: int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i; 其中0<=i<=9,则对a数组元素的引用不正确的是 A) a[p-a] B) *(&a[i]) C) p[i] D) *(*(a+i)) 2、以下程序段数组所有元素输入数据,应在下划线填入的是 A) a+(i++) B) &a[i+1] C) a+i D) &a[++i] main() { int a[10],i=0; while(i<10) scanf("%d",_); . . } 3、 以下程序的输出结果是 A) 3 B) 4 C) 1 D) 2 main() { int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf("%d\n",*(p+2)); } 4、 以下程序的输出结果是 A) 不确定的值 B) 3 C) 2 D) 1 main() { int n[2]={0},i,j,k=2; for(i=0;i<k;i++) for(j=0;i<k;j++) n[j]=n[i]+1; printf("%d\n",n[k]); } 5、以下程序的输出结果是 A)17 B)18 C)19 D)20 main() { int a[]={2,4,6,8,10},y=1,x,*p; p=&a[1]; for(x=0;x<3;x++) y+=*(p+x); printf("%d\n",y); } 6、 以下程序的输出结果是 A) 6 B) 8 C) 4 D) 2 main() { int a[]={2,4,6,8},*p=a,i; for(i=0;ia,4;i++) a[i]=*p++; printf("%d\n",a[2]); } 7、以下程序的输出结果是 A) 720 B) 120 C) 24 D) 6 f(int b[],int n) { int i,r=1; for(i=0;i<=n;i++) r=r*b[i]; return r; } main() { int x,a[]={2,3,4,5,6,7,8,9}; x=f(a,3); printf("%d\n",x); } 8、以下程序中若第一个printf语句输出的是194,则第二个printf语句的输出结果是 A) 212 B) 204 C) 1a4 D) 1a6 main() { int a[]={1,2,3,4,5,6,7,8,9,0},*p; p=a; printf("%x\n",p); printf("%x\n",p+9); } 9、以下程序的输出结果是 A) 0987654321 B) 4321098765 C) 5678901234 D) 0987651234 fun(int *s,int n1,int n2) { int i,j,t; i=n1; j=n2; while(i<j) { t=*(s+i); *(s+i)=*(s+j); *(s+j)=t; i++; j--; } } main() { int a[10]={1,2,3,4,5,6,7,8,9,0},i,*p=a; fun(p,0,3); fun(p,4,9); fun(p,0,9); for(i=0;i<10;i++) printf("%d",*(a+i)); } 10、以下程序的输出结果是 A) 4 4 B) 2 2 C) 2 4 D) 4 6 main() { int a[5]={2,4,6,8,10},*p,**k; p=a; k=&p; printf("%d",*(P++)); printf("%d\n",**k); } 11、 当运行以下程序时输入三行,每行都是在第一列上开始,<CR>代表Enter键; a<CR> b<CR> cdef<CR> 则程序的输出结果是 A)abcdef B)a C)a D)a b b b c cd cdef d e f #include "stdio.h" #define N 6 main() { char c[N]; int i=0; for(i=0;i<N;i++) c[i]=getchar(); for(i=0;i<N;i++) putchar(c[i]); } 12、 若有定义和语句: int c[4][5],(*cp)[5]; cp=c; 则对C数组元素的引用正确的是 A) cp+1 B) *(cp+3) C) *(cp+1)+3 D) *(*cp+2) 13、 若已定义: int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*prt)[3]=a,*p=a[0]; 则能够正确表示数组元素a[1][2]的表达式是 A) *((*prt+1)[2]) B) *(*(p+5)) C) (*prt+1)+2 D) *(*(a+1)+2) 14、若有定义和语句: int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*prt)[3]=a,*p[4],i; for(i=0;i<4;i++) p[i]=a[i]; 则下能够正确表示a数组元素的表达式是 A) a[4][3] B) p[0][0] C) prt[2][2] D)(*(p+1))[1] 15、 以下程序的输出结果是 A) 23 B) 26 C) 33 D) 36 main() { int aa[3][3]={{2},{4},{6}},i,*p=&aa[0][0]; for(i=0;i<2;i++) { if(i==0) aa[i][i+1]=*P+1; else ++p; printf("%d",*p); } printf("\n"); } 16、 以下程序的输出结果是 A) 60 B) 68 C) 99 D) 108 main() { int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; int (*p)[4]=a,i,j,k=0; for(i=0;i<3;i++) for(j=0;j<2;j++) k+=*(*(p+i)+j); printf("%d\n",k); } 17、以下程序的输出结果是 A) 1,5,9, B) 1,4,7, C) 3,5,7, D) 3,6,9, main() { int i,x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf("%d,",x[i][2-i]); } 18、 若有定义语句int (*p)[M]; 其中的标识符是 A)M个指向整型变量的指针 B)指向M个整型变量的函数指针 C)一个指向具有M个整型元素的一维数组指针 D)具有M个指针元素的一维指针数组,每个元素都只能指向整型量 |
|