2024年GESP9月C++-二级

*
姓名:
一、单选题(每题 2 分,共 30 分)
*
第 1 题据有关资料,山东大学于1972年研制成功DJL-1计算机,并于1973年投入运行,其综合性能居当时全国第三位。DJL-1计算机运算控制部分所使用的磁芯存储元件由磁芯颗粒组成,设计存贮周期为2μs(微秒)。那么该磁芯存储元件相当于现代计算机的( )。
A. 内存
B. 磁盘
C. CPU
D. 显示器
*
第 2 题IPv4版本的因特网总共有( )个A类地址网络。
A. 65000
B. 200万
C. 126
D. 128
*
第 3 题在C++中,下列不可做变量的是( )。
A. ccf-gesp
B. ccf_gesp
C. ccfGesp
D. _ccfGesp
*
第 4 题 在C++中,与 for (int i = 1; i < 10; i++) 效果相同的是( )。
A. for (int i = 0; i < 10; i++)
B. for (int i = 0; i < 11; i++)
C. for (int i = 1; i < 10; ++i)
D. for (int i = 0; i < 11; ++i)
*
第 5 题在C++中,cout << (5 / 2 + 5 % 3) 的输出是( )。
A. 1
B. 2
C. 4
D. 5
*
第 6 题假定变量a和b可能是整型、字符型或浮点型,则下面C++代码执行时先后输入 -2 和 3.14 后,其输出不可能是( )。[已知字符 '+'、'-'、'=' 的ASCII码值分别是43、45和61]
A. 1
B. 1.14
C. 47
D. 将触发异常
*
第 7 题在C++代码中假设N为正整数,则下面代码能获得个位数的是( )。


