C语言上的问题 !(a+b)+c-1&&b+c/2的值 a=3,b=4,c=5

如题所述

根据从左到右计算顺序,结合运算符优先级,根据定义

a = 3, b = 4, c = 5,假定a,b,c 为 int。真值为1,假值为0。

计算步骤如下:

1、计算 a + b,结果为 a + b = 7

2、计算 !( a + b) 结果为 0,也可以认为是false(假)。

3、计算 c/2,假定c为int时,结果为 2(取整),为float或者double时为2.5,但不影响最终结果,因为都是真值(非零值)。

4、计算 0 + c,结果为 5

5、计算 5 -1,结果为 4。

6、计算 b + 2 或者 b + 2.5,结果为 6 或者 6.5。

7、计算 4 && 6 后者 4 && 6.5,因为两边都为非零值,所以结果为 1,或者true。

这里主要是一个运算符优先级的问题,在本表达多中。

小括号的优先级最高,所以最先计算括号内的值。

其次是逻辑非,然后是除法,然后是 加减法,最终是 逻辑与。

扩展资料

语言进行研究分析,总结出其主要特点如下:

(1)简洁的语言

C语言包含的各种控制语句仅有9种,关键字也只有32 个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。

实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。 

(2)具有结构化的控制语句

C语言是一种结构化的语言,提供的控制语句具有结构化特征,如for语句、if⋯else语句和switch语句等。可以用于实现函数的逻辑控制,方便面向过程的程序设计。 

(3)丰富的数据类型

C语言包含的数据类型广泛,不仅包含有传统的字符型、整型、浮点型、数组类型等数据类型,还具有其他编程语言所不具备的数据类型,其中以指针类型数据使用最为灵活,可以通过编程对各种数据结构进行计算。

(4)丰富的运算符

C语言包含34个运算符,它将赋值、括号等均是作运算符来操作,使C程序的表达式类型和运算符类型均非常丰富。 

(5)可对物理地址进行直接操作

C语言允许对硬件内存地址进行直接读写,以此可以实现汇编语言的主要功能,并可直接操作硬件。C语言不但具备高级语言所具有的良好特性,又包含了许多低级语言的优势,故在系统软件编程领域有着广泛的应用。

温馨提示:内容为网友见解,仅供参考
第1个回答  2020-11-26

根据从左到右计算顺序,结合运算符优先,根据定义

a = 3, b = 4, c = 5,假定a,b,c 为 int。真值为1,假值为0。

例如:

任何值不为0的对象只要可以转换成bool值就会被转换为true。

这里7转换成bool值肯定就是true了。

!(逻辑非运算符)是反转得到的结果。

如果得到的是true(真)使用逻辑非就会反转成false(假)。

扩展资料:

逻辑运算符将关系表达式或逻辑量连接起来的有意义的式子称为逻辑表达式。逻辑表达式的值是一个逻辑值,即“true”或“false”。C语言编译系统在给出逻辑运算结果时,以数字1表示“真”,以数字0表示“假”,但在判断一个量是否为“真”时,以0表示“假”,以非0表示“真”。

可以将逻辑表达式的运算结果(0或1)赋给整型变量或字符型变量。

c语言中,等于是“==”,不等于是“!=”。

Pascal语言中,等于是“=”,不等于是“<>"

参考资料来源:百度百科-逻辑表达式

本回答被网友采纳
第2个回答  2019-11-06
结果只有真假,也就是0或1。运算过程中0就是假,非0是真。楼主所说的a=3,b=7,a,b都不等0
,所以a,b都为真,那么a+b就等于1,后面楼主可以自己推。还有不懂的可以继续问。

C语言上的问题 !(a+b)+c-1&&b+c\/2的值 a=3,b=4,c=5
1、计算 a + b,结果为 a + b = 7 2、计算 !( a + b) 结果为 0,也可以认为是false(假)。3、计算 c\/2,假定c为int时,结果为 2(取整),为float或者double时为2.5,但不影响最终结果,因为都是真值(非零值)。4、计算 0 + c,结果为 5 5、计算 5 -1,结果为 4。6、计算...

C语言上的问题 !(a+b)+c-1&&b+c\/2的值 a=3,b=4,c=5
a=3,b=4,c=5 a+b=7 !7=0 c-1=4 为真 b+c\/2 不为0 所以也是真 真&&真 值为真 即=1

C语言上的问题 !(a+b)+c-1&&b+c\/2的值 a=3,b=4,c=5
整个表达式的值为真(即 1)!(a+b)=!7=0 !(a+b)+c-1=0+5-1=4 b+c\/2=4+2=6 原式=4&&6=1 \/\/两个非0的值,即两个true,相与的值,仍为true,即1

C语言 设a=3,b=4,c=5,则逻辑表达式“!(a+b)*c-1&&b+c%2”的值是?
&&两边的值都为非0,整个表达式的值自然就是1(真)了。表达式中的&&,是该表达式中优先级是最低的,楼上楼下的门外汉们难道就看不穿这点玄机么……智商也太低了,很无语。

设a=3,b=4,c=5,!(a+b)+c-1&&b+c\/2的值为?
解:"!(a+b)*c-1&&b+c%2 (a+b)=7 (a+b)*c=35 !(a+b)*c=0 !(a+b)*c-1=-1为真 b+c%2结果为真 真&&真=1。希望对你有所帮助 还望采纳~~

c语言题目?
已知a=3,b=4,c=5。则逻辑表达式 a+b>c&&b==c的值为 7>5&&4==5,即1&&0,值为0 !(a>b)&&c||1的值为 !(7>5)&&5||1,因为最后有||1,所以,值为1 !(a+b)+c-1&&b+c\/2的值为 !7+5-1&&4+5\/2,即1 && 1,值为1 1 || (a > b) &&c的值为 (1)...

int a=3,b=4,c=5;执行表达示,a++>&&c--&&++c后,a,b,c的值
(1)顺序结构 顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。 例如:a = 3,b = 5,现交换a,b的值,这个问题就好像交换两个杯子水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为:c = a; a = b; b = c; 执行结果是a...

...各逻辑表达式的值。设a=3,b=4,c=5。 (1) a+b>c && b==
1) 0 2) 1 3) 1 4) 没有x和y的定义,无法计算。5) 1

...各逻辑表达式的值。设a=3,b=4,c=5。 (1) a+b>c && b==
1,值是0 a+b=7 > c 值是真 为1 b==c 值是假 为0 两者相与 为0 下面同理

...逻辑表达式的值。a=3,b=4,c=5。 1. a+b>c&&b==c 2.
(3)(a>b)为假,则 !(a>b)为真,又c不为0,为真,因而!(a>b)&&c=1,为真;则!(a>b)&&c||1=1。逻辑运算 逻辑运算,又称布尔运算。布尔用数学方法研究逻辑问题,成功地建立了逻辑演算。他用等式表示判断,把推理看作等式的变换。这种变换的有效性不依赖人们对符号的解释,只依赖于...

相似回答