CCF GESP 2023年9月认证 C++ 2级

单选题
共 15 道 每题 2 分 共计 30 分
第 1 题

我国第一台大型通用电子计算机使用的逻辑部件是( )。

A

集成电路

B

大规模集成电路

C

晶体管

D

电子管

第 2 题

下列流程图的输出结果是( )?

A

5 12

B

12 5

C

5 5

D

12 12

第 3 题
如果要找出整数 a、b 中较大一个,通常要用下面哪种程序结构?( )。
A
顺序结构
B
循环结构
C
分支结构
D
跳转结构
第 4 题
以下不是 C++ 关键字的是( )。
A
continue
B
cout
C
break
D
goto
第 5 题
C++ 表达式 int(-123.123 / 10) 的值是( )。
A
-124
B
-123
C
-13
D
-12
第 6 题
以下 C++ 代码实现从大到小的顺序输出 $N$ 的所有因子。例如,输入 N = 18 时输出 18 9 6 3 2 1,横线处应填入( )。
int N = 0;
cin >> N;
for (________) // 此处填写代码
    if (!(N % i))
        cout << i << ' ';
A
; ;
B
int i = 1; i < N; i++
C
int i = N; i > 0; i--
D
int i = N; i > 1; i--
第 7 题

如下图所示,输出 $N$ 行 $N$ 列的矩阵,对角线为 $1$,横线处应填入( )。

int N = 0;
cout << "请输入行列数量:";
cin >> N;
for (int i = 1; i < N + 1; i++) {
    for (int j = 1; j < N + 1; j++)
        if (________) // 此处填写代码
            cout << 1 << " ";
        else
            cout << 0 << " ";
    cout << endl;
}
A

i = j

B

j != j

C

i >= j

D

i == j

第 8 题
下面 C++ 代码用于判断 $N$ 是否为质数(素数),约定输入 $N$ 为大于等于 $2$ 的正整数,请在横线处填入合适的代码( )。
int N = 0, i = 0;
cout << "请输入一个大于等于2的正整数:";
cin >> N;
 
for (i = 2; i < N; i++)
    if (N % i == 0) {
        cout << "非质数";
        __________; // 此处填写代码
    }
if (i == N)
    cout << "是质数";
A
break
B
continue
C
exit
D
return
第 9 题
下面 C++ 代码执行后的输出是( )。
int N = 9;
for (int i = 2; i < N; i++)
    if (N % i)
        cout << "1#";
cout << "0" << endl;
A
1#0
B
1#
C
1#1#1#1#1#1
D
1#1#1#1#1#1#0
第 10 题
下面 C++ 代码执行后的输出是( )。
int cnt = 0;
for (int i = 1; i < 9; i++)
    for (int j = 1; j < i; j += 2)
        cnt += 1;
cout << cnt;
A
16
B
28
C
35
D
36
第 11 题

下面 C++ 代码执行后的输出是( )。

int cnt = 0;
for (int i = 1; i < 13; i += 3)
    for (int j = 1; j < i; j += 2)
        if (i * j % 2 == 0)
            break;
        else
            cnt += 1;
cout << cnt;
A

1

B

3

C

15

D

没有输出

第 12 题
下面 C++ 代码执行后的输出是( )。
int x = 1;
while (x < 100) {
    if (!(x % 3))
        cout << x << ",";
    else if (x / 10)
        break;
    x += 2;
}
cout << x;
A
1
B
3,9,11
C
3,6,9,10
D
1,5,7,11,13,15
第 13 题

下面图形每一行从字母 A 开始,以 ABC 方式重复。行数为输入的整数。请在 C++ 代码段横线处填入合适代码( )。

int N = 0;
cout << "请输入行列数量:";
cin >> N;
for (int i = 1; i < N + 1; i++) {
    for (int j = 0; j < i; j++)
        cout << _________; // 此处填写代码
    cout << endl;
}
A

'A' + j / 3

B

(char)('A' + j / 3)

C

'A' + j % 3

D

(char)('A' + j % 3)

第 14 题

输入行数,约定 $1\leq \text{lineCount} \leq 9$,输出以下图形。应在 C++ 代码横线处填入( )。

int lineCount = 0;
cout << "请输入行数量:";
cin >> lineCount;
for (int i = 0; i < lineCount; i++) {
    for (int j = 0; j < _________; j++) // 此处填写代码
        cout << ' ';
    for (int j = 1; j < i + 1; j++)
        cout << j << " ";
    for (int j = i + 1; j > 0; j--)
        cout << j << " ";
    cout << endl;
}
A

(lineCount - i - 1) * 2

B

(lineCount - i) * 2

C

lineCount - i - 1

D

lineCount - i

第 15 题
某班级人数不知,连续输入成绩直到输入负数停止,输入结束后求出平均成绩。在以下 C++ 代码横线处应填入是( )。
double totalScore = 0; // 总分
int studCount = 0; // 总人数
while (________) { // 此处填写代码
    cin >> score;
    if (score < 0)
        break;
    totalScore += score;
    studCount += 1;
}
cout << "平均分=" << totalScore / studCount;
A
true
B
false
C
True
D
False
单选题部分已到底了。