新手上路,请帮个小忙
问题1:用函数 GETCHAR() 和 PUTCHAR() 编写一程序,令起功能是:
当用户输入A时,程序输出B
问题2:
设a=1,b=2,c=4,计算表达式:(c=a!=b)&&(a==b)&&(c=b)
执行后啊,a,b,c的值和表达式的值
谢谢你的回答!!
----------------解决方案--------------------------------------------------------
#include"stdio.h"
void main()
{
char a;
a=getchar();
a='B';
putchar(a);
}
----------------解决方案--------------------------------------------------------
a=1,b=2,c=1,(c=a!=b)&&(a==b)&&(c=b) => 1&&0&&1=0;
----------------解决方案--------------------------------------------------------
谢谢了
----------------解决方案--------------------------------------------------------
第2题怎么算了啊,哎不会
----------------解决方案--------------------------------------------------------
以下是引用wangyongmin在2006-9-9 13:31:54的发言:
问题1:
用函数 GETCHAR() 和 PUTCHAR() 编写一程序,令起功能是:
当用户输入A时,程序输出B
if(getchar()==A)
{
printf("B");
}
问题2:
设a=1,b=2,c=4,计算表达式:(c=a!=b)&&(a==b)&&(c=b)
执行后啊,a,b,c的值和表达式的值
(c=(a!=b))&&(a==b)&&(c=b)
a=1!=b--->a!b==1--->c=1--->(c=(a!=b))=1
a==b=0
由于&&前面已经出现假,则不计算后面的表达式,此时(c=b)没有被执行
所以:a==1,b==2,c==1,表达式为0
谢谢你的回答!!
问题1:
用函数 GETCHAR() 和 PUTCHAR() 编写一程序,令起功能是:
当用户输入A时,程序输出B
if(getchar()==A)
{
printf("B");
}
问题2:
设a=1,b=2,c=4,计算表达式:(c=a!=b)&&(a==b)&&(c=b)
执行后啊,a,b,c的值和表达式的值
(c=(a!=b))&&(a==b)&&(c=b)
a=1!=b--->a!b==1--->c=1--->(c=(a!=b))=1
a==b=0
由于&&前面已经出现假,则不计算后面的表达式,此时(c=b)没有被执行
所以:a==1,b==2,c==1,表达式为0
谢谢你的回答!!
掌握运算符的优先级
----------------解决方案--------------------------------------------------------
谢谢你们的回答
----------------解决方案--------------------------------------------------------
前几天,我也碰到过类似的问题
我想问一下,后面c=b不执行是不是编译器的优化啊?
----------------解决方案--------------------------------------------------------
6六楼的回答很细啊!!!
让我开了眼界
学习c这么长时间没有考虑过这样的问题
谢谢!!!
----------------解决方案--------------------------------------------------------
以下是引用ldk0501在2006-9-9 21:13:49的发言:
前几天,我也碰到过类似的问题
我想问一下,后面c=b不执行是不是编译器的优化啊?
&&也叫短路与,例如0&&1,当编译器看到0时,就不会考虑1,整个表达式的值为假。
例如1&&1,当编译器看到1时,它还要考虑一下后面的一个是不是1。
----------------解决方案--------------------------------------------------------