5328:[GESP202406二级] 客观题

文件提交:无需freopen 内存限制:128 MB 时间限制:1.000 S
评测方式:文本裁判
金币值:
命题人:
提交:2 解决:0

题目描述

**一.单选题(每题2分,共30分)** 1. 小杨父母带他到某培训机构给他报名参加 `CCF` 组织的 `GESP` 认证考试的第1级,那他可以选择的认证语言有几 种?( )。 - $1$ - $2$ - $3$ - $4$ 2. 下面流程图在 `yr` 输入 $2024$ 时,可以判定 `yr` 代表闰年,并输出 $2$ 月是 $29$ 天 ,则图中菱形框中应该填入 ( )。 ![1](/upload/www.aknoi.com/20260529/1.PNG) - `(yr%400==0) || (yr%4==0)` - `(yr%400==0) || (yr%4==0 && yr%100!=0)` - `(yr%400==0) && (yr%4==0)` - `(yr%400==0) && (yr%4==0 && yr%100!=0)` 3. 在C++中,下列不可做变量的是( )。 - `five-Star` - `five_star` - `fiveStar` - `_fiveStar` 4. 在 `C++` 中,与 `for(int i=0; i<10; i++)` 效果相同的是 ( )。 - `for(int i=0; i<10; i+=1)` - `for(int i=1; i<=10; i++)` - `for(int i=10; i>0; i--)` - `for(int i=10; i<1; i++)` 5. 在C++中, `cout << (5 % 2 && 5 % 3)` 的输出是( )。 - 1 - 2 - `true` - `false` 6. 执行下面的C++代码时输入 $1$ ,则输出是( )。 ```cpp int month; cin >> month; switch(month){ case 1: cout << "Jan "; case 3: cout << "Mar "; break; default: ; } ``` - Jan - Mar - Jan Mar - 以上均不对 7. 执行下面C++代码后,有关说法错误的是( )。 ```cpp int a, b; cin >> a >> b; if (a && b) cout << "1"; else if (!(a || b)) cout << "2"; else if (a || b) cout << "3"; else cout << "4"; ``` - 如果先后输入 $1$ 和 $1$ ,则将输出 $1$ - 如果先后输入 $0$ 和 $1$ 或者 $1$ 和 $0$ ,则将输出 $3$ - 如果先后输入 $0$ 和 $0$ ,则将输出 $2$ - 如果先后输入 $0$ 和 $0$ ,则将输出 $4$ 8. 某货币由 $5$ 元,$2$ 元和 $1$ 元组成。输入金额(假设为正整数),计算出最少数量。为实现其功能,横线处应填入代码是( )。 ```cpp int N; cin >>N; int M5,M2,M1; M5 = N / 5; M2 = ______________; M1 = ______________; printf("5*%d+2*%d+1*%d", M5, M2, M1); ``` - 第1横线处应填入:N / 2;第2横线处应填入:N - M5 - M2 - 第1横线处应填入:(N - M5 * 5) / 2;第2横线处应填入:N - M5 * 5 - M2 * 2 - 第1横线处应填入:N - M5 * 5 / 2;第2横线处应填入:N - M5 * 5 - M2 * 2 - 第1横线处应填入:(N - M5 * 5) / 2;第2横线处应填入:N - M5 - M2 9. 下面C++代码执行后的输出是 ```cpp int loopCount = 0; for (int i=0; i < 10; i++) for (int j=1; j < i; j++) loopCount += 1; cout << loopCount; ``` - $55$ - $45$ - $36$ - $28$ 10. 下面C++代码执行后的输出是( )。 ```cpp int loopCount = 0; for (int i=0; i < 10; i++) { for (int j=0; j < i; j++) if (i * j % 2) break; loopCount += 1; } cout << loopCount; ``` - $25$ - $16$ - $10$ - $9$ 11. 假设下面C++代码执行过程中仅输入正负整数或 $0$ ,有关说法错误的是( )。 ```cpp int N,Sum = 0; cin >> N; while (N){ Sum += N; cin >> N; } cout << Sum; ``` - 执行上面代码如果输入 $0$ ,将终止循环 - 执行上面代码能实现所有非 $0$ 整数的求和 - 执行上面代码第一次输入 $0$ ,最后将输出 $0$ - 执行上面代码将陷入死循环,可将 `while (N)` 改为 `while (N==0)` 12. 执行下面的C++代码,有关说法正确的是( )【质数是指仅能被1和它本身整除的正整数】。 ```cpp int N; cin >> N; bool Flag = true; for ( int i = 2; i < N; i++){ if (i * i > N) break; if (N % i == 0){ Flag = false; break; } } if (Flag) cout << N << "是质数" << endl; else cout << N << "不是质数" << endl; ``` - 如果输入正整数,上面代码能正确判断 `N` 是否为质数 - 如果输入整数,上面代码能正确判断 `N` 是否为质数 - 如果输入大于等于 $0$ 的整数,上面代码能正确判断 `N` 是否质数 - 如将 `Flag = true` 修改为 `Flag = N>=2? true:false` 则能判断所有整数包括负整数、0、正整数是否为质 数 13. 下面C++代码用于实现如下图所示的效果,其有关说法正确的是( )。 ![2](/upload/www.aknoi.com/20260529/2.PNG) ```cpp for (int i = 1; i < 6; i++){ // L1 for (int j = 1; j < i+1; j++) //L2 cout << i*j << " "; cout << endl; } ``` - 当前代码能实现预期效果,无需调整代码 - 如果 `cout << endl;` 移到循环 `L2`内部,则可实现预期效果 - 如果 `cout << endl;` 移到循环 `L1` 外部,则可实现预期效果 - 删除 `cout << endl;` 行,则可实现预期效果 14. 下面C++代码执行后,输出是( )。 ```cpp int cnt1 = 0, cnt2 = 0; for (int i = 0; i < 10; i++){ if (i % 2 == 0) continue; if (i % 2) cnt1 += 1; else if (i % 3 == 0) cnt2 += 1; } cout << cnt1 << " " << cnt2; ``` - `5 2` - `5 0` - `0 2` - `0 0` 15. 在下面的C++代码中,`N` 必须是小于 $10$ 大于 $1$ 的整数,`M` 为正整数(大于 $0$ )。如果 `M` 被 `N` 整除则`M` 为幸运数,如果 `M` 中含有 `N` 且能被 `N` 整除,则为超级幸运数,否则不是幸运数。程序用于判断 `M` 是否为幸运数或超级幸运数或非幸运数。阅读下面代码,有关说法正确的是 ```cpp int N, M; cout << "请输入幸运数字:"; cin >> N; cout << "请输入正整数:"; cin >> M; bool Lucky; if (M % N == 0) Lucky = true; else Lucky = false; while (M){ if (M % 10 == N && Lucky){ printf("%d是%d的超级幸运数!", M, N); break; } M /= 10; } if (M == 0) if (Lucky) printf("%d是%d的幸运数!", M, N); else printf("%d非%d的幸运数!", M, N); ``` - 如果`N`输入 $3$,`M`输入 $36$ 则将输出:$36$ 是 $3$ 的超级幸运数! - 如果`N`输入 $7$,`M`输入 $21$ 则将输出:$21$ 是 $7$ 的幸运数! - 如果`N`输入 $8$,`M`输入 $36$ 则将输出:$36$ 非 $8$ 的超级幸运数! - 如果`N`输入 $3$,`M`输入 $63$ 则将输出:$63$ 是 $3$ 的超级幸运数! **二.判断题(每题2分,共20分)** 16. 执行C++代码 `cout << '9'+'1';`的输出为10。 - 正确 - 错误 17. C++表达式 `-12 % 10` 的值为2。 - 正确 - 错误 18. C++表达式 `int(12.56)` 的值为 $13$ 。 - 正确 - 错误 19. C++的整型变量 `N` 被赋值为 $10$ ,则语句 `cout << N / 3 << "-" << N % 3` 执行后输出是 `3-1`。 - 正确 - 错误 20. 在C++代码中,不可以将变量命名为 `scanf` ,因为 `scanf` 是C++语言的关键字。 - 正确 - 错误 21. 下面C++代码执行后将导致死循环。 ```cpp int cnt = 0; for (int i = 0; i < 10; i++) for (int j = 0; j < i; j++){ cnt += 1; break; } cout << cnt; ``` - 正确 - 错误 22. 下面C++代码执行后将输出 $10$。 ```cpp int cnt = 0; for (int i = 0; i < 10; i++) for (int j = 0; j < i; j++){ cnt += 1; break; } cout << cnt; ``` - 正确 - 错误 23. 下面C++代码执行后,将输出 $5$ 。 ```cpp int cnt = 0; for (int i = 1; i < 5; i++) for (int j = i; j < 5; j +=i) if (i * j % 2 == 0) cnt += 1; cout << cnt; ``` - 正确 - 错误 24. 下面C++代码能实现正整数各位数字之和。 ```cpp int N,Sum = 0; cin >> N; while (N){ Sum += N % 10; N /= 10; } cout << Sum; ``` - 正确 - 错误 25. `GESP` 测试是对认证者的编程能力进行等级认证,同一级别的能力基本上与编程语言无关。 - 正确 - 错误

来源/分类