c语言中int a 1,b 2,c c 1.0 b a输出结果为什么

2021-01-01 19:29:02 字数 4685 阅读 1432

1楼:匿名用户

结果是c的值是0

因为1.0 / b 都会转换位浮点型,结果是0.5, 0.5 * a 也是会把a转为浮点型,结果是0.5

而c是整形,会对右边运算的结果取整,所结果就是0了。

假如 int a=1,b=2,c=3,表达式a=b==c的值是1还是0,为什么?

2楼:岔路程序缘

在c语言中,1代表逻辑真,0代表逻辑假,当然任何非0数字系统都解释为逻辑真。

本例中,2==3,明显不成立,是逻辑假,a的值被赋为0。

c语言中。int a=1,b=0,c=1; 执行语句 !b||++a&&++c 后,a,b,c

3楼:

或运算,而且是左结合,!b为真,整个表达式就为真了,不再继续运算,也就是++a和++c没有运算,表达式的结果就出来了。

4楼:匿名用户

|后首先根据运算符优先级和结合性。((!

b))||((++a)&&(++c))

然后先算!b,此时(!b)=1,为true,于是不需要专算||后的内容了。属

因为:true||任意表达式=true。

注意,运算符优先级不代表计算优先级。

如果你把b=1 结果就是212

5楼:卿枫凌

对于!b||++a&&++c;按照规bai

定, 要先计du算 && (&&的优先级zhi比||高)也就是需要计算dao出 ++b和c++;

但是按专照优化, 只要计算出 a>0 就可属以了,不需要计算出 ++b和c++,“||”在这里起到了短路的功能(短路就是,当第一条表达式能决定整条表达式的结果,那么后面的语句都不执行!),这也叫做布尔法则,给你推荐一本书叫做“c语言解惑”。望采纳

以下程序的输出结果是( )。 int a=1,b=2,c=3; printf(“%d”,a=b==c); a.0 b. 1 c. 2 d. 3

6楼:匿名用户

==优先级高于=

于是先判断b==c 2==3不成立. 值为0然后赋值a=0

输出a值为0.选a.

7楼:匿名用户

a;b==c 等于0;

a=0;

8楼:匿名用户

a ==的优先级高于=

c语言int a=1,b=0;为什么a&&b为假? 20

9楼:追梦的风

&&是并且的意思,要两个都为真结果才为真,所以你这个结果为假!

10楼:忘了所有没有痛

因为&&符号是两个操作数都为1的时候才是真,你这个b是0,所以你的结果才是假,想为真的话把b的值改为1。

