如下程序的结果 (要求(java)画图来解释) int a = 3, b; b = (a++)+(++a)+(a++)*2+a+(++a);

如下程序的结果 (要求(java)画图来解释) int a = 3, b; b = (a++)+(++a)+(a++)*2+a+(++a);,第1张

如下程序结果 (要求(java)画图来解释) int a = 3, b; b = (a++)+(++a)+(a++)2+a+(++a); 只要你记住++在前边,就是先把变量值+1之后再计算,把++放后边,就是先用变量当前的值计算,然后在把该变量值+1,这样你就应该可以很容易的计算出这个答案了

b = (a++) +(++a)+(a++)2+a+(++a)对应的是

b = (3++) 此时先把a的值赋给b,然后a+1,所以a=4,b=3,

b= 3+(++4) 此时a先计算自己到5,所以a=5,b=8

b=8+(5++)2 此时先计算a2=10+8,然后a+1,所以 a=6,b=18

b=18+6 ,此时a=b,b=24

b=24+(++6) 此时先把a+1,所以 a=7,b=31

求程序的输出结果 main() {int a,b; for(a=1,b=1;a<=10;a++) { if(b%3==1) {b+=3; continue;} b-=5;}}

最终 b=31

循环开始,a 初值1,b 初值 1。

循环控制变量是 a,共循环 10 次。

第一次循环 b=1; b%3 得 1, if(b%3==1) 条件成立,做 b+=3, b 变 4 ,continue 则跳到下次循环开始,不执行 b-=5;

第二次循环 b=4; b%3 得 1,做 b+=3, b 变 7, continue 则跳到下次循环开始,

由于每次循环 b%3 == 1 条件都成立,所以 b 每次加3

循环 10 次, b 加3 共 10 次。

最终 b 为 1 + 3 10 得 31

以下程序的结果是( )。 int a=3,b=10; cout<<(a<<2|b>>1);

13

int a=1; a=(a++)+(a++)+(a++);结果a=10;为啥? 换为b=(a++)+(a++)+(a++);b=3;又为啥?

未定义行为

详细的可查看CSDN C/C++论坛置顶帖或百度“C/C++ 语言中的表达式求值 裘宗燕”词条

int a=5,b;b=a++的结果以及b=--a的值

int a=5,b;

b=a++;

此时

b=5;

a=6;

原因:

b=a++;

相当于:

b=a;

a++;

++在变量后

先用值,再自增

int a=5,b;

b=--a;

此时

b=4;

b=4;

原因:

b=--a;

相当于

--a;

b=a;

--在前,所以先知减,再用自减后的值。

你只需要记住一点,++或者--在变量的前面,那就先把这个变量自增或者自减1,再使用这个改变后的值。在变量后面,就先用变量原值,再自增或者自减

int a=10, b;b=(a++)+a(++);输出a, b的结果为什么

b=(a++)+a(++);

应该是

b=(a++)+(a++);把?

a ==12 b==20 ,

b=(a++)+(a++) 等价于 b=a+a; a++;a++;

懂了吧? a++是先运算后++ 如果 改成 b=(++a)+(++a); 结果 b==24,a==12

设var a=2,b=3; 则a++==b(a-1):b的结果是

a++==b(a-1):b

分解开为:

var result;var temp = a==b;a = a + 1;if(temp) { result = a - 1;}else{ result = b;}

所以,结果为3

结果是3

a++==b(a-1):b 的意思是如果(a++)==b 那么返回a-1 否则返回b

此时a++要等到语句执行完后才会增一,因此(a++)==b 不成立,返回的应该是b的值

int a,b,x,y; a=5;b=5; x=(a++)+(a++)+(a++); y=(++b)+(++b)+(++b),输出的x=15,y=22怎么解释啊?

a++ 叫后缀加加,后加加。在表达式里,先使用a的当前值5,

出了表达式,凡a要自增1的都要自增1。

所以 x=(a++)+(a++)+(a++);

分成:

x=a+a+a;

a=a+1;a=a+1;a=a+1;

得 x=15; 然后得 a=8;

========================

++b 是 前缀加加。在表达式里,b 要先增1,再使用。出了表达式,不再增1。

y=(++b)+(++b)+(++b);的计算要看编译器的处理方法

考虑编译优化,MS VC++ 60 优化选项 /O1 或 优化选项 /O2

处理成:

b=b+1;b=b+1;b=b+1; b变8

y=(++b)+(++b)+(++b) = b+b+b= 8+8+8 = 24

优化选项 /Oa 或 /Od (不优化)

b=b+1; b1=6;

b=b+1; b=b+1; b2=8;

y = b1+b2+b2 = 6+8+8 = 22;

结果不同。

所以要避免y=(++b)+(++b)+(++b);这种多义性的写法。

=============

windows自带的画图程序在电脑中的位置

C:\WINDOWS\system32\mspaintexe

开始--

程序

--

附件随便点个程序点鼠标右键,点属性--查找目标---是不是打开了“附件”的窗口。

其实附件的位置在

C:\Documents

and

Settings\All

Users\「开始」菜单\程序\附件

打开附件目录后--点击右键--新建--快捷方式--在d出的对话框里输入mspaint--下一步--输入“画图”--完成。

去老地方看看是不是出现了你熟悉的画图程序啊

如果你的system32目录里没有mspaintexe

这个程序,就需要下载一个画图程序。

这个是模仿Windows画图程序的下载地址:

>

以上就是关于如下程序的结果 (要求(java)画图来解释) int a = 3, b; b = (a++)+(++a)+(a++)*2+a+(++a);全部的内容,包括:如下程序的结果 (要求(java)画图来解释) int a = 3, b; b = (a++)+(++a)+(a++)*2+a+(++a);、我的画图软件被卸载了,怎么弄回来、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/zz/10168382.html

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

发表评论

登录后才能评论

评论列表(0条)

保存