知识点 普及 逻辑运算 |
16.
01 #include <iostream>
02
03 using namespace std;
04
05 int main()
06 {
07 unsigned short x, y;
08 cin >> x >> y;
09 x = (x | x << 2) & 0x33;
10 x = (x | x << 1) & 0x55;
11 y = (y | y << 2) & 0x33;
12 y = (y | y << 1) & 0x55;
13 unsigned short z = x | y << 1;
14 cout << z << endl;
15 return 0;
16 }
假设输入的 x、y 均是不超过 15 的自然数,完成下面的判断题和单选题:
1.删去第 7 行与第 13 行的 unsigned,程序行为不变。( )(1.5 分)
T /F
答案:T unsigned short是0~2^30-1,short是-~,程序中最大值为 0x55*4
我们计算一下
340<,所以为T
2.将第 7 行与第 13 行的 short 均改为 char,程序行为不变。( )(1.5 分)
T/F
答案:F char 是-128~127程序中最大值为 0x55*4,340>127,F
3.程序总是输出一个整数“0”。( )(1.5 分)
T/F
答案:F 下一个题目“2 2”带入就不是。
4.当输入为“2 2”时,输出为“10”。( )(1.5 分)
T/F
答案:F “2 2”输出为12。
5.当输入为“2 2”时,输出为“59”。( )(1.5 分)
T/F
答案:F “2 2”输出为12。
6.当输入为“13 8”时,输出为( )。(3 分)
A.“0”
B.“209”
C.“197”
D.“226”
答案:B.209 模拟即可