202503 GESP认证 C++编程 二级真题试卷
剩余时间 --:--:--
单选题 共 15 题
1.

2025年春节有两件轰动全球的事件,一个是DeepSeek横空出世,另一个是贺岁片《哪吒2》票房惊人,入了全球票房榜。下面关于DeepSeek与《哪吒2》的描述成立的是  ( )

2.

对整型变量N,如果它能够同时被35整除,则输出 N是含有至少两个质因数 。如果用流程图来描述处理过程,则输出语句应该在哪种图形框中( )。

3.

下面C++代码执行,其输出是( )

1 int a=3, b = 4;

2 a == b;

3 b == a;

4 cout << a << ' ' << b << endl;

4.

求三色彩球的颜色。有数量无限的红(Red)绿(Green)(Blue)三种彩球排成一行,每组先为5个红色球,随后3个绿色,最后为2个蓝色。每个球都有编号,从左到右依次为1,2,3……。输入整数代表编号,求该编号球的颜色。下面是C++代码是实现,正确说法是( )

1 int N, remainder;
2 cin >> N; 
3 remainder = N % 10; // remainder变量保存余数 
4
5 if((1 <= remainder) && (remainder<= 5)) 
6  cout << "Red"; 
7 else if ((6 <= remainder) && (remainder <= 8)) 
8  cout << "Green"; 
9 else if ((remainder == 9) || (remainder == 0)) 
10  cout << "Blue";



5.

下面C++代码执行后其输出是( )

1 int tnt = 0;
2 for (int i = 0; i < 10;i ++) 
3  if (i % 3) 
4   tnt += 1; 
5  else 
6   tnt += 2; 
7 cout << tnt;

6.

下面C++代码执行后输出是( )

1 int i;
2 for (i = 10; i > 0; i -= 2) 
3  break; 
4 cout << i;


7.

下面C++代码执行后输出是( )。

1 int i; 
2 for (i =0; i < 10; i++){ 
3  if (i % 3 == 0) 
4   continue; 
5  cout << "0" << "#"; 
6 } 
7 if (i >= 10) 
8  cout << "1" << "#";


8.

下面C++代码执行后的输出是( )。

1 int i,j;
2 for (i = 0; i < 5; i++) 
3  for (j = i; j > 0; j -= 1) 
4   printf("%d-",j);

9.

下面C++代码执行后,将输出能被2整除且除以7余数为2的数。下列选项不能实现的是(   )。

1 for (int i = 0; i < 100; i++)
2  if _______________________ 
3   cout << i << " ";
10.

下面C++代码用于求1N之间正整数中含有3的数的个数,比如12332都是符合条件的数。则前后两处横线应填入代码分别是( )。

1 int i,j;
2 int cnt = 0, N; 
3 cout << "请输入正整数N:"; 
4 cin >> N; 
5 for (i = 1; (j=i) < N; i++) 
6  while (j != 0) 
7   if (j % 10 == 3){ 
8    cnt +=1; 
9    __________; 
10   } 
11   else 
12    __________; 
13 cout << cnt << " ";

11.

在数学中N!表示N的阶乘,即1N的乘积,如3!=1*2*3 ,且0!=1。下面的两段C++代码用于求1N的阶乘之和,如N3,则结果是91!+2!+3!的值)。选项中的说法正确的是( )。

1 // 实现1
2 int i,N; 
3 cin >> N; 
4 int tnt = 0, last = 1; 
5 for (i = 1; i < N + 1; i++){ 
6  last *= i; 
7  tnt += last; 
8 } 
9 cout << tnt << endl;

1 // 实现2 
2 int i,N; 
3 cin >> N; 
4 int tnt = 0, tmp; 
5 for (i = 1; i < N + 1; i++){ 
6  tmp = 1; 
7  for (int j = 1; j < i + 1; j++) 
8   tmp *= j; 
9  tnt += tmp; 
10 } 
11 cout << tnt << endl;


12.

哥德巴赫猜想是指大于2的偶数都可以分解为两个质数之和,下面的代码用于验证4-1000之内的偶数能否分 解为两个质数之和。下面C++代码中假设isPrime()是已经定义好用于判断正整数N是否为质数, 返回bool值。对该段代 码,错误的说法是( )。

1 for (i = 4; i < 1000; i += 2)
2  for (j = 2; j < i; j++) 
3   if (isPrime(j) && isPrime(i-j)){ 
4    printf("%d=%d+%d\n", i, j, i-j); 
5    break; 
6   }



13.

已知C++代码和执行后的期望输出如下,相关说法正确的是( )。

