GESP C++ 3级 2026.06
关于计算机的数据编码,下面说法正确的是( )。
机器数 1000 1101B 的真值可能是 -13(如果它是原码)或 141(如果它是无符号数)等数,这取决于我们如何解释它。
计算机中,所有数据最终都以二进制、八进制、十六进制的形式存储和运算。
字节(Byte)是计算机中最小的数据单位。位(bit)是计算机中最小的存储单位。
计算机中, 字节是 字节的意思。
计算机厂商为了计算方便,一般采用 进制。如果我们买的厂商标注的是 1TB 的硬盘,它实际的存储容量是( )。
低 位、高 位压缩技术,适用于数据仅使用字节的一部分(如仅用低 位)的场景。字节结构:一个字节为 位(bit),分为高 位(高位)和低 位(低位)。当数据是十六进制数( 即 0x0 到 0xF),每个值仅需 位表示,高 位全为 。将两个相邻的 位值合并为一个字节。四个数据 0x1、0x2、0x3、0x4 采用上述压缩技术压缩以后是( )。
12D、34D
12Q、34Q
12H、34H
00010011B、00110101B
关于计算机编码中反码和补码,下面说法错误的是( )。
负数的补码,一个快速方法是从右往左扫描正数的二进制形式,遇到第一个 之后,左边的所有位都取反。
对于一个 位的二进制数,最大表示范围为 。
反码减法可以统一为加法。符号位可以直接参与运算。
反码表示中, 的表示不唯一:0000 0000B 和 1111 1111B。
一种加密方式是字符数组与密钥 KEY 、运算方式分开传输,比如字符数组 char text[4] = {'G', 'E', 'S', 'P'}; 由一种传输方式发送,密钥 KEY = 2026 通过另一种发送方式发送,运算方式 char function[4] = {'|', '-', '^', '+'}; 又是另一种发送方式发送。三种数据都到达目的地以后,分别进行例如 'G' | 6 、 'E' - 2 、 'S' ^ 0 、 'P' + 2 等计算,来得到相应的真实内容,上述 GESP 通过这种加密方式,加密以后最终的内容是( )。
GCSR
RSCG
GCSA
BCSR
关于位运算,下列说法错误的是( )。
找唯一数:数组中唯一出现一次的数,其余出现两次,全部异或结果即为该数。例如:数组 (唯一数是 )。
交换两个数:a ^= b; b ^= a; a ^= b;(无需临时变量)。
将二进制位整体左移 位,高位溢出舍弃,低位补 ;等价于 num 乘以 。
对每一个二进制位取反,包括符号位,简单运算规则是 ~n = -n - 1。
关于字符串和字符数组,下列说法正确的是( )。
char str[] = "GESP";
int len1 = sizeof(str);
int len2 = strlen(str);
上述程序能够正确执行, len1 与 len2 相等。
char str1[4] = "GESP";
char str2[4] = {'G','E','S','P'};
这段程序将能够正确执行。
char str2[4] = {'G','E','S','P'}; strcpy(str2,"HELLO,GESP");
cout << str2 << endl;
这段程序即使能够运行,但是存在覆盖数组以外的内存空间的行为,可能会引起严重错误。
char dest[4] = {'G','E','S','P'};
char src[] = "HELLO";
strcat(dest, src);
cout << dest << endl;
这段程序能够正确执行,不存在数组越界行为。
计算机中的 等于多少 ( )。
在 C++ 中,对于 位有符号整数 int 类型数据 ,关于按位取反运算符 ~,下列说法正确的是( )。
~6 的结果是 。
按位取反满足公式 ~n = -n - 1。
~0 的结果是 。
~(-2) 的结果是 。
关于计算机中的二进制编码表示,下列说法错误的是( )。
原码是最直观的一种有符号数表示方法。最高位(最左边的位)为符号位: 表示正数, 表示负数,其余位为数值位(真值的绝对值)。
补码完美解决了原码和反码的缺陷,是现代计算机中表示有符号整数的标准方式。正数的补码与其原码、反码相同;负数的补码是将其对应正数的原码按位取反(得到反码),然后加 。
计算补码的一个更快的技巧:从右往左扫描正数的二进制形式,遇到第一个 之后,左边的所有位都取反。
对于一个 位的二进制数,补码最大表示范围为 。
