跳到正文
OJ
佛大附属信奥
在线评测 · 分级学习
学习
题库
测验
提交
作业
留言
登录
菜单
学习
题库
测验
提交
作业
留言
登录
GESP C++ 二级 · 2024 年 6 月认证理论卷
登录
后作答才能记录成绩
一、单选题(每题 2 分)
1.
小杨父母带他到某培训机构给他报名参加CCF组织的GESP认证考试的第1级,那他可以选择的认证语言有几种?( )
A. 1
B. 2
C. 3
D. 4
2.
下面流程图在yr输入2024时,可以判定yr代表闰年,并输出2月是29天,则图中菱形框中应该填入( )。
A. (yr%400==0) || (yr%4==0)
B. (yr%400==0) || (yr%4==0 && yr%100!=0)
C. (yr%400==0) && (yr%4==0)
D. (yr%400==0) && (yr%4==0 && yr%100!=0)
3.
在C++中,下列不可做变量的是( )。
A. five-Star
B. five_star
C. fiveStar
D. _fiveStar
4.
在C++中,与for(int i=0; i<10; i++)效果相同的是( )。
A. for(int i=0; i<10; i+=1)
B. for(int i=1; i<=10; i++)
C. for(int i=10; i>0; i--)
D. for(int i=10; i<1; i++)
5.
在C++中,cout << (5 % 2 && 5 % 3)的输出是( )。
A. 1
B. 2
C. true
D. false
6.
执行下面的C++代码时输入1,则输出是( )。 ```cpp int month; cin >> month; switch(month){ case 1: cout << "Jan "; case 3: cout << "Mar "; break; default: ; } ```
A. Jan
B. Mar
C. Jan Mar
D. 以上均不对
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"; ```
A. 如果先后输入1和1,则将输出1
B. 如果先后输入0和1或者1和0,则将输出3
C. 如果先后输入0和0,则将输出2
D. 如果先后输入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); ```
A. 第1横线处应填入:N / 2 第2横线处应填入:N - M5 - M2
B. 第1横线处应填入:(N - M5 * 5) / 2 第2横线处应填入:N - M5 * 5 - M2 * 2
C. 第1横线处应填入:N - M5 * 5 / 2 第2横线处应填入:N - M5 * 5 - M2 * 2
D. 第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; ```
A. 55
B. 45
C. 36
D. 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; ```
A. 25
B. 16
C. 10
D. 9
11.
假设下面C++代码执行过程中仅输入正负整数或0,有关说法错误的是( )。 ```cpp int N,Sum = 0; cin >> N; while (N){ Sum += N; cin >> N; } cout << Sum; ```
A. 执行上面代码如果输入0,将终止循环
B. 执行上面代码能实现所有非0整数的求和
C. 执行上面代码第一次输入0,最后将输出0
D. 执行上面代码将陷入死循环,可将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; ```
A. 如果输入正整数,上面代码能正确判断N是否为质数
B. 如果输入整数,上面代码能正确判断N是否为质数
C. 如果输入大于等于0的整数,上面代码能正确判断N是否质数
D. 如将Flag = true修改为Flag = N>=2? true:false则能判断所有整数包括负整数、0、正整数是否为质数
13.
下面C++代码用于实现如下图所示的效果,其有关说法正确的是( )。 ```cpp for (int i = 1; i < 6; i++){ // L1 for (int j = 1; j < i+1; j++) //L2 cout << i*j << " "; cout << endl; } ```
A. 当前代码能实现预期效果,无需调整代码
B. 如果cout << endl;移到循环L2内部,则可实现预期效果
C. 如果cout << endl; 移到循环L1外部,则可实现预期效果
D. 删除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; ```
A. 5 2
B. 5 0
C. 0 2
D. 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); ```
A. 如果N输入3,M输入36则将输出:36是3的超级幸运数!
B. 如果N输入7,M输入21则将输出:21是7的幸运数!
C. 如果N输入8,M输入36则将输出:36非8的超级幸运数!
D. 如果N输入3,M输入63则将输出:63是3的超级幸运数!