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. switchdefault 分支必须放在最后
  • 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.14double 类型常量。
第 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,统计 1n 中能被 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;  
}  

注意:编程题需严格按照输入输出格式编写,测试用例保证所有边界条件符合要求。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