新手提问一个c语言的题目,请大家帮忙指点哈

来源:百度知道 编辑:UC知道 时间:2024/09/24 22:26:25
这事高等教育出版社c语言二级中的第六章中的一道填空题。原题:若变量以正确定义,在执行以下while语句时,输入字符A后,ch的值是多少? while(ch=getchar()==‘A’); 我算出来是1.然而书后的答案是0。 大家说是多少呢?

你的答案是正确的,while的条件就是1,但是过程应该是这样的:你输入的字符A,然后这个值先和‘A’比较,如果相等,则表示getchar()==的值为1,然后再把1赋给ch,所以这时的ch应该是1,下面是我编的一个测试程序,看了你就知道了:
#include<stdio.h>

void main()
{
char ch;
if(ch=getchar()=='A')
printf("YES");
printf("%d",ch);
}

while((ch=getchar())=='A')
这样ch是判断你输入的是否==A==65,不是1,,
没括号就判断逻辑getchar()==A是否成立,返回1或0给ch
==关系运算符比赋值运算符优先级高,所以不加()就有问题了
例如:++p->x,,,这句就相当++(p->x),而不是先加