26年信息素养大赛C++小高组第二波复赛真题和相关解析_第1页
26年信息素养大赛C++小高组第二波复赛真题和相关解析_第2页
26年信息素养大赛C++小高组第二波复赛真题和相关解析_第3页
26年信息素养大赛C++小高组第二波复赛真题和相关解析_第4页
26年信息素养大赛C++小高组第二波复赛真题和相关解析_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

26年信息素养大赛C++小高组第二波复赛真题和相关解析题目1在抗日根据地,小通讯员需要定义变量存储“当月缴获的敌军电台总数”。以下哪个变量名是C++允许的?A.defaultB.radio_countC.3_radioD.radio@total答案:B解析:C++变量命名规则——只能由字母、数字、下划线组成,不能包含@等特殊符号(D错);不能以数字开头(C错);不能使用关键字,default是关键字(A错)。radio_count完全合规。────────────────────────────题目2游击队员在森林里穿插。已知森林横向宽度为17公里,执行代码cout<<(17/5)*5+17%5;后输出的结果是?A.15B.17C.20D.12答案:B解析:整数除法向下取整——17/5=3,3×5=15,17%5=2,15+2=17。该表达式恒等于原数17。────────────────────────────题目3红军战士计划每天练习打靶。如果要表示“今天打靶次数n是4的倍数且不是100的倍数”,正确的C++逻辑表达式是?A.n%4==0||n%100!=0B.n/4==0&&n/100!=0C.n%4==0&&n%100!=0D.n%4=0&&n%100!=0答案:C解析:要求同时满足“是4的倍数”和“不是100的倍数”,用&&连接。%取模判断倍数,/不能判断倍数(B错)。A用了||,逻辑错误;D语法错误(单等号赋值)。────────────────────────────题目4战士们在雪山上行走,如果气温temp低于-10度且风力wind大于5级,需要寻找掩体。代码如下:#include<iostream>usingnamespacestd;intmain(){

inttemp=-5,wind=3;

if(temp<-10){

if(wind>5)

cout<<"Hide";

}

elsecout<<"Keepmoving";

return0;}当前程序执行结果是?A.HideB.报错C.什么都不输出D.Keepmoving答案:D解析:temp=-5,temp<-10为假,直接执行else分支,输出"Keepmoving"。────────────────────────────题目5指挥部需要处理一组加密编号。已知编号由a,b,c三个变量组成,执行以下代码:#include<iostream>usingnamespacestd;intmain(){

inta=5,b=2,c=10;

if(a>b){

c=a-b;

if(c<b)a=c;

elseb=c;

}

cout<<a+b+c;

return0;}最终输出的结果是?A.11B.13C.10D.15答案:A解析:初始a=5,b=2,c=10;a>b成立,执行c=5-2=3;c<b(3<2)不成立,执行elseb=c→b=3;最终a=5,b=3,c=3,求和5+3+3=11。二、多选题(共5题)题目1(多选)大生产运动中,开荒面积area超过80亩或者产量yield超过500斤的战士可以获得奖章。以下合法的C++条件判断有?A.area>80||yield>500B.!(area<=80)||yield>500C.area>80&&yield>500D.area>=80||yield>500答案:A、B解析:题意是“超过80”或“超过500”,逻辑或||。A完全匹配;B中!(area<=80)等价于area>80,正确;C是“且”,错误;D是“>=80”,与“超过80”不符。────────────────────────────题目2(多选)班长记录了4名战士的行军速度intspeed[4]={6,8,5,7};。下列说法正确的有?A.speed[1]的值是8。B.speed[4]是最后一名战士的速度。C.执行speed[0]=speed[3];后,speed[0]的值变为7。D.数组的总字节数sizeof(speed)为16。答案:A、C、D解析:下标从0开始,speed[0]=6,speed[1]=8,speed[2]=5,speed[3]=7;合法下标0~3,speed[4]越界(B错)。C:speed[3]=7赋给speed[0],正确。D:int占4字节,4个元素共16字节。────────────────────────────题目3(多选)为了紧急撤离,连队需要连续吹响4次短促的号角。以下循环语句能准确执行4次的有?A.for(inti=0;i<4;i++)B.for(inti=4;i>0;i--)C.for(inti=1;i<4;i++)D.for(inti=2;i<=5;i++)答案:A、B、D解析:A执行i=0,1,2,3共4次;B执行i=4,3,2,1共4次;C执行i=1,2,3共3次;D执行i=2,3,4,5共4次。────────────────────────────题目4(多选)在长征的艰难岁月中,红军战士需要不断重复行军、驻扎等任务。关于C++中的while循环和for循环的特性,下列说法正确的有?A.for循环通常用于已知循环次数的情况。B.while循环的条件表达式为假时,循环体一次也不会执行。C.在循环体中使用break会立即跳出当前循环。D.所有的for循环都可以等效改写为while循环。答案:A、B、C、D(全选)────────────────────────────题目5(多选)某侦察小组弹药消耗情况记录在数组intammo[5]={10,2,8,4,6};,代码如下:#include<iostream>usingnamespacestd;intmain(){

