2024年9月 GESP C++ 1级认证考试真题(含编程操作题部分)
选 单选题(共 15 题,每题 2 分)
据有关资料,山东大学于 $1972$ 年研制成功 DJL-1 计算机,并于 $1973$ 年投入运行,其综合性能居当时全国第三位。DJL-1 计算机运算控制部分所使用的磁心存储元件由磁心颗粒组成,设计存贮周期为 $2\mu s$(微秒)。那么该磁心存储元件相当于现代计算机的( )。
C++ 程序执行出现错误,不太常见的调试手段是( )。
在 C++ 中,下列表达式错误的是( )。
C++ 表达式 10 - 3 * 2 的值是( )。
在 C++ 中,假设 $N$ 为正整数 $10$,则 cout << (N / 3 + N % 3) 将输出( )。
C++ 语句 printf("6%2={%d}", 6%2) 执行后的输出是( )。
成功执行下面的 C++ 代码,先后从键盘上输入 $5$ 回车和 $2$ 回车,输出是( )。
cin >> a;
cin >> b;
cout << a + b;
下面 C++ 代码执行后输出是( )。
int Sum = 0;
for (int i = 0; i < 10; i++)
Sum += i;
cout << Sum;
下面 C++ 代码执行后输出的是( )。
int N = 0;
for (int i = 0; i < 10; i++)
N += 1;
cout << N;
下面 C++ 代码执行后输出的是( )。
int N = 0;
for (int i = 1; i < 10; i += 2) {
if (i % 2 == 1)
continue;
N += 1;
}
cout << N;
下面 C++ 代码执行时输入 14+7 后,正确的输出是( )。
int P;
printf("请输入正整数P: ");
scanf("%d", &P);
if (P % 3 || P % 7)
printf("第5行代码%d, %d", P % 3, P % 7);
else
printf("第7行代码%2d", P % 3 && P % 7);
执行下面 C++ 代码后得到的输出是( )。
int count = 0, i, s;
for (i = 0, s = 0; i < 20; i++, count++)
s += i++;
cout << s << " " << count;
下面 C++ 代码拟用于计算整数 $N$ 的位数,比如对 $123$ 则输出 123 是 3 位整数,但代码中可能存在 bug。下面有关描述正确的是( )。
int N, N0, rc=0;
cout << "请输入整数:";
cin >> N;
N0 = N;
while (N){
rc++;
N /= 10;
}
printf("%d是%d位整数\n", N, rc); // L11
下面的 C++ 代码用于求连续输入的若干个正五位数的百位数之和。例如输入 32488 25731 41232 0,则输出 3 个正五位数的百位数之和为 13。有关描述错误的是( )。
int M, Sum=0, rc=0;
cout << "请输入正整数:";
cin >> M;
while (M){
M = (M / 100 % 10); // L6
Sum += M;
rc++;
cin >> M;
}
cout << rc << "个正五位数的百位数之和为" << Sum;
如果一个正整数 $N$ 能够表示为 $X \times (X+1)$ 的形式,这里称它是一个“兄弟数”。例如,输入 $6$,则输出“$6$ 是一个兄弟数”。下面 C++ 代码用来判断 $N$ 是否为一个“兄弟数”,在横线处应填入的代码可从 i)-iv) 中选择,则有几个能完成功能?( )。
int N;
cin >> N;
for(int i = 0; i <= N; i++)
if(___________________)
cout << N << "是一个兄弟数\n";
i) N==i*(i+1) ii) N==i*(i-1) iii) N/(i+1)==i iv) N/(i-1)==i
判 判断题(共 10 题,每题 2 分)
小杨最近开始学习 C++ 编程,老师说 C++ 是一门面向对象的编程语言,也是一门高级语言。( )
在 C++ 中,表达式 10/4 和 10%4 的值相同,都是整数 $2$,说明 / 和 % 可以互相替换。( )
$N$ 是 C++ 程序中的整型变量,则语句 scanf("%d", &N) 能接收形如正整数、负整数和 $0$ 输入,但如果输入含字母或带小数点数,将导致无法执行。 ( )
下面 C++ 代码能够执行,则将输出 $45$。( )
for (int i = 0; i < 10; i++)
Sum += i;
cout << Sum;
在 C++ 代码中整型变量 $X$ 被赋值为 $20.24$,则 cout << (X++, X+1) / 10 执行后输出的是 $2.124$。( )
下面 C++ 代码执行后,最后一次输出是 $10$。( )
for (int i = 1; i < 10; i+=3)
cout << i << endl;
在 C++ 中,break 语句通常与 if 语句配合使用。( )
在 C++ 代码中,不可以将变量命名为 five-star,因为变量名中不可以出现 -(减号)符号。( )
在 C++ 语言中,整型、实数型、字符型、布尔型是不同数据类型,但这四种类型的变量间都可以比较大小。( )
C++ 中,定义变量 int a=5,b=4,c=3,则表达式 (a<b<c) 的值为逻辑假。 ( )
编 编程操作题(共 2 题,共 50 分)
试题名称:小杨购物
时间限制:1.0 s | 内存限制:512.0 MB
题目描述
小杨有 $n$ 元钱用于购物。商品 A 的单价是 $a$ 元,商品 B 的单价是 $b$ 元。小杨想购买相同数量的商品 A 和商品 B。
请你编写程序帮助小杨计算出他最多能够购买多少个商品 A 和商品 B。
输入格式
第一行包含一个正整数 $n$,代表小杨用于购物的金额。
第二行包含一个正整数 $a$,代表商品 A 的单价。
第三行包含一个正整数 $b$,代表商品 B 的单价。
输出格式
输出一行,包含一个整数,代表小杨最多能够购买的商品 A 和商品 B 的数量。
样例输入 #1
12
1
2
样例输出 #1
4
样例输入 #2
13
1
2
样例输出 #2
4
说明/提示
样例 1 解释
对于样例 1,由于需要购买相同数量的两种商品,因此⼩杨最多能够购买 $4$ 件商品 $A$ 和 $4$ 件商品 $B$,共花费 $1 \times 4 + 2 \times 4 = 12$ 元。因此,样例 1 的答案为 $4$。
样例 2 解释
对于样例 1,由于需要购买相同数量的两种商品,因此⼩杨最多能够购买 $4$ 件商品 $A$ 和 $4$ 件商品 $B$,共花费 $1 \times 4 + 2 \times 4 = 12$ 元。因此,样例 1 的答案为 $4$。如果小杨想购买 $5$ 件商品 $A$ 和商品 $B$,则需要花费 $1 \times 5 + 2 \times 5 = 15$ 元,超过了小样的预算 $13$ 元。因此,样例 2 答案为 $4$。
数据规模与约定
对全部的测试数据,保证 $1 \leq n,a,b \leq 10^5$。
试题名称:美丽数字
时间限制:1.0 s | 内存限制:512.0 MB
题目描述
小杨有 $n$ 个正整数,他认为一个正整数是美丽数字当且仅当该正整数是 $9$ 的倍数但不是 $8$ 的倍数。
小杨想请你编写一个程序计算 $n$ 个正整数中美丽数字的数量。
输入格式
第一行包含一个整数 $n$,代表正整数个数。
第二行有 $n$ 个正整数 $a_1, a_2, \dots a_n$。
输出格式
输出一个整数,表示其中美丽数字的数量。
样例输入 #1
3
1 9 72
样例输出 #1
1
说明/提示
样例 1 解释
- $1$ 既不是 $9$ 的倍数也不是 $8$ 的倍数。
- $9$ 是 $9$ 的倍数不是 $8$ 的倍数。
- $72$ 既是 $9$ 的倍数又是 $8$ 的倍数。
数据规模与约定
对全部的测试数据,保证 $1 \leq n, a_i \leq 10^5$。