问题 单项选择题

设有定义语句
int x[6]=(2,4,6,8,5,7.), *p=x, i;
要求依次输出x数组6个元素中的值,不能完成此操作的语句是

A.for(i=0;i<6;i++) printf(“%2d”,* (p++));

B.for(i=0;i<6;i++) printf(“%2d”,*(p+i));

C.for(i=0;i<6;i++) printf(“%2d”,*p++);

D.for(i=0;i<6;i++) printf(“%2d”,*(p)++);

答案

参考答案:D

解析: 本题考核的知识点是通过指针引用数组的元素。本题中首先定义了一个一维数组并初始化,接着定义了一个指针变量p指向数组x。因此可以通过指针p的下移,即每次加1引用数组x中的元素,来指向数组中的每个元素,这样循环6次即可引用数组的每个元素。选项A、B和选项C满足要求,而在选项D中表达式为(*p)++,该表达式是先取*p的值然后将其值加1,而没有将指针下移一位,故选项D不正确。所以,4个选项中选项D符合题意。

选择题
单项选择题 A1/A2型题