2025年6月CCF—GESP(C++三级)编程能力等级认证试卷
三级
2025
2026-03-29 15:43:20
136次
一、单选题
以下程序使用枚举法(穷举法)求解满足条件的三位数,横线处应该填入的是?( )
#include <iostream>
using namespace std;
int main() {
int count = 0;
for (int i = 100; i <= 999; i++) {
int a = i / 100;
______________________
int c = i % 10;
if (a * a + b * b == c * c) {
count++;
}
}
cout << count << endl;
return 0;
} | A. int b = (i / 10) / 10; |
B. int b = (i / 10) % 10; |
| C. int b = (i % 10) / 10; |
D. int b = (i % 10) % 10; |
【知识点】 CCF—GESP C++三级
以下程序模拟了一个简单的小球反弹过程,横线处应该填入的是?( )
#include <iostream>
using namespace std;
int main() {
int height = 10;
int distance = 0;
for (int i = 1; i <= 5; i++) { // 模拟5次落地
_________________
height /= 2;
distance += height;
}
cout << distance << endl;
return 0;
} | A. distance += height/2; |
B. distance += height; |
| C. distance += height*2; |
D. distance += height+1; |
【知识点】 CCF—GESP C++三级
二、判断题
三、编程题
分糖果
时间限制:1 s,内存限制:512 MB
【问题描述】
有 n 位小朋友排成一队等待老师分糖果。第 i 位小朋友想要至少 ai 颗糖果,并且分给他的糖果数量必须比分给前一位小朋友的糖果数量更多,不然他就会不开心。
老师想知道至少需要准备多少颗糖果才能让所有小朋友都开心。你能帮帮老师吗?
【输入描述】
第一行,一个正整数 n,表示小朋友的人数。
第二行, 个正整数 a1、a2、……、an,依次表示每位小朋友至少需要的糖果数量。
【输出描述】
输出一行,一个整数,表示最少需要准备的糖果数量。
【样例输入1】
4 1 4 3 3
【样例输出1】
16
【样例输入2】
15 314 15926 53589793 238462643 383279502 8 8 4 1 9 7 1 6 9 3
【样例输出2】
4508143253
【数据范围】
对于所有测试点,保证 1 <= n <= 1000,1 <= ai <= 10^9。
【知识点】 CCF—GESP C++三级
奇偶校验
时间限制:1 s,内存限制:512 MB
【问题描述】
数据在传输过程中可能出错,因此接收方收到数据后通常会校验传输的数据是否正确,奇偶校验是经典的校验方式之一。
给定 n 个非负整数 c1、c2、……、cn,代表所传输的数据,它们的校验码取决于这些整数在二进制下 1 的数量之和的奇偶性。
如果这些整数在二进制下共有奇数个 1,那么校验码为 1;否则校验码为 0。你能求出这些整数的校验码吗?
【输入描述】
第一行,一个正整数 n ,表示所传输的数据量。
第二行,n 个非负整数 c1、c2、……、cn,表示所传输的数据。
【输出描述】
输出一行,两个整数,以一个空格分隔:
第一个整数表示 c1、c2、……、cn 在二进制下 1 的总数量;
第二个整数表示校验码(0或1)。
【样例输入1】
4 71 69 83 80
【样例输出1】
13 1
【样例输入2】
6 1 2 4 8 16 32
【样例输出2】
6 0
【数据范围】
对于所有测试点,保证 1 <= n <= 100,0 <= ci <= 255。
【知识点】 CCF—GESP C++三级
