#GESP202412C2S. 单选题(每题 2 分,共 30 分)

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

  1. 2024年10月8日,诺贝尔物理学奖“意外地”颁给了两位计算机科学家约翰·霍普菲尔德(John J.Hopfield)和杰弗里·辛顿(Geoffrey E.Hinton)。这两位科学家的主要研究方向是( )。

{{ select(1) }}

  • 天体物理
  • 流体力学
  • 人工智能
  • 量子理论

  1. 计算机系统中存储的基本单位用B来表示,它代表的是( ),比如某个照片大小为3MB。

{{ select(2) }}

  • Byte
  • Block
  • Bulk
  • Bit

  1. C++语句 cout << (3 + 3 % 3 * 2 - 1) 执行后输出的值是( )。

{{ select(3) }}

  • -1
  • 4
  • 56
  • 2

  1. 下面C++代码执行后其输出是( )。
for (int i = 0; i < 10; i++)
	printf("%d", i);

{{ select(4) }}

  • 123456789
  • 0123456789
  • 12345678910
  • 012345678910

  1. 下面C++代码的相关说法中,正确的是( )。
int tnt;
for (int i = 0; i < 10; i++)
   tnt += i;
cout << tnt;

{{ select(5) }}

  • 上述代码执行后其输出相当于求1-10的和(包含10)
  • 上述代码执行后其输出相当于求1-10的和(不包含10)
  • 上述代码执行后其输出相当于求0-10的和(不包含10)
  • 上述代码执行后将输出不确定的值

  1. 下面C++代码执行后输出是( )。
int i;
for (i = 1; i < 10; i++)
	if (i % 2)
		continue;
	else
		break;
cout << i;

{{ select(6) }}

  • 1
  • 2
  • 9
  • 10

  1. 下面C++代码执行后的输出是( )。
for (i = 0; i < 10; i++) {
	if (i % 3)
		continue;
	printf("0#");
}
if (i >= 10)
	printf("1#");

{{ select(7) }}

  • 0#0#0#0#0#0#0#1#
  • 0#0#0#0#0#0#1#
  • 0#0#0#0#1#
  • 0#0#0#0#

  1. 下面C++代码用于输出0-100之前(包含100)能被7整除但不能被3整除的数,横线处不能填入的代码是( )。
for (i = 0; i < 100; i++)
	if (_____________)
		cout << i << endl;

{{ select(8) }}

  • i%7==0 && i%3!=0
  • !(i%7) && i%3!=0
  • i%7 && i%3
  • i%7==0&&!(i%3==0)

  1. 下面C++代码用于求正整数各位数字之和,横线处不应填入代码是( )。
int tnt, N;
printf("请输入正整数:");
cin >> N;
tnt = 0;
while (N != 0) {
	________________
	N /= 10;
}
cout << tnt;

{{ select(9) }}

  • tnt = tnt + N % 10
  • tnt += N % 10
  • tnt = N % 10 + tnt
  • tnt = N % 10

  1. 下图的C++程序执行后的输出是( )。
for (i = 0; i < 5; i++)
	for (j = 0; j < i; j++)
		cout << j;

{{ select(10) }}

  • 0010120123
  • 01012012301234
  • 001012012301234
  • 01012012301234012345

  1. 下面C++代码用于实现图示的九九乘法表。相关说法错误的是( )。

预期输出如下:

1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
for (int Hang = 1; Hang < 10; Hang++) {
	for (int Lie = 1; Lie < Hang + 1; Lie++) {
		if (Lie * Hang > 9)
			printf("%d*%d=%d ", Lie, Hang, Lie * Hang);
		else
			printf("%d*%d=%d ", Lie, Hang, Lie * Hang);
		// L2
	}
	printf("\n"); // L1
}

{{ select(11) }}

  • 将L1注释的 printf("\n") 移到L2注释所在行,效果相同
  • 将L1注释的 printf("\n") 修改为 print("%c",'\n') 效果相同
  • Lie * Hang > 9 修改为 Lie * Hang >= 10 效果相同
  • Lie * Hang > 9 修改为 Hang * Lie > 9 效果相同

  1. 在数学中N!表示N的阶乘,即1到N的乘积,如 3!=1*2*3。下面的C++用于求1-N的阶乘之和,如N为3,则是 1!+2!+3!。下面代码段补充选项后用于实现上述功能,其中不能实现阶乘和的选项是( )。
int N;
cin >> N;
int tnt = 0, nowNum = 1; // tnt 保存阶乘和,nowNum 保存当前数的阶乘
for (int i = 1; i < N + 1; i++) {
	______________ // 基于上一个数的阶乘计算当前数的阶乘
	______________ // 将当前数的阶乘加入总和
}
cout << tnt;

{{ select(12) }}

nowNum *= i; tnt += nowNum;

- ```cpp
nowNum = nowNum * i;
tnt = tnt + nowNum;

nowNum *= i; tnt = nowNum + tnt;

- ```cpp
nowNum = nowNum + i;
tnt *= nowNum;

  1. 下面C++代码用于输出N和M之间(可以包括N和M)的孪生素数。孪生素数是指间隔为2的两个数均为素数,如11和13分别是素数,且间隔为2。isPrime(N)用于判断N是否为素数的函数。为完成上述功能,横线处应填上的代码是( )。
int N, M;
// 本题假设 N 小于 M
cin >> N >> M;
for (int i = N; i < __________; i++)
	if (isPrime(i) && isPrime(i + 2))
		printf("%d %d\n", i, i + 2);

{{ select(13) }}

  • M-2
  • M-1
  • M
  • M+1

  1. 下面C++代码实现输出如下图形,横线应填入的代码是( )。

预期输出如下:

高度: 5
    *
   ***
  *****
 *******
*********
int height;
cout << "高度: ";
cin >> height;
for (i = 0; i < height; i++) {
	// 打印每行前面的空格
	for (j = 0; j < _______________; j++)
		cout << " ";
	// 打印每行的星号
	for (k = 0; k < _______________; k++)
		cout << "*";
	cout << endl;
}

{{ select(14) }}

height - i 2 * i

- ```cpp
height
2 * i

height - i 2 * i + 1

- ```cpp
height - i - 1
2 * i + 1

  1. 下面C++代码执行后的输出是30,则横线处不能填入( )。
int a = 10, b = 20, c = 30;
cout << _____________________ << endl;
cout << endl;

{{ select(15) }}

  • max(max(a, b), c)
  • min(a+b, c)
  • sqrt(a+b+c)
  • (a+b+c)/2