#G2692. [GESP二级2609] 二级理论

一、单选题(每题 2 分,共 30 分)

第 1 题 第二届世界人形机器人运动会开幕式上,机器人方阵通过控制程序来完成整场表演。表演前,工程师们使用集成开发环境(IDE)编写并调试方阵的控制程序。下列关于IDE 功能的描述,错误的是()。

{{ select(1) }}

  • 可以提供代码自动补全,提高编程效率
  • 可以提供辅助信息,帮助排查程序逻辑错误
  • 可以直接控制机器人电机转动
  • 支持语法高亮,使代码更易阅读

第 2 题 计算机 CPU 中的高速缓冲存储器(Cache)主要为提升系统性能而设计。下列关于 Cache 的说法中正确的是()。

{{ select(2) }}

  • Cache 的容量比主存大,速度比主存快
  • Cache 通常用于暂存 CPU 频繁访问的数据
  • Cache 中的数据断电后不会丢失,属于非易失性存储器
  • Cache 的访问速度比 CPU 寄存器还要快

第 3 题 执行如下C++代码,其输出是()。

1 cout << (3 == 3.0);

{{ select(3) }}

  • 1
  • 1.0
  • 0
  • -1

第 4 题 执行如下C++ 代码,其输出是()。

1 cout << (bool(5) + bool(-5) + bool(5.0));

{{ select(4) }}

  • 0
  • 1
  • 2
  • 3

第 5 题 判断年份 N 是否为闰年的规则是:能被 4 整除但不能被 100 整除,或者能被 400 整除。以下 C++表达式中,能正确判断 N 是否为闰年的是()。

{{ select(5) }}

  • (N % 4 == 0 && N % 100 != 0) || (N % 400 == 0)
  • N % 4 == 0 && N % 100 == 0 || N % 400 == 0
  • (N / 4 == 0 && N / 100 != 0) || (N / 400 == 0)
  • (N % 4 == 0 && N % 100 != 0) && (N % 400 == 0)

第 6 题 执行如下C++ 代码,其输出是()。

1   int tot, i;
2   tot = 0;
3   for (i = 0; i < 10; i++)
4       if (i)
5           tot += 1;
6   cout << tot;

{{ select(6) }}

  • 0
  • 8
  • 9
  • 10

第 7 题 执行如下 C++ 代码,当输入 4 时,其输出是()。

1   int n, tot, i, j;
2   cin >> n;
3   tot = 0;
4   for (i = 1; i < n; i++)
5       for (j = 1; j < i; j++)
6           tot += 1;
7   cout << tot ;

{{ select(7) }}

  • 1
  • 3
  • 6
  • 10

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

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

{{ select(8) }}

  • 12
  • 18
  • 22
  • 27

第 9 题 下面的C++代码之后的输出是()。

1   int tot = 0, i;
2   for (i = -5; i < 5; i++)
3       if (not(i % 3 != 0))
4           tot += 1;
5   cout << tot;

{{ select(9) }}

  • 2
  • 3
  • 7
  • 9

第 10 题 有关如下C++代码描述,变量都是整型,错误的是()。

1   int n, limit, i;
2   cout << "请输入一个正整数: ";
3   cin >> n;
4   if (n <= 1)
5   	printf("%d非素数", n);
6   else if (n == 2)
7   	printf("2是素数");
8   else {
9   	limit = sqrt(n) + 1;
10  	for (i = 2; i < limit; i++)
11  		if (n % i == 0) {
12  			printf("%d非素数", n);
13  			break;
14  		}
15  	if (i >= limit)
16  		printf("%d是素数", n);
17  }

{{ select(10) }}

  • n <= 1 条件用于判断输入 0、1 以及负数时的情况,不能省略。
  • n == 2 条件及其相关代码省略,程序的输出结果没有区别。
  • break 语句不可以省略,否则非素数还将执行最后一行的语句。
  • limit = sqrt(n) + 1 语句中的 1 可以修改为其他大于等于 1 的正整数,执行结果不会有错误,但循环次数增多,效率有所影响。

第 11 题 执行以下C++代码后,最终的输出结果是()。

1   int total, i, j;
2   total = 0 ;
3   i = 1;
4   while (i <= 3) {
5   	for (j = 1; j < i + 1; j++)
6   		total += i * j;
7   	i += 1;
8   }
9   cout << total;

{{ select(11) }}

  • 9
  • 11
  • 23
  • 25

第 12 题 下面C++代码执行后其输出是()。

1   int count, i, j;
2   count = 0;
3   for (i = 1; i < 4; i++)
4   	for (j = 0; j < i; j++) {
5   		if (j % 3 == 0)
6   			continue;
7   		count += 1;
8   		if (i * j >= 2)
9   			break;
10  	}
11  printf("%d %d %d ", i, j, count);

{{ select(12) }}

  • 2 3 2
  • 3 0 2
  • 4 1 2
  • 4 2 3

第 13 题 如下的C++代码执行时输入 12 将输出如下数字图形。注意:最后一行之前没有空格。横线处应填入的代码是()。

1              0
2             12
3            345
4           6789
5          01234
6         567890
7        1234567
8       89012345
9      678901234
10    5678901234
11   56789012345
12  678901234567
1   int line, i, j, k;
2
3   i = 0;
4   cout << "请输入行数:";
5   cin >> line;
6   for (j = 0; j < line; j++) {
7   	for (k = 0; k <_____; k++) // L1
8   		cout << " ";
9   	for (k = 0; k < j + 1; k++) {
10  		cout << i;
11  		i += 1;
12  		if (i >= 10)
13  			i = 0 ;
14  	}
15  	cout << endl;
16  }