A. N % 10
B. N / 10
C. N && 10
D. 以上选项均不正确
*
第 8 题下面C++代码执行后的输出是( )。
    int i;

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

        if (i %2)

            break;    

        cout <<"0#";

    }

    if(i==10

        cout <<"1#";

A. 0#
B. 1#
C. 0#0#1
D. 没有输出
*
第 9 题执行下面C++代码并输入1和0,有关说法正确的是( )。

    int a,b;

    cin >> a >> b; 

    if(a&&b) 

        cout << ("1"); 

    elseif(!(a ||b))    

        cout << ("2"); 

    elseif(a || b)    

        cout << ("3");

    else    

        cout << ("4");

A. 1
B. 2
C. 3
D. 4
*
第 10 题下面C++代码执行后的输出是( )。

    int loopCount = 0;

    for (int i = 1; i < 5; i += 2)    

        loopCount += 1;

    cout << (loopCount);

A. 1
B. 2
C. 3
D. 5
*
第 11 题下图是C++程序执行后的输出。为实现其功能,横线处应填入代码是( )。

7

1    

2     3    

3     4     5

4     5     6     7

5     6     7     8     9

6     7     8     9     10     11

7     8     9     10   11     12     13

    int lineNum;

    cin >> lineNum;

    for (int i= 1; i < lineNum+1; i++){

        for(int                    )        

                cout << j << " ";     

    cout << endl;

    }

A. j = i; j < i; j++
B. j = 1; j < i; j++
C. j = i; j < i*2; j++
D. j = i+1; j < i+i; j++
*
第 12 题下面C++代码执行后输出逆序数,如输入 123 则输出 321。如输入 120 则输出 21。横线处先后应填入的代码是( )。

    int N;

    cin >> N;

    int rst = 0

    while (N){  

        __________;    

        __________;

    }

    cout << (rst);

A. rst = rst * 10 + N % 10 N = N / 10
B. rst += N % 10 N = N / 10
C. rst = rst * 10 + N / 10 N = N % 10
D. rst += N / 10 N = N % 10
*
第 13 题下面的C++代码用于输入学生成绩,并根据人数计算出平均成绩,有关说法错误的是( )。

    float Sum = 0; // 保存总成绩

    int cnt = 0; // 保存学生人数

    while (1){

        int score;    

        cin >> score;  

        if (score < 0)

                break;    

        cnt += 1;    

        Sum += score;

    }

    cout << "总学生数: " << cnt << "平均分: " << Sum/cnt;

A. 代码 while (1) 写法错误
B. 如果输入负数,将结束输入,并正确输出
C. 如果输入的学生成绩含有小数,程序将无法正常执行
D. 变量 int score 初始值不确定,但不影响程序执行
*
第 14 题以下C++代码判断输入的正整数是否为质数,如果该数字是质数,则输出 YES,否则输出 NO。质数是指仅能被1和它本身整除的正整数。请在横线上填写代码。 ( )

    int num, i; 

    cin >> num;

    for(i = 2; i < num; i++)

        if ( __________ ){        

            cout << ("NO"); 

            break;    

        }

    if(i == num)    

        cout << ("YES");

A. num % i
B. num % i == 0
C. num / i
D. num / i == 0
*
第 15 题一个数如果能被某个数(比如7)整除,或者含有该数,则说该数是某个数的相关数。下面C++代码用于判定输入的数与7是否有关。下列说法错误的是( )。

    int N, M;

    bool Flag = false

    cin >> N;M = N;

    if (M % 7 == 0)  

        Flag = true;

    while (!Flag && M){   

        if (M % 10 == 7){        

            Flag = true; break;    

        }    

        M /= 10

    }

    if (Flag)    

        cout << N << "与7有关 ";

    else    

        cout << N << "与7无关 ";

A. 删除 break 语句不会导致死循环,但有时会导致结果错误
B. 删除 M /= 10 将可能导致死循环
C. 删除 M = N 并将其后代码中的 M 变量改为 N,并调整输出同样能完成相关功能
D. 删除 break 语句不会导致死循环,但有时会影响效率
二、判断题 (每题 2 分,共 20 分)
*
第 1 题小杨最近开始学习C++编程,老师说C++是一门面向对象的编程语言,也是一门高级语言。 ( )
正确
错误
*
第 2 题在C++中,cout << (3, 4, 5) 可以输出 3 4 5,且每个输出项之间用空格分开。 ( )
正确
错误
*
第 3 题C++表达式 12 % 10 % 10 的值为2。 ( )
正确
错误
*
第 4 题C++语句 cout << rand() << ' ' << rand(); 的第二个输出值较大。 ( )
正确
错误
*
第 5 题定义C++的 int 类型的变量 ch,而且值为 '1',则语句 cout << int(ch); 的输出为 1。 ( )
正确
错误
*
第 6 题下面C++代码执行后将输出10。 ( )

    int i;

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

        continue;    

    if(i == 10)    

        cout << i;

正确
错误
*
第 7 题下面C++代码能求整数N和M之间所有整数之和,包含N和M。 ( )

    int N, M, Sum; 

    cin >> N >> M;

    if (N > M){

        int tmp = N;    

        N = M, M = tmp;

    }

    for (int i = N; i < M+1; i++)    

        Sum += i; 

    cout << Sum;

正确
错误
*
第 8 题将下面C++代码中的 L3 标记的代码行调整为 for (int i = 0; i < 5; i++) 后输出结果相同。 ( )

    int loopCount = 0;

    for (int i = 1; i < 5; i++) // L3 

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

            loopCount += 1

    cout << loopCount;

正确
错误
*
第 9 题某一系列数据的规律是从第3个数值开始是前两个数之和。下面的代码求第N个数的值,N限定为大于2。 ( )

    int start1; // 第1个数 

    int start2; // 第2个数 

    int N; //求N个数的值

    int tmp;

    cin >> start1 >> start2 >> N;

    for (int i = 2; i < N; i++){     

        tmp = start1 + start2;    

        start1 = start2;    

        start2 = tmp; 

    }

    cout << start2;

正确
错误
*
第 10 题下面C++代码执行时如果输入 2024,则输出是 4202。 ( )

    int N, flag=0;

    cin >> N;

    while (N){

        if(!flag) 

            cout << N % 10;     

        N /= 10;    

        flag = (flag + 1)%2

    }

正确
错误
问卷星提供技术支持
举报