循环结构
以下程序的输出结果是______。main()
{ int a=4,b=5,c=0,d;
d=!a&&!b||!c;
printf("%d\n",d);
}
A、1
B、0
C、非0的数
D、-1
!c的结果一定为1吗?还是为非0的数?如果!c为非0的数那么答案是不是C? 程序运行后状态如下:
!a false bool
!b false bool
!c true bool
!a && !b false bool
!a && !b || !c true bool
true true bool
由此可见:!c 的结果是 非 0 ,而输出时的 d 为整型(%d),故输出 1
风过无痕1989 发表于 2020-11-16 13:00
程序运行后状态如下:
!a false bool
!b false bool
非0的输出结果不应该是任意非0的数吗,为什么按%d输出结果就是1 狂想曲丶 发表于 2020-11-16 16:33
非0的输出结果不应该是任意非0的数吗,为什么按%d输出结果就是1
系统自动转化为布尔类型,而布尔类型就只有 0 和 1
页:
[1]