#J3901. 进制转换、数据编码、位运算【选择题专项练习】

进制转换、数据编码、位运算【选择题专项练习】

一、进制转换。

  1. 对于一个十进制数37,以下哪个是它的二进制表示? {{ select(1) }}
  • 10101
  • 100101
  • 101001
  • 1000101

  1. 二进制数11.01在十进制下是? {{ select(2) }}
  • 3.01
  • 3.05
  • 3.125
  • 3.25

  1. 已知大写字符 'A' 的ASCII编码的十六进制表示为0x41,则字符 'F' 的ASCII编码的十六进制表示为? {{ select(3) }}
  • 46
  • 47
  • 48
  • 49

  1. 下列关于进制的叙述,正确的是? {{ select(4) }}
  • 只有十进制和二进制能够用来表示小数,八进制和十六进制不可以。
  • 常用的进制包括二进制、八进制、十进制、十六进制,其他进制在日常生活中很少使用。
  • 对任意正整数,其二进制表示不会比它的十进制表示更短。
  • 正整数的八进制表示中,每一位可能出现的最大数字是8。

  1. 下列关于十六进制的描述中,正确的是? {{ select(5) }}
  • 使用0-9和A-F表示
  • 使用0-9和A-E表示
  • 使用1-9和A-F表示
  • 使用1-9和A-E表示

  1. 下列关于进制的叙述,不正确的是? {{ select(6) }}
  • 正整数的二进制表示中只会出现0和1。
  • 10不是2的整数次幂,所以十进制数无法转换为二进制数。
  • 从二进制转换为8进制时,可以很方便地由低到高将每3位二进制位转换为对应的一位8进制位。
  • 从二进制转换为16进制时,可以很方便地由低到高将每4位二进制转换为对应的一位16进制位。

二、数据编码与位运算。

  1. 下列关于负数的原码、反码、补码的描述中,正确的是? {{ select(7) }}
  • 原码和反码互为按位取反(符号位除外),补码为反码加1
  • 原码和反码互为按位取反(符号位除外),补码为原码加1
  • 反码和补码互为按位取反(符号位除外),原码为反码加1
  • 补码和原码互为按位取反(符号位除外),反码为补码加1

  1. 一个int类型的值乘以8,等价于以下哪个位运算? {{ select(8) }}
  • 左移3位
  • 右移3位
  • 左移8位
  • 右移8位

  1. 如果a和b均为int类型的变量,下列表达式能够正确判断“a等于0且b等于0”的是?( ) {{ select(9) }}
  • ((~a) && (~ b))
  • ((a & b) == 0)
  • ((a | b) == 0)
  • ((a ^ b) == 0)

  1. 如果 a 为 int 类型的变量,下列哪个表达式可以正确求出满足“大于等于a且是4的倍数”的整数中最小的? {{ select(10) }}
  • (a & (~3))
  • (a / 4 * 4)
  • ((a - 1) | 3) + 1
  • (a << 2)

  1. 在下列代码的横线处填写( ),可以使得输出是“17 11”?

image

{{ select(11) }}

  • a + b
  • a - b
  • a ^ b
  • a & b

  1. 一个int类型的值,做以下哪个操作,一定会变回原来的值? {{ select(12) }}
  • 左移3位,再右移3位。
  • 右移3位,再左移3位。
  • 按位或7,再按位与-8。
  • 按位异或7,再按位异或7。

  1. 如果a为int类型的变量,下列哪个表达式可以正确求出满足“小于等于a且是4的倍数”的整数中最大的? {{ select(13) }}
  • (a & (~3))
  • ((a << 2) >> 2)
  • (a ^ 3)
  • ((a - 1) | 3) + 1

  1. 如果 a 是 int 类型的变量,下列哪个表达式的值一定为 true? {{ select(14) }}
  • a + 1000 - 1000 == a
  • a * 2 / 2 == a
  • (a & 1) == 1
  • (a | 1) == a + 1

  1. 如果 a 和 b 均为 int 类型的变量,下列表达式不能正确判断“ a 等于 b ”的是? {{ select(15) }}
  • ((a >= b) && (a <= b))
  • ((a >> 1) == (b >> 1))
  • ((a + b) == (a + a))
  • ((a ^ b) == 0)

  1. 在下列代码的横线处填写( ),可以使得输出是“20 10”?

image

{{ select(16) }}

  • a = a >> 8; b = a & 0xff
  • b = a >> 8; a = a & 0xff;
  • a = b; b = a & 0xff;
  • b = a; a = b;

  1. 如果 a 为 int 类型的变量,且 a 的值为6,则执行 a = ~a; 之后, a 的值会是? {{ select(17) }}
  • -6
  • 6
  • -7
  • 7

  1. 以下哪个属于C++语言中的位运算符? {{ select(18) }}
  • +
  • -
  • *
  • &

  1. 以下哪个不是C++语言中的运算符? {{ select(19) }}
  • &
  • &&
  • *
  • **

  1. 如果a和b均为int类型的变量,下列表达式能正确判断“a等于b”的是? {{ select(20) }}
  • ((a / b) == 1)
  • ((a & b) == a)
  • ((a ^ b) == 0)
  • ((a | b) == b)

  1. 在下列代码的横线处填写( ),可以使得输出是“24 12”?

image

{{ select(21) }}

  • a = a ^ b
  • b = a ^ b
  • a = a + b
  • b = a + b

  1. 以下哪个不是C++语言中的运算符? {{ select(22) }}
  • ~
  • ~~
  • <
  • <<

  1. 如果a为int类型的变量,且a的值为6,则执行a &= 3;之后,a的值会是? {{ select(23) }}
  • 3
  • 9
  • 2
  • 7