C语言循环题目求解。

当输入为"quert?"时,下面程序的执行结果是 。
#include main()
{char c;
c=getchar();
while((c=getchar())!='?')
putchar(++c);
}
A. Quert
B. vfsu
C. quert?
D. rvfsu?
答案是B getchar()不是输入一个字符吗?这里是怎么循环的?求详细解答。

while((c=getchar())!='?')//While循环,每次循环均输入字母,如果输入的是"?"则终止循环。
/*你可以看成下面的程序*/
do{
   c=getchar();
   }
while(c!="?");

追问

为什么输出的不是rvfsu呢?

追答c=getchar();//这是第一次输入,即Q;
while((c=getchar())!='?')//即uert输入,q并没有进入循环
putchar(++c); //输出即(u+1)(e+1)(r+1)(t+1)即vfsu

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-01-11
答案是B,没错,第次输入的C值不在循环里面,因而没被输出。只有后面的uert?在循环中被分别1后再输出了
相似回答