社区
Java EE
帖子详情
面试题
HeiBoyYang
2011-09-17 06:20:36
偶尔间看到一个面试题:如下别打印 口算结果,分析一下,谁讲的好就得分
int a = 2;
int s1 = a + 3 * a++;
int s1 = (a++) + 3 * a;
2个s1分别是多少
...全文
194
9
打赏
收藏
面试题
偶尔间看到一个面试题:如下别打印 口算结果,分析一下,谁讲的好就得分 int a = 2; int s1 = a + 3 * a++; int s1 = (a++) + 3 * a; 2个s1分别是多少
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
guozhenyu1990
2011-09-17
打赏
举报
回复
第一个 是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;
顶下
HeiBoyYang
2011-09-17
打赏
举报
回复
[Quote=引用 5 楼 btzbtz 的回复:]
第一个 是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+……
[/Quote]
5楼 分析正确 其它看看5楼的
HeiBoyYang
2011-09-17
打赏
举报
回复
[Quote=引用 4 楼 wuhuipengwhp 的回复:]
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,结果……
[/Quote]
嗯,很正确,发错
HeiBoyYang
2011-09-17
打赏
举报
回复
[Quote=引用 4 楼 wuhuipengwhp 的回复:]
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,结果……
[/Quote]
嗯,很正确
btzbtz
2011-09-17
打赏
举报
回复
第一个 是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都写不出来,感觉这个面试官很脑残,脑残到家了,不知道分析的对不对
wuhuipengwhp
2011-09-17
打赏
举报
回复
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;
雨天
2011-09-17
打赏
举报
回复
第一个s1是2+3*2 应该是8,第二个是2+3*3应该是11
成一粒
2011-09-17
打赏
举报
回复
s1=a+3*2->s1=3+6->s1=9(a=3)
s2=a+3*3->s2=4+9->s2=13
ylovep
2011-09-17
打赏
举报
回复
8和12
int 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;
该题应该考的是++这个运算符和各个运算符的优先级。
不知道分析的对不对
运维开发
面试题
整理
Python的可变与不可变数据类型 可变数据类型:列表list和字典dict;不可变数据类型:整型int、浮点型float、字符串型string和元组tuple。 不可变数据类型分析 python中的不可变数据类型,不允许变量的值发生变化,如果改变了变量的值,相当于是新建了一个对象,而对于相同的值的对象,在内存中则只有一个对象,内部会有一个引用计数来记录有多少个变量引用这个对象;可变数据类型,允许变量的值发生变化,即如果对变量进行append、+=等这种操作后,只是改变了变量的值,而不会新建一个对象,
IT行业经典
面试题
,121套
面试题
IT行业经典
面试题
,121套
面试题
资源大小: 580.80KB资源类型:发布人: eyelife 发布日期: 2天前Tag: 名企,计算机 资源分: 10下载人数: 857 4.33/347人评分 12 3 4 5 评论 分享 收藏 举报 上传
最新前端
面试题
、高频
面试题
、
面试题
总结
Doctype 作用HTML5 新增的内容有哪些Html5 新增的语义化标签有哪些对 HTML 语义化标签的理解行内元素/块级元素有哪些视频/音频标签的使用说一下 HTML5 drag apiES6 新特性Let 与 var 与 const 的区别Js 基本数据类型有哪些字符串数组方法有哪些请简述普通函数和构造函数的区别Ajax 如何使用 一个完整的 AJAX 请求包括五个步骤:如何判断一个数据是 NaN闭包是什么?有什么特性?对页面会有什么影响Js 中常见的内存泄漏事件委托是什么?如何确定事件源(Even
Linux驱动开发
面试题
整合
Linux 驱动常见面试及答案 八个常见的Linux驱动
面试题
Linux驱动
面试题
总结 嵌入式校招
面试题
BSP开发工程师面试笔试题集 海康
面试题
面试题
,详细 BSP开发流程讲解
Promise
面试题
由于then方法是异步的,当片段一(代码中已标出)代码没有执行完,片段二是不会执行的,转而会执行片段三,由于执行片段三前已执行resolve,其实例对象状态已变为成功,因此执行片段三的then方法中第一个回调,输出8,接着回到片段一里的第一个then方法,由于已经执行resolve,其实例对象状态已变为成功,因此执行then方法,输出4,此时若片段一中第一个then没有执行完,也不会接着链式执行第二个then。重难点:3之后输出8,4之后输出6,是因为then方法是异步的,前一个没有执行完,会接着往下走。
Java EE
67,535
社区成员
225,843
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章