NOIP普及组初赛模拟试题(C++语言)及详细答案解析_第1页
NOIP普及组初赛模拟试题(C++语言)及详细答案解析_第2页
NOIP普及组初赛模拟试题(C++语言)及详细答案解析_第3页
NOIP普及组初赛模拟试题(C++语言)及详细答案解析_第4页
NOIP普及组初赛模拟试题(C++语言)及详细答案解析_第5页
已阅读5页,还剩3页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

NOIP普及组初赛模拟试题(C++语言)及详细答案解析考试时间:90分钟满分:100分答题说明:1.本试卷全部为笔试作答,包含单项选择题、判断题、程序阅读题、程序完善题四大题型;2.所有题目基于C++语言、计算机基础、数据结构与算法基础、信奥常识命题;3.答案请书写规范,程序填空严格匹配语法格式,错写、漏写符号不得分。一、单项选择题(共20题,每题1.5分,共30分)1.下列不属于计算机基本进制的是()A.二进制B.八进制C.六进制D.十六进制2.二进制数1011对应的十进制数是()A.10B.11C.12D.133.十进制数28转换为二进制数是()A.11100B.11010C.10111D.110014.在C++语言中,以下合法的变量名是()A.3numB.num_1C.num-1D.int5.C++中,int类型数据占用的字节数一般为()A.1字节B.2字节C.4字节D.8字节6.表达式7%3+5/2的运算结果是()A.3B.4C.5D.27.下列循环结构中,至少会执行一次循环体的是()A.for循环B.while循环C.do-while循环D.以上都不对8.已知a=5,b=2,执行语句swap(a,b)后,a、b的值分别为()A.52B.25C.55D.229.数组intarr[10]中,数组下标的合法取值范围是()A.0~9B.1~10C.0~10D.1~910.时间复杂度为O(nlogn)的排序算法是()A.冒泡排序B.选择排序C.快速排序D.插入排序11.下列数据结构中,遵循“先进先出”原则的是()A.栈B.队列C.堆D.树12.一棵二叉树有10个叶子节点,则该二叉树中度为2的节点个数为()A.9B.10C.11D.无法确定13.在C++中,break语句的作用是()A.结束本次循环B.终止当前循环或switch语句C.跳过本次循环D.结束程序14.下列运算符中,优先级最高的是()A.+B.%C.=D.>15.一个3层的完全二叉树,最多包含的节点数为()A.5B.6C.7D.816.以下不属于结构化程序设计基本结构的是()A.顺序结构B.跳转结构C.分支结构D.循环结构17.已知字符串s="noip2026",则字符串长度为()A.7B.8C.9D.1018.二分查找算法的适用前提是()A.数据无序B.数据有序C.数据量较小D.数据为整数19.栈不可以实现的操作是()A.入栈B.出栈C.随机访问中间元素D.取栈顶元素20.NOIP竞赛中,以下文件格式为程序源代码文件的是()A..exeB..cppC..txtD..doc二、判断题(共10题,每题2分,共20分,正确选√,错误选×)1.C++语言是面向对象的高级程序设计语言,同时支持结构化编程。()2.变量在使用前必须定义,未定义的变量无法正常编译运行。()3.队列遵循先进后出的规则,栈遵循先进先出的规则。()4.冒泡排序的最坏时间复杂度为O(n²)。()5.if语句可以单独使用,不需要搭配else语句。()6.二进制小数可以精准表示所有十进制小数。()7.数组的存储空间是连续的,且大小一经定义不可更改。()8.递归算法一定比循环算法运行效率更高。()9.完全二叉树的叶子节点只可能出现在最后两层。()10.C++中,注释内容会被编译器忽略,不参与程序运行。()三、程序阅读题(共3题,每题10分,共30分)阅读程序1,写出程序输出结果cpp

#include<iostream>

usingnamespacestd;

intmain()

{

intsum=0;

for(inti=1;i<=5;i++)

{

if(i%2==0)

sum+=i;

}

cout<<sum<<endl;

return0;

}阅读程序2,写出程序输出结果cpp

#include<iostream>

usingnamespacestd;

intf(intx)

{

if(x==1)return1;

returnx*f(x-1);

}

intmain()

{

cout<<f(4)<<endl;

return0;

}阅读程序3,写出程序输出结果cpp

#include<iostream>

usingnamespacestd;

intmain()

{

inta=10,b=20;

if(a>b)

cout<<a<<endl;

else

cout<<b-a<<endl;

return0;

}四、程序完善题(共2大题,每空2分,共20分)题目1:输入n,计算1到n的累加和完善下方代码,实现输入整数n,输出1+2+3+...+n的结果cpp

