C语言程序设计--与或非的题目

(7) 有如下程序段
int a=14,b=15,x;
char c=’A’;
x=(a&&b)&&(c<’B’);
执行该程序段后,x的值为( )
A} ture B} false C} 0 D} 1 答案是D。请说明一下

c里面非0整数当作true处理。
所以a&&b=true
‘A’<'B'所以c<'B为true
所以(a&&b)&&(c<’B’)为true。
true转换为int的时候,你的编译器可能转换为1了。
(补充:int与boolean的转换关系,要看编译器的约定,不同的编译器上结果可能不一样)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-12
&&是逻辑运算符,运算结果是true或者false,其意义是计算结果是真还是假。a&&b的意思是:(a>0)&&(b>0),这个运算结果明显是true,c<'B'的运算结果明显也是true('A'的ASCII码值小于'B'的ASCII码值)。所以(a&&b)&&(c<'B')的运算结果是true。但是你要注意,x的类型时int。当将true赋值给x的时候,编译器会把布尔型的变量true转化成整型变量1。所以最后的结果是D.
第2个回答  2013-09-12
&&因为这个符号的意思是 当a和b都大于0的话就为真,就表示为1;例如:int a=14,b=13;a&&b;就为真 就为1,假就为 0;如:int a=3,b= -3的话就为假 就为0;所以如此.
第3个回答  2013-09-12
?简单啊a&&b是真 因为a和b都不等于0c<"B"是真 前后都为真 所以x也为真因为x是int型变量 所以x=1
第4个回答  2020-02-24
0)&&(b>的ASCII码值小于'B'的ASCII码值)。所以(a&&b)&&(c<')的运算结果是true:(a>,运算结果是true或者false,其意义是计算结果是真还是假。a&&b的意思是,编译器会把布尔型的变量true转化成整型变量1;A'B'0),这个运算结果明显是true,c<'B'的运算结果明显也是true('。所以最后的结果是D。但是你要注意,x的类型时int。当将true赋值给x的时候&&是逻辑运算符

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网