最新NOIP初赛模拟题7C++资料Word文件下载.docx
《最新NOIP初赛模拟题7C++资料Word文件下载.docx》由会员分享,可在线阅读,更多相关《最新NOIP初赛模拟题7C++资料Word文件下载.docx(17页珍藏版)》请在冰点文库上搜索。
![最新NOIP初赛模拟题7C++资料Word文件下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/7/2685a30b-67be-4ce3-82af-05e2b233c374/2685a30b-67be-4ce3-82af-05e2b233c3741.gif)
C.两者长度均固定D.两者长度均可变
13.设二叉树根结点的层次为0,一棵高度为b的满二叉树中结点的个数是()
A.2^bB.2^(b-1)C.2^b-1D.2^(b+1)-1
14.有12个结点的平衡二叉树的最大深度是()
A.4B.5C.6D.3
15.如果某二叉树的前序为STUWV,中序为UWTVS,那么该二叉树的后序是()
A.WUVTSB.UWVTSC.VWUTSD.WUTSV
16.对以下关键字序列用快速排序法进行排序,速度最慢的情况是()
A.{19,23,3,15,7,21,8}B.{23,21,28,15,19,3,7}
C.{19,7,15,28,23,21,3}D.{3,7,15,19,21,23,28}
17.树的基本遍历策略可分为先根遍历和后根遍历;
二叉树的基本遍历策略可分为先序遍历、中序遍历和后序遍历。
这里,我们把由树转化得到的二叉树叫做这棵树对应的二叉树。
正确的结论是()
A.树的先根遍历序列与其对应的二叉树的先序遍历序列相同
B.树的先根遍历序列与其对应的二叉树的中序遍历序列相同
C.树的后根遍历序列与其对应的二叉树的先序遍历序列相同
D.树的后根遍历序列与其对应的二叉树的后序遍历序列相同
18.如果T2是由有序树T转换而来的二叉树,那么T中结点的后序就是T2中结点的()
A.前序B.中序C.后序D.层次序
19.二维数组M[I][j]的元素是4个字符(每个字符占一个存储单元)组成的串,行下标I的范围从0到4,列下标j的范围从0到5。
M按行存储元素M[3][5]的起始地址与M按列存储时元素()的起始地址相同。
A.m[2][4]B.m[3][4]C.m[3][5]D.m[4][4]
20.设有6个结点的无向图,该图至少应该有()条边才能确保是一个连通图()
A.5B.6C.7D.8
二、问题求解(5’×
2)
1.已知a,b,c,d,e,f,g七个人中,a会讲英语;
b会讲英语和汉语;
c会讲英语、意大利语和俄语;
d会讲汉语和日语;
e会讲意大利语和德语;
f会讲俄语、日语和法语;
g会讲德语和法语。
能否将他们的座位安排在圆桌旁,使得每个人都能与他身边的人交谈?
如果可以,请以“ab”开头写出你的安排方案:
。
2.N个人在操场里围成一圈,将这N个人按顺时针方向从1到N编号,然后从第一个人起,每隔一个人让下一个人离开操场,显然,第一轮过后,具有偶数编号的人都离开了操场。
依次做下去,直到操场只剩下一个人,记这个人的编号为J(N),例如,J(5)=3,J(10)=5等等,则J(400)=。
(提示:
对N=2m+r进行分析,其中0≤r<
2m)。
三、程序阅读(8’×
4)
1.
#include<
iostream>
iomanip>
#definen5
usingnamespacestd;
intmain()
{
inti,j,k;
inta[2*n][2*n];
k=1;
for(i=1;
i<
2*n;
i++)
if(i<
=n)
if(i%2==0)
for(j=i;
j>
=1;
j--)
{
a[i-j+1][j]=k;
k=k+1;
}
else
for(j=1;
j<
=i;
j++)
else
for(j=n;
=i-n+1;
a[i-j+1][j]=k;
for(j=i-n+1;
=n;
cout<
<
setw(3)<
a[i][j];
endl;
return0;
}
结果:
2.
cstring>
inti,j,n,m;
stringx,st,a[10][10];
do
cin>
>
st;
n=st.length();
}while(n>
=10&
&
n%2==0);
m=(n+1)/2;
a[i][j]='
'
;
=m;
=n+1-i;
x=st[j];
a[i][j]=x;
a[n+1-i][n+1-j]=x;
for(i=1;
cout<
setw
(2)<
输入:
ABCDEFG
输出:
#definen10
intco(inti)
intj1,s1;
s1=n;
for(j1=n-1;
j1>
=n-i+1;
j1--)
s1=s1*j1/(n-j1+1);
returns1;
inti,s;
s=n+1;
for(i=2;
s=s+co(i);
s<
4.
#definemaxn10000
longi,j,k,n,r,p,g,a[maxn];
longgcd(longm,longn)
longr;
while(n!
=0)
r=m%n;
m=n;
n=r;
returnm;
n=1000;
r=200;
=n-r;
a[i]=n-i+1;
=r;
k=i;
for(j=1;
if(gcd(k,a[j])>
1)
{
g=gcd(k,a[j]);
k=k/g;
a[j]=a[j]/g;
if(k==1)
break;
}
p=1;
g=0;
p=p*a[i];
while(p%5==0)
p=p/5;
g=g+1;
p=p%5;
g<
________
四、程序填空(3’×
4+1+3’×
5)
1.读入n个不相同且不为0的数(1<
=n<
=100),不用排序,求出其中第r个大的数(1≤r≤n),即有r-1个数比它大,其余的数都比它小。
例如:
输入3,14,22,15,17,6,其中第3个大的数为15。
[算法说明]
以数组a[100]记录读入的n个数,并以0结束(0本身不是n个数中的数)。
然后从第一个数开始,将它与其余的数进行比较并记录出比它大的数的个数(存于变量y中),若y=r=1时,得到所求结果:
否则对下一个数进行同样的处理。
[程序清单]
intr,i,j,k,x,y,a[100];
boolp;
j=0;
cin>
x;
while([1])
[2];
a[j]=x;
[3];
r;
p=true;
i=1;
while(p)
[4];
y=0;
for(x<
a[k])[5];
if([6])
cout<
x<
p=false;
else
i=i+1;
2.逻辑游戏:
一个同学给了我一个逻辑游戏。
他给了我图1,在这个图上,每一段边界都已经进行了编号。
我的任务是在图中画一条连续的曲线,使得这条曲线穿过每一个边界一次且仅穿过一次,而且曲线的起点和终点都在这整个区域的外面。
这条曲线是容许自交的。
对于图1,我的同学告诉我画出这样的一条曲线(图2)是不可能的,但是对于有的图形(比如图3),画出这样一条曲线是可行的。
对于给定的一个图,我想知道是否可以画出满足要求的曲线。
图1
图2
图3
图4
输入:
输入的图形用一个n×
n的矩阵表示的。
矩阵的每一个单元里有一个0到255之间(包括0和255)的整数。
处于同一个区域的单元里的数相同,相邻区域的数不同(但是不相邻的区域里的数可能相同)。
输入的第一行是n(0<
n<
100)。
以下的n行每行包括n个整数,分别给出对应的单元里的整数(这n个整数之间用空格分开)。
图4给出了输入样例对应的图形。
输出:
当可以画出满足题意的曲线的时候,输出“YES”;
否则,输出“NO”。
输入样例:
3
112
122
输出样例:
YES
程序:
#include<
cmath>
intorig,n,ns,a[102][102],bun;
intd[]={1,0,-1,0,0,1,①};
voidplimba(intx,inty)
{
inti,x1,y1;
a[x][y]=-a[x][y];
if(abs(a[x-1][y])!
=orig&
(②!
=a[x-1][y]||abs(a[x][y-1])!
=orig))
ns++;
if(abs(a[x+1][y])!
(a[x+1][y-1]!
=a[x+1][y]||abs(a[x][y-1])!
=orig))
if(abs(a[x][y-1])!
=orig&
(③!
=a[x][y-1]||abs(a[x-1][y])!
if(abs(a[x][y+1])!
(a[x-1][y+1]!
=a[x][y+1]||abs(a[x-1][y])!
for(i=0;
4;
x1=x+d[2*i];
y1=y+④;
if(x1>
=1&
x1<
=n&
y1>
y1<
⑤)
plimba(x1,y1);
}
}
inti,j;
bun=1;
n;
for(i=0;
i<
=n+1;
i++)
for(j=0;
j<
j++)
a[i][j]=0;
a[0][0]=-1;
a[n+1][0]=-1;
a[0][n+1]=-1;
a[n+1][n+1]=-1;
j++)
cin>
i++)
{
if(a[i][j]>
-1)
{
ns=0;
⑥
plimba(i,j);
if(ns%2==1)bun=0;
}
}
if(bun)
"
YES"
NO"
参考答案
一、选择题
BCDBAACDDB
AADBADAADA
二、问题求解
abdfgec
2.
把N写成2m+r形式,J(N)=2*r+1,因400=28+144,则2*144+1=289
三、阅读程序
126715
3581416
为了解目前大学生对DIY手工艺品制作的消费情况,我们于己于人2004年3月22日下午利用下课时间在校园内进行了一次快速抽样调查。
据调查本次调查人数共50人,并收回有效问卷50份。
调查分析如下:
49131722
(2)东西全1012182123
1119202425
§
8-4情境因素与消费者行为2004年3月20日2.
我们长期呆在校园里,没有工作收入一直都是靠父母生活,在资金方面会表现的比较棘手。
不过,对我们的小店来说还好,因为我们不需要太多的投资。
(二)对“碧芝”自制饰品店的分析3.
1024
(2)东西全4.
151
随科技的迅速发展,人们的生活日益趋向便捷、快速,方便,对于我国传统的手工艺制作,也很少有人问津,因此,我组想借此创业机会,在校园内开个DIY创意小屋。
它包括编织、刺绣、串珠等,让我们传统的手工制作也能走进大学,丰富我们的生活。
四、填空题
经常光顾□偶尔会去□不会去□[1]x!
=0
在上海,随着轨道交通的发展,地铁商铺应运而生,并且在重要的商业圈已经形成一定的气候,投资经营地铁商铺逐渐成为一大热门。
在人民广场地下“的美”购物中心,有一家DIY自制饰品店---“碧芝自制饰品店”。
[2]j++
[3]cin>
三、主要竞争者分析[4]x=a[i]
[5]y++
[6]y==r-1
[1]0,-1
[2]a[x-1][y-1]
[3]a[x-1][y-1]
[4]d[2*i+1]
[5]a[x1][y1]==orig(或者orig==a[x1][y1])
[6]orig=a[i][j]