在C语言中,表达式5>3&&2||8<4-!0的值为()。

在C语言中,表达式5>3&&2||8<4-!0的值为多少?~

正常思路:由于逻辑运算符优先级别低于比较运算符同时这两种都低于算术运算符,因此先考虑后半部分,4-!0真值为1,而83&&2显然真值为1最终结果为1||0当然结果为12)有||将表达式分成两部分左边的是5>3&&2显然其真值为1因此1||任意真值都为1不用算后面的了。真值为1

一个逻辑表达式吧?表达式的值应该是恒为0的。。。。
前面3>5值为假,与2相与仍为假,后面!0就是1,这个式子的值也是假
所以最后整个式子都为假,值为0

1)正常思路:由于逻辑运算符优先级别低于比较运算符同时这两种都低于算术运算符,因此先考虑后半部分,4-!0 真值为1, 而8<1的真值为0.再考虑或左边的表达式,5>3&&2显然真值为1最终结果为 1||0 当然结果为12) 有 || 将表达式分成两部分 左边的是 5>3&&2 显然其真值为1 因此 1 || 任意 真值都为1 不用算后面的了。真值为1

你这个看运算符的优先级以及短路运算。结果是 1

> 的优先级 高于 && , &&高于 ||

优先级 运算符 名称或含义 使用形式 结合方向 说明
1 [] 数组下标 数组名[常量表达式] 左到右
() 圆括号 (表达式)/函数名(形参表)
. 成员选择(对象) 对象.成员名
-> 成员选择(指针) 对象指针->成员名
2 - 负号运算符 -表达式 右到左 单目运算符
(类型) 强制类型转换 (数据类型)表达式
++ 自增运算符 ++变量名/变量名++ 单目运算符
-- 自减运算符 --变量名/变量名-- 单目运算符
* 取值运算符 *指针变量 单目运算符
& 取地址运算符 &变量名 单目运算符
! 逻辑非运算符 !表达式 单目运算符
~ 按位取反运算符 ~表达式 单目运算符
sizeof 长度运算符 sizeof(表达式)
3 / 除 表达式/表达式 左到右 双目运算符
* 乘 表达式*表达式 双目运算符
% 余数(取模) 整型表达式/整型表达式 双目运算符
4 + 加 表达式+表达式 左到右 双目运算符
- 减 表达式-表达式 双目运算符
5 << 左移 变量<<表达式 左到右 双目运算符
>> 右移 变量>>表达式 双目运算符
6 > 大于 表达式>表达式 左到右 双目运算符
>= 大于等于 表达式>=表达式 双目运算符
< 小于 表达式<表达式 双目运算符
<= 小于等于 表达式<=表达式 双目运算符
7 == 等于 表达式==表达式 左到右 双目运算符
!= 不等于 表达式!= 表达式 双目运算符
8 & 按位与 表达式&表达式 左到右 双目运算符
9 ^ 按位异或 表达式^表达式 左到右 双目运算符
10 | 按位或 表达式|表达式 左到右 双目运算符
11 && 逻辑与 表达式&&表达式 左到右 双目运算符
12 || 逻辑或 表达式||表达式 左到右 双目运算符
13 ?: 条件运算符 表达式1? 表达式2: 表达式3 右到左 三目运算符
14 = 赋值运算符 变量=表达式 右到左
/= 除后赋值 变量/=表达式
*= 乘后赋值 变量*=表达式
%= 取模后赋值 变量%=表达式
+= 加后赋值 变量+=表达式
-= 减后赋值 变量-=表达式
<<= 左移后赋值 变量<<=表达式
>>= 右移后赋值 变量>>=表达式
&= 按位与后赋值 变量&=表达式
^= 按位异或后赋值 变量^=表达式
|= 按位或后赋值 变量|=表达式
15 , 逗号运算符 表达式,表达式,… 左到右 从左向右顺序运算

正常思路:由于逻辑运算符优先级别低于比较运算符同时这两种都低于算术运算符,因此先考虑后半部分,4-!0真值为1,而8&lt;1的真值为0.再考虑或左边的表达式,5&gt;3&&2显然真值为1最终结果为1||0当然结果为12)有||将表达式分成两部分左边的是5&gt;3&&2显然其真值为1因此1||任意真值都为1不用算后面的了。真值为1



