C语言的运算优先
2018-03-04 11:44
204 查看
1.求下列代码运行结果:
int a = 7 , b = 9,t;
a*=a > b ? a : b;
t=a;
t = (b%10)+(b = 5)+t;
cout<<t<<endl;
答案:77
解析:a*=a > b ? a : b;
是在求a*(a和b中的最大者)=7*9=63,所以a现在被赋值为63,接着t=a=63。然后t = (b%10)+(b = 5)+t;,意思%号比=号和+号优先级高,故先算%,然后从右到左计算为:t=9%10+5+63;结果为77。
2.求以下代码运行结果
int y = 9;
cout<< y<<" "<<y++<<endl;
解析:计算机从右向左计算,y++意味着此时右边结果为9,之后y=y+1=10,然后结果10赋值给最左边的y。
3.求以下代码运行结果
int y = 9;
y = y*(y=7);
cout<< y <<endl;
解析:y = y*(y=7);括号优先级高,先算y=7,此时等式右面两个y都为7,故答案为49
int a = 7 , b = 9,t;
a*=a > b ? a : b;
t=a;
t = (b%10)+(b = 5)+t;
cout<<t<<endl;
答案:77
解析:a*=a > b ? a : b;
是在求a*(a和b中的最大者)=7*9=63,所以a现在被赋值为63,接着t=a=63。然后t = (b%10)+(b = 5)+t;,意思%号比=号和+号优先级高,故先算%,然后从右到左计算为:t=9%10+5+63;结果为77。
2.求以下代码运行结果
int y = 9;
cout<< y<<" "<<y++<<endl;
解析:计算机从右向左计算,y++意味着此时右边结果为9,之后y=y+1=10,然后结果10赋值给最左边的y。
3.求以下代码运行结果
int y = 9;
y = y*(y=7);
cout<< y <<endl;
解析:y = y*(y=7);括号优先级高,先算y=7,此时等式右面两个y都为7,故答案为49
相关文章推荐
- C语言 - 位运算置0操作
- C语言运算中的数据类型自动转换原则
- C语言里的左移和右移运算
- 位运算01 - 零基础入门学习C语言64
- 连通图遍历策略之广度优先搜索(C语言)
- PAT 3-04 一元多项式的乘法与加法运算(C语言实现)
- C语言—基本语句和运算
- C语言中无符号数和有符号数之间的运算
- 如何用C语言编写幂运算的代码?救急!!!
- C语言自增自减运算
- C语言实现大整数运算
- C语言实现整数四则运算表达式的计算
- C语言中 sizeof 运算的值是在编译时还是运行时确定?
- C语言浮点数运算,讲述原理并总结一些案例
- 第十五周—C语言 项目4 (矩阵运算)
- 十进制数的运算规则 C语言
- C语言逻辑运算小程序
- 05、老徐教你学C语言基础篇4——C语言之门(运算篇)
- 进程的优先调度算法的c语言实现
- C语言中的位运算和逻辑运算