一道c语言填空题,求解!

若变量已正确定义,在执行以下while语句是,输入字符A后,ch的值是(?)while(ch=getchar()=='A');/*正确答案是0*/这里是怎么运算,赋值的?... 若变量已正确定义,在执行以下while语句是,输入字符A后,ch的值是( ? )
while(ch=getchar()=='A'); /*正确答案是0*/
这里是怎么运算,赋值的?求详细解释!!!
展开
 我来答
烟火夜空
2012-02-06 · TA获得超过6623个赞
知道大有可为答主
回答量:1678
采纳率:93%
帮助的人:569万
展开全部
== 恒等于运算符 的优先级 高于 =等于赋值运算符,所以 先进行了getchar()=='A',成立,故getchar()=='A'的结果=1,所以ch=1,while 里面的条件为真,继续执行该语句,又进行一次里面的赋值过程,此时getchar 为空白' ',不等于'A',故getchar()=='A'不成立,ch=0;while 条件为假,结束运行。
追问
我有搜到这道题的原型了,你看看:
http://zhidao.baidu.com/question/276256560.html
你说的很对 问题就出在 输入字符A后 表达式应该成立应该结果是1 怎么会是0 呢????
回答:
因为你输入的时候至少输入了两个字符,一般是A,输入第一个字符'A'时,getchar( )=='A'为值,ch=1;输入第二个字符时,getchar( )=='A'为假,ch=0。其中表示回车。

你看看是不是这样?
追答
不管你第二个字符是否,一旦执行了第一个A后,成立,就会继续执行第二次,而这次肯定不是 A,所以 getchar( )=='A' 就会是假,ch=0
匿名用户
2012-02-06
展开全部
ch=getchar()=='A' 等价于 ch= (getchar()=='A' ) 优先级问题
这类问题没太大意义 工作中一般遇到都会加上括号!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式