CCF GESP 2024年3月认证 C++ 2级

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

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

A

优秀

B

良好

C

不及格

D

没有输出

第 2 题

以下选项中不符合 C++ 变量命名规则的是?( )

A

student

B

2_from

C

_to

D

Text

第 3 题

以下选项中,不能用于表示分支结构的 C++ 保留字是?( )

A

switch

B

return

C

else

D

if

第 4 题

下列说法错误的是?( )

A

while 循环满足循环条件时不断地运行,直到指定的条件不满足为止

B

if 语句通常用于执行条件判断

C

在C++中可以使用foreach 循环

D

break 和continue 语句都可以用在for 循环和while 循环中

第 5 题

下列 4 个表达式中,答案不是整数 8 的是?( )

A

abs(-8)

B

min(max(8, 9), 10)

C

int(8.88)

D

sqrt(64)

第 6 题

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

int n,a,m,i;

n=3, a = 5;
m = (a - 1) * 2;
for (i=0; i<n-1; i++)
    m = (m - 1) * 2;

cout << m;
A

8

B

14

C

26

D

50

第 7 题

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

int n,i,result;

n = 81;
i = 1, result = 1;
while (i * i <= n){
    if (n % (i * i) == 0)
        result = i * i;
    i += 1;
}

cout << result;
A

16

B

36

C

49

D

81

第 8 题

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

int s,t,ans;
s = 2, t = 10;
ans = 0;
while (s != t){
    if (t % 2 == 0 && t / 2 >= s)
        t /= 2;
    else
        t -= 1;
    ans += 1;
}
cout << ans;
A

2

B

3

C

4

D

5

第 9 题

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

int n, masks, days,cur;
n = 17, masks = 10, days = 0;
cur = 2;
while (masks != n){
    if (cur == 0 || cur == 1)
        masks += 7;
    masks -= 1;
    days += 1;
    cur = (cur + 1) % 7;
}

cout << days;
A

5

B

6

C

7

D

8

第 10 题

以下 C++ 代码判断一个正整数 N 的各个数位是否都是偶数。如果都是,则输出“是”,否则输出“否”。例如 N=2024 时输出“是”。则横线处应填入( )。

int N,Flag;
cin >> N;
Flag = true;
while (N != 0){
    if (N %2 != 0){
        Flag = false;
        _____________
    }
    else
        N /= 10;
}
if(Flag == true)
    cout << "是";
else
    cout << "否";
A

break

B

continue

C

N = N / 10

D

N = N % 10

第 11 题

有句俗话叫“三天打渔,两天晒网”。如果小杨前三天打渔,后两天晒网,一直重复这个过程,以下程序代码用于判断,第 n 天小杨是在打鱼还是晒网,横线处应填写?( )

int n,i;
cin >> n;
i = n % 5;
if (__________________) // 在此处填写代码
    cout << "晒网";
else
    cout << "打鱼";
A

i == 0

B

i == 4

C

i == 0 && i == 4

D

i == 0 || i == 4

第 12 题

一个数的所有数字倒序排列后这个数的大小保持不变,这个数就是回文数,比如 101 与6886 都是回文数, 而 100 不是回文数。以下程序代码用于判断一个数是否为回文数,横线处应填写?( )

int n,a,k;
cin >> n;
a = 0;
k = n;
while (n > 0){
    a = __________;  // 在此处填写代码
    n /= 10;
}
if (a == k)
    cout << "是回文数";
else
    cout << "不是回文数";
A

10 * a + n % 10

B

a + n % 10

C

10 * a + n / 10

D

a + n / 10

第 13 题

给定两个整数 n 与 k,打印出一个栅栏图形,这个栅栏应该分成 n 段,段与段之间的间隔为 + , 段内的填充为 k 个 - 。形如 n = 5,k = 6 时,图形如下:

+------+------+------+------+------+

以下程序代码用于绘制该图形,横线处应填写?( )

int n, k, i, j;
n = 5, k = 6;
for (i = 0; i < n; i++){
    __________ // 在此处填写代码
    for (j = 1; j < k; j++)
        cout << '-' ;
}
cout << '+';
A

cout << '+' << endl;

B

cout << '+' << ' ' << endl;

C

cout << '+';

D

cout << '+' << ' ';

第 14 题

小杨的父母最近刚刚给他买了一块华为手表,他说手表上跑的是鸿蒙,这个鸿蒙是。( )

A

小程序

B

计时器

C

操作系统

D

神话人物

第 15 题

中国计算机学会(CCF)在 2024 年 1 月 27 日的颁奖典礼上颁布了王选奖,王选先生的重大贡献是( )。

A

制造自动驾驶汽车

B

创立培训学校

C

发明汉字激光照排系统

D

成立方正公司

单选题部分已到底了。