C语言题:下面程序的输出结果是:

#include<stdio.h>
void main()
{
char *p[]={"BOOL","OPK","H","SP"};
int i;
for(i=3;i>=0;i--,i--) printf("%c",*p[i]);
printf("\n");
}
A. SO
B. SP
C. SPOPK
D. SHOB
答案选B,求详细解答
不好意思,打错了,答案是A,不是B

正确答案选择A:SO

i=3时p[i]指向"SP"首字母,*p[i]取他的首字母的值输出即是S

i--,i--得到i=1

i=1时p[i]指向“OPK"的首字母,*p[i]取他的首字母的值输出即是O

i--,i--得到i=-1,不满足循环条件,跳出循环输出回车

追问

原来如此,答案确实是我记错了。那如果想利用指针数组*p[]输出"BOOL"、"OPK"这样的字符串,语句应该怎么写?

追答

printf ("%s", p[i]);

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-25
答案是A,怎么可能是B。第一次i是3,*p[i]就是s,第二次i是1,*p[i]就是O,答案是A追问

抱歉啊,我打错了

相似回答