CSP-J 初赛模拟试题(含详细答案解析)_第1页
CSP-J 初赛模拟试题(含详细答案解析)_第2页
CSP-J 初赛模拟试题(含详细答案解析)_第3页
CSP-J 初赛模拟试题(含详细答案解析)_第4页
CSP-J 初赛模拟试题(含详细答案解析)_第5页
已阅读5页,还剩2页未读, 继续免费阅读

下载本文档

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

文档简介

CSP-J初赛模拟试题(含详细答案解析)考试时长:120分钟满分:100分适用范围:青少年信息学奥林匹克普及组初赛题型说明:试题分为单项选择题、程序阅读题、程序完善题,题型、分值、难度完全贴合官方真题标准一、单项选择题(共15题,每题2分,共30分)每题仅有一个正确答案,多选、错选、不选均不得分1.以下不属于计算机基础进制的是()A.二进制B.八进制C.六进制D.十六进制2.二进制数1011对应的十进制数是()A.10B.11C.12D.133.下列关于变量的说法,正确的是()A.变量的值一旦定义无法修改B.变量可以存储不同类型的数据C.变量名可以以数字开头D.变量名可以包含空格4.在C++语言中,用来定义整型变量的关键字是()A.floatB.intC.charD.double5.逻辑表达式3>5&&2<4的运算结果是()A.真B.假C.无法确定D.16.已知a=5,b=2,表达式a%b的结果是()A.0B.1C.2D.2.57.循环语句中,能够直接跳出当前一层循环的关键字是()A.continueB.breakC.returnD.exit8.一个栈的初始状态为空,依次入栈元素为1、2、3、4,不可能的出栈序列是()A.4321B.1234C.4123D.21439.下列排序算法中,时间复杂度最优、适合大规模数据的是()A.冒泡排序B.选择排序C.快速排序D.插入排序10.一棵二叉树有5个叶子节点,2个度为1的节点,该二叉树总节点数为()A.11B.12C.13D.1411.在C++中,if语句的嵌套优先级规则是()A.就近匹配最近的elseB.随机匹配C.优先匹配最远的elseD.无固定规则12.十进制数20转换为十六进制数是()A.12B.14C.18D.2013.下列数据结构中,遵循“先进先出”原则的是()A.栈B.队列C.二叉树D.链表14.数组inta[10]中,数组下标的合法取值范围是()A.0~9B.1~10C.0~10D.1~915.下列语句中,属于循环结构的是()A.ifB.switchC.forD.else二、程序阅读题(共3题,每题10分,共30分)阅读完整程序代码,写出程序最终输出结果,无需修改代码程序1PlainText

#include<iostream>

usingnamespacestd;

intmain()

{

intsum=0;

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

{

if(i%2==0)

sum+=i;

}

cout<<sum<<endl;

return0;

}请写出程序输出结果:程序2PlainText

#include<iostream>

usingnamespacestd;

intf(intx)

{

if(x==1)return1;

returnx+f(x-1);

}

intmain()

{

cout<<f(4)<<endl;

return0;

}请写出程序输出结果:程序3PlainText

#include<iostream>

usingnamespacestd;

intmain()

{

inta=3,b=5;

if(a>b)

swap(a,b);

cout<<a<<""<<b<<endl;

return0;

}请写出程序输出结果:三、程序完善题(共2题,每题20分,共40分)根据题目功能,补全代码空缺部分,每空为一个独立考点题目1:求1~n的所有奇数和功能描述:输入一个正整数n,计算并输出1到n之间所有奇数的累加和PlainText

#include<iostream>

usingnamespacestd;

intmain()

{

intn,sum=0;

cin>>n;

for(inti=1;i<=n;____1____)

{

if(____2____)

{

sum=sum+i;

}

}

cout<<____3____<<endl;

return0;

}补全三处空缺代码:题目2:判断素数功能描述:输入一个大于1的整数,判断该数是否为素数(质数),是则输出YES,否则输出NO素数定义:大于1的自然数,除了1和自身外,无其他因数PlainText

#include<iostream>

usingnamespacestd;

intmain()

{

intn;

boolflag=true;

cin>>n;

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

{

if(____1____)

{

____2____;

break;

}

}

if(____3____)

cout<<"YES"<<endl;

else

cout<<"NO"<<endl;

return0;

}补全三处空缺代码:参考答案及详细解析一、单项选择题答案及解析1.答案:C解析:计算机常用基础进制为二进制、八进制、十进制、十六进制,无六进制,属于基础计算机常识。2.答案:B解析:二进制转十进制按位展开计算:1×2³+0×2²+1×2¹+1×2⁰=8+0+2+1=11。3.答案:B解析:变量是程序中可修改的存储单元,值可随时修改;变量名不能以数字开头、不能包含空格,因此ACD错误。4.答案:B解析:int为整型关键字,float、double为浮点型,char为字符型。5.答案:B解析:逻辑与运算(&&)规则:两边表达式均为真结果才为真。3>5为假,整体结果为假。6.答案:B解析:%为取余运算符,5除以2商2余1,运算结果为余数1。7.答案:B解析:break跳出当前循环;continue仅跳过本次循环,继续下一次循环;return用于结束函数,exit用于退出整个程序。8.答案:C解析:栈遵循先进后出规则。4第一个出栈说明1、2、3已入栈,后续出栈只能是3、2、1,不可能出现1优先出栈的情况。9.答案:C解析:冒泡、选择、插入排序时间复杂度均为O(n²),适合小规模数据;快速排序平均时间复杂度O(nlogn),效率更高,适合大规模数据。10.答案:A解析:二叉树公式:度为2的节点数=叶子节点数-1。本题度2节点=5-1=4,总节点数=5(叶子)+2(度1)+4(度2)=11。11.答案:A解析:C++语法规则,嵌套if语句中,else默认与距离最近、未匹配的if配对。12.答案:B解析:16×1+4=20,十进制20转换为十六进制为14。13.答案:B解析:队列先进先出,栈先进后出,二叉树、链表无固定进出规则。14.答案:A解析:C++数组下标从0开始,定义长度为10的数组,下标范围为0~9。15.答案:C解析:for、while、do-while为循环语句;if、else、switch为分支语句。二、程序阅读题答案及解析程序1输出结果:6解析:程序功能为统计1~5中偶数的和。循环遍历1-5,筛选出2、4累加,sum=2+4=6。程序2输出结果:10解析:该函数为递归求和,计算1~4累加和。f(4)=4+f(3),f(3)=3+f(2),f(2)=2+f(1),f(1)=1,最终结果=4+3+2+1=10。程序3输出结果:35解析:初始a=3,b=5,判断a>b不成立,不执行交换语句,变量值保持不变,直接输出35。三、程序完善题答案及解析题目1标准答案1:i++2:i%2!=0(或i%2==1)3:sum解析:第一空为循环自增条件,遍历1到n所有整数;第二空筛选奇数,奇数对2取余结果不为0;第三空输出最终累加的奇数和sum。题目2标准答案1:n%i==02:flag=false3:flag解析:第一空判断是否存在除1和自身

温馨提示

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

评论

0/150

提交评论