C)14 D)15
[C] 教师批改:C 18、有以下程序 prt(int *m,int n) { int i;
for(i=0;i int a[]={1,2,3,4,5},i; prt(a,5); for(i=0;i<5;i++) printf(\); } 程序运行后的输出结果是_____。 A)1,2,3,4,5, B)2,3,4,5,6, C)3,4,5,6,7, D)2,3,4,5,1, [B] 教师批改:B 19、有以下程序 #include {int a[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL; *q=*(p+5); printf(\); } 程序运行后的输出结果是_____。 A) 运行后报错 B) 6 6 C) 6 11 D) 5 10 [A] 教师批改:A 20、已有定义:int i,a[10],*p;,则合法的赋值语句是_____。A) p=100; B) p=a[5]; C) p=a[2]+2; D) p=a+2; [B] 教师批改:D 21、有以下程序段 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=p[5]; b中的值是_____。 A) 5 B) 6 C) 8 D) 9 [D] 教师批改:D 22、有以下程序 void sum(int *a) { a[0]=a[1];} main( ) { int aa[10]={1,2,3,4,5,6,7,8,9,10},i; for(i=2;i>=0;i--) &nb sp; sum(&aa[i]); printf(“%d\\n”,aa[0]); } 执行后的输出结果是_____。 A) 4 B) 3 C) 2 D) 1 [B] 教师批改:A 23、有以下程序 main() { int x[8]={8,7,6,5,0,0},*s; s=x+3 printf(\); } 执行后输出结果是_____。 A) 随机值 B) 0 C) 5 D) 6 [B] 教师批改:B 24、以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。 #define N 10 void arrin(int x[N]) { int i=0; while(i 在下划线处应填入的是_____。 A) x+i B)&x[i+1] C)x+(i++) D)&x[++i] [B] 教师批改:C 25、以下程序调用findmax函数返回数组中的最大值 findmax(int *a,int n) { int *p,*s; for(p=a,s=a; p-a { int x[5]={12,21,13,6,18}; printf(\(x,5)); } 在下划线处应填入的是_____。 A) p>s B) *p>*s C) a[p]>a[s] D) p-a>p-s [C] 教师批改:B 26、若有定义:int aa[8];。则以下表达式中不能代表数组元aa[1]的地址的是_____。 A) &aa[0]+1 B) &aa[1] C) &aa[0]++ D) aa+1 [D] 教师批改:C 27、下列程序的输出结果是_____。 main() { char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5; printf(“%d”,*--p); } A) 非法 B)a[4]的地址 C)5 D)3 [C] 教师批改:C 28、下面程序的输出结果是_____。 main() { int a[ ]={1,2,3,4,5,6,7,8,9,0,},*p; p=a; printf(“%d\\n”,*p+9); } A) 0 B) 1 C) 10 D) 9 [A] 教师批改:C 29、以下程序的输出结果是_____。 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); } A) 20 B) 21 C) 22 D)23 [B] 教师批改:B 30、以下函数返回a所指数组中最小的值所在的下标值 fun(int *a, int n) { int i,j=0,p; p=j; for(i=j;i [B] 教师批改:D 31、若已定义: 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[10] [B] 教师批改:D 32、下列程序执行后的输出结果是_____。 void func(int *a,int b[]) { b[0]=*a+6; } main() { int a,b[5]; a=0; b[0]=3; func(&a,b); printf(\); } A) 6 B) 7 C) 8 D) 9 [A] 教师批改:A 33、若有以下调用语句,则不正确的fun函数的首部是_____。 main() { … int a[50],n; … fun(n, &a[9]); … } A) void fun(int m, int x[]) B) void fun(int s, int h[41]) C) void fun(int p, int *s) D) void fun(int n, int a) [D] 教师批改:C 34、以下程序的输出结果是_____。 main( ) { char a[10]={?1?,?2?,?3?,?4?,?5?,?6?,?7?,?8?,?9?,0},*p; int i; i=8; p=a+i; printf(\,p-3); } A)6 B) 6789 C) ?6? D) 789 [C] 教师批改:B 35、下面程序把数组元素中的最大值放入a[0]中。则在if 语句中的条件表达式应该是_____。 main( ) { int a[10]={6,7,2,9,1,10,5,8,4,3},*p=a,I; for(i=o;i<10;i++,p++) if(________) *a=*p; printf(\,*a); } A) p>a B) *p>a[0] C) *p>*a[0] D) *p[0]> *a[0] [D] 教师批改:B 1 36、设有如下定义: int arr[]={6,7,8,9,10}; int * ptr; 则下列程序段的输出结果为_____。 ptr=arr; * (ptr+2)+=2; printf (\(ptr+2)); A) 8,10 B) 6,8 C) 7,9 D) 6,10 [C] 教师批改:D 37、若有以下定义和语句: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则不能表示a数组元素的表达式是_____。 A) *p B) a[10] C) *a D) a[p-a] [D] 教师批改:B 38、若有以下的定义: int a[]={1,2,3,4,5,6,7,88,9,10}, *p=a; 则值为3的表式是_____。 A) p+=2, *(p++) B) p+=2,*++p C) p+=3, *kp++ D) p+=2,++*p [C] 教师批改:A 39、若有以下说明: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为6的表达式是_____。 A) *p+6 B) *(p+6) C) *p+=5 D) p+5 [B] 教师批改:C 40、下列程序的输出结果是_____。 main( ) { int a[5]={2,4,6,8,10},*P,* *k; p=a; k=&p; printf(\(p++)); printf(\); } A) 4 4 B) 2 2 C) 2 4 D) 4 6 [C] 教师批改:C 41、执行以下程序后,y的值是_____。 main ( ) { int a[]={2,4,6,8,10}; int y=1,x,*p; p=&a[1]; for(x=0;x<3;x++) y + = * (p + x); printf(\); } A) 17 B) 18 C) 19 D) 20 [C] 教师批改:C 42、下面程序的输出是_____。 main() { int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf(\(p+2));} A) 3 B) 4 C) 1 D) 2 [A] 教师批改:A 43、以下程序调用findmax函数求数组中值最大的元素在数组中的下标,请选择填空。 # include { int p; for(p=0,*k=p;p for ( i=0 ; i<10 ; i + + ) scanf(\); findmax ( a,10,&k ); printf ( \); } A) k=p B) *k=p-s C) k=p-s D) *k=p [B] 教师批改:D 44、若有以下说明和语句,int c[4][5],(*p)[5];p=c;能正确引用c数组元素的是 A) p+1 B) *(p+3) C) *(p+1)+3 D) *(p[0]+2)) [A] 教师批改:D 45、若有定义:int *p[3];, 则以下叙述中正确的是_____。 A) 定义了一个基类型为int的指针变量p,该变量具有三个指针 B) 定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针 C) 定义了一个名为*p的整型数组,该数组含有三个int类型元素 D) 定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素 [C] 教师批改:B 46、有以下程序 main() { int a[3][3], *p, i; p=&a [0][0] ; for ( i=0 ; i<9 ; i++) p[i]=i+1; printf(\); } 程序运行后的输出结果是 A) 3 B) 6 C) 9 D) 2 [B] 教师批改:B 47、若有以下定义和语句: int s[4][5],(*ps)[5]; ps=s; 则对s数组元素的正确引用形式是 A) ps+1 B) *(ps+3) C) ps[0][2] D) *(ps+1)+3 [] 教师批改:C 48、若有以下定义: char s[20]=\ 则不能代表字符o的表达式是 A) ps+2 B)s[2] C) ps[2] D)ps+=2,*ps [] 教师批改:A 49、若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是 A) &t[3][2] B) t[3] C) t[1] D) t[2] [] 教师批改:D 50、下列程序执行后的输出结果是 main() { int a[3][3], *p,i; p=&a[0][0]; for(i=p; i<9; i++) p[i]=i+1; printf(\); } A) 3 B) 6 C) 9 D) 随机数 [A] 教师批改:B 51、以下程序的输出结果是 main( ) { int i,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1]; for(i=0;i<4;i+=2)printf(\,p[i]); } A) 5 2 B) 5 1 C) 5 3 D) 9 7 [C] 教师批改:C 52、执行以下程序段后,m的值为 int a[2][3]={ {1,2,3},{4,5,6} }; int m,*p; p=&a[0][0]; m=(*p)*(*(p+2))*(*(p+4)); A) 15 B) 14 C) 13 D) 12 [] 教师批改:A 53、若有以下说明: int w[3][4]={{0,1},{2,4},{5,8}}; int(*p)[4]=w; 则数值为4的表达式是_____。 A) *w[1]+1 B) p++,*(p+1) C) w[2][2] D) p[1][1] [] 教师批改:D 54、若有以下的说明和语句: main() { int t[3][2], *pt[3],k; fpr(k=o; k<3;k++)pt[k]=t[k]; } 则以一选项中能正确表示t数组元素地址的表达式是 A) &t[3][2] B) *pt[0] C) *(pt+1) D) &pt[2] [] 教师批改:C 55、设有以下定义: int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int (*prt)[3]=a,*p=a[0]; 则下列能够正确表示数组元素a[1][2]的表达式是 A) *((*prt+1)[2]) B) *(*(p+5)) C) (*prt+1)+2 D) *(*(a+1)+2) [] 教师批改:D 56、下面程序的输出是 int aa[3][3]={{2},{4},{6}}; main() { int i, * p=&aa[0][0]; for(i=0; i<2;i++) { if(i==0) aa[i][i+1]=*p+1; else ++p; printf(\);} } A) 23 B) 26 C) 33 D) 36 [A] 教师批改:A 57、若有以下说明和语句,请选出哪个是对c数组元素的正确引用 int c[4][5], (*cp)[5]; cp=c; A) cp+1 B) *(cp+3) C) *(cp+1)+3 D) *(*cp+2) [B] 教师批改:D 58、设有说明int(*ptr)[m];其中的标识符ptr是 。 A)M个指向整型变量的指针 B)指向M个整型变量的函数指针 C)一个指向具有M个整型元素的一维数组的指针 D)具有M个指针元素的一维指针数组,每个元素都只能指向整型量 [C] 教师批改:C 59、有以下程序,其中函数f的功能是将多个字符串按字典顺序排序 #include if(strcmp(p[i],p[j])>0){ t=p[i]; p[i]=p[j]; p[j]=t; }