1 int i,j;
2 int last, N; 
3
4 cout << "请输入层数N:"; 
5 cin >> N; 
6
7 last = 1; 
8 for (i = 1; i < N; i++){ 
9  for (j = 1; j < i + 1; j++){ // L1 
10   if (last > 9) 
11    last = 1; 
12
13   cout << last << " ";
14   last += 1; 
15  } 
16  printf("\n"); 
17 }

1 请输入层数N:10 
2 1 
3 2 3 
4 4 5 6 
5 7 8 9 1 
6 2 3 4 5 6 
7 7 8 9 1 2 3 
8 4 5 6 7 8 9 1 
9 2 3 4 5 6 7 8 9 
10 1 2 3 4 5 6 7 8 9


14.

C++中,( )最适合填入横线处连续5次正确生成110之间的随机整数?

1 for(int i=0; i<5; i++) 
2  __________________;


15.

C++中,如果ab均为float类型的变量,那么二者如果相差足够小(比如0.000001),就可以视作相等。比如2.23456762.2345677就可以视作相等。下列哪个表达式能用来正确判断“a等于b” ( )

判断题 共 10 题
1.

C++Python都是高级编程语言,它们的每条语句最终都要通过机器指令来完成。(   )

2.

C++代码中,假设N为正整数,则N-N/10*10N%10都将获得N的个位数。( )

3.

C++语句cout<<((10<=N<=12)? "true":"false") 中,假设整型变量N12,则其输出为true 。原因是执行10<=N后其值为truetrue12相比仍然是true( )

4.

C++表达式(sqrt(N)*sqrt(N))==N中的N如果为正整数,则表达式的值为true,相当于开平方后平方是本身。(   )

5.

下面C++执行后将输出3*2=6( )

1 int a=2, b = 3;
2 a=a-b; 
3 b=a+b; 
4 a=b-a; 
5 printf("%d*%d=%d\n", a, b, a*b);

6.

下面C++代码执行后将输出10。( )

1 int i;
2 for (i = 0; i < 10; i++) 
3  continue; 
4 cout << i << endl;

7.

下面C++代码执行后将输出1。( )

1 int i;
2 for (i = 1; i < 10; i++){ 
3  break; 
4  continue; 
5 } 
6 cout << i << endl;

8.

下面的C++代码执行后将输出10"OK"。( )

1 for (int i = 0; i < 5; i++) 
2  for(int j = 0; j < i; j++) 
3   printf("OK\n");


9.

将下面C++代码中的for循环中的i=1调整为i=0的输出结果相同。( )

1 int tnt = 0;
2 for (int i = 1; i < 5; i++) // i=1 
3  tnt += i; 
4 cout << tnt;

10.

下面C++代码执行后将输出0123 。( )

1 for (i = 0; i < 5; i++)
2  for (i = 0; i < i; i++) 
3   continue; 
4  printf("%d\n", i);
问答题 共 2 题
1.

3.1 编程题 1

时间限制:1.0 s

内存限制:512.0 MB

3.1.1 等差矩阵

3.1.2 题目描述

A想构造一个nm列的矩阵,使得矩阵的每一行与每一列均是等差数列。小A发现,在矩阵的第i行第j列填入整数i×j,得到的矩阵能满足要求。你能帮小A输出这个矩阵吗?

3.1.3 输入格式

一行,两个正整数n,m

3.1.4 输出格式

n行,每行m个由空格分割的整数,表示小A需要构造的矩阵。

3.1.5 样例

3.1.5.1 输入样例 1

3.1.5.2 输出样例 1

3.1.6 数据范围

对于所有测试点,保证1n501m50。   

2.

3.2 编程题 2

试题名称:时间跨越

时间限制:1.0 s

内存限制:512.0 MB

3.2.8 题面描述

假设现在是ymdh时而k小时后是y'年m'月d'日 h'时,对于给定的y,m,d,h,k,小杨想请你帮他计算出对应的y,m,d, h'是多少。

3.2.9 输入格式

输入包含五行,每行一个正整数,分别代表y,m,d,h,k

3.2.10 输出格式

输出四个正整数,代表y,m,d, h'。

3.2.11 样例

3.2.12 数据范围

对于全部数据,保证有2000y3000,1m12,1d31,0h23,1k24。数据保证为合法时间。

3.2.13 提示

闰年判断规则

普通闰年:年份能被4整除,但不能被100整除。

世纪闰年:年份能被400整除。

满足以上任意一条规则的年份就是闰年,否则是平年。

C++ 编辑器
输入
输出