C语言指针章节选择题(新)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档