int a=3,b=2,c=1; if(a>b>c) a=b; else a=c; 最后a的值是多少? 为什么 分析一下。

作者&投稿:游利 (若有异议请与网页底部的电邮联系)
C语言中int a=3,b=2,c=1执行if(a>b>c)a=b;else a=c 后a=1~

if(a>b>c)a=b;else a=c
a>b>c这个算法是从左到右的,也就是先算a>b成立,为1,然后再算1>c,此时c=1,所以if条件不成立,执行else语句。也就是a=c=1.即a=1.

1.先比较a>b,结果为真,返回1,但1小于c,所以a=1

若程序没有问题,答案应该是1;
a>b>c 按从左到右的顺序,a>b 为真即为1,1>c为假,所以if不成立,else成立。a=c=1;

要想if成立,需修改为:if(a>b && b>c)

a等于1,因为a>b>c其实是(a>b)>c,也就是1>1,所以表达式为假

a=1
主要是考察if(a>b>c)
a>b的真值是1,1=c,所以if中的不成立,所以a=c。


南城县18528492141: 若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是 -
夕段久强:[选项] A. a=(b=4)=3; B. a=b=c+1;C. a=(b=4)+c; D. a=1+(b=c=4);

南城县18528492141: 若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是 -
夕段久强: 错误的是A 赋值只能赋给变量,不能赋给表达式

南城县18528492141: 若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是 -
夕段久强:[选项] A. a=(b=4)=3; B. a=b=c+1; C. a=(b=4)+c; D. a=1+(b=c=4);

南城县18528492141: 若已定义 int a=3,b=2,c=1; 则语句 ++a||++b&&++c; 运行后b的值为 -
夕段久强: &&的结合性高,而||只要求其中一个为真即可,++a||++b&&++c等价于++a||(++b&&++c),因此只判断前++a与(++b&&++c)两项,在本题++a!=0为真,因此b不会再执行,所以b=2

南城县18528492141: 若已定义 int a=3,b=2,c=1; 则语句 ++a||++b&&++c; 运行后b的值为 -
夕段久强:[答案] &&的结合性高,而||只要求其中一个为真即可,++a||++b&&++c等价于++a||(++b&&++c),因此只判断前++a与(++b&&++c)两项,在本题++a!=0为真,因此b不会再执行,所以b=2

南城县18528492141: C语言赋值表达式问题:若定义有语句:int a=3, b=2, c=1; 以下选项 -
夕段久强: 测试代码: #include "stdio.h" #include "conio.h"main() {int a=3, b=2, c=1;a=(b=4)=3;printf("a=%d,b=%d,c=%d\n",a,b,c);a=(b=4)+c;printf("a=%d,b=%d,c=%d\n",a,b,c);a=b=c+1;printf("a=%d,b=%d,c=%d\n",a,b,c);1+(b=c=4);...

南城县18528492141: 若已定义int a=3,b=2,c=1;则语句++a||++b&&++c;运行后b的值为() -
夕段久强: 答案:D 在表达式中,运算步骤为(如果你不清楚,请看看运算符的优先顺序):1. ++a 则a=42. ++b 则b=33. ++c 则c=24. && 则为真5. || 则为直表达式最后为真.在运算中,b只递增了一次,所以运行后b的值为3,选D

南城县18528492141: c语言中,inta=3,b=2,c=1,为什么赋值语句a=b=c+1错误了? -
夕段久强: 赋值语句没有错,错的应该是变量的说明语句:inta=3应该在变量与类型说明符间加空格以示区别:int a=3,b=2,c=1;

南城县18528492141: main() { int a=3,b=2,c=1 -
夕段久强: 程序运行的结果是: 2, 5, 1,2, 18, -2

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