{{ select(13) }}

  • line - j - 1
  • line - j
  • line
  • line + 1

第 14 题 小北的身高是 1.65 米。班上有 n 个小朋友,小北想和身高最接近自己的人交朋友。如果有多个小朋友与小北的身高差相同,小北想和其中身高较矮的第一个小朋友做朋友。横线处应该填入的是()。

1   int n, i;
2   float target, h, best_height, min_diff, diff;
3
4   cout << "请输入小朋友的人数: ";
5   cin >> n;
6   target = 1.65;
7   best_height = 0.0;
8   min_diff = 100.0;
9
10  for (i = 0; i < n; i++) {
11  	cout << "请输入第 " << i << " 个小朋友的身高: ";
12  	cin >> h;
13  	diff = abs(h - target);
14  	
15  	if (__________) { // L1
16  		min_diff = diff;
17  		best_height = h;
18  	}
19  }
20  cout << "小北的朋友身高为: " << best_height;

{{ select(14) }}

  • diff < min_diff || (diff == min_diff && h < best_height)
  • diff <= min_diff && h < best_height
  • diff < min_diff && h < best_height
  • diff < min_diff || h < best_height

第 15 题 小北的身高是 1.65 米。班上有n 个小朋友,小北想和身高最接近自己的人交朋友。如果有多个小朋友与小北的身高差相同,小北想和其中身高较矮的第一个小朋友做朋友。横线处应该填入的是()。

1   int n, i;
2   float target, h , best_height, min_diff, diff;
3
4   cout << "请输入小朋友的人数: ";
5   cin >> n;
6   target = 1.65;
7   best_height = 0.0;
8   min_diff = 100.0;
9
10  for (i = 0; i < n; i++) {
11  	cout << "请输入第 " << (i + 1) << " 个小朋友的身高: ";
12  	cin >> h;
13	
14  	if (h > target)
15  		diff = h - target;
16  	else
17  		diff = target - h;
18	
19  	if (diff < min_diff) {
20  		min_diff = diff;
21  		best_height = h;
22  	} else if (diff == min_diff) {
23  		__________________
24  		__________________
25  	}
26  }
27
28  cout << "小北的朋友身高为:" << best_height;

{{ select(15) }}

  • 1   if (h < best_height)
    2       best_height = h;
    
  • 1   if (h > best_height)
    2       best_height = h;
    
  • 1   if (h > target)
    2       best_height = h;
    
  • 1   if (h >= best_height)
    2       best_height = h ;
    

二、判断题(每题 2 分,共 20 分)

第 16 题 C++ 程序执行 cin 或 scanf 语句时通常是使用键盘等输入设备来输入某个变量的值。

{{ select(16) }}

第 17 题 执行 C++ 语句 cout << ( 5 && 2 ); 将输出1。

{{ select(17) }}

第 18 题 C++ 表达式 2 * - '2' / 4 的值是 -1。

{{ select(18) }}

第 19 题 如下C++代码执行后的输出是 10。

1   int a;
2   a = 5;
3   a == +5;
4   cout << a;

{{ select(19) }}

第 20 题 执行 C++ 代码 cout << (not not 5) 将输出 5。

{{ select(20) }}

第 21 题 下面C++代码执行后将输出 369

1   for (int i = 1; i < 10; i++)
2       if (not(i % 3))
3           cout << i;

{{ select(21) }}

第 22 题 N 是整数,执行如下C++代码,将能输出 0 到 N 之间(包含 N )所有数之和。

1   int N, tot, i;
2   cin >> N;
3   tot = 0;
4   for (i = 0; i < N + 1; i++)
5   	tot += i;
6   cout << tot;

{{ select(22) }}

第 23 题 如下C++代码执行后,输出值为 0。

1   int cnt, i, j;
2   cnt = 0;
3   for (i = 0; i < 10; i++) {
4   	continue;
5   	for (j = 0; j < i; j++)
6   		cnt += 1;
7   }
8   cout << i * cnt;

{{ select(23) }}

第 24 题 求解鸡兔同笼。在如下 C++ 代码中,tou 代表鸡和兔的头总数,jiao 代表鸡和兔的脚总数。先后两个输入均为正整数。该程序能求解鸡兔同笼。

1   int tou, jiao, tu_tou, ji_tou ;

2   cout << "请输入鸡和兔的头总数:";
3   cin >> tou;
4   cout << "请输入鸡和兔的脚总数:";
5   cin >> jiao;
6
7   for (tu_tou = 0; tu_tou < tou + 1; tu_tou++) {
8   	ji_tou = tou - tu_tou;
9   	if (tu_tou * 4 + ji_tou * 2 == jiao)
10  		printf("兔的数量=%d ,鸡的数量=%d\n", tu_tou, ji_tou);
11  }
12  if (tu_tou == tou)
13  	printf("无解\n");

{{ select(24) }}

第 25 题 如果 N 和 M 均为整数,下列C++代码则可以判断正整数 N 是 M 的平方。比如 9 是 3 的平方。

1   int N, M;
2
3   cout << "请输入正整数N:";
4   cin >> N;
5   cout << "请输入整数M:";
6   cin >> M;
7
8   if (int(sqrt(N)) == abs(M))
9   	printf("%d是%d的平方\n", N, M);

{{ select(25) }}

Problem Info

#G2692. [GESP二级2609] 二级理论

ID 10304
类型 客观题
尝试 0 已通过 0
难度 (无)
上传者
标签
GESP二级选择题