#P1062. GESP 三级模拟
GESP 三级模拟
- 十进制数 109 转换为二进制数和十六进制数分别是({{ select(1) }} )。
- ,
- ,
- ,
- ,
- 假设某计算机中,一个带符号整数占用 8 位(bit)。已知一个数在计算机中的补码为
11101100,则该数的十进制原值是({{ select(2) }} )。
- -20
- -19
- -100
- 236
- 下列关于字符编码的说法,错误的是({{ select(3) }} )。
- ASCII 码使用 7 位二进制位表示,标准 ASCII 共包含 128 个字符。
- UTF-8 是一种变长的编码方式,在表示英文字母时通常只占用 1 个字节。
- Base64 编码方案的主要目的是将二进制数据加密为不可读的密文。
- 在标准 ASCII 码表中,小写字母
'a'的数值大于大写字母'A'的数值。
- 运行以下代码片段后,变量
ans的值是( )。
int a = 18; // 二进制: 00010010
int b = 27; // 二进制: 00011011
int ans = (a & b) ^ (a | b);
{{ select(4) }}
- 9
- 16
- 25
- 11
- 表达式
(7 << 3) | (23 >> 2)的计算结果在十进制下是({{ select(5) }} )。
- 61
- 59
- 56
- 63
- 已知二维数组
int matrix[5][6];在内存中按行优先连续存放。若matrix[0][0]的内存地址为0x2000,且每个int类型占用 4 个字节,则matrix[3][2]的内存地址为( {{ select(6) }})。
0x20480x20500x204C0x2054
-
运行以下关于
string的代码,最终输出的结果是( )。string s = "CCF-GESP2026"; s.erase(0, 4); s.insert(4, "-333"); cout << s << endl;
{{ select(7) }}
- GESP-3332026
- GESP2026-333
- CCF-333GESP
- GESP333-2026
-
运行以下代码片段,输出结果是( )。
string s = "programming"; int pos = s.find("gram"); if (pos != string::npos) { cout << s.substr(pos + 1, 4); } else { cout << "not found"; }
{{ select(8) }}
- gram
- ramm
- ammo
- mmin
- 在解决“寻找 1 到 10000 之间所有能够被自己的各位数字之和整除的数(如21能被2+1=3整除)”的问题时,最适合采用的算法策略是({{ select(9) }} )。
- 递推
- 枚举
- 贪心
- 分治
- 某模拟算法要求对一个 的矩阵进行顺时针旋转 90 度操作。已知原矩阵中某个元素的下标为
(i, j)( ),则旋转后该元素在目标矩阵中的新下标为({{ select(10) }} )。
(j, 3 - i)(3 - j, i)(3 - i, 3 - j)(j, i)
- 十六进制数
0x3A加上十六进制数0x1F的结果,用二进制表示是( {{ select(11) }})。
-
执行以下 C++ 代码后,输出的结果是( )。
char c = 'd'; int offset = c - 'a'; cout << (offset ^ 1);
{{ select(12) }}
- 2
- 3
- 4
- 5
- 若有定义
int arr[10] = {5, 10, 15};,则下列说法正确的是( {{ select(13) }})。
arr[3]的值是随机脏数据arr[9]的值是 0- 数组
arr在内存中占用的总字节数是 12 字节 - 试图访问
arr[10]会引发编译错误
-
运行以下代码片段,输出结果是( )。
int x = 5, y = 10; bool res = (x > 6) && ((y = 20) > 15); cout << y;
{{ select(14) }}
- 10
- 20
- 5
- 0
- 在 C++ 中,如果要判断一个
string对象s是否为空字符串,以下最高效且最推荐的方法是( {{ select(15) }})。
if (s == "")if (s.length() == 0)if (s.empty())if (s.size() == 0)
二、判断题(每题 2 分,共 20 分)
- 十六进制数
0x4C转换为十进制数是 76。({{ select(16) }} )
- 正确
- 错误
- 计算机内部存储带符号整数时,正数的原码、反码、补码形式完全相同。({{ select(17) }} )
- 正确
- 错误
- 在 8 位二进制补码表示法中,
10000000表示的十进制数是 -128。( {{ select(18) }})
- 正确
- 错误
- C++ 中,按位取反运算符
~是一个双目运算符,用于对两个操作数的每个二进制位进行取反。({{ select(19) }} )
- 正确
- 错误
- 若有定义
int a[5][5];,在内存中a[1][0]紧跟在a[0][4]的后面存放。({{ select(20) }} )
- 正确
- 错误
string对象的length()和size()方法返回的都是字符串中字符的个数,其效果完全等价。({{ select(21) }} )
- 正确
- 错误
- 使用
string的find()函数查找子串时,如果找不到,函数会返回0。( {{ select(22) }})
- 正确
- 错误
- 枚举算法的缺点是往往需要测试所有可能的情况,如果问题规模太大,可能会导致程序超时。( {{ select(23) }})
- 正确
- 错误
- 表达式
(1 << 31)在 32 位带符号整型(int)下会产生溢出,其结果是一个负数。( {{ select(24) }})
- 正确
- 错误
- 如果定义了一维数组
int clear[100];且未在定义时初始化,若该定义位于main函数内部,则数组中所有元素自动被初始化为 0。({{ select(25) }} )
- 正确
- 错误