C++2024 年一级
1 单选题 (每题 2 分,共 30 分)
12 ⽉
题号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
答案 C C D B B D B C C C D C D B D
第 1 题 2024年10⽉8⽇ ,诺贝尔物理学奖“意外地”颁给了两位计算机科学家约翰·霍普菲尔德(John J. Hopfield)和杰
弗⾥·⾟顿(Geoffrey E. Hinton) 。这两位科学家的主要研究⽅向是( )。
口 A. 天体物理
口 B. 流体⼒学
口 C. ⼈⼯智能
口 D. 量⼦理论
第 2 题 下列软件中是操作系统的是( )。
口 A. ⾼德地图
口 B. 腾讯会议
口 C. 纯⾎鸿蒙
口 D. ⾦⼭永中
第 3 题 有关下列C++代码的说法 ,正确的是( )。
1
printf("Hello,GESP!");
口 A. 配对双引号内 ,不可以有汉字
口 B. 配对双引号可以相应改变为英⽂单引号⽽输出效果不变
口 C. 配对双引号可以相应改变为三个连续英⽂单引号⽽输出效果不变
口
D. 配对双引号可以相应改变为三个连续英⽂双引号⽽输出效果不变
第 4 题 C++表达式 12 - 3 * 2 && 2 的值是(
)。
口 A. 0
口 B. 1
口 C. 6
口 D. 9第 5 题 在C++中 ,假设N为正整数2 ,则 cout << (N / 3 + N % 3) 将输出(
)。
口 A. 0
口 B. 2
口 C. 3
口 D. 4
第 6 题 C++语句 cout << 7%3 << ' '<< "7%3"<< ' ' << "7%3={7%3}" 执⾏后的输出是( )。
口 A. 1 1 1=1
口 B. 1 7%3 1=1
口 C. 1 7%3 7%3= 1
口 D. 1 7%3 7%3={7%3}
第 7 题 下⾯C++代码执⾏后 ,求出⼏天后星期⼏ 。如果星期⽇则输出“星期天”否则输出形如“星期1” 。横线上应填⼊
的代码是( )。
int N, nowDay, afterDays;
cout << "今天星期几? " <<endl;
cin >> nowDay;
cout << "求几天后星期几? "<< endl;
cin >>afterDays;
N = nowDay+afterDays;
if(
)
printf("星期天");
else
printf("星期%d", N%7);
口 A. N % 7 != 0
口 B. N % 7 == 0
w
C. N == 0
口 D. N % 7
第 8 题 下⾯C++代码执⾏后输出是( )。
1
2
3
4
int N=0,i;
for (i = 1; i < 10; i++)
N += 1;
cout << (N + i);
口 A. 54
口 B. 20
口 C. 19
口 D. 18第 9 题 下⾯C++代码执⾏后输出的是( )。
1
2
3
4
int tnt = 0;
for (i = 0; i < 100; i++)
tnt += i % 10;
cout << tnt;
口 A. 4950
口 B. 5050
口 C. 450
口 D. 100
第 10 题 下⾯C++代码执⾏后输出的是( )。
1
2
3
4
5
6
7
8
9
10
11
int N=0,i;
int tnt = 0;
for (i = 5; i < 100; i+=5){
if (i % 2 == 0)
continue;
tnt += 1;
if (i >= 50)
break;
}
cout << tnt;
口 A. 10
口 B. 9
口 C. 6
口 D. 5
第 11 题 下⾯的程序⽤于判断输⼊的整数N是否为能被3整除的偶数 ,横线处应填写代码是(
)。
1
2
3
4
5
6
7
8
9
10
int N;
cin >> N;
if(
)
cout << "能被3整除的偶数" << endl;
else
cout << "其他情形" << endl;
cout << endl;
口 A.
口 B.
口 C.
口 D.
(N%2)&&(N%3)
(N%2==0)&&(N%3)
(N%2)&&(N%3==0)
(N%2==0)&&(N%3==0)第 12 题 下⾯C++代码执⾏后的输出是( )。
1
2
3
4
5
6
7
8
int cnt;
cnt = 0;
for(int i = 1; i < 10; i++)
cnt += i++;
cout << cnt;
cout << endl;
口 A. 54
口 B. 45
口 C. 25
口 D. 10
第 13 题 int类型变量a的值是⼀个正⽅形的边长 ,如下图中的正⽅形的四条边长都为4 ,则下列哪个语句执⾏后能够
使得正⽅形的周长(四条边长的和)增加4?( )。
1 + + + + +
2
+
+
3 +
+
4
+
+
5
+ + + + +
口 A. a*4;
口 B. a+4;
C. a+1;
D. ++a;
第 14 题 C++表达式 (6 > 2) * 2 的值是(
)。
口 A. 1
口 B. 2
口 C. true
口 D. truetrue
第 15 题 下⾯C++代码⽤于判断输⼊的整数是否为位增数,即从⾸位到个位逐渐增⼤ ,是则输出1 。如123是⼀个位增
数 。下⾯横线处应填⼊的是(
)。
1
int N;
2
int n1,n2;
3
4
cin >> N;
5
6
;
7 while(N){
8
n1 = N % 10;9
10
11
12
13
14
15
16
17
18
19
if(n1 >= n2){
cout << 0;
return 1;
}
n2 = n1, N /=10;
}
cout << 1;
cout << endl;
return 0;
口 A. n2 = N%10
口 B. N /= 10
C. n2 = N/10, N %= 10
口 D. n2 = N%10, N /= 10
2
判断题 (每题 2 分,共 20 分)
题号 1 2 3 4 5 6 7 8 9 10
答案
第 1 题 在Windows的资源管理器中为已有⽂件A建⽴副本的操作是 Ctrl+C ,然后 Ctrl+V 。( )
第 2 题 在C++中 ,表达式 8/3 和 8%3 的值相同。(
)
第 3 题 X是C++语⾔的基本类型变量 ,则语句 cin>>X, cout <<X 能接收键盘输⼊并原样输出。 (
)
第 4 题 下⾯C++代码执⾏后将输出10。 ( )
1
2
3
4
5
6
int N = 0;
for (int i = 0; i < 10; i++){
continue;
N += 1;
}
cout << N;
第 5 题 下⾯C++代码执⾏后将输出100 。 ( )
1
2
3
4
int i;
for (i = 0; i <= 100; i++)
continue;
cout << i;
第 6 题 下⾯C++代码被执⾏时 ,将执⾏三次输出(即标记⾏L2将被执⾏⼀次) 。 ( )
1
2
for (int i = 0; i < 10; i+=3)
cout << i; //L2
第 7 题 C++语句 cout << (3,2) 执⾏后 ,将输出3和2 ,且3和2之间有逗号间隔。 ( )
第 8 题 在C++代码中, studentName 、 student_name 以及 sStudentName 都是合法的变量名称。 ( )第 9 题 在C++中 ,对浮点变量 float f ,则语句 cin >> f; cout << (f<1); 在输⼊是 2e-1 时 ,输出是0 。 (
)
第 10 题 在C++的循环体内部 ,如果 break 和 continue 语句连续在⼀起 ,那么作⽤抵消 ,可以顺利执⾏下⼀次
循环。 ( )
3
编程题 (每题 25 分,共 50 分)
3.1 编程题 1
. 试题名称:温度转换
. 时间限制: 1.0 s
. 内存限制:512.0 MB
3.1.1
题目描述
⼩杨最近学习了开尔⽂温度、摄⽒温度和华⽒温度的转换 。令符号 K 表⽰开尔⽂温度 ,符号 C 表⽰摄⽒温度 ,符号
F 表⽰华⽒温度 ,这三者的转换公⽰如下:
C
K
273. 15
F = C'X 1.8 + 32
现在⼩杨想编写⼀个程序计算某⼀开尔⽂温度对应的摄⽒温度和华⽒温度 ,你能帮帮他吗?
3.1.2
输入格式
⼀⾏ ,⼀个实数
K
,表⽰开尔⽂温度。
3.1.3
输出格式
⼀⾏ ,若输⼊开尔⽂温度对应的华⽒温度⾼于 212 ,输出 Temperature is too high! ;
否则,输出两个由空格分隔的实数 C和F ,分别表⽰摄⽒温度和华⽒度 ,保留两位⼩数。
3.1.4
3.1.5
1
412.00
3.1.6 输出样例 1
1
Temperature is too high!
3.1.7 输入样例 2
1
173.56
3.1.8 输出样例 2
1
-99.59 -147.26
样例
输入样例 13.1.9
数据范围
0 < K < 105
3.1.10
参考程序
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <cstdio>
using namespace std;
int main() {
double K; scanf("%lf", &K);
double C = K - 273.15;
double F = 32 + C * 1.8;
if (F > 212)
printf("Temperature is too high!\n");
else
printf("%.2f %.2f\n", C, F);
return 0;
}
3.2 编程题 2
. 试题名称:奇数和偶数
. 时间限制: 1.0 s
. 内存限制:512.0 MB
3.2.1
题面描述
⼩杨有 n 个正整数 ,他想知道其中的奇数有多少个 ,偶数有多少个。
3.2.2
输入格式
第⼀⾏包含⼀个正整数 n ,代表正整数个数。
之后 n ⾏ ,每⾏包含⼀个正整数。
3.2.3
输出格式
输出两个正整数(⽤英⽂空格间隔) ,代表奇数的个数和偶数的个数 。如奇数或偶数的个数为0 ,则对应输出0。
3.2.4 样例
1
2
3
4
5
6
1
5
1
2
3
4
5
3 2
对于全部数据 ,保证有 1 ≤ n ≤ 105 且正整数⼤⼩不超过 105。3.2.5
参考程序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
int a=0,b=0;
cin>>n;
for(int i=1;i<=n;i++){
int x;
cin>>x;
if(x%2 !=0)a++;
else b++;
}
cout<<a<<" "<<b<<"\n";
}