一道表达式的经典试题
2011-02-27 15:08
295 查看
写出判断ABCD四个表达式的是否正确, 若正确, 写出经过表达式中 a的值(3分)
int a = 4;
(A)a += (a++); (B) a += (++a) ;(C) (a++) += a;(D) (++a) += (a++);
a = ?
答:C 错误,左侧不是一个有效变量,不能赋值,可改为(++a) += a;
改后答案依次为9,10,10,11。
------------------------------------------------------------------------
自己的实验:
int main()
{
int a = 4;
(++a) += (a++);
int b = 4;
(++b) = (++b) + (b++);
printf("a = %d, b = %d/n", a, b);
return 0;
}
运行结果:
a = 11, b = 13。
根据以上结果(个人猜想):
编译器对表达式进行了两遍处理:
1.第一次:从左到右,进行出现的++运算。
2.第二次:从右到左,进行表达式的计算。
int a = 4;
(A)a += (a++); (B) a += (++a) ;(C) (a++) += a;(D) (++a) += (a++);
a = ?
答:C 错误,左侧不是一个有效变量,不能赋值,可改为(++a) += a;
改后答案依次为9,10,10,11。
------------------------------------------------------------------------
自己的实验:
int main()
{
int a = 4;
(++a) += (a++);
int b = 4;
(++b) = (++b) + (b++);
printf("a = %d, b = %d/n", a, b);
return 0;
}
运行结果:
a = 11, b = 13。
根据以上结果(个人猜想):
编译器对表达式进行了两遍处理:
1.第一次:从左到右,进行出现的++运算。
2.第二次:从右到左,进行表达式的计算。
相关文章推荐
- 一道表达式的经典试题
- 一道经典试题的Python实现
- C#中一道关于员工信息系统的题(主要考察LinQ和正则表达式验证)
- 一道经典的矩阵题 ( 2010-12-5 16:39)
- 一道经典的JAVA面试题
- 关于global和$GLOBALS[]的一道经典面试题
- 关于fork()的一道经典面试题
- Scala深入浅出实战经典《第87讲:Scala中使用For表达式做查询》笔记
- 菜鸟系列之C/C++经典试题(三)
- 一道试题引发的血案
- 几个启发思路的,经典的,php试题
- 第五届全国ITAT的一道决赛试题-我的解法
- 编程艺术家经典试题解读:猜生日问题
- hdu 1016(一道经典的dfs)题意…
- 经典正则表达式
- 一道金蝶校园招聘试题数据库笔试题
- 通过一道面试题来看 C++ 语言中的表达式求值
- 一道经典的字符串反转问题**
- 一道上海交大研究生入学考试试题:物以稀为贵
- 学习<<汇编语言 -王爽>>,自已完成的一道实试题 (2)