int a1=x+y-z; int a2=x-z+y; a1和a2的值一定相等吗? (某公司实习生招聘笔试试题)
来源:互联网 发布:python jsonrpc 编辑:程序博客网 时间:2024/04/29 00:17
我们先来看看原题:
给定3个int类型的正整数x,y,z,对如下4组表达式判断正确的选项()
int a1=x+y-z; int b1=x*y/z;
int a2=x-z+y; int b2=x/z*y;
int c1=x<<y>>z; int d1=x&y|z;
int c2=x>>z<<y; int d2=x|z&y;
A、a1一定等于a2
B、b1一定定于b2
C、c1一定等于c2
D、d1一定等于d2
首先说明,正确答案是A. 但是, 相信多数同学第一眼就把正确答案A排除了, 估计是被“溢出”吓坏了, 下面, 我们来分析一下:
A.
为了简便起见, 我们用char来模拟int.
#include <iostream>using namespace std;int main(){char x = 126;char y = 24;char z = 65;char a1 = x + y - z; // x + y有溢出, 但是 - z后可以减回来char a2 = x - z + y;cout << a1 << endl;cout << a2 << endl;return 0;}结果a1和a2是相等的, 为什么呢? 因为char的范围在[-128 127]内循环转,127 + 1 = -128, 而-128 + 1 = -127,-128 - 1 = 127
B
#include <iostream>using namespace std;int main(){int x = 2;int y = 3;int z = 6; int b1= x * y / z; int b2 = x / z * y;cout << b1 << endl; // 1cout << b2 << endl; // 0return 0;}
#include <iostream>using namespace std;int main(){int x = 2;int y = 2;int z = 2; int c1 = x << y >> z; // 2先乘以4, 再除以4 int c2 = x >> z << y; // 2先除以4, 再乘以4cout << c1 << endl; // 2cout << c2 << endl; // 0return 0;}
D.
#include <iostream>using namespace std;int main(){int x = 1;int y = 2;int z = 4; int d1 = x & y | z;int d2 = x | z & y;cout << d1 << endl; // 4cout << d2 << endl; // 1return 0;}
最后需要补充说明的是: 考试的时候, 肯定没有电脑写程序啊, 但用笔分析一下, 也非常简单, 而且更快。
0 0
- int a1=x+y-z; int a2=x-z+y; a1和a2的值一定相等吗? (某公司实习生招聘笔试试题)
- var x = a2 || a1;
- 计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值
- 求 (int)X/(int)Y= (int)Z 的笨蛋且不会位运算方法
- select * from A1,A2 where A1.a = A2.b
- z = 16*x + y
- hdu4282 x^z+y^z+x*y*z=k 解的个数
- 若有x = 1,y = 2, z = 3,则表达式(x<y?x:y)==z++的值?
- x > y ? y : x > z ? z : x;
- union myun { struct{ int x; int y; int z; }u; int k; }a;
- 数一数二之30/7=x+ 1/(y+1/z)则 x+y+z 值为?
- y=x++ + ++x(int x=0)的结果?
- 给定如下代码: int x[4]={0}; int y[4]={1}; 数组x和y的值为()
- x+2*y+5*z = 100
- (X * Y) % Z
- x/y/z轴
- 多种方式计算多项式a0+a1*x+a2*x^2+a3*x^3+.......(计算效率与算法的重要性)
- 滑动中scrollTo(int x,int y);和scrollBy(int x,int y)的区别(经典)
- MIPS平台OpenWrt路由器系统内的Rust应用程序开发
- 模式识别与机器学习-----读书笔记
- python视频
- Python之使用Python发送HTTP请求
- ACM POJ 1458 Common Subsequence
- int a1=x+y-z; int a2=x-z+y; a1和a2的值一定相等吗? (某公司实习生招聘笔试试题)
- Java I/O全文摘要(五)数据源,网络流
- Hibernate关联关系配置(一对多、一对一和多对多)
- struts2中的 ThreadLocal模式
- win7 64位 OpenCV cv2.VideoCapture 打开视频无效
- JDBC详解
- MYSQL和ORACLE的一些区别
- 在xcode6中使用矢量图(iPhone6置配UI)
- struts2.1.8+spring3.0.2+hibernate3.3