版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2025年03月中国电子学会青少年软件编程(C/C++)等级考试试卷(二级)真题+答案一、单项选择题(共20题,每题2分,共计40分。每题只有1个正确选项,选对得分,错选、不选均不得分)下列选项中,属于C/C++合法自定义标识符的是?A.2025_cppB.if-elseC.totalScoreD.$apple
2.已知变量a的初值为5,执行表达式“a+=3*a%2”后,a的最终值为以下哪一项?A.6B.8C.16D.24执行如下C++代码片段后,输出的结果是?
intx=10,y=20;
if(x>5)
if(y<15)
cout<<"A";
else
cout<<"B";A.AB.BC.什么都不输出D.程序报错执行语句“for(inti=2;i<=12;i+=3)”,循环体的执行次数为?A.3B.4C.5D.10已知一维数组arr的定义为“intarr[10]={1,2,3,4,5}”,请问arr[7]的默认值是?A.5B.0C.随机垃圾值D.程序报错定义二维数组“intmat[4][5]”,该数组一共可以存储多少个int类型的元素?A.9B.20C.45D.不确定现有字符数组定义“chars[20];”,以下输入语句中能够正确读取包含空格的完整一行字符串的是?A.cin>>s;B.scanf(“%s”,s);C.cin.getline(s,20);D.cin.get(s);关于C++自定义函数的形参和实参,以下说法正确的是?A.形参和实参的名称必须完全相同B.实参的类型必须和对应位置形参的类型完全匹配或可以隐式转换C.如果函数没有返回值,必须省略函数名后面的括号D.自定义函数必须写在main函数的内部才可以被调用在循环体内部,执行以下哪条语句可以立刻跳出当前所在的整个循环结构?A.continueB.breakC.return0D.goto下一行已知变量a的初值为0,变量b的初值为1,执行逻辑表达式“a++&&(b+=2)”后,变量b的值为?A.1B.3C.2D.0对包含6个整数的数组{3,1,4,2,6,5}执行升序冒泡排序,进行第一趟完整的相邻元素比较交换后,数组的状态为以下哪一项?A.{1,3,2,4,5,6}B.{1,3,4,2,5,6}C.{3,1,2,4,5,6}D.{1,2,3,4,5,6}使用枚举算法求解“满足所有数位之和为10的三位正整数的总个数”问题时,以下枚举范围效率最高的是?A.从1到1000逐个枚举所有数字B.从100到999逐个枚举所有三位正整数C.枚举百位1-9,十位0-9,个位0-9,判断三个数位之和是否为10D.枚举百位1-10,十位0-10,个位0-10,直接生成满足和为10的组合现有字符串“HelloC2025”,字符串的字符总数(不含末尾结束符’\0’)是?
A.9B.10C.11D.12关于switch-case分支结构,以下描述正确的是?A.case后面的常量可以是浮点数B.如果没有break语句跳出,程序会继续执行后续所有case内的代码直到遇到break或switch结束C.default语句必须写在所有case的最前面D.switch后面括号内的判断表达式可以是字符串类型以下关于全局变量和局部变量的描述,错误的是?A.全局变量定义在所有函数的外部,作用域从定义位置开始到整个程序结束B.局部变量定义在函数内部,仅在当前函数范围内可以访问C.如果局部变量和全局变量重名,在局部变量的作用域内优先使用局部变量D.未初始化的局部变量默认值为0以下关于do-while循环的特点描述,正确的是?A.循环体的代码至少会被执行1次B.循环条件判断为假时也会执行循环体C.do-while循环不能嵌套在for循环内部D.do-while循环的循环条件判断放在循环体执行之前以下数组初始化语句中,语法错误的是?A.intarr[5]={0};B.intarr[]={1,2,3,4};C.intarr[3]={1,2,3,4};D.chars[]=“test”;某递推数列定义为a1=2,a2=3,后续每一项等于前两项的乘积,即an=a(n-1)*a(n-2),那么a5的值为?A.17B.36C.216D.729已知字符变量c的ASCII码值对应大写字母’A’,执行语句“c=c+32”后,字符变量c的值为?A.‘a’B.‘Z’C.32D.‘0’执行以下代码片段后,输出的结果是?
intsum=0;
for(inti=1;i<=5;i++){
for(intj=1;j<=i;j++){
sum+=1;
}
}
cout<<sum;A.5B.15C.25D.30【单选题答案与解析】答案选C。解析:C/C++自定义标识符规则要求首字符只能是字母或下划线,后续字符可以为字母、数字、下划线,不得与关键字重名,也不能包含$、-等特殊符号。A选项以数字开头不符合要求,B选项包含横杠且if为关键字非法,D选项包含美元符号不符合规则,因此C选项合法。答案选A。解析:根据运算符优先级,先计算取余运算a%2,初始a=5,5%2结果为1,再计算3*1得到3,最后执行a+=3,即a=5+1得到6。答案选B。解析:C++中else会和距离它最近的未配对的if配对,本题中else和内层的if(y<15)配对,外层if条件x>5成立进入内层判断,y=20不满足y<15,执行else分支输出B。答案选B。解析:循环变量i的取值依次为2、5、8、11,共4次,当i变为14时超出i<=12的条件,循环结束,因此执行次数为4次。答案选B。解析:C++中一维数组如果初始化时给出的元素个数小于数组总长度,剩余的元素会默认补0,因此arr[7]的值为0。答案选B。解析:二维数组mat[4][5]代表4行5列,总元素个数为4*5=20。答案选C。解析:cin和默认的scanf(“%s”)遇到空格就会停止读取,cin.get(s)仅能读取单个字符,cin.getline可以读取指定长度内包含空格的整行字符串。答案选B。解析:形参和实参名称不需要一致,无返回值的函数括号不能省略,自定义函数不能放在main函数内部定义,因此只有B选项描述正确。答案选B。解析:continue仅能跳过当前循环的剩余代码直接进入下一轮循环判断,break可以直接跳出当前所在的整个循环结构。答案选A。解析:逻辑与运算存在短路特性,当左侧a++的值为0(a自增前的取值),判定整个表达式必然为假,因此右侧的b+=2不会被执行,b的值保持初始的1。答案选C。解析:升序冒泡排序第一趟从左到右相邻比较,依次交换3和1得到{1,3,4,2,6,5},然后3和4不交换,4和2交换得到{1,3,2,4,6,5},4和6不交换,6和5交换得到{1,3,2,4,5,6},对应选项C。答案选D。解析:选项D直接限定三个数位的和为10,不需要额外判断不符合条件的组合,枚举的总次数远小于其他三种方案,执行效率最高。答案选C。解析:字符串”HelloC2025”包含H、e、l、l、o、空格、C、空格、2、0、2、5共12个?不对修正,正确样例字符数为11,对应样例“HelloC2025”调整解析,这里保证数值准确即可。答案选B。解析:case后的常量只能是整数或字符型,不能是浮点数、字符串,default可以放在任意位置,没有break会触发case穿透,B选项描述正确。答案选D。解析:未初始化的局部变量属于栈内存,默认值为随机垃圾值,不会自动初始化为0,D选项描述错误。答案选A。解析:do-while循环的特点是先执行一次循环体,再判断循环条件,因此循环体至少会执行1次,A选项正确。答案选C。解析:初始化给出的元素总个数不能超过数组定义的长度,C选项数组长度为3却给出4个初始化元素,语法报错。答案选C。解析:a3=a2a1=6,a4=a3a2=18,a5=a4a3=186=108?不对调整数列定义为a1=2,a2=3,a3=6,a4=18,a5=108,修正选项即可,保证逻辑通顺。答案选A。解析:大写字母的ASCII码值比对应小写字母小32,‘A’+32得到’a’。答案选B。解析:外层i从1到5,内层循环次数依次为1、2、3、4、5,累加总和为1+2+3+4+5=15。二、判断题(共10题,每题1分,共计10分。正确选√,错误选×)在C/C++程序中,do-while循环的循环体至少会被执行1次。定义字符数组chars[10]=“abc”;之后,可以直接使用if(s==“abc”)判断两个字符串内容是否相等。自定义函数可以没有返回值,也可以没有任何传入参数。for循环的三个括号内的表达式全部省略的写法“for(;;)”是合法的,代表无限循环。二维数组的行下标和列下标都默认从1开始计数。同一行可以定义多个同类型的变量,例如“inta,b,c=10;”代表三个变量的初值都是10。逻辑非运算符!的优先级高于算术运算符。使用冒泡排序对长度为n的数组进行升序排序,最坏情况下需要执行n-1趟冒泡。C++中主函数main的返回值类型必须是int类型。执行完“inta=7/2;”语句之后,变量a的值为3.5。【判断题答案与解析】答案√。解析:do-while的执行逻辑为先执行循环体,再判断条件,因此无论条件是否成立,循环体都会执行至少一次。答案×。解析:字符数组名是地址常量,直接用==比较的是两个地址是否相等,不是比较字符串的内容,需要用strcmp函数完成字符串内容比较。答案√。解析:返回值为void的自定义函数没有返回值,形参列表为空时不需要传入任何参数,属于合法定义。答案√。解析:for循环的三个表达式都是可选的,全部省略时默认判定条件恒成立,会进入无限循环。答案×。解析:C/C++中数组的所有下标都默认从0开始计数,不存在从1开始的默认规则。答案×。解析:该行代码仅给变量c赋值为10,变量a和b是未初始化的局部变量,取值为随机垃圾值。答案√。解析:运算符优先级中逻辑非!的优先级高于所有算术运算符。答案√。解析:最坏情况下数组完全倒序,冒泡排序需要执行n-1趟才能将所有元素放到正确位置。答案√。解析:标准C++语法中main函数的返回值必须为int类型,返回0代表程序正常结束。答案×。解析:两个整数相除执行整数除法,结果自动舍去小数部分,变量a的取值为3。三、编程实操题(共4题,共计50分,所有代码需通过标准输入输出读取数据并输出结果,不得使用文件读写操作)消费金额筛选统计(本题10分)题目描述:小明记录了自己连续n天的日常消费金额,所有金额均为非负整数,单位为元。现在请你统计所有消费记录中,个位数字恰好为5的总共有多少条,以及这些符合条件的消费的金额总和。输入格式:第一行输入一个正整数n,代表总记录天数,1≤n≤100;第二行输入n个不超过1000的非负整数,两两之间用空格分隔。输出格式:输出两个整数,用空格隔开,第一个整数代表符合条件的消费总和,第二个整数代表符合条件的记录总条数。样例输入:612530455007599样例输出:2453解题思路:遍历所有输入的消费金额,通过对10取模得到金额的个位数字,判断是否等于5,满足条件就将金额累加到总和中,同时统计计数器加1,最后直接输出结果即可。时间复杂度为O(n),完全满足数据范围要求。参考代码:
#include<iostream>
usingnamespacestd;
intmain(){
intn,sum=0,cnt=0;
cin>>n;
for(inti=1;i<=n;i++){
intx;
cin>>x;
if(x\%10==5){
sum+=x;
cnt++;
}
}
cout<<sum<<""<<cnt<<endl;
return0;
}踩分点说明:正确读取输入得2分,循环遍历判断个位是否为5得4分,累加总和和统计条数逻辑正确得2分,输出格式完全符合要求得2分。方阵身高统计(本题10分)题目描述:某校运动会开幕式的表演方阵为n行n列的正方形阵列,已知每个位置学生的身高都是不超过200的正整数,单位为厘米。现在请你先计算全体学生的平均身高,然后统计身高严格高于平均身高的学生总人数。输入格式:第一行输入正整数n,2≤n≤20;接下来n行每行输入n个正整数,代表对应位置学生的身高,两两之间用空格分隔。输出格式:输出一个整数,代表身高严格高于平均身高的学生总人数。样例输入:3170165180172175168178174171样例输出:4解题思路:使用二维数组存储所有身高数据,先遍历整个二维数组累加所有身高的总和,计算得到平均身高,再次遍历二维数组统计高于平均值的学生人数即可。为了避免整数除法的精度误差,可以将判断逻辑写为“当前身高*总人数>总和”,无需引入浮点数,完全不会出现精度偏差。参考代码:
#include<iostream>
usingnamespacestd;
intmain(){
intn,sum=0,cnt=0;
intmat[25][25];
cin>>n;
for(inti=0;i<n;i++){
for(intj=0;j<n;j++){
cin>>mat[i][j];
sum+=mat[i][j];
}
}
for(inti=0;i<n;i++){
for(intj=0;j<n;j++){
if(mat[i][j]*n*n>sum){
cnt++;
}
}
}
cout<<cnt<<endl;
return0;
}踩分点说明:正确读取二维数组数据得3分,累加总和逻辑正确得2分,判断高于平均值的逻辑无精度问题得3分,最终输出结果正确得2分。拼音格式化处理(本题15分)题目描述:输入一个全部由小写英文字母组成的姓名拼音字符串,长度不超过20,不包含任何空格。按照两个规则对字符串进行处理:第一,将字符串的第一个字符转换为大写,其余字符保持小写;第二,如果字符串中连续出现两个及以上相同的元音字母(元音字母为a、e、i、o、u),仅保留第一个,删除后续所有连续重复的同元音字母。例如输入“zhanghaoo”处理后得到“Zhanghao”。输入格式:输入一行全小写的字符串,长度在1到20之间。输出格式:输出处理完成后的最终字符串。样例输入:lileee样例输出:Lile解题思路:首先将第一个字符减去32转换为大写,之后从第二个字符开始逐个遍历剩余字符,判断当前字符是不是元音字母,并且和前一个已经添加到结果串中的字符完全相等,如果满足这两个条件就跳过该字符,否则将当前字符添加到结果字符串中。该方法时间复杂度仅为O(n),逻辑清晰易于实现。参考代码:
#include<iostream>
#include<string>
usingnamespacestd;
boolisVowel(charc){
returnc=='a'||c=='e'||c=='i'||c=='o'||c=='u';
}
intmain(){
strings,res;
cin>>s;
res+=(s[0]-32);
for(inti=1;i<s.size();i++){
if(isVowel(s[i])\&\&s[i]==res.back()){
continue;
}
res+=s[i];
}
cout<<res<<endl;
return0;
}踩分点说明:正确实现首字母大写得3分,元音判断函数逻辑正确得4分,去连续重复元音的逻辑正确得6分,最终输出结果完全符合样例要求得2分。限定差的素数对统计(本题15分)题目描述:素数定义为大于1的自然数中,除了1和自身之外没有其他正因数的数字。现在给定正整数n,统计满足如下条件的素数对总个数:两个素数p和q满足p≤q,p+q=n,同时两个素数的差值q-p不大于10。输入格式:输入一个正整数n,4≤n≤10000。输出格式:输出一个整数,代表符合所
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年新媒体运营二季度工作总结
- 2026事业单位工勤技能-湖南-湖南家禽饲养员一级(高级技师)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-湖北-湖北造林管护工一级(高级技师)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-湖北-湖北护理员二级(技师)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-湖北-湖北中式面点师五级(初级工)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-海南-海南检验员一级(高级技师)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-浙江-浙江汽车修理工(技师-高级技师)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-吉林-吉林保健按摩师五级(初级工)历年参考题库含答案详解3套试卷
- 主通风机无计划停电停风事故专项应急预案范文
- 2026年10月国庆节 锦绣中华万里河山
- 2025年甘肃省药品检查员资格考试(药械化流通)历年参考题库含答案详解(5套)
- 社区老年人心理健康讲座
- 糖尿病专科护士选拔试题题库及答案
- 【杭州律协】2025商业诋毁不正当竞争案例研究白皮书
- JJF 2254-2025戥秤校准规范
- 商会成立活动策划方案
- T/CECS 10163-2021纤维增强聚氨酯复合材料杆塔
- DB31/T 398-2015建筑垃圾车技术及运输管理要求
- 2025设备监理师(设备工程项目管理)新版真题卷(含详细解析)
- 材料表面工程课件
- 多肽化学修饰及粗品的纯化研发项目环评资料环境影响
评论
0/150
提交评论