最新noip提高组初赛试题c++含答案资料Word格式文档下载.docx
- 文档编号:20835377
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:15
- 大小:116.62KB
最新noip提高组初赛试题c++含答案资料Word格式文档下载.docx
《最新noip提高组初赛试题c++含答案资料Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《最新noip提高组初赛试题c++含答案资料Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
二、不定项选择题(共10题,每题1.5分,共计15分。
每题正确答案的个数不少于1。
多选或少选均不得分)。
1.如果根结点的深度记为1,则一棵恰有2011个叶子结点的二叉树的深度可能是()。
A.10B.11C.12D.2011
2.在布尔逻辑中,逻辑“或”的性质有()。
A.交换律:
PVQ=QVP
B.结合律:
PV(QVR)=(PVQ)VR
C.幂等律:
PVP=P
D.有界律:
PV1=1(1表示逻辑真)
3.一个正整数在十六进制下有100位,则它在二进制下可能有()位。
A.399B.400C.401D.404
4.汇编语言()。
A.是一种与具体硬件无关的程序设计语言
B.在编写复杂程序时,相对于高级语言而言代码量大,且不易调试
C.可以直接访问寄存器、内存单元、I/O端口
D.随着高级语言的诞生,如今已被完全淘汰,不再使用
5.现有一段文言文,要通过二进制哈夫曼编码进行压缩。
简单起见,假设这段文言文只由4个汉字“之”、“乎”、“者”、“也”组成,它们出现的次数分别为700、600、300、400。
那么,“也”字的编码长度可能是()。
A.1B.2C.3D.4
6.生物特征识别,是利用人体本身的生物特征进行身份认证的一种技术。
目前,指纹识别、虹膜识别、人脸识别等技术已广泛应用于政府、银行、安全防卫等领域。
以下属于生物特征识别技术及其应用的是()。
A.指静脉验证B.步态验证C.ATM机密码验证D.声音验证
7.对于序列“7、5、1、9、3、6、8、4”,在不改变顺序的情况下,去掉()会使逆序对的个数减少3。
A.7B.5C.3D.6
8.计算机中的数值信息分为整数和实数(浮点数)。
实数之所以能够表示很大或者很小的数,是由于使用了()。
A.阶码B.补码C.反码D.较长的尾数
9.对右图使用Dijkstra算法计算S点到其余各点的最短路径长度时,到B点的距离d[B]初始时赋为8,在算法的执行过程中还会出现的值有()。
A.3B.7C.6D.5
10.为计算机网络中进行数据交换而建立的规则、标准或约定的集合称为网络协议。
下列英文缩写中,()是网络协议
A.HTTPB.TCP/IPC.FTPD.WWW
三.问题求解(共2题,每空5分,共计10分)
1.平面图可以在画在平面上,且它的边仅在顶点上才能相交的简单无向图。
4个顶点的平面图至少有6条边,如右图所示。
那么,5个顶点的平面图至少有条边。
2.定义一种字符串操作,一次可以将其中一个元素移到任意位置。
举例说明,对于字符串“BCA”可以将A移到B之前,变字符串“ABC”。
如果要将字符串“DACHEBGIF”变成“ABCDEFGHI”最少需要________次操作。
四.阅读程序写结果(共4题,每题8分,共计32分)
1.
#include<
iostream>
cstring>
usingnamespacestd;
constintSIZE=100;
intmain()
{
intn,i,sum,x,a[SIZE];
cin>
>
n;
memset(a,0,sizeof(a));
for(i=1;
i<
=n;
i++){
x;
a[x]++;
}
i=0;
sum=0;
while(sum<
(n/2+1)){
i++;
sum+=a[i];
cout<
<
endl;
return0;
}
输入:
11
45664332321
输出:
2.
intn;
voidf2(intx,inty);
voidf1(intx,inty)
if(x<
n)
f2(y,x+y);
voidf2(intx,inty)
x<
'
'
;
f1(y,x+y);
f1(0,1);
30
_______________
3.
constintV=100;
intn,m,ans,e[V][V];
boolvisited[V];
voiddfs(intx,intlen)
inti;
visited[x]=true;
if(len>
ans)
ans=len;
i++)
if((!
visited[i])&
&
(e[x][i]!
=-1))
dfs(i,len+e[x][i]);
visited[x]=false;
inti,j,a,b,c;
n>
m;
for(j=1;
j<
=m;
j++)
e[i][j]=-1;
{
a>
b>
c;
e[a][b]=c;
e[b][a]=c;
visited[i]=false;
ans=0;
dfs(i,0);
ans<
46
1210
2320
3430
4140
1350
2460
______________
4.
string>
constintSIZE=10000;
constintLENGTH=10;
intn,m,a[SIZE][LENGTH];
inth(intu,intv)
intans,i;
if(a[u][i]!
=a[v][i])
ans++;
returnans;
intsum,i,j;
m=1;
while
(1)
i=1;
while((i<
=n)&
(a[m][i]==1))
if(i>
break;
m++;
a[m][i]=1;
for(j=i+1;
a[m][j]=a[m-1][j];
sum+=h(i,j);
sum<
7
_________
5.完善程序(第1题,每空2分,第2题,每空3分,共28分)
1.(大整数开方)输入一个正整数n(1≤n≤10100),试用二分法计算它的平方根的整数部分。
constintSIZE=200;
structhugeint{
intlen,num[SIZE];
};
//其中len表示大整数的位数;
num[1]表示个位,num[2]表示十位,以此类推
hugeinttimes(hugeinta,hugeintb)
//计算大整数a和b的乘积
inti,j;
hugeintans;
memset(ans.num,0,sizeof(ans.num));
=a.len;
=b.len;
①+=a.num[i]*b.num[j];
=a.len+b.len;
ans.num[i+1]+=ans.num[i]/10;
②;
if(ans.num[a.len+b.len]>
0)
ans.len=a.len+b.len;
else
ans.len=a.len+b.len-1;
hugeintadd(hugeinta,hugeintb)
//计算大整数a和b的和
if(a.len>
b.len)
ans.len=a.len;
ans.len=b.len;
=ans.len;
ans.num[i]+=③;
ans.num[i+1]+=ans.num[i]/10;
ans.num[i]%=10;
if(ans.num[ans.len+1]>
ans.len++;
hugeintaverage(hugeinta,hugeintb)
//计算大整数a和b的平均数的整数部分
ans=add(a,b);
for(i=ans.len;
i>
=2;
i--){
ans.num[i-1]+=(④)*10;
ans.num[i]/=2;
ans.num[1]/=2;
if(ans.num[ans.len]==0)
ans.len--;
hugeintplustwo(hugeinta)
//计算大整数a加2之后的结果
ans=a;
ans.num[1]+=2;
=ans.len)&
(ans.num[i]>
=10)){
⑤;
boolover(hugeinta,hugeintb)
//若大整数a>
b则返回true,否则返回false
if(⑥)
returnfalse;
if(a.len>
b.len)
returntrue;
for(i=a.len;
=1;
if(a.num[i]<
b.num[i])
if(a.num[i]>
strings;
hugeinttarget,left,middle,right;
s;
memset(target.num,0,sizeof(target.num));
target.len=s.length();
=target.len;
target.num[i]=s[target.len-i]-⑦;
memset(left.num,0,sizeof(left.num));
left.len=1;
left.num[1]=1;
right=target;
do{
middle=average(left,right);
if(over(⑧))
right=middle;
left=middle;
}while(!
over(plustwo(left),right));
for(i=left.len;
i--)
left.num[i];
2.(笛卡尔树)对于一个给定的两两不等的正整数序列,笛卡尔树是这样的一棵二叉树:
首先,它是一个最小堆,即除了根结点,每个节点的权值都大雨父节点的权值;
其次,它的中序遍历恰好就是给定的序列。
例如,对于序列7、2、12、1、10、5、15、3,下图就是一棵对应的笛卡尔树。
现输入序列的规模n(1≤n<
100)和序列的n个元素,试求其对应的笛卡尔树的深度d(根节点深度为1),以及有多少个叶子节点的深度为d。
constintSIZE=100+5;
constintINFINITY=1000000;
intn,a[SIZE],maxDeep,num;
voidsolve(intleft,intright,intdeep)
inti,j,min;
if(deep>
maxDeep){
maxDeep=deep;
num=1;
elseif(deep==maxDeep)
①;
min=INFINITY;
for(i=left;
=right;
if(min>
a[i]){
min=a[i];
if(left<
j)
③;
if(j<
right)
④;
a[i];
maxDeep=0;
solve(1,n,1);
maxDeep<
num<
NOIP2011年提高组(C++语言)参考答案与评分标准
一、单项选择题:
(每题1.5分)
1.B2.B3.A4.D5.B
6.A7.C8.D9.B10.A
二、不定项选择题(共10题,每题1.5分,共计15分。
每题正确答案的个数大于或等于1。
1.CD2.ABCD3.AB4.BC5.BC
6.ABD7.CD8.A9.BCD10.ABC
三、问题求解:
(共2题,每空5分,共计10分)
1.9
2.4
四、阅读程序写结果(共4题,每题8分,共计32分)
中式饰品风格的饰品绝对不拒绝采用金属,而且珠子的种类也更加多样。
五光十色的水晶珠、仿古雅致的嵌丝珐琅珠、充满贵族气息的景泰蓝珠、粗糙前卫的金属字母珠片的材质也多种多样。
1.3
2.1251334
十几年的学校教育让我们大学生掌握了足够的科学文化知识,深韵的文化底子为我们创业奠定了一定的基础。
特别是在大学期间,我们学到的不单单是书本知识,假期的打工经验也帮了大忙。
3.150
4.57344
五、完善程序(第1题,每空2分,第2题,每空3分,共计28分)
“漂亮女生”号称全国连锁店,相信他们有统一的进货渠道。
店内到处贴着“10元以下任选”,价格便宜到令人心动。
但是转念一想,发夹2.8元,发圈4.8元,皮夹子9.8元,好像和平日讨价还价杀来的心理价位也差不多,只不过把一只20元的发夹还到5元实在辛苦,现在明码标价倒也省心省力。
(说明:
以下各程序填空可能还有一些等价的写法,各省可请本省专家审定和上机验证,不一定上报科学委员会审查)
①ans.num[i+j-1]
标题:
手工制作坊2004年3月18日②ans.num[i]=ans.num[i]mod10
③a.num[i]+b.num[i]
大学生购买力有限,即决定了要求商品能价廉物美,但更注重的还是在购买过程中对精神文化爱好的追求,满足心理需求。
④ans.num[i]%2(或ans.num[i]&
1)
现在是个飞速发展的时代,与时俱进的大学生当然也不会闲着,在装扮上也不俱一格,那么对作为必备道具的饰品多样性的要求也就可想而知了。
⑤ans.len++(或ans.len=ans.len+1)
⑥a.len<
b.len
⑦'
0'
(或48)
⑧times(middle,middle),target
手工制作坊2004年3月18日2.
(六)DIY手工艺品的“创作交流性”①num++(或num=num+1)
关于DIY手工艺制品的消费调查②j=i
③solve(left,j-1,deep+1)
④solve(j+1,right,deep+1)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 noip 提高 初赛 试题 c+ 答案 资料