#G2109. [GESP202503 二级] 客观题
[GESP202503 二级] 客观题
单选题
-
2025年春节有两件轰动全球的事件,一个是DeepSeek横空出世,另一个是贺岁片《哪吒2》票房惊人,入了全球票房榜。下面关于DeepSeek与《哪吒2》的描述成立的是( )。
{{ select(1) }}
- 《哪吒2》是一款新型操作系统
- DeepSeek是深海钻探软件
- 《哪吒2》可以生成新的软件
- DeepSeek可以根据《哪吒2》的场景生成剧情脚本
-
对整型变量N,如果它能够同时被3和5整除,则输出 N是含有至少两个质因数。如果用流程图来描述处理过程,则输出语句应该在哪种图形框中( )。
{{ select(2) }}
- 圆形框
- 椭圆形框
- 平行四边形框
- 菱形框
-
下面C++代码执行,其输出是( )。
int a=3, b = 4; a == b; b == a; cout << a << ' ' << b << endl;{{ select(3) }}
- 3 4
- 3 3
- 4 4
- 4 3
-
求三色彩球的颜色。有数量无限的红(Red)绿(Green)蓝(Blue)三种彩球排成一行,每组先为5个红色球,随后3个绿色,最后为2个蓝色。每个球都有编号,从左到右依次为1,2,3……。输入整数代表编号,求该编号球的颜色。下面是C++代码实现,正确说法是( )。
int N, remainder; cin >> N; remainder = N % 10; // remainder变量保存余数 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) }}
- 18
- 17
- 16
- 14
-
下面C++代码执行后输出是( )。
int i; for (i = 10; i > 0; i -= 2) break; cout << i;{{ select(6) }}
- 10
- 8
- 0
- 因为循环执行时会执行break语句而终止循环,所以的值不确定
-
下面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#
- 0#0#0#0#1#
- 0#0#0#0#0#0#
-
下面C++代码执行后的输出是( )。
int i,j; for (i = 0; i < 5; i++) for (j = i; j > 0; j -= 1) printf("%d-",j);{{ select(8) }}
- A. 1-2-1-3-2-1-4-3-2-1-
- B. 1-2-1-3-2-1-4-3-2-1
- C. 0-0-1-0-1-2-0-1-2-3-
- D. 0-0-1-0-1-2-0-1-2-3
-
下面C++代码执行后,将输出能被2整除且除以7余数为2的数。下列选项不能实现的是( )。
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++代码用于求1到N之间正整数中含有3的数的个数,比如123和32都是符合条件的数。则前后两处横线应填入代码分别是( )。
int i,j; int cnt = 0, N; cout << "请输入正整数N: "; cin >> N; for (i = 1; (j=1) < N; i++) while (j != 0) if (j % 10 == 3){ cnt +=1; ________ } else ________ cout << cnt << " ";{{ select(10) }}
- continue; j /= 10
- break; j /= 10
- continue; j %= 10
- break; j %= 10
-
在数学中N表示N的阶乘,即1到N的乘积,如31=123,且01 = 1。下面的两段C++代码用于求1到N的阶乘之和,如N为3,则结果是9(11+21+31的值)。选项中的说法正确的是( )。
// 实现1 int i,N; cin >> N; int int = 0, last = 1; for (i = 1; i < N + 1; i++){ last *= i; int += last; } cout << int << 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) }}
- 虽然实现的代码短小,但效率并不高
- 实现的代码效率更高,且更易于理解
- 实现!因为应用了前项计算结果,计算量更小,因此效率高
- 两种实现,效率几乎一致
-
哥德巴赫猜想是指大于2的偶数都可以分解为两个质数之和。下面的代码用于验证4-1000之内的偶数能否分解为两个质数之和。下面C++代码中假设isPrime()是已经定义好用于判断正整数N是否为质数,返回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效果相同 - 代码执行后,输出的一对质数,一定是小的数在前
- 即使将外层循环中的上界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"); }{{ select(13) }}
- 倒数第二行的 printf("\n") 有错,应该修改为 cout << endl; , printf()函数不能输出换行
- last += 1 修改为 last = last + 1 执行效果相同
- 代码中L1标记行中的 j < i + 1 应修改为 j < i
- 外层for循环前的 last = 1 修改为 last = 0 执行效果相同
-
在C++中,( )最适合填入横线处连续5次正确生成到10之间的随机整数?
for(int i=0; i<5; i++) ______;{{ select(14) }}
- rand( ) % 11
- rand( ) % 10
- rand( ) % 10 + 1
- rand( ) % 9 + 1
-
在C++中,如果 a 和 b 均为 float 类型的变量,那么二者如果相差足够小(比如0.000001),就可以视作相等。例如 2.2345676 和 2.2345677 就可以视作相等。下列哪个表达式能用来正确判断“a等于b”()。
{{ select(15) }}
- ((b-a) < 0.000001 )
- ((b-a) <= 0.000001 )
- (abs(b-a) <= 0.000001 )
- (sqrt(b-a) <= 0.000001 )
判断题
-
C++、Python都是高级编程语言,它们的每条语句最终都要通过机器指令来完成。( )
{{ select(16) }}
- 对
- 错
-
在C++代码中,假设N为正整数,则 N - N / 10 * 10 与 N % 10 都将获得N的个位数。( )
{{ select(17) }}
- 对
- 错
-
C++语句 cout << ((10 <= N <= 12)? "true":"false") 中,假设整型变量N为12,则其输出为 true。原因是执行 10 <= N 后其值为 true,true 与 12 相比仍然是 true。( )
{{ select(18) }}
- 对
- 错
-
C++表达式 (sqrt(N) * sqrt(N)) == N 中的N如果为正整数,则表达式的值为true,相当于开平方后平方是本身。( )
{{ select(19) }}
- 对
- 错
-
下面C++执行后将输出 3*2=6。( )
int a=2, b = 3; a=a-b; b=a+b; a=b-a; printf("%d=%d=%d\n", a, b, a*b);{{ select(20) }}
- 对
- 错
-
下面C++代码执行后将输出10。( )
int i; for (i = 0; i < 10; i++) continue; cout << i << endl;{{ select(21) }}
- 对
- 错
-
下面C++代码执行后将输出1。( )
int i; for (i = 1; i < 10; i++){ break; continue; } cout << i << endl;{{ select(22) }}
- 对
- 错
-
下面的C++代码执行后将输出10行"OK"。( )
for (int i = 0; i < 5; i++) for(int j = 0; j < i; j++) printf("OK\n");{{ select(23) }}
- 对
- 错
-
将下面C++代码中的for循环中的 i = 1 调整为 i = 0 的输出结果相同。( )
int tnt = 0; for (int i = 1; i < 5; i++) // i=1 tnt += i; cout << tnt;{{ select(24) }}
- 对
- 错
-
下面C++代码执行后将输出 0123。( )
for (i = 0; i < 5; i++) for (i = 0; i < i; i++) continue; printf("%d\n", i);{{ select(25) }}
- 对
- 错