GESP 2024年06月认证 C++ 1级真题
1 单选题(每题 2 分,共 30 分)
👉 点击查看答案
题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
答案 | A | D | B | C | B | C | B | C | C | C | C | D | C | C | B |
第 1 题 在 C++ 中,下列不可做变量的是( )。
- A. five-Star
- B. five_star
- C. fiveStar
- D. _fiveStar
第 2 题 C++ 表达式 3 - 3 * 3 / 5 的值是( )。
- A. -1.2
- B. 1
- C. 0
- D. 2
第 3 题 在 C++ 中,假设 N 为正整数,则表达式 cout << (N % 3 + N % 7) 可能输出的最大值是( )。
- A. 6
- B. 8
- C. 9
- D. 10
第 4 题 C++ 语句 printf(“5%%2=(%d)\n”,5 % 2) 执行后的输出是( )。
- A. 1={1}
- B. 5%2={5%2}
- C. 5%2={1}
- D. 5 ={1}
第 5 题 对整型变量 i,执行 C++ 语句 cin >> i, cout << i 时如果输入 5+2,下述说法正确的是( )。
- A. 将输出整数 7
- B. 将输出 5
- C. 语句执行将报错,输入表达式不能作为输出的参数
- D. 语句能执行,但输出内容不确定
第6题 下面C++代码执行后的输出是( )。
float a;
a = 101.101;
a = 101;
printf("a+1=(%.0f)",a+1);
- A. 102={102}
- B. a+1={a+1}
- C. a+1={102}
- D. a先被赋值为浮点数,后被赋值为整数,执行将报错
第7题 表达式 9/4 - 6 % (6 - 2) * 10 的值是( )。
- A. -17.75
- B. -18
- C. -14
- D. -12.75
第8题 下面C++代码执行时输入10后,正确的输出是( )。
int N;
cout << "请输入正整数: ";
cin >> N;
if (N % 3)
printf("第5行代码%2d", N % 3);
else
printf("第6行代码%2d", N % 3);
- A. 第5行代码1
- B. 第6行代码1
- C. 第5行代码 1
- D. 第6行代码 1
第9题 下面C++代码执行后输出是( )。
int Sum = 0, i = 0;
for ( ; i < 10; )
Sum += i++;
cout << i << " " << Sum;
- A. 9 45
- B. 10 55
- C. 10 45
- D. 11 55
第10题 下面C++代码用于判断N是否为质数(只能被1和它本身整除的正整数)。程序执行后,下面有关描述正确的是( )。
int N;
cout << "请输入整数: ";
cin >> N;
bool Flag = false;
if (N >= 2){
Flag = true;
for (int i=2; i < N; i++)
if (N % i == 0){
Flag = false;
break;
}
}
if(Flag)
cout << "是质数";
else
cout << "不是质数";
- A. 如果输入负整数,可能输出“是质数”
- B. 如果输入2,将输出“不是质数”,因为此时循环不起作用
- C. 如果输入2,将输出“是质数”,即使此时循环没有被执行
- D. 如果将if (N >= 2)改为if (N > 2)将能正确判断N是否质数
第11题 下面的C++代码用于求1~N之间所有奇数之和,其中N为正整数,如果N为奇数,则求和时包括N。有关描述错误的是( )。
int N;
cout << "请输入正整数: ";
cin >> N;
int i = 1, Sum = 0;
while (i <= N){
if (i % 2 == 1)
Sum += i;
i += 1;
}
cout << i << " " << Sum;
- A. 执行代码时如果输入10,则最后一行输出将是11 25
- B. 执行代码时如果输入5,则最后一行输出将是6 9
- C. 将 i += 1 移到 if (i % 2 == 1) 前一行,同样能实现题目要求
- D. 删除 if (i % 2 == 1),并将 i += 1 改为 i += 2,同样可以实现题目要求
第12题 如果一个整数N能够表示为X*X的形式,那么它就是一个完全平方数,下面C++代码用于完成判断N是否为一个完全平方数,在横线处应填入的代码是( )。
int N;
cin >> N;
for(int i = 0; i <= N; i++)
if(______)
cout << N << "是一个完全平方数\n";
- A. i == N*N
- B. i*10 == N
- C. i+i == N
- D. i*i == N
第13题 执行下面C++代码后输出的cnt的值是( )。
int cnt=0;
for(int i = 0; i*i < 64; i+=2)
cnt++;
cout << cnt;
- A. 8
- B. 7
- C. 4
- D. 1
第14题 小杨父母带他到某培训机构给他报名参加CCF组织的GESP认证考试的第1级,那他可以选择的话让语言有几种?( )
- A. 1
- B. 2
- C. 3
- D. 4
第15题 ENIAC于1946年投入运行,是世界上第一台真正意义上的计算机,它的主要部件都是( )组成的。
- A. 感应线圈
- B. 电子管
- C. 晶体管
- D. 集成电路
2 判断题(每题2分,共20分)
👉 点击查看答案
题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
答案 | × | × | √ | × | √ | √ | × | × | × | √ |
第1题 在C++代码中变量X被赋值为16.44,则cout << X / 10执行后输出的一定是1。( )
第2题 C++的整型变量N被赋值为10,则语句cout << N / 4 << ”->” << N % 4 << ”->” << N / 4.0执行后输出是2->2->2.0。( )
第3题 定义C++的float型变量N,则语句cin >> N; cout << int(float(N))可以输入正负整数和浮点数,并将其转换为整数后输出。( )
第4题 C++的整型N被赋值为5,语句printf(“%d*2”,N)执行后将输出10。( )
第5题 在C++中,break语句用于终止当前层次的循环,循环可以是for循环,也可以是while循环。( )
第6题 在C++,continue语句通常与if语句配合使用。( )
第7题 在C++代码中,不可以将变量命名为printf,因为printf是C++语言的关键字。( )
第8题 在C++中有整型变量N,则表达式N += 8/4/2相当于N += 8/(4/2)。( )
第9题 C++中定义变量int N,则表达式(!!N)的值也是N的值。( )
第10题 GESP测试是对认证者的编程能力进行等级认证,同一级别的能力基本上与编程语言无关。( )
3 编程题(每题25分,共50分)
3.1 编程题1
- 试题名称: 休息时间
- 时间限制: 1.0 s
- 内存限制: 512.0 MB
3.1.1 题面描述
小杨计划在某个时刻开始学习,并决定在学习k秒后开始休息。
小杨想知道自己开始休息的时刻是多少。
3.1.2 输入格式
前三行每行包含一个整数,分别表示小杨开始学习时刻的时间h、分m、秒s(h, m, s的值符合1 ≤ h ≤ 12, 0 ≤ m ≤ 59, 0 ≤ s ≤ 59)。
第四行包含一个整数k,表示小杨学习的总秒数(注:k的值符合1 ≤ k ≤ 3600)。
3.1.3 输出格式
输出一行,包含三个整数,分别表示小杨开始休息时刻的时、分、秒。
3.1.4 样例1
12
59
59
10
13 0 9
样例解释
小杨在时刻12:59:59开始学习,学习10秒后开始休息,即在13:0:9时刻开始休息。
3.1.5 数据范围
对于全部数据,保证有 ( 1 \leq h \leq 12, 0 \leq m \leq 59, 0 \leq s \leq 59, 1 \leq k \leq 3600 )。
3.1.6 参考程序
#include<bits/stdc++.h>
using namespace std;
int main(){
int h,m,s;
cin>>h>>m>>s;
int k;
cin>>k;
int now=h*60*60+m*60+s;
now+=k;
int hh = now/3600;
now %= 3600;
int mm = now/60;
now %= 60;
cout<<hh<<" "<<mm<<" "<<now<<"\n";
}
3.2 编程题2
- 试题名称: 立方数
- 时间限制: 1.0 s
- 内存限制: 512.0 MB
3.2.1 题面描述
小杨有一个正整数 ( n ),他想知道 ( n ) 是否是一个立方数。
一个正整数 ( n ) 是立方数当且仅当存在一个正整数 ( x ) 满足 ( x * x * x = n )。
3.2.2 输入格式
第一行包含一个正整数 ( n )。
3.2.3 输出格式
如果正整数 ( n ) 是一个立方数,输出 Yes,否则输出 No。
3.2.4 样例1
8
Yes
样例解释
对于样例1,存在正整数 2 使得 ( 8 = 2 \times 2 \times 2 ),因此 8 为立方数。
3.2.5 样例2
9
No
样例解释
对于样例2,不存在满足条件的正整数,因此 9 不为立方数。
3.2.6 数据范围
对于全部数据,保证有 ( 1 \leq n \leq 1000 )。
3.2.7 参考程序
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int fl=0;
for(int i=1;i<=n;i++) {
if(i*i*i==n){
fl=i;
break;
}
}
if(fl)cout<<"Yes\n";
else cout<<"No\n";
}