5344:[GESP202412二级] 客观题
文件提交:无需freopen
内存限制:128 MB
时间限制:1.000 S
评测方式:文本裁判
金币值:
命题人:
提交:6
解决:0
题目描述
**一.单选题(每题2分,共30分)**
1. 2024年10⽉8⽇,诺贝尔物理学奖“意外地”颁给了两位计算机科学家约翰·霍普菲尔德(John J. Hopfield)和杰 弗⾥·⾟顿(Geoffrey E. Hinton)。这两位科学家的主要研究⽅向是
- 天体物理
- 流体⼒学
- ⼈⼯智能
- 量⼦理论
2. 计算机系统中存储的基本单位⽤B来表⽰,它代表的是( ),⽐如某个照⽚⼤⼩为3MB。
- Byte
- Block
- Bulk
- Bit
3. C++语句`cout << (3 + 3 % 3 * 2 - 1)`执⾏后输出的值是 ( )。
- $-1$
- $4$
- $56$
- $2$
4. 下⾯C++代码执⾏后其输出是 ( )。
```cpp
for (int i=0; i<10; i++)
printf("%d",i);
```
- $123456789$
- $0123456789$
- $12345678910$
- $012345678910$
5. 下⾯C++代码的相关说法中,正确的是 ( )。
```cpp
int tnt;
for (int i=0; i<10; i++)
tnt += i;
cout << tnt;
```
- 上述代码执⾏后其输出相当于求1-10的和(包含10)
- 上述代码执⾏后其输出相当于求1-10的和(不包含10)
- 上述代码执⾏后其输出相当于求0-10的和(不包含10)
- 上述代码执⾏后将输出不确定的值
6. 下⾯C++代码执⾏后输出是
```cpp
int i;
for (i=1; i<10; i++)
if (i % 2)
continue;
else
break;
cout << i;
```
- $1$
- $2$
- $9$
- $10$
7. 下⾯C++代码执⾏后的输出是( ) 。
```cpp
for (i=0; i<10; i++){
if (i % 3)
continue;
printf("0#");
}
if(i>=10)
printf("1#");
```
- 0#0#0#0#0#0#0#1#
- 0#0#0#0#0#0#1#
- 0#0#0#0#1#
- 0#0#0#0#
8. 下⾯C++代码⽤于输出0-100之前(包含100)能被7整除但不能被3整除的数,横线处不能填⼊的代码是 ( )。
```cpp
for (i=0; i<100; i++)
if(_____________)
cout << i << endl;
```
- `i % 7 == 0 && i % 3 != 0`
- `!(i % 7) && i % 3 != 0`
- `i % 7 && i % 3`
- `i % 7 == 0 && !(i % 3 == 0)`
9. 下⾯C++代码⽤于求正整数各位数字之和,横线处不应填⼊代码是
```cpp
int tnt, N;
printf("请输入正整数:");
cin >> N;
tnt = 0;
while (N != 0){
________________
N /= 10;
}
cout < 9)
printf("%d*%d=%d ", Lie, Hang, Lie*Hang);
else
printf("%d*%d=%d ", Lie, Hang, Lie*Hang);
// L2
}
printf("\n"); // L1
}
```
- 将L1注释的printf("\n") 移到L2注释所在⾏,效果相同
- 将L1注释的printf("\n") 修改为 print("%c", '\n') 效果相同
- 将Lie * Hang > 9 修改为 Lie * Hang >= 10 效果相同
- 将Lie * Hang > 9 修改为 Hang * Lie > 9 效果相同
12. 在数学中N!表⽰N的阶乘,即1到N的乘积,如 是1! 3!=1*2*3 。下⾯的C++⽤于求1-N的阶乘之和,如N为3,则 +2!+3! 。下⾯代码段补充选项后⽤于实现上述功能,其中不能实现阶乘和的选项是( )。
```cpp
int N;
cin >> N;
int tnt=0, nowNum = 1; //tnt保存求和之值,当前N的阶乘
for (int i=1; i < N + 1; i++){
______________ // 基于上一个计算出当前数的阶乘
______________ // 从1到i每个数阶乘之和
}
cout << tnt;
```
- ```cpp
nowNum *= i;
tnt += nowNum;
```
- ```cpp
nowNum = nowNum * i;
tnt = tnt + nowNum;
```
- ```cpp
nowNum *= i;
tnt = nowNum + tnt;
```
- ```cpp
nowNum = nowNum + i;
tnt *= nowNum;
```
13. 下⾯C++代码⽤于输出N和M之间(可以包括N和M)的孪⽣素数。孪⽣素数是指间隔为2的两个数均为素 数,如11和13分别是素数,且间隔为2。isPrime(N)⽤于判断N是否为素数的函数。为完成上述功能,横线处应填上的 代码是 ( )。
```cpp
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);
```
- $M-2$
- $M-1$
- $M$
- $M+1$
14. 下⾯C++代码实现输出如下图形,横线应填⼊的代码是 ( )。
```cpp
/*
高度:5
*
***
*****
*******
*********
*/
int height;
cout << "高度: ";
//获取用户输入的高度
cin >> height;
for (i=0; i 2; i-=2)
for (j =0; j < i; j++)
printf("OK\n");
```
- 正确
- 错误
24. 将下⾯C++代码中的i = 1调整为i = 0的输出结果相同。( )
```cpp
int i;
int cnt = 0;
for (i = 1; i < 5; i++)
if(i%2) cnt += 1;
cout << cnt;
```
- 正确
- 错误
25. 下⾯两段C++代码都是⽤于求1-10的和,其运⾏结果相同。通常说来,for循环都可以⽤while循环实现。( )
```cpp
int tnt;
int i;
tnt = 0;
for (i = 1; i < 10 + 1; i++)
tnt += i;
cout << tnt << endl;
```
```cpp
int tnt;
int i;
tnt = 0;
i = 1;
while (i <= 10){
tnt += i;
i += 1;
}
cout << tnt << endl;
```
- 正确
- 错误