语句x = (a = 5,b = ++a); 运行后,x、a、b的值依次为?我想知道a的值到底是5还是6?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/13 16:45:57
语句x = (a = 5,b = ++a); 运行后,x、a、b的值依次为?我想知道a的值到底是5还是6?

语句x = (a = 5,b = ++a); 运行后,x、a、b的值依次为?我想知道a的值到底是5还是6?
语句x = (a = 5,b = ++a); 运行后,x、a、b的值依次为?
我想知道a的值到底是5还是6?

语句x = (a = 5,b = ++a); 运行后,x、a、b的值依次为?我想知道a的值到底是5还是6?
结果都是6,整个表达式运算结果如下.
0.你首先要牢记,当一个变量被赋予一个新值的时候,旧值就没有了
1.a首先被赋予5这个值.
2.++在前面是先加后算,所以a先自增为6,这时候5就已经没有了.
3.a自增过后,b被赋予运算过后的a,也就是6了.
4.因为逗号表达式(括号中多个逗号的就是逗号表达式,一般最后计算)的值总是取括号中的最后一个,所以x取b的值,还是6.
不信可以自己写程序试试……
扩展一下,考虑下面这个表达式:
int x,a,b,c;
x = (a = 5, b=a++,c=++a,456,789);
//肯定先从括号中开始算起.
//a刚开始等于5
//b=a++,++运算在后,先算后加,先把a的5给b,然后把a加1,此时b为5,a为6
//c=++a,++运算在前,先加后算,因为上一个式子a已经是6了,所以a再加1,变成7,再给c,此时a为7,c也为7.
//最后才算逗号,x肯定是取后面一个的值,也就是789.
//所以最后x=789,a=7,b=5,c=7
因为不知道你是学C,还是C++的,这两个式子,具体编程输出方法我就不写了.

判断以下给出的输入语句、输出语句、赋值语句是否正确?为什么?1 输入语句INPUT a;b;c2 输入语句INPUT x=33 输出语句 PRINT A=44 输出语句 PRINT 20,3*25 赋值语句 3=B6 赋值语句 x+y=07 赋值语句 A=B=-28 判断a和b是否相等的if语句为什么是if (a!=b) x++ 语句x = (a = 5,b = ++a); 运行后,x、a、b的值依次为?我想知道a的值到底是5还是6? .执行语句“x=(a=3,b=a--)”后,x,a,b的值依次为 执行语句“x=(a=3,b=a--)后,x,a,b的值依次为多少? 若int a=2,b=3,x;则执行语句if (a 以下的选择中正确的赋值语句是:A a=1,b=2 B j++ C a=b=5; y=int(x) int a = 5,b = 7;执行语句:a += a++ || b++ 后,a=7,b =________. 设int a=0,b=5,c=2;选择可执行x++的语句是:A:if(a) x++ B:if(a=b) x++ C:if(a= 下面( )是错误的if语句(设int x,a,b;).A.if (a=b) x++; B.if (a= 下列给出的输入语句、输出语句和赋值语句中正确的是_①输出语句 INPUT a;②输出语句 INPUT x=3;③赋值语句 3=B;④赋值语句 A=B=2. 把赋值语句x:=a+b+c*d翻译成四元式序列 执行下列语句后的X值 int a=14,b=15,x;char c='A';x=((a&b)&&(c c语句 int a=5,b;b=a>3&&0,a++;执行后变量b的值为? 下列选项中,合法的C语言赋值语句为( ) A.a=7+b+c=a+5; B.a=7+b下列选项中,合法的C语言赋值语句为( ) A.a=7+b+c=a+5; B.a=7+b++=a+5; C.int x=1,y=x; D.a=7+b,c=a+5; 下面语句执行后,x的值是 int a=8,b=9,c=5,x=10; if(a++ 设有定义int a=3,b,c=5;将以下3条语句++a;b=a+c;++c;写成一条语句 下列语句序列执行后,x 的值是多少?int a=3,b=4,x=5;if ( ++a