C语言指针章节选择题(新)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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)<*(a+p) )_______________; 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;",对数组元素的正确引用是 A) a[p] B) p[a] C) *(p+2) D) p+2 C 13. 下列各语句行中,能正确进行赋字符串操作的语句是 A) char s[5]={"ABCDE"}; B) char s[5]={'A' ,'B','C','D','E'}; C) char *s; s="ABCDE"; D) char *s; scanf("%s",&s); C 14. 若有以下定义语句,则不能表示a数组元素的表达式是 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; A) *p B) a[10] C) *a D) a[p-a] 15. 执行语句"char a[10]={"abcd"},*p=a;"后,*(p+4)的值是 A) "abcd" B) 'd' C) '\0' D) 不能确定 C 16. 设有定义语句"int (*ptr)[10];",其中的ptr是 A) 10个指向整型变量的指针 B) 指向10个整型变量的函数指针 C) 一个指向具有10个元素的一维数组的指针 D) 具有10个指针元素的一维数组 C 17. 若有以下定义,则数组为4的表达式是 int a[3][4]={{0,1},{2,4},{5,8}},(*p)[4]=a; A) *a[1]+1 B) p++,*(p+1) C) a[2][2] D) p[1][1] D 18. 若有如下定义和语句,则输出结果是 char *a="ABCD";printf("%s",a); A) A B) AB C) ABC D) ABCD D 19. 下列程序执行后输出的结果是 main() {char *a[6]={"AB","CD","EF","GH","IJ","KL"}; int i; for(i=0;i<4;i++) printf("%s",a[i]); printf("\n"); } A) ACEG B) ABCDEFGH C) EGIK D) EFGHIJKL B 20. 设有变量定义语句"int a[2][3];",能正确表示数组a中元素地址的表达式是 A) a[1]+3 B) *(a+2) C) *(a[1]+2) D) *(a+1) D