跳到正文
OJ
佛大附属信奥
在线评测 · 分级学习
学习
题库
测验
提交
作业
留言
登录
菜单
学习
题库
测验
提交
作业
留言
登录
GESP C++ 三级 · 2025 年 12 月认证理论卷
登录
后作答才能记录成绩
一、单选题(每题 2 分)
1.
请将二进制数1101.101,转换为等值的10进制数( )
A. 14.25
B. 13.625
C. 13.5
D. 14.5
2.
以下关于标准 C++ 一维数组的描述,哪一项是错误的?( )
A. 数组的下标从0开始
B. 数组在内存中是连续存放的
C. 数组的长度只能在运行时才能确定
D. 可以在程序中修改数组某个元素的值
3.
下列代码段执行后,变量 sum 的值是( ) ```cpp { int sum = 0; for (int i = 1; i <= 10; i++) { if (i % 3 == 8>>2) continue; sum += i; } } ```
A. 12
B. 17
C. 33
D. 40
4.
执行以下程序段,输出值是( ) ```cpp int x = 5; if (x == 3 >> 2) x = 8 >> 3; cout << x << endl; ```
A. 0
B. 5
C. 120
D. 1
5.
已知字符串 s = "C++ Programming",下列程序运行的结果是( ) ```cpp cout << (int)(s.length() | 3) << endl; ```
A. 14
B. 15
C. 16
D. 17
6.
以下代码是一个程序的部分代码,能够正确执行,输出的结果是( ) ```cpp int arr[5] = {1, 2, 3, 4, 5}; int p = arr[1]; cout << (p + 2) << endl; ```
A. 1
B. 2
C. 3
D. 4
7.
以下关于 C++ 求最小值函数 min() 的描述,不正确的是( )
A. 函数必须返回一个值
B. 该函数可以嵌套调用
C. 调用 min(5) 是错误的,不能通过编译
D. 调用 min()(不传任何参数)可以通过编译,结果为 0
8.
在一个特定的计算机系统中,假如 unsigned int 类型需要占用2个字节的存储空间(每个字节有8位),则 unsigned int 可以表示的数据范围是( )
A. 0 ~ 65535
B. 0 ~ 65536
C. -65536 ~ 65535
D. 0 ~ 32767
9.
以下代码执行后,数组 arr 的内容是( ) ```cpp int arr[6] = {1, 2, 3, 4, 5, 6}; for (int i = 0; i < 6; i += 2) { arr[i] = arr[i] + arr[i+1]; arr[i+1] = arr[i] - arr[i+1]; arr[i] = arr[i] - arr[i+1]; } ```
A. {2,1,4,3,6,5}
B. {1,2,3,4,5,6}
C. {3,1,4,2,5,3}
D. {1,3,2,5,4,6}
10.
a & b | (c ^ d),其中 a = 3, b = 7, c = 15, d = 4,计算结果是( )
A. 十进制11
B. 二进制11
C. 八进制11
D. 十六进制11
11.
整型变量 x 的初始值为 10,以下代码的输出结果是( ) ```cpp int t = x--; t -= x; cout << t << endl; ```
A. 0
B. -1
C. 1
D. 死循环
12.
根据下面的流程图,如果成绩 score 输入 60,输出的结果是( )
A. 优秀
B. 及格
C. 不及格
D. 没有输出
13.
以下代码运行后,sum 的结果是( ) ```cpp int arr[5] = {2, 4, 6, 8, 10}; int sum = 0; for (int i = 0; i < 5; i++) { switch (arr[i] % (1|2)) { case 0: sum += 1; break; case 1: sum += 2; break; case 2: sum += 3; break; } } ```
A. 10
B. 11
C. 14
D. 15
14.
以下关于 C++ 中 abs() 函数的描述,正确的是( )
A. abs() 函数可用于计算 int 类型整数的绝对值,头文件为 <cmath> 或 <cstdlib>
B. 调用 abs(3.14) 可以四舍五入得到 3
C. abs(-1, -2) 的返回值是 1
D. 若传入负数浮点数,abs() 会自动截断小数部分后返回整数绝对值
15.
如果字符串 s 的值是 GESP,以下代码 s 的最后结果是( ) ```cpp for (int i = 0; i < s.length(); i++) { s[i] = toupper(s[i] + i); } ```
A. GESP
B. HFTR
C. hesp
D. GFUS
二、判断题(每题 2 分)
1.
在 C++ 中,数组名不能改变,数组名不能被赋值。 ( )
对
错
2.
整型变量 a 的值为 3,浮点数变量 b 的值为 3.5,在 C++ 编译环境下,经过 a *= b 计算后,a 的值变为 10.5,此时如果输出 a,将输出 10.5。 ( )
对
错
3.
strcmp(str1, str2) 返回 0 表示 str1 大于 str2,返回正数表示两者相等。 ( )
对
错
4.
以下代码输出结果为 8。 ```cpp int a = 5, b = 3; int c = a++ + ++b; cout << c << endl; ``` ( )
对
错
5.
位运算符 &、|、^、~ 的优先级高于算术运算符 +、-、*、/。 ( )
对
错
6.
在 C++ 中,int a[] = {1, 2, 3, 4, 5}; 可以定义一个包含 5 个元素的整型数组。 ( )
对
错
7.
C++ 表达式 z = a > b ? x : y 等同于: ```cpp if (a > b) { z = x; } else { z = y; } ``` 以下代码执行后,输出将会是 2。 ```cpp int main() { int arr[5] = {1, 2, 3, 4, 5}; cout << arr[3 > 2 ? 1 : 2] << endl; return 0; } ``` ( )
对
错
8.
在 C++ 中,++ 和 -- 运算符只能用于整型变量,不能用于浮点数变量。 ( )
对
错
9.
给定一个正整数 a,当需要计算 -a 的补码时,有这样一个计算技巧:将 a 的二进制形式从右往左扫描,遇到第一个 1 之后,将找到的第一个 1 左边的所有位都取反,能得到 -a 的补码。 ( )
对
错
10.
以下代码中,Hello 将被输出5次。 ```cpp for (int i = 0; i < 5; i++); { cout << "Hello" << endl; } ``` ( )
对
错