inttotal_ammo=0;

intammo[5]={10,2,8,4,6};

for(inti=0;i<5;i++){

if(ammo[i]<3)continue;

if(total_ammo>15)break;

total_ammo+=ammo[i];

}

return0;}关于这段代码,下列说法正确的有?A.最终total_ammo的值为18。B.i=1时的弹药量小于3,被continue跳过了。C.循环执行过程中,i最终能增加到4。D.遇到break时,i的值是2。答案:A、B解析:分步——i=0,ammo[0]=10,total=10;i=1,ammo[1]=2<3,continue跳过,i自增为2;i=2,ammo[2]=8,total=18;i=3?但此时检查if(total_ammo>15)为真,立即break跳出,所以i不会到4,break时i=2。因此C、D错误,A、B正确。💻三、编程题(共4题)编程题1:优秀通讯员题目描述红军某连队正在选拔优秀的通讯员。战士必须同时满足以下两个条件:•年龄age在14~18之间(包含14、18);•100米跑成绩run严格低于15秒(不包含15秒)。同时满足两项标准,输出Excellent;否则输出Pass。输入格式一行两个正整数age、run,空格隔开。输出格式一行字符串,严格区分大小写。样例输入:1514→输出:Excellent输入:1314→输出:Pass参考代码:#include

<iostream>usingnamespacestd;intmain(){

intage,run;

cin>>age>>run;

if(age>=14&&age<=18&&run<15)

cout<<"Excellent"<<endl;

else

cout<<"Pass"<<endl;

return0;}────────────────────────────编程题2:电报码筛选题目描述我方截获敌军加密电报,由N个三位正整数组成。一个数字是“重要情报”需要同时满足两条规则:•该数字是3的倍数;•该数字个位数字为7。统计电报里符合条件的数字总个数。输入格式第一行:正整数N,数字总个数;第二行:N个三位正整数,空格分隔。输出格式输出一个整数:符合条件的数字数量。样例样例1:输入3/127117217→输出1(仅117满足)样例2:输入4/333107999100→输出0参考代码:#include

<iostream>usingnamespacestd;intmain(){

intN;

cin>>N;

intcount=0;

for(inti=0;i<N;i++){

intnum;

cin>>num;

intge=num%10;

if(ge==7&&num%3==0)

count++;

}

cout<<count<<endl;

return0;}────────────────────────────编程题3:电报密文修复题目描述有效密文必须同时满足全部三条“三位一体”规则:•指令以大写字母R开头,以大写字母A结尾;•去掉首字符R、尾字符A后的中间部分,恰好包含3个数字字符;•整个字符串总长度(包含R和A)≤10。给定n条候选指令,统计有效指令的条数。输入格式第一行整数n,代表候选指令条数;接下来n行,每行一条由大小写字母、数字组成的字符串。输出格式输出一个整数:有效指令的总数量。样例样例1:输入4/R123A/R1a2b3A/R1234A/R12A→输出2样例2:输入5/R007abcdeA/R007abcdefA/r123A/R123a/A123R→输出1参考代码:#include

<iostream>#include

<string>usingnamespacestd;intmain(){

intn;

cin>>n;

intans=0;

while(n--){

strings;

cin>>s;

intlen=s.size();

if(len>10)continue;

if(s[0]!='R'||s.back()!='A')continue;

intcnt_num=0;

for(inti=1;i<=len-2;i++){

charc=s[i];

if(c>='0'&&c<='9')cnt_num++;

}

if(cnt_num==3)ans++;

}

cout<<ans<<endl;

return0;}────────────────────────────编程题4:火力掩护阵地题目描述总共有N个掩体,编号1~N,火力数组F[1..N]。掩体i成为“黄金掩体”的前提:•左边至少有k个掩体,右边至少有k个掩体(合法i范围为k+1<=i<=N-k);•计算左侧k个邻居和与右侧k个邻居和,取绝对值abs(S_left-S_right)。筛选规则:找出所有合法i中“差值绝对值最小”的位置;若多个位置差值相同,选“编号最大”的那个;若无合法位置,输出-1。输入格式第一行:N,k第二行:N个非负整数F[1]~F[N]输出格式输出符合条件的掩体编号,无则输出-1。样例样例1:输入72/1015305020525→输出4样例2:输入51/1020103010→输出4参考代码:#include

<iostream>#include

<vector>#include

<cmath>#include

<limi

温馨提示

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

评论

0/150

提交评论