GESPC++ 一级(提升卷)由DeepSeek生成
GESPC++ 一级(提升卷)由DeepSeek生成
CCF 编程能力等级认证
C++ 一级(提升卷)
2024 年 12 月
1 单选题(每题 2 分,共 30 分)
| 题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 答案 | B | C | D | A | C | B | A | D | D | B | C | A | B | D | C |
第 1 题 以下变量名中,符合 C++ 命名规范的是( )。
- A.
3D-printer - B.
_count - C.
float - D.
sum#value
第 2 题 C++ 表达式 5 + 3 * 2 % 4 的值是( )。
- A. 7
- B. 5
- C. 6
- D. 8
第 3 题 执行以下代码后,输出结果是( )。
int a = 5, b = 2;
cout << (a / b + a % b);
- A. 3
- B. 2.5
- C. 2
- D. 3.5
第 4 题 以下代码中,能够正确输出 “Hello, GESP!” 的是( )。
- A.
cout << "Hello, GESP!"; - B.
printf('Hello, GESP!'); - C.
cout << Hello, GESP!; - D.
printf("Hello, GESP!')
第 5 题 以下关于 switch 语句的描述,正确的是( )。
- A.
switch的条件表达式只能是整数类型 - B.
switch的每个case必须用break结束 - C.
switch的default分支必须放在最后 - D.
case后的值可以是浮点数
第 6 题 以下代码的输出是( )。
int x = 10;
cout << (x++ + ++x);
- A. 20
- B. 22
- C. 21
- D. 23
第 7 题 以下代码执行后,变量 sum 的值是( )。
int sum = 0;
for (int i = 0; i < 5; i += 2)
sum += i;
- A. 6
- B. 10
- C. 0
- D. 4
第 8 题 以下代码的输出是( )。
int a = 3, b = 4;
cout << (a > b ? a : b);
- A. 3
- B. 4
- C. 0
- D. 1
第 9 题 以下代码的功能是( )。
int n = 1234, sum = 0;
while (n > 0) {
sum += n % 10;
n /= 10;
}
- A. 计算 n 的阶乘
- B. 将 n 逆序输出
- C. 计算 n 的二进制表示
- D. 计算 n 的各位数字之和
第 10 题 以下代码的输出是( )。
int x = 5;
if (x = 0)
cout << "Yes";
else
cout << "No";
- A. Yes
- B. No
- C. 编译错误
- D. 运行错误
第 11 题 以下代码的输出是( )。
int i = 0;
while (i++ < 3)
cout << i << " ";
- A. 0 1 2
- B. 1 2 3
- C. 1 2
- D. 0 1 2 3
第 12 题 以下代码的输出是( )。
cout << (5 && 0 || 3);
- A. 0
- B. 1
- C. 3
- D. 5
第 13 题 以下代码的输出是( )。
int arr[] = {1, 2, 3};
cout << sizeof(arr) / sizeof(int);
- A. 1
- B. 3
- C. 4
- D. 12
第 14 题 以下代码的输出是( )。
char c = 'A' + 2;
cout << c;
- A. A
- B. C
- C. 67
- D. 编译错误
第 15 题 以下代码的输出是( )。
int x = 5;
cout << (x << 1);
- A. 5
- B. 10
- C. 2
- D. 6
2 判断题(每题 2 分,共 20 分)
| 题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| 答案 | × | √ | × | √ | × | √ | × | √ | × | √ |
第 1 题 在 C++ 中,3.14 是 double 类型常量。
第 2 题 do-while 循环的循环体至少会执行一次。
第 3 题 break 语句可以用于跳出所有嵌套循环。
第 4 题 表达式 'a' > 'A' 的值为 true。
第 5 题 int a[5] = {0}; 会将数组所有元素初始化为 0。
第 6 题 scanf 函数可以读取带空格的字符串。
第 7 题 float 类型变量可以精确表示所有整数。
第 8 题 cout << (5 / 2); 的输出是 2。
第 9 题 for (;;) 是一个无限循环。
第 10 题 switch 语句的 case 标签可以是字符串。
3 编程题(每题 25 分,共 50 分)
3.1 编程题 1
试题名称:数字统计
时间限制:1.0 s
内存限制:512.0 MB
题目描述
输入一个正整数 n,统计 1 到 n 中能被 3 整除但不能被 5 整除的数的个数。
输入格式
一行,一个正整数 n(1 ≤ n ≤ 1000)。
输出格式
一行,包含一个整数,表示符合条件的数的个数。
样例输入
20
样例输出
5
参考程序
#include <iostream>
using namespace std;
int main() {
int n, cnt = 0;
cin >> n;
for (int i = 1; i <= n; i++)
if (i % 3 == 0 && i % 5 != 0)
cnt++;
cout << cnt;
return 0;
}
3.2 编程题 2
试题名称:回文数判断
时间限制:1.0 s
内存限制:512.0 MB
题目描述
输入一个正整数,判断它是否为回文数(正序和倒序读相同)。
输入格式
一行,一个正整数 n(1 ≤ n ≤ 10000)。
输出格式
若 n 是回文数,输出 Yes,否则输出 No。
样例输入 1
121
样例输出 1
Yes
样例输入 2
123
样例输出 2
No
参考程序
#include <iostream>
using namespace std;
int main() {
int n, reversed = 0, original;
cin >> n;
original = n;
while (n > 0) {
reversed = reversed * 10 + n % 10;
n /= 10;
}
cout << (reversed == original ? "Yes" : "No");
return 0;
}
注意:编程题需严格按照输入输出格式编写,测试用例保证所有边界条件符合要求。
更多推荐


所有评论(0)