面试题 偶尔间看到一个面试题:如下别打印 口算结果,分析一下,谁讲的好就得分 int a = 2; int s1 = a + 3 * a++; int s1 = (a++) + 3 * a;2个s1分别是多少 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 8和12int s1 = a + 3 * a++; 初始值a=2,s1=2+3*(2++); 第一次s1值得到之后 a进累加a++表示的是a=2先进行计算,计算完毕之后a加上1;也就是s1求完之后a的值就变为3;第二个s1=(3++)+3*3=12;该题应该考的是++这个运算符和各个运算符的优先级。不知道分析的对不对 s1=a+3*2->s1=3+6->s1=9(a=3)s2=a+3*3->s2=4+9->s2=13 int a = 2;int s1 = a + 3 * a++;int s1 = (a++) + 3 * a;2个s1分别是多少?首先我们来了解一下a++与++a的概念,a++也就是先运算再自加,++a就是先自加,在运算,那么接下来的题目就简单了!int s1 = a + 3 * a++; 初始值a=2,s1=2+3*(2++); 第一次s1值得到的表达式为s1=2+3*2,结果为8;再这步运算好后,a的值就变为3;那么第二个表达式int s1 = (a++) + 3 * a变为s1=(3++)+3*3=12; 第一个 是8, 也就是 s1 = 2 + 3 * 2; 如果换成 s1 = 3*(a++) + a 结果就是s1=3*2+3=9;主要有个先后顺序问题,就是a 和3 * (a++)的先后顺序。 第二个 11,是 先a = a + 1;因为是先取值,再自增,所以 s1 = 2 + 3 * 3=11; 之所以是3* 3是因为s1 = (a++) + 3 * a ; (a++)在前面。如果换成(a++)在后面s1 = 3 * a + (a++);结果就是 s1 = 3 * 2 + 2 = 8。如果换成 s1 = 3 * a + (++a);结果就是 s1 = 3 * 2 + 3 =9; 本人菜鸟,连个最基本的字符串转ASCII都写不出来,感觉这个面试官很脑残,脑残到家了,不知道分析的对不对 第一个 是8, 也就是 s1 = 2 + 3 * 2; 如果换成 s1 = 3*(a++) + a 结果就是s1=3*2+3=9;主要有个先后顺序问题,就是a 和3 * (a++)的先后顺序。 第二个 11,是 先a = a + 1;因为是先取值,再自增,所以 s1 = 2 + 3 * 3=11; 之所以是3* 3是因为s1 = (a++) + 3 * a ; (a++)在前面。如果换成(a++)在后面s1 = 3 * a + (a++);结果就是 s1 = 3 * 2 + 2 = 8。如果换成 s1 = 3 * a + (++a);结果就是 s1 = 3 * 2 + 3 =9;顶下 帮看看这个可以实现吗? java压缩成.zip格式问题 http上传附件和https上传附件 weblogic启动异常问题 如何生成序列号 关于使用length方法的小问题... 请帮忙解决struts问题!急! 如何实现不在特定目录下ANT?? 有谁研究过petstore?如果哪位有其结构或源码方面的心得,能不能共享,我想学习一下!谢谢!!! j2ee, ejb效率其差,究竟谁的原因? Java DB操作类的设计代码 求助基于java的GIS开发环境搭建
a++表示的是a=2先进行计算,计算完毕之后a加上1;也就是s1求完之后a的值就变为3;第二个s1=(3++)+3*3=12;
该题应该考的是++这个运算符和各个运算符的优先级。
不知道分析的对不对
int s1 = a + 3 * a++;
int s1 = (a++) + 3 * a;
2个s1分别是多少?
首先我们来了解一下a++与++a的概念,a++也就是先运算再自加,++a就是先自加,在运算,那么接下来的题目就简单了!
int s1 = a + 3 * a++; 初始值a=2,s1=2+3*(2++); 第一次s1值得到的表达式为s1=2+3*2,结果为8;再这步运算好后,a的值就变为3;那么第二个表达式int s1 = (a++) + 3 * a变为s1=(3++)+3*3=12;
第二个 11,是 先a = a + 1;因为是先取值,再自增,所以 s1 = 2 + 3 * 3=11; 之所以是3* 3是因为s1 = (a++) + 3 * a ; (a++)在前面。如果换成(a++)在后面s1 = 3 * a + (a++);结果就是 s1 = 3 * 2 + 2 = 8。
如果换成 s1 = 3 * a + (++a);结果就是 s1 = 3 * 2 + 3 =9;
本人菜鸟,连个最基本的字符串转ASCII都写不出来,感觉这个面试官很脑残,脑残到家了,不知道分析的对不对
第二个 11,是 先a = a + 1;因为是先取值,再自增,所以 s1 = 2 + 3 * 3=11; 之所以是3* 3是因为s1 = (a++) + 3 * a ; (a++)在前面。如果换成(a++)在后面s1 = 3 * a + (a++);结果就是 s1 = 3 * 2 + 2 = 8。
如果换成 s1 = 3 * a + (++a);结果就是 s1 = 3 * 2 + 3 =9;
顶下