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[10]
D
2. 已知指针p的指向如下图所示,则执行语句*--p;后*p的值是
a[0] a[1] a[2] a[3] a[4]
┌──┬──┬──┬──┬──┐
│ 10 | 20 | 30 │ 40 | 50 |
└──┴──┴──┴──┴──┘
p↑
A) 30 B) 20
C) 19 D) 29
B
3. 下面程序运行时,如果从键盘上输入3,5,程序输出的
结果是________。
main( )
{ int a,b,*pa,*pb;
pa=&a; pb=&b;
scanf("%d,%d",pa,pb);
*pa=a+b;
*pb=a+b;
printf("a=%d,b=%d\n",a,b);
}
A) a=13,b=13 B) a=8,b=8
C) a=8,b=13 D) 出错
C
4. 下面程序段的输出结果是________。
main( )
{ char string1[20],string2[20]={"ABCDEF"};
strcpy(string1,string2);
printf("%s\n",string1+3);
}
A) EF B) DEF
C) CDEF D) ABCDEF
B
5. 下列程序执行后的输出结果是________。
main()
{ int a[3][3],i,*pmul;
pmul=&a[0][0];
for(i=0;i<9;i++) pmul[i]=i+1;
printf("%d\n",a[1][2]);
}
A) 3 B) 6
C) 9 D) 随机数
B
6. 有如下程序段
int *p,a=10,b=1;
p=&a; a=*p+b;
执行该程序段后,a的值为________。
A) 12 B) 11
C) 10 D) 编译出错
B
8. 以下函数返回a所指数组中最小值所在的下标值
fun( int *a,int n)
{ int i,j=0,p;
p=j;
for(i=j;i
if( *(a+i)
return (p);
}
在下划线处应填入的是________。
A) i=p; B) a[p]=a[i];
C) p=j; D) p=i;
D
8. 有如下说明
int a[10]=[1,2,3,4,5,6,7,8,9,10},*p=a;
则数值为9的表达式是________。
A) *(p+9) B) *(p+8)
C) *p+=9 D) p+8
B
9. 有如下程序
main()
{ char s[]="ABCD",*p;
for(p=s+1;p
}
该程序的输出结果是________。
A) ABCD B) A
BCD B
CD C
D D
C) B D) BCD
C CD
D D
D
10. 下面程序的输出结果是
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
C
11. 若有说明语句"int i,j =7,*p=&i;",则与i=j等价的语句是
A) i=*p; B) *p=*&j;
C) i=&j; D) i=**p ;
B
12. 若有说明语句"int a[10],*p=a;"