CCF GESP 2025年9月认证 C++ 2级试题
|
10页
|
487人阅读
|
34人下载
内容正文:
国时算机
GESP
CCF编程能力等级认证
c
Grade Examination of Software Programming
C++二级
2025年09月
1单选题(每题2分,共30分)
题号123456789101112131415
答案DC CDDA D BDA D C AA D
第1题人工智能现在非常火,小杨就想多了解一下,其中就经常听人提到大模型”。那么请问这里说的“大模型最
贴切是指()。
☐A.大电脑模型
□B.大规模智能
☐C.智能的单位
口D.大语言模型
第2题在TCP协议中,完成连接建立需要通过()握手。
☐A一次
口B.二次
☐C.三次
☐D.四次
第3题下面的C+代码用于输入姓名,然后输出姓名,正确的说法是()。
1 string XingMing;
2
c0Ut<<"诗输入您的姓名:";
3
cin >XingMing;
4
cout <XingMing
☐A.XingMing是汉语拼音,不能作为变量名称
□B.可以将XingMing改为Xing Ming
☐C.可以将XingMing改为xingming
☐D.可以将XingMing改为Xing-Ming
第4题下面C+代码用于获得正整数N的第M位数,如N等于1234,M等于2,则输出3。此题假设M的值大于等于
1且小于等于的位数。横线处应填入的代码是()。
1 int N,M,div=1;
2
coUt<<"请输入一个正整数:";
3
cin >N;
coUt<<"诗输入从右到左取第几位数:":
cin >M;
6
7
for (int i=0;i<(M-1);i++)div *10;
8
9
cout <<(
☐A.N%div/10
☐B.N/div/10
☐C.N%div%10
☐D.N/div%10
第5题下面C+代码执行,其输出是()。
1a,b=3,4:
2
c a =b;
3
coUt<a<·↓<b<,·<c;
☐A.340
□B.333
☐C.444
口D.以上都不对
第6题某种编号的规则是“XX-Y”,其中XX从00到11,Y从0到9。第1个编号是00-0,第2个编号是01-1,,第12个
编号11-1,第13个编号00-2,即其编码规则是XX和Y同时增1,到XX到11时下一个变为00,Y到9时,下一个变为0。
下面的C+代码用于生成第N个编号,横线处应填上的代码是()。
c0Ut<<"请输入编号位置:";
2
cin >N;
3
4
part1 N%_----;
part2 N %-----
6
7
if (part1 10)
printf("0%d-%d
",part1,part2);
9
else
10
printf("%d-%d
",part1,part2);
☐A.1210
☐B.1010
☐C.119
☐D.99
第7题下面的C++代码执行后其输出是()。
1
cnt =0;
for(inti=-10:i<10;1++)
for (int j=0;j<i;j++)
cnt +=1;
5cout <cnt;
☐A.145
☐B.125
☐C.55
☐D.45
第8题下面C+代码执行后其输出是()。
1f0r(i=1;i<12;i++){
1f(i%2=0)
3
continve;
for (j=0;j<i;j++)
6
if〔i*j%2)
7
break;
9
if(i>=12)
0
cout<〔i*j);
☐A.110
☐B.12
☐C.不确定
☐D.无输出
第9题阅读下面的C+代码,其中变量都是整型,则说法正确的是()。
1
cin >>a >b;
2
3
while (b !=0){
4
remainder a b;
a =b;
6
b remainder;
7
cout <a;
口A.b不能为0,因为a%b将导致错误
☐B.a必须小于b,否则a%b将导致错误
☐C.a和b都必须为正整数,否则a%b将导致错误
口D.如果a输入为0,则不管b的输入值是什么,输出值的绝对值都是abs(b)
第10题下面C+代码执行后输出是()。
1 num 0;
2
while (num <5){
3
num +1;
if (num ==3)
5
continve;
6
printf("%d#",num);
7
☐A.1#2#4#5#6#
☐B.1#2#4#5#6
☐C.1#2#3#4#5#6#
☐D.1#2#3#4#5#6
第11题下面C+代码用于记录多个输入数中的最大数和最小数(输入-999则输入结束),相关说法错误的是(
cin >now_num;
min_num max_num now_num;
3
4
while (now_num !=-999){
if (max_num now_num)
6
max_num now_num;
if (min_num now_num)
9
min_num now_num;
10
11
cin >now_num;
12
13
cout <min_num <<<<max_num;
☐A.程序运行时如果第一个数输入-999,则输出将是-999-999
☐B.程序输入过程中,如果输入的第一个数不是-999,则如果待输入的数据中没有-999,则程序能求出已输
入整数中的最大数和最小数
☐C.如果用于输入考试成绩,即成绩中不可能有-999,则程序能求出已输入成绩中的最高成绩和最低成绩
□D.可以将cin>now_-num;移动到while(now_-numI=-999){下面,结果不变
第12题下面C++代码执行后输出与5有关数的数量。“与5有关的数”定义为含有5或者能被5整除的数。相关说法
正确的是()。
1
cnt 0;
for(1=1;i<1000;i+){
1f(i%5==0){
4
cnt +1;
5
continve;
j=i;
while (i>0)
9
if(%10==5){
10
cnt +1;
11
break;
12
13
else
14
j/=10;
15
16
cout <cnt;
口A.删除代码中continve不影响程序执行结果
☐B.删除j=i并将while循环内的j修改为i,不影响程序执行结果
□C.代码中break修改为j=0,不影响程序执行结果
☐D.将while(j>0)修正为while(j>=o)不影响程序执行的结果
第13题下面C+代码实现输出如下图形,应该在横线处填入的代码是()。
1
诗输入层数:10
1
23
4
456
7891
6
23456
789123
4567891
9
23456789
10
123456789
11
1234567891
1
cout<"请输入层数:";
cin >N;
3
4
K=1;
6
for (i 1;i<N+1;i++){
1
for (int -1;-<
---;++)
cout <<m "
9
10
for(int-=1;-<---i-+)
11
cout <K;
12
13
K+=1:
14
1f(K=10)
15
K=1;
16
17
cout <<'
';
18
3
☐A
1
N-1+1
21+1
□B.
1N-i
2
i
▣c
1N
21
□D.
1N-i
21+1
第14题下面C+代码执行,其输出是()。
1inta=9,b=27;
2
a='a'e+b';
3
b=a'-'b';
4
a =a-b;
5
cout <a<<<<b <endl;
☐A.196-1
☐B.279
☐C.9897
□D.不确定
第15题有个无限长的链,由3种外形相同但材质不同的环链成。3种环的重量分别是3、4、6克,相同材质的多个环
每12克一组,分别记为G3、G4、G6。链依次G3、G4、G6、G3、G4、G6、。同时对链上所有环从头依次编号1、
2、3、4。输入正整数代表环编号,求该编号前所有环(不含该环本身)的重量。下面是C+代码是实现,正确
说法是()。
1i int N,G,R;
2
int wc 0;
3
cin>>N;/输入正整数
5G=(N-1)/9;/1L1
6R=(N-1)%9;/1L2:保存余数
Wc+=36*G;
8
9if(1<=R)&(R<=4)
10
wC+=3*R;/L3
11
else if ((5 <R)&&(R <=7))
12
wC+=4*R://L4
13
else if(R =8)
14
Wc+=6*(R-1);/L5
15
cout <wc <endl;
☐A.必须同时修改L1和L2代码行才能实现功能
口B.必须同时修改L3和L4代码行才能实现功能
☐C.必须同时修改L3和L5代码行才能实现功能
☐D.其他说法都不对
2判断题(每题2分,共20分)
题号12345678910
答案×√×√√×√√√×
第1题在集成开发环境里调试程序时,要注意不能修改源程序,因为如果修改,就要终止调试、关闭该文件并重新
打开,才能再次开始调试。()
第2题在C++代码中,假设N为正整数且大于100,则N/100将舍弃个位和十位,如N为1234则c0Ut<<(N/
100)将输出12。如果N小于100,则其值为0。()
第3题下列C++代码执行后将输出1,因为a确实小于20和10。()
1a=5;
2 cout <<(a 10 and 20);
第4题下面的C+代码中变量都是整型,则执行后将输出1。()
1
×,y,z=5,10,15;
2
result x y z;
cout <result;
第5题下面C+代码执行时如输入99.99,将输出及格两个汉字。()
1 int score;
2
c0Ut<<"请输入学生成绩:";
cin >score;
4
if (score >=60)
printf("及格");
6
else
printf("不及格");
第6题执行下面的C++代码时输入123,则输出是DCB。()
1 int a;
cin >a;
3
while(a){
4
cout <'A'+a%10;
a/=10:
6}
第7题下面的C+代码执行后将输出+#+#3#。()
1
int i;
2
for(i=0;i<3;i+)[
3
if(i==2)
continve;
printf("+#");
6
7
cout <i<<'#';
第8题下列C+代码用于求斐波那契数列,即第1个数0,第2个数1,从第三个数开始,是前两个数之和。如果输入
的值为大于1的正整数,该代码能实现。()
1
cin >n;
2
a=0,b=1;
for (int j=0;j<n;j++){
cout <a <<"
bb a;
6
a b-a;
7
第9题下面的C+不能实现如下输出,但如果将L1标记的coUt<0行移动if块外面,或者说移动到L2标记
行,则可以。()
1
诗输入矩阵大小n:9
100000000
3
020000000
4
003000000
000400000
6
000050000
7
000006000
8
000000700
9
000000080
10
000000009
1
int n,i,j;
2
coUt<<"诗输入矩阵大小n:";
3
cin >n;
4
for (i=0;i<n;i++){
6
for (j=0;j<n;j++){
7
if (i ==i){
8
cout <i+1;
9
continve;
10
cout <0;/L1
11
12
/L2
13
14
printf("
");
15
第10题C++代码coUt<<('5'+4);执行后的输出为9。()
3编程题(每题25分,共50分)
3.1编程题1
。试题名称:优美的数字
。时间限制:1.0s
·内存限制:512.0MB
3.1.1题目描述
如果一个正整数在十进制下的所有数位都相同,小A就会觉得这个正整数很优美。例如,正整数6的数位都是6,
所以6是优美的。正整数99的数位都是9,所以99是优美的。正整数123的数位不都相同,所以123并不优美。
小A想知道不超过n的正整数中有多少优美的数字。你能帮他数一数吗?
3.1.2输入格式
一行,一个正整数n。
3.1.3输出格式
一行,一个正整数,表示不超过n的优美正整数的数量。
3.1.4样例
3.1.4.1
输入样例1
16
3.1.4.2
输出样例1
16
3.1.4.3
输入样例2
12025
3.1.4.4
输出样例2
128
3.1.5数据范围
对于所有测试点,保证1≤n≤2025。
3.1.6参考程序
#include <algorithm>
2
#include <cstdio>
3
4
using namespace std;
6
int n,ans;
7
8 int main(){
9
scanf("%d",&n);
10
for (int i=1;i <n;i++){
11
int v i%10,t i/10,chk 1;
12
while (t){
13
if (t 10 !v)chk =0;
t/=10;
15
16
ans +chk;
17
18
printf("%d
",ans);
19
return 0;
20
3.2
编程题2
。试题名称:菱形
。时间限制:1.0s
·内存限制:512.0B
3.2.1题目描述
小A想绘制一个菱形。具体来说,需要绘制的菱形是一个n行n列的字符画,n是一个大于1的奇数。菱形的四个
顶点依次位于第1行、第1列、第n行、第n列的正中间,使用#绘制。相邻顶点之间也用#连接。其余位置都
是·。例如,一个5行5列的菱形字符画是这样的:
1
.#。
2
.#.#
3
.#.#.
.#.
给定n,请你帮小A绘制对应的菱形。
3.2.2输入格式
一行,一个正整数n。
3.2.3输出格式
输出共n行,表示对应的菱形。
3.2.4样例
3.2.4.1输入样例1
13
3.2.4.2
输出样例1
1.#.
2#.#
3
.#
3.2.4.3
输入样例2
19
3.2.4.4
输出样例2
1
#.
2
.。#.#..
3
.#..#.
#.#。
##
6
.#.。...#
7
·##.…
9
...#.
3.2.5
数据范围
对于所有测试点,保证3≤n≤29并且n为奇数。
3.2.6参考程序
1 #include <algorithm>
2
#include <cstdio>
4
using namespace std;
5
6
int main(){
int n,i j k;
8
scanf("%d",&n)
9
k=n/2:
10
for(i=1;i<=n;i++){
11
for(j=1;j<=n;j+){
12
if (abs(k -i+1)abs(k-j+1)=k)
13
printf("#");
14
else
15
printf("."):
16
17
printf("
");
18
19
return 0;
20
资源预览图