202406 CCF GESP C++编程 二级认证真题 建议答题时长:60min
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 ,则输出是( )。

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++代码后,有关说法错误的是(   )。

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元组成。输入⾦额(假设为正整数),计算出最少数量。为实现其功能,横线处应填入代码是(   )。

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++代码执行后的输出是(   )。

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++代码执行后的输出是( )。

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,有关说法错误的是(   )。

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和它本身整除的正整数】。

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++代码用于实现如下图所⽰的效果,其有关说法正确的是(   )。

1

2     4

3     6    9

4     8    12    16

5    10    15    20    25

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++代码执行后,输出是(   )。

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是否为幸运数或超级幸运数 或非幸运数。阅读下面代码,有关说法正确的是(   )。

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的超级幸运数!

16. 判断题

执行C++代码 cout << '9'+'1'; 的输出为10。( )

A 正确
B 错误
17. 判断题

C++表达式 -12 % 10 的值为2。( )

A 正确
B 错误
18. 判断题

C++表达式 int(12.56) 的值为13。( )

A 正确
B 错误
19. 判断题

C++的整型变量N被赋值为10,则语句 cout << N / 3 << "-" << N % 3 执行后输出是3-1。(  )

A 正确
B 错误
20. 判断题

在C++代码中,不可以将变量命名为scanf,因为scanf是C++语言的关键字。( )

A 正确
B 错误
21. 判断题

下面C++代码执行后将导致死循环。( )

for (int i = 0; i < 10; i++)

continue;

A 正确
B 错误
22. 判断题

下面C++代码执行后将输出10。( )

int cnt = 0;

    for (int i = 0; i < 10; i++)

        for (int j = 0; j < i; j++){

            cnt += 1;

            break;

}

cout << cnt;

A 正确
B 错误
23. 判断题

下面C++代码执行后,将输出5。( )

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;

A 正确
B 错误
24. 判断题

下面C++代码能实现正整数各位数字之和。( )

int N,Sum = 0;

cin >> N;

while (N){

Sum += N % 10;

N /= 10;

}

cout << Sum;

A 正确
B 错误
25. 判断题

GESP测试是对认证者的编程能力进行等级认证,同一级别的能力基本上与编程语言无关。( )

A 正确
B 错误
试题目录
单选题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
判断题
16 17 18 19 20 21 22 23 24 25
赣ICP备20007335号-2