#include<iostream>

usingnamespacestd;

intmain()

{

intn,sum=0;

cin>>n;

for(inti=1;___(1)___;i++)

{

___(2)___;

}

cout<<sum<<endl;

return0;

}填空(1)__________填空(2)__________题目2:冒泡排序,实现数组从小到大排序给定长度为5的整型数组,通过冒泡排序完成升序排序,补全代码cpp

#include<iostream>

usingnamespacestd;

intmain()

{

intarr[5]={3,1,4,2,5};

for(inti=0;i<4;i++)

{

for(intj=0;j<___(3)___;j++)

{

if(arr[j]>arr[j+1])

{

___(4)___;

}

}

}

for(intk=0;k<5;k++)

{

cout<<arr[k]<<"";

}

return0;

}填空(3)__________填空(4)__________题目3:判断一个数是否为质数输入一个正整数,判断其是否为质数,是则输出YES,否则输出NOcpp

#include<iostream>

usingnamespacestd;

intmain()

{

intn;

cin>>n;

boolflag=true;

if(n<2)flag=false;

for(inti=2;i*i<=n;i++)

{

if(___(5)___)

{

flag=false;

break;

}

}

if(___(6)___)

cout<<"YES"<<endl;

else

cout<<"NO"<<endl;

return0;

}填空(5)__________填空(6)__________参考答案及详细解析一、单项选择题答案及解析1.答案:C

解析:计算机常用进制为二进制、八进制、十进制、十六进制,无六进制。2.答案:B

解析:1×2³+0×2²+1×2¹+1×2⁰=8+0+2+1=11。3.答案:A

解析:28拆分:16+8+4=28,对应二进制11100。4.答案:B

解析:变量名不能以数字开头、不能含横线以外特殊字符、不能使用关键字。5.答案:C

解析:标准C++中int整型固定占用4字节。6.答案:A

解析:取模优先级高于除法,7%3=1,5/2整数除法为2,总和1+2=3。7.答案:C

解析:do-while循环先执行后判断,循环体至少执行一次。8.答案:B

解析:swap函数为C++内置交换函数,可直接交换两个变量数值。9.答案:A

解析:C++数组下标从0开始,定义长度10,下标区间0~9。10.答案:C

解析:冒泡、选择、插入排序时间复杂度均为O(n²),快速排序平均复杂度O(nlogn)。11.答案:B

解析:队列先进先出,栈先进后出。12.答案:A

解析:二叉树经典性质:叶子节点数=度为2的节点数+1,10-1=9。13.答案:B

解析:break终止当前循环或switch结构,continue跳过本次循环。14.答案:B

解析:运算符优先级:算术运算符>关系运算符>赋值运算符,%为算术运算符优先级最高。15.答案:C

解析:3层二叉树最大节点数2³-1=7。16.答案:B

解析:结构化程序设计三大结构:顺序、分支、循环,无跳转结构。17.答案:B

解析:字符串内容为noip2026,共8个字符。18.答案:B

解析:二分查找必须建立在数据有序的基础上,无序数据无法使用。19.答案:C

解析:栈仅能操作栈顶元素,无法随机访问中间元素。20.答案:B

解析:.cpp为C++源代码文件,.exe为可执行文件,.txt、.doc为文本文档。二、判断题答案及解析1.√解析:C++兼具结构化编程与面向对象编程特性。2.√解析:C++遵循先定义后使用原则,未定义变量编译报错。3.×解析:队列先进先出,栈先进后出,题干描述颠倒。4.√解析:冒泡排序最坏情况为逆序数组,时间复杂度O(n²)。5.√解析:if可独立使用,else为可选分支。6.×解析:部分十进制小数(如0.1)无法用二进制精准表示。7.√解析:静态数组空间连续,定义后大小固定不可修改。8.×解析:递归存在栈开销,多数场景效率低于循环,且可能超时。9.√解析:完全二叉树特性,叶子节点仅出现在最后两层。10.√解析:程序注释仅用于备注说明,编译器不会编译执行。三、程序阅读题答案及解析程序1输出结果:6

解析:循环遍历1~5,仅累加偶数2、4,sum=2+4=6。程序2输出结果:24

解析:递归求解阶乘,f(4)=4×3×2×1=24。程序3输出结果:10

解析:a=10,b=20,a>b不成立,执行else分支,输出20-10=10。四、程序完善题答案及解析题目1答案

(1)i<=n

(2)sum=sum+i(或sum+=i)

解析:循环遍历1到n,每次将i累加到sum中,实现求和功

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论