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

admin2009-04-15  18

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

选项 A、for(i=0;i<;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)++);

答案8

解析 本题中首先定义了一个了维数组并初始化,接着定义了一个指针变量p指向数组x。因此可以通过指针p的下移,即每次加1引用数组x中的元素,来指向数组中的每个元素,这样循环6次即可引用数组的每个元素。选项A和C,*和++的优先级相同且都具有右结合性,p++是先使用p的值再对p加1,即先输出*p的值,再将指针下移一位。选项B是取*(p+i)所对应的存储单元中的数据输出,随着i的递增输出x数组的6个元素。选项D中表达式为(*p)++,该表达式是先取*p的值然后将其值加1,而没有将指针下移一位,故选项D不正确。所以,4个选项中选项D符合题意。
转载请注明原文地址:https://kaotiyun.com/show/BpXp777K
0

最新回复(0)