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)赋给整型变量或字符型变量。

中,等于是“==”,不等于是“!=”。

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

参考资料来源:

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

相关了解……

你可能感兴趣的内容

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