下面程序的输出结果为: int a=2,b= -1,c=2; if(a

11楼:匿名用户

因为else子句是与自己最接近的if语句匹配的,所以你的程序即为:

int a=2,b= -1,c=2;

if(aif(b<0)

c=0;

else

c+=1;

}cout<

因为a=2,b= -1;(a

c语言 若有语句int a=1,b=2,c=3;则以下值为0的表达式是

12楼:温尔蓉悉霈

因为a++的值为0,a

的值为1,所以c=0;因为++在后面,所有a++表达式的值没有变,只是改变了a的值!

13楼:匿名用户

选d,c&&a为真,值为1,!(a+b)为假,值为0,“==”是恒等于,当然0是不等于1的,所以表达式假,其值为0

14楼:匿名用户

答案是d

第一个是 ascii 逻辑与 只有‘a’ 和‘b’中最少有个为 0 时才为0

15楼:匿名用户

直接编写一段**,上机跑一下不就可以了吗,如果是初学者还可以加深一下记忆;如果是入门很久了,还问这样的问题,实在是不应该啊!!

16楼:匿名用户

答案是d,因为a,b,c的值都是1,故选d!

c语言题目 1.若 int a=6,b=0,c=3,则表达式a&&b//b-c的结果是() 2.表达式“b”+3表示的字符是()

17楼:匿名用户

1、计算后可得该式等价于(6&&0)||-3,由于计算机中0为假,非0为真,所以整个表达式的值为真

2、表达式'b'+3表示的字符是'e'

c语言中,a=b=c,a=b==c,a==(b=c),a==(b==c)有什么区别?

18楼:美好一瞬间

“=”是赋值符,

把c的值赋给b赋给a,最后a、b、c的值都相等,“==”是判断符,结果为bool型。

1、c语言其语言同其语言般区 ,赋值操作符 与 等于 运算符c语言区。

2、= 赋值 == 等于运算 说 a=b=c, 表达式运行a值赋给b、c运行完abc值相等。

3、 a=b==c,复合表达式先a值赋给b与c比较相等则返0,否则返非零值。

4、a==(b=c),复合表达式先执行括号内容(即b值赋给c)比较a、c相等则返0否则返非零值。

5、a==(b==c),复合表达式先比较b、c值相等则返0否则返非零值比较a与(b==c)返值,看c区 = 跟 ==。

6、 ps:lz程序风格且习惯引用stdio.h希望改附我改写程序: #includeint main() 运行结:3,0,0,0

19楼:占同书母癸

c语言和其他语言不同,在其他语言中,一般不区分

赋值操作符与等于

运算符,但是c语言很区分。

=是赋值

==是等于运算

也就是说,

a=b=c,

是一个表达式,运行到这里时,将a的值赋给b、c,运行完后abc的值相等;

a=b==c,是一个复合表达式,先将a的值赋给b,然后与c比较,如果相等则返回0,否则返回一个非零值;

a==(b=c),是一个复合表达式,先执行括号中的内容(即将b的值赋给c),然后比较a、c,如果相等则返回0,否则返回一个非零值;

a==(b==c),是一个复合表达式,先比较b、c的值,如果相等则返回0,否则返回一个非零值,然后比较a与(b==c)的返回值(注意这里不是再比较a与b或c,以前就错在这里过,希望lz注意)。

可以看到c是区分=跟

==的,虽然对新手很麻烦、容易错,但是一旦熟练之后会觉得很灵活,能把赋值语句放到任何你喜欢的地方。

ps:lz的程序风格不好,而且还不习惯引用stdio.h,希望改正。附我改写的程序:

#include

intmain()

运行结果:3,0,0,0

20楼:桓培胜阴酉

c语言中一个等于号表示,将右边的值赋给左边,两个等于号在一起才表示真正的等于,是关系运算符。运算顺序都是从右到左。

上面的个程序运行的结果为3,

0,0,0

21楼:令狐玉枝府培

a=b=c,是赋值语句,从右到左,a=3,b=3a=b==c

是逻辑语句,相当于(a=b)==c,先将b值赋值给a,然后和c比较是否相等,这句返回为0

a==(b=c),同上句.

a==(b==c),先计算括号内的b==c返回为0,然后在a==0,返回0。

=和==是2中不同的表达

22楼:能淑珍类倩

a=b=c

b=3;a=3;

a=b==c

b==c结果为1,再a=1,输出为3;

a==(b=c)

等价于a==3,输出为1;

a==(b==c)

b==c结果为1,a==1结果为0,输出为0;

最后的输出是

3,3,1,0

23楼:示奕琛问雀

=是赋值,==是关系等,=的运算级别低,==的运算级别高,=从右向左结合,==从左向右结合

24楼:匿名用户

c语言中,a=b=c,a=b==c,a==(b=c),a==(b==c)有什么区别:

一个是赋值,一个是逻辑,运算顺序不同,有一个优先级的不同,还有就是结合性不同,一个是向左,一个是向右。

c语言中,a=b=c,a=b==c,a==(b=c),a==(b==c)解答方法:

第一步是最后一个a==(b==c),b是2,c是3,明显不等,所以b==c的值是0,然后a是1,和0又不等,所以整个式子值为0;第二步为倒数第二个,a==(b=c),先将c赋给b,此时b和c都为3,再判断a与b是否相等,a为1,不等,整个式子为0;第三步:a=b==c,经过上一步,此时b和c都为3,所以判断b==c为真,值为1,然后将1赋给a,输出a,就是1;第四步:a=b=c,自右向左,先将c值赋给b,再将b值赋给a,输出a,即为3,结果3,1,0,0。

若a,b,c均为整数,且a-b 3+c-a 2 1,求a-cc

1楼 因为 a b 3和 c a 2都为大于等于0的数 且只有0 1 1所以 a b 0 c a 1 a c c b b a 1 c b 0 1 c b 1 c a 1 1 2 或 a b 1 c a 0 a c c b b a 0 c b 1 a b 1 1 1 2 若a,b,c均为整数,且 a ...

C语言a b和a b的区别,C语言,++a+b和++b+a有什么区别

1楼 匿名用户 自增对象不同 a b 最后自增的是b a b 最后自增的a b c语言, a b和 b a有什么区别 2楼 珑月三 a b是先a加1,然后再加b b a是先b 1,然后再加a 3楼 亱風 a b是a先自加然后加b b a是b自加,,然后加a 结果一样,但是a 和b的值不相同 c语言b...

如果int"a 1,b 2,c 3,d 4,则条件表达式“a

1楼 德形兼备 当a b 成立 则结果就是 a 如果 a b 不成立 则结果要判断 c 2 c 所以这题 结果是a 1 2楼 匿名用户 条件运算符的结合性是从右到左结合的,先算 c d?c d 返回 c 3 再算 a b?a c 返回值为1。 3楼 何慧哈 先判断a b为真取a值,得等式a d c ...