基本信息
文件名称:2025年全国青少年信息素养大赛算法创意实践挑战赛(C++语言)初中组复赛模拟试题(二).docx
文件大小:20.86 KB
总页数:7 页
更新时间:2025-06-19
总字数:约3.5千字
文档摘要

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