#1318. GESP-C++二级(2024-09)
GESP-C++二级(2024-09)
CCF GESP C++ 二级 (2024 年 09 月)
一、单选题(每题 2 分,共 30 分)
第 1 题:据有关资料,山东大学于 1972 年研制成功 DJL-1 计算机,并于 1973 年投入运行,其综合性能居当时全国#### 第三位。DJL-1 计算机运算控制部分所使用的磁心存储元件由磁心颗粒组成,设计存贮周期为 2μs(微秒)。那么该磁心存储元件相当于现代计算机的 ( )。
{{ select(1) }}
- 内存
- 磁盘
- CPU
- 显示器
第 2 题:IPv4 版本的因特网总共有 ( ) 个 A 类地址网络。
{{ select(2) }}
- 65000
- 200 万
- 126
- 128
第 3 题:在 C++ 中,下列不可做变量的是 ( )。
{{ select(3) }}
- ccf - gesp
- ccf_gesp
- ccfGesp
- _ccfGesp
第 4 题:在 C++ 中,与for (int i = 1; i < 10; i++)效果相同的是 ( )。
{{ select(4) }}
- for (int i = 0; i < 10; i++)
- for (int i = 0; i < 11; i++)
- for (int i = 1; i < 10; ++i)
- for (int i = 0; i < 11; ++i)
第 5 题:在 C++ 中,cout << (5 / 2 + 5 % 3)的输出是 ( )。
{{ select(5) }}
- 1
- 2
- 4
- 5
第 6 题:假定变量 a 和 b 可能是整型、字符型或浮点型,则下面 C++ 代码执行时先后输入 - 2 和 3.14 后,其输出不可能是 ()。[已知字符 '+'、'-'、'=' 的 ASCII 码值分别是 43、45 和 61]
cin >> a;
cin >> b;
cout << (a + b);
{{ select(6) }}
- 1
- 1.14
- 47
- 将触发异常
第 7 题:在 C++ 代码中假设 N 为正整数,则下面代码能获得个位数的是 ( )。
{{ select(7) }}
- N % 10
- N / 10
- N && 10
- 以上选项均不正确
第 8 题:下面 C++ 代码执行后的输出是 ( )。
int i;
for (i = 0; i < 10; i++){
if (i % 2)
cout << "0#";
break;
}
if(i==10) cout << "1#";
{{ select(8) }}
- 0#
- 1#
- 0#0#1
- 没有输出
第 9 题:执行下面 C++ 代码并输入 1 和 0,有关说法正确的是 ( )。
int a,b;
if(a&&b)
cin >> a >> b;
else if(!(a||b))
cout << ("1");
cout << ("2");
else if(a || b)
cout << ("3");
else
cout << ("4");
{{ select(9) }}
- 1
- 2
- 3
- 4
第 10 题:下面 C++ 代码执行后的输出是 ( )。
int loopCount = 0;
for (int i = 1; i < 5; i += 2)
loopCount += 1;
cout << (loopCount);
{{ select(10) }}
- 1
- 2
- 3
- 5
第 11 题:下图是 C++ 程序执行后的输出。为实现其功能,横线处应填入代码是 ( )。
int lineNum;
cin >> lineNum;
for (int i= 1; i < lineNum+1; i++){
for(int _________________)
cout << j << " ";
cout << endl;
}
{{ select(11) }}
- j = i; j < i; j++
- j = 1; j < i; j++
- j = i; j < i*2; j++
- j = i+1; j < i+i; j++
第 12 题:下面 C++ 代码执行后输出逆序数,如输入 123 则输出 321。如输入 120 则输出 21。横线处先后应填入的代码是 ( )。
int N;
cin >> N;
int rst = 0;
while (N){
}
cout << (rst);
{{ select(12) }}
- rst = rst * 10 + N % 10 N = N / 10
- rst += N % 10 N = N / 10
- rst = rst * 10 + N / 10 N = N % 10
- 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;
{{ select(13) }}
- 代码while (1)写法错误
- 如果输入负数,将结束输入,并正确输出
- 如果输入的学生成绩含有小数,程序将无法正常执行
- 变量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");
{{ select(14) }}
- num % i
- num % i == 0
- num / i
- 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无关";
{{ select(15) }}
- 删除break语句不会导致死循环,但有时会导致结果错误
- 删除M /= 10将可能导致死循环
- 删除M = N并将其后代码中的M变量改为N,并调整输出同样能完成相关功能
- 删除break语句不会导致死循环,但有时会影响效率
二、判断题(每题 2 分,共 20 分)
第 1 题:小杨最近开始学习 C++ 编程,老师说 C++ 是一门面向对象的编程语言,也是一门高级语言。( )
{{ select(16) }}
- 对
- 错
第 2 题:在 C++ 中,cout << (3, 4, 5)可以输出 3 4 5,且每个输出项之间用空格分开。( )
{{ select(17) }}
- 对
- 错
第 3 题:C++ 表达式12 % 10 % 10的值为 2。( )
{{ select(18) }}
- 对
- 错
第 4 题:C++ 语句cout << rand() << ' ' << rand();的第二个输出值较大。( )
{{ select(19) }}
- 对
- 错
第 5 题:定义 C++ 的int类型的变量ch,而且值为 '1',则语句cout << int(ch);的输出为 1。( )
{{ select(20) }}
- 对
- 错
第 6 题:下面 C++ 代码执行后将输出 10。( )
int i;
for (i = 0; i < 10; i++)
continue;
if(i == 10)
cout << i;
{{ select(21) }}
- 对
- 错
第 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;
{{ select(22) }}
- 对
- 错
第 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++){
cout << loopCount;
loopCount += 1;
}
{{ select(23) }}
- 对
- 错
第 9 题:某一系列数据的规律是从#### 第 3 个数值开始是前两个数之和。下面的代码求#### 第 N 个数的值,N 限定为大于 2。( )
int start1;
int start2;
int N;
int tmp;
cin >> start1 >> start2 >> N;
for (int i = 2; i < N; i++){
tmp = start1 + start2;
start1 = start2;
start2 = tmp;
}
cout << start2;
{{ select(24) }}
- 对
- 错
第 10 题:下面 C++ 代码执行时如果输入 2024,则输出是 4202。( )
int N, flag=0;
cin >> N;
while (N){
N /= 10;
if(!flag)
cout << N % 10;
flag = (flag + 1)%2;
}
{{ select(25) }}
- 对
- 错