若执行以下程序段,int a=1,b=2,m=2,n=2;(m=a>b)&&++n;则n的值是为什么请详细解释以下谢谢~

若执行以下程序段,int a=1,b=2,m=2,n=2;(m=a>b)&&++n;则n的值是为什么请详细解释以下谢谢~,第1张

当然应该得2了

前面不用去管,n初始值为2,执行(m=a>b)&&++n;是有说法的,首先a>b的结果是false,m的内容是0,括号中的运算结果是false,而紧跟的是逻辑与,前面已经是false了,那么不管后面是什么结果都是false,所以后面的内容实际是不运行的,所以n的值没有变,仍然是2;

如果改为(m=a<b)&&++n; 那结果就不一样了,括号内的值为true,逻辑与的结果要看后面的值才能确定,所以后面部分一定要运行,这样n的值就变为3了;逻辑运算结果是true。

A。因为scanf第一个参数是%d,所以开始扫描输入中的数字,并且停在第一个不是数字的字符上。第二个参数是%c,所以扫描一个字符。在答案A里,这个字符是a;答案B里是空格;答案C里是逗号;答案D里也是空格。所以只有A是正确的

b都没赋值,哪里能算出来结果?

另外按照运算符优先级,d/b%a这句话就是从左到右依次执行,先算除法,再取余数。

d%c+b/a5+5这句话就是算乘除法,再算取余,最后把三项相加。

以上所有运算均为整数运算,如果除法中涉及小数,会被截断成int数,即丢失小数部分、取整数部分再进行运算。

21B

22D

23C

24A

25D

26B

27D

28B

29D

30main()函数可以有形参,由于C语言的灵活性高,个数和形参名都可以由用户指定,但是一般情况下只有最多三个形参,第一个用于统计命令行传入的参数的个数,第二个用于传入命令行参数,第三个用于传入系统环境变量和用户变量。

以上就是关于若执行以下程序段,int a=1,b=2,m=2,n=2;(m=a>b)&&++n;则n的值是为什么请详细解释以下谢谢~全部的内容,包括:若执行以下程序段,int a=1,b=2,m=2,n=2;(m=a>b)&&++n;则n的值是为什么请详细解释以下谢谢~、)有以下程序 #include <stdio.h> main() { int a1,a2; char c1,c2; scanf("%d%c%d%c",&a1,&c1,&a2,、设有以下程序段,根据要求回答相应的问题。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9297662.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存