选择题
17.
设有定义语句“int x[6]={2,4,6,8,5,7},*p =x,i;”,要求依次输出x数组6个元素中的值不能完成此操作的语句是______。
A、
for(i=0;1<6;1++) printf("%2d",{(p++));
B、
for(i=0;1<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来输出数组x的值。选项A中,“*(p++)”表示先取出p指向的元素的值,然后p++指向下一个元素,满足要求;选项B中,“*(p+i)”每次i的值发生变化,(p+i)指向x数组的x[i]元素,因此“*(p+i)”是取出数组x的x[i]元素的值,满足要求;选项C和选项A相比,少了括号,由于*运算符的优先级比++要求,因此,因此“*p++”表示先取出p指向的元素的值,然后p再++指向下一个元素,满足要求;选项D中,“(*p)++”表示先取出p指向的元素的值,然后该值++,p没有增加,每次循环都*p取出的x[0]的值,不满足要求。
提交答案
关闭