表达式自左至右扫描求解。首先处理“5>3”(因为关系运算符优先于逻辑运算符&&)。在关系运算符>两侧的5和3作为数值参加关系运算,“5>3”的值为1(代表真)。再进行“1&&8<4!0”的运算,8的左侧为&&,右侧为“<”运算符,根据优先规则,应该先进行“<”运算,即“8<4-!0”的运算。现在4的左侧为“<”,右侧为“-”运算符,得到结果为1。然后进行“4-1”的运算,得到结果为3,再进行“8<3”的运算,得0,最后进行“1&&0”的运算,结果为0。

首先要看看 运算符优先级;看看就行了,别打算一下子全记住,那玩意实在难记,要在以后的应用和做题中记忆。
其次,有一个常考点:|| 和 && 的短路现象。
1.A||B,若A为1,则不再计算B;返回1
2.A&&B ,若A为0,则不再计算B;返回0

在C语言中,表达式5>3&&2||8<4-!0的值为()。
答:1)正常思路:由于逻辑运算符优先级别低于比较运算符同时这两种都低于算术运算符,因此先考虑后半部分,4-!0 真值为1, 而8<1的真值为0.再考虑或左边的表达式,5>3&&2显然真值为1最终结果为 1||0 当然结果为12) 有 || 将表达式分成两部分 左边的是 5>3&&2 显然其真值为1 因此 1 || ...

C语言中:表达式 !!5的值是
答:1对。!5=0,而!0=1,所以结果为1。!在以中叫“取非”运算符,属于逻辑算符,后面只有两种状态,“真”和“假”。“真”被!一下就成了“假”,而“假”被!一下就成了“真”。C又规定非0为“真”,0为“假”。那么!!5=!(!5)=!0=1。

C语言表达式5>3<7>8的值是?
答:printf("5>3<7>8: %d \n",5>3<7>8);

在c语言中,表达式5/3的结果是什么?
答:5和3如果都是整形变量的话,那么结果就是1,因为‘/’是得到的结果是商。其实在写程序时,无论是%d还是%f,5/3都是等于1,无非是%f的话是1.0000。编译环境为Dev-C++ TDM-GCC 4.9.2 64-bit。这个结果其实非常合理,C语言中,/是除法运算没错,但是5/3是两个整数相除,得到的结果也是一个整...

c语言中5!什么意思
答:在C语言中,“!”是逻辑非的运算符。“!5”是逻辑运算表达式。它是对后面的逻辑值取“反”运算。如:后面是真,则进行非运算后的值是假。在C语言中,任何非0数字都解释为逻辑真,所以,数字5的逻辑值是真。这样,“!5”的运算就是“非真”,结果当然就是“假”了。在C语言中,规定用“1...

c语言表达式5>2>7>8的值是什么
答:首先5>2为真,返回值1(1为真,0为假);然后就是1>7为假,返回0;最后0>8为假,返回0。最后结果为0。或:从左至右:5>2 =1 1>7 =0 0>8 =0

为什么c语言表达式中 5+1/2 等于5
答:5+1/2在C语言中确实等于5。原因如下:/是C语言中算术运算符中的除号;该符号同时具有整数除和实数除的功能,当两个运算对象都是整数就做整数除,有一个运算对象是浮点数时就执行实数除。所谓整数除就是舍弃余数,只留下商;因此5/2的结果是2,而5.0/2的结果是2.5。显然1/2是整数除,商位0...

在c语言表达式中 5+2/3 等于多少? 谢谢!
答:5+1/2 1/2优先级高先执行,执行后因为1和2被系统默认整形,隐式转换0.666...->0 5+0=5

c语言表达式中,写出三个n能被5整除的表达式
答:5 整除。3. `!(n % 5)`这个表达式使用取模运算符 `%` 对 n 进行取模运算,然后将结果取反。由于 C 语言中,0 表示 false,非 0 的值表示 true,因此在这个表达式中,如果 n 能被 5 整除,则取模运算的结果为 0,取反后为 true,否则取模运算的结果非 0,取反后为 false。

在C语言程序中,表达式5%2的结果是什么
答:在c语言中是求余计算,也就是求余数。因为5÷2=2...1,所以,5%2=1 同理,因为8÷2=4...0,所以,8%2=0

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网