2025年全国青少年信息素养大赛算法创意实践挑战赛
(C++语言)初中组复赛模拟试题(二)
考试时间:90分钟????满分:100分
一、单选题(每题4分,共5题,20分)
1.在C++中,以下哪个是正确的for循环语法?
A.?for(inti=0;i10;i++)
B.?for(i=0;i10;i++)?(未声明变量)
C.?for(inti=0;i10;i--)?(递减循环)
D.?for(inti=0;i10)?(缺少更新部分)
答案:A
2.C++中,map容器的主要特点是?
A.存储有序的键值对
B.存储无序的唯一元素
C.动态调整大小的数组
D.仅支持整数索引
答案:A
3.以下哪个是C++中用于文件读取的类?
A.?ofstream?(输出文件流)
B.?ifstream
C.?fstream?(可读写文件流)
D.B和C都正确
答案:D
4.在C++中,auto关键字的作用是?
A.声明一个自动变量(局部变量)
B.自动推断变量类型
C.定义一个全局变量
D.禁用垃圾回收(C++无垃圾回收)
答案:B
5.以下哪个是C++中用于交换两个变量值的STL算法?
A.?swap()
B.?reverse()
C.?sort()
D.?find()
答案:A
二、编程题(每题16分,共5题,80分)
题目:数字反转并求和
要求:编写一个C++程序,输入一个整数n,将其数字反转后与原数相加,输出结果。
输入示例:
123
输出示例:
444(123+321=444)
题目:统计单词频率
要求:编写一个C++程序,输入一段文本(长度≤1000),统计每个单词出现的次数(忽略大小写,如Hello和hello视为同一单词),按字典序输出单词及其频率。
输入示例:
HelloworldhelloC++
输出示例:
C++:1Hello:2world:1
题目:判断质数
要求:编写一个C++程序,输入一个整数n,判断它是否是质数(只能被1和自身整除的数),并输出结果。
输入示例:
17
输出示例:
是质数
题目:矩阵转置
要求:编写一个C++程序,输入一个N×N的矩阵(N由用户输入),输出其转置矩阵(行列互换)。
输入示例:
21234
输出示例:
1324
题目:最长不重复子串
要求:编写一个C++程序,输入一个字符串(长度≤100),输出其中最长的不包含重复字符的子串的长度。
输入示例:
abcabcbb
输出示例:
3(最长子串为abc)
答案
一、单选题答案
1.A
2.A
3.D
4.B
5.A
二、编程题答案
数字反转并求和
#includeiostream
usingnamespacestd;
intreverseNumber(intn){
intreversed=0;
while(n0){
reversed=reversed*10+n%10;
n/=10;
}
returnreversed;
}
intmain(){
intn;
cinn;
intreversed=reverseNumber(n);
coutn+reversedendl;
return0;
}
统计单词频率
#includeiostream
#includemap
#includestring
#includesstream
#includealgorithm
usingnamespacestd;
intmain(){
stringtext;
getline(cin,text);
mapstring,intwordCount;
stringstreamss(text);
stringword;
while(ssword){
transform(word.begin(),word.end(),word.begin(),::tolower);
wordCount[word]++;
}
for(autoit=wordCount.begin();it!=wordCount.end();it++){
coutit-first:i