2025年全国青少年信息素养大赛算法创意实践挑战赛
(C++语言)初中组复赛模拟试题(一)
考试时间:90分钟????满分:100分
一、单选题(每题4分,共5题,20分)
1.在C++中,以下哪个是正确的函数声明?
A.?voidfunc(inta,b)?(参数类型缺失)
B.?intfunc(inta,intb)
C.?func(a,b){returna+b;}?(缺少返回类型)
D.?intfunc(inta;intb)?(分号错误)
答案:B
2.C++中,vector容器属于哪个头文件?
A.?iostream
B.?vector
C.?string
D.?algorithm
答案:B
3.以下哪个是C++中用于递归调用的必要条件?
A.必须使用while循环
B.必须有终止条件
C.必须使用全局变量
D.必须使用goto语句
答案:B
4.在C++中,strings=hello;s[0]=H;?的作用是?
A.将字符串s改为Hello
B.报错,因为字符串不可修改
C.将字符串s改为helloH
D.删除字符串s的第一个字符
答案:A
5.以下哪个是C++中用于排序的STL算法?
A.?sort()
B.?find()
C.?reverse()
D.?max_element()
答案:A
二、编程题(每题16分,共5题,80分)
题目:计算阶乘之和
要求:编写一个C++程序,输入一个整数n,计算并输出1!+2!+3!+...+n!的值。
输入示例:
4
输出示例:
33
题目:统计数字出现次数
要求:编写一个C++程序,输入一个整数N和N个整数,统计数字0到9各自出现的次数(忽略其他数字)。
输入示例:
512345067890
输出示例:
0:21:12:13:14:15:16:17:18:19:1
题目:回文数判断
要求:编写一个C++程序,输入一个整数n,判断它是否是回文数(正读和反读相同的数),并输出结果。
输入示例:
121
输出示例:
是回文数
题目:二分查找
要求:编写一个C++程序,输入一个已排序的整数数组arr(长度为N)和一个目标值target,使用二分查找算法输出target在数组中的索引(若不存在则输出-1)。
输入示例:
5135795
输出示例:
2
题目:杨辉三角
要求:编写一个C++程序,输入一个整数n,输出前n行的杨辉三角(每行数字用空格分隔)。
输入示例:
4
输出示例:
1111211331
答案
一、单选题答案
1.B
2.B
3.B
4.A
5.A
二、编程题答案
计算阶乘之和
#includeiostream
usingnamespacestd;
intmain(){
intn;
cinn;
longlongsum=0;
for(inti=1;i=n;i++){
longlongfactorial=1;
for(intj=1;j=i;j++){
factorial*=j;
}
sum+=factorial;
}
coutsumendl;
return0;
}
统计数字出现次数
#includeiostream
#includevector
usingnamespacestd;
intmain(){
intN;
cinN;
vectorintcount(10,0);//初始化0~9的计数器为0
for(inti=0;iN;i++){
intnum;
cinnum;
while(num0){
intdigit=num%10;
if(digit=0digit=9){
count[digit]++;
}
num/=10;
}
}
for(inti=0;i10;i++){
co