[GESP 模拟二级] 选择题
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
一. 单选题(每题 分,共 分)
- 2025 年春节有两件轰动全球的事件,⼀个是 DeepSeek 横空出世,另⼀个是贺岁⽚《哪吒2》票房惊⼈,⼊了 全球票房榜。下⾯关于 DeepSeek 与《哪吒2》的描述成⽴的是( )。 {{ select(1) }}
- 《哪吒2》是⼀款新型操作系统
- DeepSeek 是深海钻探软件
- 《哪吒2》可以⽣成新的软件
- DeepSeek可以根据《哪吒2》的场景⽣成剧情脚本
-
对整型变量 ,如果它能够同时被 和 整除,则输出 是含有至少两个质因数 。如果用流程图来描述处理过程,则输出语句应该在哪种图形框中( )。
{{ select(2) }}
- 圆形框
- 椭圆形框
- 平行四边形框
- 菱形框
- 下面 C++ 代码执行,其输出是( )。
int a = 3, b = 4;
a == b;
b == a;
cout << a << " " << b << endl;
{{ select(3) }}
3 43 34 44 3
- 求三色彩球的颜色。有数量无限的红(Red)绿(Green)蓝(Blue)三种彩球排成一行,每组先为 个红色球,随后 个绿色,最后为 个蓝色。每个球都有编号,从左到右依次为 。输入整数代表编号,求该编号球的颜色。下面是 C++ 代码是实现,正确说法是( )。
int N, remainder;
cin >> N;
reaminder = N % 10;
if ((1 <= remainder) && (remainder <= 5))
cout << "Red";
else if ((6 <= remainder) && (remainder <= 8))
cout << "Green";
else if ((remainder == 9) || (remainder == 0))
cout << "Blue";
{{ select(4) }}
- 将
else if ((remainder == 9) || (remainder == 0))修改为else效果相同 - 将
((1 <= remainder) && (remainder<= 5))修改为(remainder <= 5)效果相同 else if ((6 <= remainder) && (remainder <= 8))写法错误,应修改为else if (6 <= remainder <= 8)- 根据题意
remainder = N % 10应修改为remainder = N / 10
- 下面 C++ 代码执行后其输出是( )。
int tnt = 0;
for (int i = 0; i < 10;i ++)
if (i % 3)
tnt += 1;
else
tnt += 2;
cout << tnt;
{{ select(5) }}
18171614
- 下面 C++ 代码执行后输出是( )。
int i;
for (i = 10; i > 0; i -= 2)
break;
cout << i;
{{ select(6) }}
1080- 因为循环执行时会执行
break语句而终止循环,所以i的值不确定
- 下面 C++ 代码执行后输出是( )。
int i;
for (i =0; i < 10; i++) {
if (i % 3 == 0)
continue;
cout << "0" << "#";
}
if (i >= 10)
cout << "1" << "#";
{{ select(7) }}
0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#0#1#0#0#0#0#0#0#1#
- 下面 C++ 代码执行后的输出是( )。
int i,j;
for (i = 0; i < 5; i++)
for (j = i; j > 0; j -= 1)
printf("%d-",j);
{{ select(8) }}
1-2-1-3-2-1-4-3-2-1-1-2-1-3-2-1-4-3-2-10-0-1-0-1-2-0-1-2-3-0-0-1-0-1-2-0-1-2-3
- 下面 C++ 代码执行后,将输出能被 整除且除以 余数为 的数。下列选项不能实现的是( )
for (int i = 0; i < 100; i++)
if _______________________
cout << i << " ";
{{ select(9) }}
((i % 2 == 0) && (i % 7 == 2))((!(i % 2)) && (i % 7 == 2))((!(i % 2)) && (!(i % 7)))((i % 2 != 1) && (i % 7 == 2))
- 下面 C++ 代码用于求 到 之间正整数中含有 的数的个数,比如 和 都是符合条件的数。则前后两处 横线应填入代码分别是( )。
int i,j;
int cnt = 0, N;
cout << "请输入正整数N:";
cin >> N;
for (i = 1; (j=i) < N; i++)
while (j != 0)
if (j % 10 == 3) {
cnt +=1;
__________;
}
else
__________;
cout << cnt << " ";
{{ select(10) }}
continue,j /= 10break,j /= 10continue,j %= 10break,j %= 10
- 在数学中 表示 的阶乘,即 到 的乘积,如 ,且 。下面的两段 C++ 代码用于求 到 的阶乘之和,如 为 ,则结果是 ( 的值)。选项中的说法正确的是( )。
// 实现 1
int i, N;
cin >> N;
int tnt = 0, last = 1;
for (i = 1; i < N + 1; i++) {
last *= i;
tnt += last;
}
cout << tnt << endl;
// 实现2
int i, N;
cin >> N;
int tnt = 0, tmp;
for (i = 1; i < N + 1; i++) {
tmp = 1;
for (int j = 1; j < i + 1; j++)
tmp *= j;
tnt += tmp;
}
cout << tnt << endl;
{{ select(11) }}
- 虽然实现 的代码短小,但效率并不高
- 实现 的代码效率更高,且更易于理解
- 实现 因为应用了前项计算结果,计算量更小,因此效率高
- 两种实现,效率几乎一致
- 哥德巴赫猜想是指大于 的偶数都可以分解为两个质数之和,下面的代码用于验证 之内的偶数能否分解为两个质数之和。下面 C++ 代码中假设
isPrime()是已经定义好用于判断正整数 是否为质数, 返回bool值。对该段代码,错误的说法是( )。
for (i = 4; i < 1000; i += 2)
for (j = 2; j < i; j++)
if (isPrime(j) && isPrime(i-j)) {
printf("%d=%d+%d\n", i, j, i-j);
break;
}
{{ select(12) }}
- 将代码
isPrime(j) && isPrime(i-j)修改为isPrime(j) == true && isPrime(i-j) == true效果相同 - 代码执行后,输出的一对质数,一定是小的数在前
- 即便将外层循环中
i的上界1000修改为很大的整数,也不能说从数学上证明了哥德巴赫猜想 - 根据题意,
break语句应该移到if语句块之外
- 已知 C++ 代码和执行后的期望输出如下,相关说法正确的是( )。
int i, j;
int last, N;
cout << "请输入层数N:";
cin >> N;
last = 1;
for (i = 1; i < N; i++) {
for (j = 1; j < i + 1; j++) { // L1
if (last > 9)
last = 1;
cout << last << " ";
}
last += 1;
printf("\n");
}
请输入层数 N:10
1
2 3
4 5 6
7 8 9 1
2 3 4 5 6
7 8 9 1 2 3
4 5 6 7 8 9 1
2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
{{ select(13) }}
-
倒数第二行的
printf("\n")有错,应该修改为cout << endl;,printf( )函数不能输出换行 -
last += 1修改为last = last + 1执行效果相同 -
代码中 L1 标记行中的
j < i + 1应修改为j < i -
外层 for 循环前的
last = 1修改为last = 0执行效果相同
- 在 C++ 中,( )最适合填入横线处连续 次正确生成 到 之间的随机整数?
int i;
for (i = 0; i < 5; i++)
__________;
{{ select(14) }}
rand( ) % 11rand( ) % 10rand( ) % 10 + 1rand( ) % 9 + 1
- 在 C++ 中,如果 和 均为
float类型的变量,那么二者如果相差足够小(比如 ),就可以视作 相等。比如 和 就可以视作相等。下列哪个表达式能用来正确判断 “ 等于 ” ( )。
{{ select(15) }}
((b-a) < 0.000001)((b-a) <= 0.000001)(abs(b-a) <= 0.000001)(sqrt(b-a) <= 0.000001)