#K3018. C3.18 位运算
C3.18 位运算
一、选择题。
-
位运算是什么?
{{ select(1) }}
- 对整数进行二进制位上的运算
- 对浮点数进行二进制位上的运算
- 对字符串进行二进制位上的运算
- 对数组进行二进制位上的运算
- 以下哪个运算符用于位运算中的按位与操作?
{{ select(2) }}
- &
- |
- ^
- ~
3.在C语言中,对两个整数进行按位或运算,可以使用哪个运算符?
{{ select(3) }}
- &&
- ||
- |
- !
-
按位异或运算的特点是什么?
{{ select(4) }}
- 相同位得0,不同位得1
- 相同位得1,不同位得0
- 所有位都得1
- 所有位都得0
-
设有变量a和b,执行a = a & b;后,a的值会如何变化?( )
{{ select(5) }}
- a的值保持不变
- a的值变为a和b的按位与结果
- a的值变为b的值
- 无法确定
- 设有变量a和b,执行a = a | b;后,a的值会如何变化?( )
{{ select(6) }}
- a的值保持不变
- a的值变为a和b的按位或结果
- a的值变为b的值
- 无法确定
-
按位取反运算的特点是什么?( )
{{ select(7) }}
- 将所有位取反
- 将最高位取反
- 将最低位取反
- 将特定位取反
-
在位运算中,左移操作符是什么?( )
{{ select(8) }}
- <<
- >>
- >>>
- <
-
右移操作符的作用是什么?( )
{{ select(9) }}
- 将二进制数的所有位向左移动指定位数
- 将二进制数的所有位向右移动指定位数
- 将二进制数的特定位向左移动
- 将二进制数的特定位向右移动
-
下列哪个表达式可以将变量a的低四位全部置为1,其余位保持不变?( )
{{ select(10) }}
- a = a | 0x0F
- a = a & 0x0F
- a = a ^ 0x0F
- a = a << 4
二、程序阅读。
#include <iostream>
using namespace std;
int main()
{
unsigned short x, y;
cin >> x >> y;
x = (x | x << 2)& 0x33;
x = (x | x << 1)& 0x55;
y = (y | y << 2)& 0x33;
y = (y | y << 1)& 0x55;
unsigned short z = x | y << 1;
cout << z << endl;
return 0;
}
假设输入的 x和y 均是不超过 15 的自然数,完成下面的判断题和单选题:
判断题
- 删去第 7 行与第 13 行的 unsigned,程序行为不变? {{ select(11) }}
- 对
- 错
- 将第7行与第13行的 short 均改为 char,程序行为不变? {{ select(12) }}
- 对
- 错
- 程序总是输出一个正数0? {{ select(13) }}
- 对
- 错
- 当输入为
2 2
时,输出为10? {{ select(14) }}
- 对
- 错
选题题
- 若输入
2 2
时,输出的结果为? {{ select(15) }}
- 59
- 12
- 0
- 不确定
- 若输入
13 8
时,输出的结果为? {{ select(16) }}
- 0
- 209
- 197
- 226
相关
在以下作业中: