c语言填空题一道

来源:百度知道 编辑:UC知道 时间:2024/06/03 01:47:24
#include <stdio.h>
main()
{int a=100;
if(a>100)printf("%d\n",a>=100);
else printf("%d\n",a<=100);
}
输出结果是什么,我知道是1,为什么???

if else语句的意思是满足if条件的执行if后的语句,否则必定执行else后的语句,
然后a>=100的值只有可能是2个,一个是1,另一个是0,为什么呢,由于c语言中没有boolean类型,也就是包含2个值,一个是true,另一个是false
所以c中只好以1,0来代替true,false
那么a>=100是不是true,当然,所以a>=100值为1
a<=100同理也是1
那么a>100对吗,显然不对,所以只会执行else后的语句,也就是a<=100的值
也就是输出1

1

因为a=100
所以if(a>100)中条件为假,跳过执行else语句
a<=100为真,由于是%d,则true由bool值转换为整数1

因为if 和else 两个语句只能执行其中的一句 上面a>100 所以只执行else 句,所以输出1

运行过了~
结果为1

2楼正解