请教C语言高手~!!!!请问下这段程序的运算过程!

#include<stdio.h>
void main()
{char c;
c=getchar();
while((c=getchar())!='?')
putchar(++c);
}
当输入quert时,为什么运行结果是vfsu?

请教这个程序的运行过程~!

getchar()还是只能从键盘读入一个字符。假如你输入quert时,第一次读入的是'q',也就是变量c的值为'q',接下来执行while循环,先判断循环条件,先执行括号里面的c=getchar(),又读了一次,此时读入的是'u',所以c的值为'u', 'u' !='?'成立,执行putchar(++c),++c的值就是c的值加1,当前'c'的值为'u',加1变成了'v',所以输出'v';接下来再判断条件,又读入'e',c的值变成'e','e'!='?'成立,执行putchar(++c),'e'+1变成了'f',字符加1就会向前移动
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-06-05
c是一个 字符型变量;
输入 quert的时候;
第4行 c=getchar(); 得到 一个字符 c='q'
第5行,循环语句,不是?就一直循环
(c=getchar())!='?' 获得下一个字符 c='u'
第6行 输出字符 ++c=v
然后 不是?继续循环 第5行 c=e;
第6行 ++c=f;
不是?继续循环 第5行 c=r;
第6行 ++c=s;
不是?继续循环 第5行 c=t;
第6行 ++c=u;
不是?继续循环 第5行 c=?;
第6行 ++c=是一个特殊符号;
结束循环
第2个回答  2011-06-05
给这3句标个号1,2,3
c=getchar(); 1
while((c=getchar())!='?') 2
putchar(++c); 3
你输入q时,执行1,输入u执行2,输出++c,因为是先++,所以是v,
以此类推,输入e,输出f,输入r,输出s,输入t输出u,
明白了吗。
相似回答