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; ``` - 正确 - 错误

来源/分类