内容正文:
题号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
答案 A D D B C D D B C D A D C D B
C++ 一级
2024 年 09 ⽉
1 单选题(每题 2 分,共 30 分)
第 1 题 据有关资料,⼭东⼤学于1972年研制成功DJL-1计算机,并于1973年投⼊运⾏,其综合性能居当时全国第三
位。DJL-1计算机运算控制部分所使⽤的磁⼼存储元件由磁⼼颗粒组成,设计存贮周期为2μs(微秒)。那么该磁⼼
存储元件相当于现代计算机的( )。
A. 内存
B. 磁盘
C. CPU
D. 显⽰器
第 2 题 C++程序执⾏出现错误,不太常见的调试⼿段是( )。
A. 阅读源代码
B. 单步调试
C. 输出执⾏中间结果
D. 跟踪汇编码
第 3 题 在C++中,下列表达式错误的是( )。
A. cout << "Hello,GESP!" << endl;
B. cout << 'Hello,GESP!' << endl;
C. cout << """Hello,GESP!""" << endl;
D. cout << "Hello,GESP!' << endl;
第 4 题 C++表达式 10 - 3 * 2 的值是( )。
A. 14
B. 4
C. 1
D. 0
第 5 题 在C++中,假设N为正整数10,则 cout <<(N / 3 + N % 3) 将输出( )。
A. 6
B. 4.3
C. 4
D. 2
第 6 题 C++语句 printf("6%2={%d}", 6%2) 执⾏后的输出是( )。
A. "6%2={6%2}"
B. 6%2={6%2}
C. 0=0
D. 6%2={0}
第 7 题 成功执⾏下⾯的C++代码,先后从键盘上输⼊5回车和2回车,输出是( )。
A. 将输出整数7
B. 将输出52,5和2之间没有空格
C. 将输出5和2,5和2之间有空格
D. 执⾏结果不确定,因为代码段没有显⽰a和b的数据类型
第 8 题 下⾯C++代码执⾏后输出是( )。
A. 55
B. 45
C. 10
D. 9
第 9 题 下⾯C++代码执⾏后输出的是( )。
A. 55
cin >> a;
cin >> b;
cout << a + b;
1
2
3
int Sum = 0;
for (int i = 0; i < 10; i++)
Sum += i;
cout << Sum;
1
2
3
4
int N = 0;
for (int i = 0; i < 10; i++)
N += 1;
cout << N;
1
2
3
4
B. 45
C. 10
D. 9
第 10 题 下⾯C++代码执⾏后输出的是( )。
A. 5
B. 4
C. 2
D. 0
第 11 题 下⾯C++代码执⾏时输⼊ 14+7 后,正确的输出是( )。
A. 第5⾏代码2, 0
B. 第5⾏代码1, 0
C. 第7⾏代码 1
D. 第7⾏代码 0
第 12 题 执⾏下⾯C++代码后得到的输出是( )。
A. 190 20
B. 95 10
C. 90 19
D. 90 10
int N = 0;
for (int i = 1; i < 10; i +=2){
if (i % 2 == 1)
continue;
N += 1;
}
cout << N;
1
2
3
4
5
6
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);
1
2
3
4
5
6
7
int count= 0, i, s;
for (i = 0, s = 0 ; i < 20; i++, count++)
s += i++;
cout << s << " " << count;
1
2
3
4
第 13 题 下⾯C++代码拟⽤于计算整数N的位数,⽐如对 123 则输出 123是3位整数 ,但代码中可能存在bug。下⾯
有关描述正确的是( )。
A. 变量N0占⽤额外空间,可以去掉
B. 代码对所有整数都能计算出正确位数
C. L11标记的代码⾏简单修改后可以对正整数给出正确输出
D. L11标记的代码⾏的输出格式有误
第 14 题 下⾯的C++代码⽤于求连续输⼊的若⼲正五位数的百位数之和。例如输⼊ 32488 25731 41232 0 ,则输
出 3个正五位数的百位数之和为13 。有关描述错误的是( )。
A. 执⾏代码时如果输⼊ 23221 23453 12345 11111 0 ,则 后⼀⾏Sum的值是 10
B. 执⾏代码时如果输⼊ 2322 2345 1234 1111 0 ,程序也能运⾏
C. 将代码标记为 L6 那⾏改为 M = (M % 1000 / 100); ,同样能实现题⽬要求
D. 将代码标记为 L6 那⾏改为 M = (M % 100 / 10); ,同样能实现题⽬要求
第 15 题 如果⼀个正整数N能够表⽰为X*(X+1)的形式,这⾥称它是⼀个“兄弟数”。例如,输⼊6,则输出“6是⼀个兄
弟数”。下⾯C++代码⽤来判断N是否为⼀个“兄弟数”,在横线处应填⼊的代码可从i)-iv)中选择,则有⼏个能完成功
能?( )。
int N, N0, rc=0;
cout << "请输入整数:";
cin >> N;
N0 = N;
while (N){
rc++;
N /= 10;
}
printf("%d是%d位整数
", N, rc); // L11
1
2
3
4
5
6
7
8
9
10
11
int M, Sum=0, rc=0;
cout << "请输入正整数:";
cin >> M;
while (M){
M = (M / 100 % 10); // L6
Sum += M;
rc++;
cin >> M;
}
cout << rc << "个正五位数的百位数之和为" << Sum;
1
2
3
4
5
6
7
8
9
10
11
12
题号 1 2 3 4 5 6 7 8 9 10
答案
A. 1
B. 2
C. 3
D. 4
2 判断题(每题 2 分,共 20 分)
第 1 题 ⼩杨 近开始学习C++编程,⽼师说C++是⼀门⾯向对象的编程语⾔,也是⼀门⾼级语⾔。( )
第 2 题 在C++中,表达式 10/4 和 10%4 的值相同,都是整数2,说明 / 和 % 可以互相替换。( )
第 3 题 N是C++程序中的整型变量,则语句 scanf("%d", &N) 能接收形如正整数、负整数和0输⼊,但如果输⼊含
字母或带⼩数点数,将导致⽆法执⾏。 ( )
第 4 题 下⾯C++代码能够执⾏,则将输出45。( )
第 5 题 在C++代码中整型变量X被赋值为20.24,则 cout << (X++, X+1) / 10 执⾏后输出的是 2.124 。( )
第 6 题 下⾯C++代码执⾏后, 后⼀次输出是10。( )
第 7 题 在C++, break 语句通常与if语句配合使⽤。( )
第 8 题 在C++代码中,不可以将变量命名为 five-star ,因为变量名中不可以出现 - (减号)符号。( )
第 9 题 在C++语⾔中,整型、实数型、字符型、布尔型是不同数据类型,但这四种类型的变量间都可以⽐较⼤⼩。
( )
第 10 题 C++中,定义变量 int a=5,b=4,c=3 ,则表达式 (a<b<c) 的值为逻辑假。 ( )
int N;
cin >> N;
for(int i = 0; i <= N; i++)
if(___________________)
cout << N << "是一个兄弟数
";
i) N==i*(i+1) ii) N==i*(i-1) iii) N/(i+1)==i iv) N/(i-1)==i
1
2
3
4
5
6
7
8
for (int i = 0; i < 10; i++)
Sum += i;
cout << Sum;
1
2
3
for (int i = 1; i < 10; i+=3)
cout << i << endl;
1
2
3 编程题(每题 25 分,共 50 分)
3.1 编程题 1
试题名称:⼩杨购物
时间限制:1.0 s
内存限制:512.0 MB
3.1.1 题面描述
⼩杨有 元钱⽤于购物。商品 的单价是 元,商品 的单价是 元。⼩杨想购买 相同数量 的商品 和商品 。
请你编写程序帮⼩杨计算出他最多能够购买多少个商品 和商品 。
3.1.2 输入格式
第⼀⾏包含⼀个正整数 ,代表⼩杨⽤于购物的钱的⾦额。
第⼆⾏包含⼀个正整数 ,代表商品 的单价。
第三⾏包含⼀个正整数 ,代表商品 的单价。
3.1.3 输出格式
输出⼀⾏,包含⼀个整数,代表⼩杨最多能够购买的商品 和商品 的数量。
3.1.4 样例1
对于样例1,由于需要购买相同数量的两种商品,因此⼩杨 多能够购买 件商品 和 件商品 ,共花费
元。因此,样例1的答案为 。
3.1.5 样例2
对于样例2,由于需要购买相同数量的两种商品,因此⼩杨 多能够购买 件商品 和 件商品 ,共花费
元。如果⼩杨想购买 件商品 和 件商品 ,则需花费 元,超过了⼩杨的
预算 元。因此,样例2的答案为 。
对于全部数据,保证有 。
12
1
2
1
2
3
41
13
1
2
1
2
3
41
3.1.6 参考程序
3.2 编程题 2
试题名称:美丽数字
时间限制:1.0 s
内存限制:512.0 MB
3.2.1 题面描述
⼩杨有 个正整数,他认为⼀个正整数是美丽数字当且仅当该正整数是 的倍数但不是 的倍数。
⼩杨想请你编写⼀个程序计算 个正整数中美丽数字的数量。
3.2.2 输入格式
第⼀⾏包含⼀个正整数 ,代表正整数个数。
第⼆⾏包含 个正整数 。
3.2.3 输出格式
输出⼀个整数,代表其中美丽数字的数量。
3.2.4 样例1
对于样例1:
既不是 的倍数,也不是 的倍数;
是 的倍数,不是 的倍数;
既是 的倍数,也是 的倍数;
因此答案为 。
对于全部数据,保证有 。
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,a,b;
cin>>n>>a>>b;
cout<<n/(a+b)<<"
";
}
1
2
3
4
5
6
7
3
1
9
72
1
2
3
4
11
3.2.5 参考程序
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int ans=0;
for(int i=1;i<=n;i++){
int x;
cin>>x;
if(x%9==0&&x%8!=0)ans++;
}
cout<<ans<<"
";
}
1
2
3
4
5
6
7
8
9
10
11
12
13