NOIP信息学奥赛普及组初赛C++试题及答案较完美版Word文档格式.docx
- 文档编号:17469076
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:11
- 大小:219.56KB
NOIP信息学奥赛普及组初赛C++试题及答案较完美版Word文档格式.docx
《NOIP信息学奥赛普及组初赛C++试题及答案较完美版Word文档格式.docx》由会员分享,可在线阅读,更多相关《NOIP信息学奥赛普及组初赛C++试题及答案较完美版Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
程序运行后的输出结果是()。
A.2,2B.2,3C.3,2D.3,3
14.给定含有n个不同的数的数组L=<
xi,x2,...,,Xn>
。
如果L中存在xi(1<
i<
n)使得x1<
x2<
...<
xi-1<
xi>
xi+1>
...>
xn,,则称L是单峰的,并称xi是L的“峰顶”。
现在己知L是单峰的,请把a-c三行代码补全到算法中使得算法正确找到L的峰顶。
正确的填空顺序是()。
A.c,a,bB.c,b,aC.a,b,cD.b,a,c
15.设简单无向图G有16条边且每个顶点的度数都是2,则图G有()个顶点。
A.10B.12C.8D.16
16.有7个一模一样的苹果,放到3个一样的盘子中,一共有()种放法。
A.7B.8C.21D.37
17.下图表示一个果园灌溉系统,有A、B、C、D四个阀门,每个阀门可以打开或关上,所有管道粗细相同,以下设置阀门的方法中,可以让果树浇上水的是()。
A.B打开,其他都关上B.AB都打开,CD都关上
C.A打开,其他都关上D.D打开,其他都关上
18.Lucia和她的朋友以及朋友的朋友都在某社交网站上注册了账号。
下图是他们之间的关系图,两个人之间有边相连代表这两个人是朋友,没有边相连代表不是朋友。
这个社交网站的规则是:
如果某人A向他(她)的朋友B分享了某张照片,那么B就可以对该照片进行评论;
如果B评论了该照片,那么他(她)的所有朋友都可以看见这个评论以及被评论的照片,但是不能对该照片进行评论(除非A也向他(她)分享了该照片)。
现在Lucia已经上传了一张照片,但是她不想让Jacob看见这张照片,那么她可以向以下朋友()分享该照片。
A.Dana,Michael,EveB.Dana,Eve,Monica
C.Michael,Eve,JacobD.Micheal,Peter,Monica
19.周末小明和爸爸妈妈三个人一起想动手做三道菜。
小明负责洗菜、爸爸负责切菜、妈妈负责炒菜。
假设做每道菜的顺序都是:
先洗菜10分钟,然后切菜10分钟,最后炒菜10分钟。
那么做一道菜需要30分钟。
注意:
两道不同的菜的相同步骤不可以同时进行。
例如第一道菜和第二道的菜不能同时洗,也不能同时切。
那么做完三道菜的最短时间需要()分钟。
A.90B.60C.50D.40
20.参加NOI比赛,以下不能带入考场的是()。
A.钢笔B.适量的衣服C.U盘D.铅笔
二、问题求解(共2题,每题5分,共计10分;
第一题全部答对得5分,没有部分分;
第二题第一空2分,第二空3分)
1.从一个4×
4的棋盘(不可旋转)中选取不在同一行也不在同一列上的两个方格,共有_______种方法。
2.约定二叉树的根节点高度为1。
一棵结点数为2016的二叉树最少有________个叶子结点;
一棵结点数为2016的二叉树最小的高度值是___________。
三、阅读程序写结果(共4题,每题8分,共计32分)
1.#include<
usingnamespacestd;
intmain()
{
intmax,min,sum,count=0;
inttmp;
cin>
>
tmp;
if(tmp==0)return0;
max=min=sum=tmp;
count++;
while(tmp!
{
if(tmp!
=0)
sum+=tmp;
if(tmp>
max)max=tmp;
if(tmp<
min)min=tmp;
}
max<
"
min<
sum/count<
return0;
}
输入:
12345607输出:
2.#include<
inti=100,x=0,y=0;
while(i>
0)
i--;
x=i%8;
if(x==1)y++;
y<
输出:
3.#include<
intmain()
inta[6]={1,2,3,4,5,6};
intpi=0;
intpj=5;
intt,i;
while(pi<
pj)
t=a[pi];
a[pi]=a[pj];
a[pj]=t;
pi++;
pj--;
for(i=0;
6;
i++)
a[i]<
;
4.#include<
inti,length1,length2;
strings1,s2;
s1="
Ihaveadream."
s2="
IHaveADream."
length1=s1.size();
length2=s2.size();
length1;
if(s1[i]>
='
a'
&
s1[i]<
z'
)
s1[i]-='
-'
A'
length2;
if(s2[i]>
s2[i]<
s2[i]-='
if(s1==s2)cout<
="
endl;
elseif(s1>
s2)cout<
elsecout<
_________
四、完善程序(共2题,每题14分,共计28分)
1.(读入整数)请完善下面的程序,使得程序能够读入两个int范围内的整数,并将这两个整数分别输出,每行一个。
(第一、五空2.5分,其余3分)
输入的整数之间和前后只会出现空格或者回车。
输入数据保证合法。
例如:
123-789
123
-789
#include<
intreadint()
intnum=0;
//存储读取到的整数
intnegative=0;
//负数标识
charc;
//存储当前读取到的字符
c=cin.get();
while((c<
'
0'
||c>
9'
)&
c!
='
c=
(1);
if(c=='
)negative=1;
else
(2);
c=cin.get();
while((3))
(4);
}
if(negative==1)(5);
returnnum;
inta,b;
a=readint();
b=readint();
a<
endl<
b<
2.(郊游活动)有n名同学参加学校组织的郊游活动,已知学校给这n名同学的郊游总经费为A元,与此同时第i位同学自己携带了Mi元。
为了方便郊游,活动地点提供B(≥n)辆自行车供人租用,租用第j辆自行车的价格为Cj元,每位同学可以使用自己携带的钱或者学校的郊游经费,为了方便账务管理,每位同学只能为自己租用自行车,且不会借钱给他人,他们想知道最多有多少位同学能够租用到自行车。
(第四、五空2.5分,其余3分)
本题采用二分法。
对于区间[l,r],我们取中间点mid并判断租用到自行车的人数能否达到mid。
判断的过程是利用贪心算法实现的。
#defineMAXN1000000
intn,B,A,M[MAXN],C[MAXN],l,r,ans,mid;
boolcheck(intnn)
intcount=0,i,j;
i=
(1);
j=1;
while(i<
=n)
if(
(2))
count+=C[j]-M[i];
i++;
j++;
return(3);
voidsort(inta[],intl,intr)
inti=l,j=r,x=a[(l+r)/2],y;
=j)
while(a[i]<
x)i++;
while(a[j]>
x)j--;
if(i<
{
y=a[i];
a[i]=a[j];
a[j]=y;
j--;
r)sort(a,i,r);
if(l<
j)sort(a,l,j);
inti;
cin>
n>
B>
A;
for(i=1;
i<
=n;
i++)
M[i];
=B;
C[i];
sort(M,1,n);
sort(C,1,B);
l=0;
r=n;
while(l<
=r)
mid=(l+r)/2;
if((4))
{
ans=mid;
l=mid+1;
}
elser=(5);
cout<
ans<
第二十二届全国青少年信息学奥林匹克联赛初赛
普及组参考答案
一.选择题
DCDCDCBBCADBDADBAACC
二.问题求解
1.72
2.1(2分)11(3分)
三.阅读程序写结果
1.6,1,3
2.13
3.6,5,4,3,2,1,
4.=
四.完善程序
1.
(1)cin.get()
(2)num=c-‘0’或num=c-48
(3)c>
=’0’&
c<
=’9’或c>
=48&
=57
(4)num=num*10+c-'
或
num=num*10+c-48
(5)num=-num
或
return-num
2.
(1)n-nn+1
(2)M[i]<
C[j]
M[i]<
=C[j]
(3)count<
=A
(4)check(mid)
(5)mid-1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NOIP 信息学 普及 初赛 C+ 试题 答案 完美