int a=1,b=2;a++;b++;printf("%d%d",a++,++b);分别写出运行之后a,b的值,求各位帮小弟详解

如题所述

第1个回答  2011-10-21
a 2
b 4
解释:
当执行完 int a=1,b=2;a++;b++; 之后,a = 2,b=3
当执行 printf("%d%d",a++,++b); 由于 a++ 是先赋值再自加,因此a++ 为2,执行之后 a等于3 ++b 是先自加,再赋值,所以 ++b 为4,b 为 4
第2个回答  2011-10-21
为了方便解释,我修改了b++;应该看得懂吧

//a++:表示先使用a后再把a+1;
//++a:表示先把a+1后再使用a;
int main()
{

int a=1,b=2;
printf("%d",a++); //先用后加 a=1
printf("%d",a); //加1 后 a=2
printf("%d",++b); //先加后用 b=2
printf("%d",b); //已经加1了 b=2
printf("%d%d",a++,++b); //先用后加 a=2 先加后用 b=4
system("pause");
}本回答被提问者采纳
第3个回答  2011-10-21
回答
答案是2 4
#include <stdio.h>
int main()
{
int a=1,b=2;
a++; //语句执行前是1,执行后是2;
b++; //语句执行前是2,执行后是3;
printf("%d%d",a++,++b); //打印时取得a是2,b是4;词句执行后a是3,b是4
return 0;
}

int a=1,b=2;a++;b++;printf("%d%d",a++,++b);分别写出运行之后a,b的...
解释:当执行完 int a=1,b=2;a++;b++; 之后,a = 2,b=3 当执行 printf("%d%d",a++,++b); 由于 a++ 是先赋值再自加,因此a++ 为2,执行之后 a等于3 ++b 是先自加,再赋值,所以 ++b 为4,b 为 4

...a++,++b,c++);分别写出运行之后a,b的值,求各位帮小弟详解
a++;然后 a=2 输出时,a++,此时a=2输出,然后a再加1 c=b++;然后b=3 输出时,++b,此时b先再加1,变为b=4,然后b=4输出

...{int a=1,b=2; a++;b++; printf("%d%d\\n",a,b); } 运行结果
因为自增在后,先运算再自增即输出a=1,b=2 有图有真相,能采纳不?

int a=1,b=2 . a>b?a++:b++ 最后结果a和b的值
a=1 b=3 "? :"意思就是说满足">"就运行冒号前的内容,否则就运行冒号后面的句子。

设int a=1,b=2;则执行a=b+2,a++,a+b;后a和b的值分别是多少
楼主你好。a和b的值分别为5和2。其实没什么特别的,就是先执行a=b+2让a变成4,然后执行a++让a变成5,最后执行a+b不会影响任何变量,所以最终a为5,b为2。测试代码:include <stdio.h> void main(){ int a=1,b=2;a=b+2,a++,a+b;printf("a=%d b=%d\\n",a,b);} 运行结果:...

int a=1,b=2,c=3; 执行表达式(a=b+c)||(++b)后a,b,c的值分别是...
这是实际运行后的结果 .|| 逻辑或运算符,形式:(TRUE)||(TRUE),只要有一个真,就返回,程序的执行过程是:a = b + c 这句已经是真(TRUE)了,所以,++b 就不执行了,b 的值还是 2

若有定义int a=1,b=2;,执行语句a++>=b&&b++; 之后,变量a和b的值分别...
因为编译器在判断a++>=b 是逻辑假后就不会再计算后面的b++了 因为逻辑假与逻辑真或逻辑假相与都是逻辑假所以就不会计算了。

设int a=1,b=2;则执行a=b+2,a++,a+b
int a=1,b=2 ;a=1,b=2 a=b+2 ;a=2+2=4 a++ ;先引用a的值,再把a加1 a+b ;如果前面的是“;”则a+b=a+++b=4+1+2=7 如果前边的不是“;”则a+b=4+2=7,在来a++。a最后的值是5

运行结果: main(){int a=1,b=2,c; c=(a>b)?b++:(++a>4)?b++:a++...
c=(a>b)?b++:(++a>4)?b++:a++;这一句的意思是:式子(++a>4)?b++:a++先运算即;++a与4比较,++a>4成立,则式子值为b++,反之为a++;因为++a=2<4,则不成立,式子值为a++即2;然后c=(a>b)?b++:2;运算,a此时值为2,b值为3,所以式子不成立,即c值为2;所以输出为3...

int a=1,b=2; 那么表达式(a++)+(++b) 的值是:
a++是先使用a的值,然后再改变a的值。++b是先改变b的值加1,然后再使用b的值。结果为 1+3 =4

相似回答