最新NOIP初赛模拟题7C++资料.docx

上传人:b****3 文档编号:5047040 上传时间:2023-05-07 格式:DOCX 页数:17 大小:51.10KB
下载 相关 举报
最新NOIP初赛模拟题7C++资料.docx_第1页
第1页 / 共17页
最新NOIP初赛模拟题7C++资料.docx_第2页
第2页 / 共17页
最新NOIP初赛模拟题7C++资料.docx_第3页
第3页 / 共17页
最新NOIP初赛模拟题7C++资料.docx_第4页
第4页 / 共17页
最新NOIP初赛模拟题7C++资料.docx_第5页
第5页 / 共17页
最新NOIP初赛模拟题7C++资料.docx_第6页
第6页 / 共17页
最新NOIP初赛模拟题7C++资料.docx_第7页
第7页 / 共17页
最新NOIP初赛模拟题7C++资料.docx_第8页
第8页 / 共17页
最新NOIP初赛模拟题7C++资料.docx_第9页
第9页 / 共17页
最新NOIP初赛模拟题7C++资料.docx_第10页
第10页 / 共17页
最新NOIP初赛模拟题7C++资料.docx_第11页
第11页 / 共17页
最新NOIP初赛模拟题7C++资料.docx_第12页
第12页 / 共17页
最新NOIP初赛模拟题7C++资料.docx_第13页
第13页 / 共17页
最新NOIP初赛模拟题7C++资料.docx_第14页
第14页 / 共17页
最新NOIP初赛模拟题7C++资料.docx_第15页
第15页 / 共17页
最新NOIP初赛模拟题7C++资料.docx_第16页
第16页 / 共17页
最新NOIP初赛模拟题7C++资料.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

最新NOIP初赛模拟题7C++资料.docx

《最新NOIP初赛模拟题7C++资料.docx》由会员分享,可在线阅读,更多相关《最新NOIP初赛模拟题7C++资料.docx(17页珍藏版)》请在冰点文库上搜索。

最新NOIP初赛模拟题7C++资料.docx

最新NOIP初赛模拟题7C++资料

一、选择题(1.5’×20)

1.下列软件均属于操作系统的是()

A.WPS与PCDOSB.WINDOWS与MACOSC.Unix与WordD.C++与OS/2

2.运算式(2008)10-(3723)8的结果是(      )。

A.(-1715)10     B.(7)10     C.(5)16      D.(111)2      E.(3263)8

3.启动计算机引导操作系统是将操作系统()

A.从磁盘调入中央处理器B.从内存储器调入高速缓冲存储器

C.从软盘调入硬盘D.从系统盘调入内存储器

4.计算机系统总线上传送的信号有()

A.地址信号与控制信号B.数据信号、控制信号与地址信号

C.控制信号与数据信号D.数据信号与地址信号

5.计算机之所以称为“电脑”,是因为()

A.计算机是人类大脑功能的延伸B.计算机具有逻辑判断功能

C.计算机有强大的记忆能力D.计算机有瞬息万变的控制功能

6.在计算机行业中,MIS是指()

A.管理信息系统B.数学教学系统C.多指令系统D.查询信息系统

7.操作系统在第几代计算机开始应用()

A.第一代B.第二代C.第三代D.第四代

8.设栈S的初始状态为空,现有5个元素组成的序列{1,2,3,4,5},对该序列在S栈上依次进行如下操作(从序列中的1开始,出栈后不再进栈):

进栈、进栈、进栈、出栈、进栈、出栈、进栈。

试问出栈的元素序列是()

A.{5,4,3,2,1}B.{2,1,4,5,3}C.{2,3,4,5,1}D.{3,4,5,2,1}

9.设循环队列中数组的下标范围是n,其中头尾指针分别是f和r,则其元素个数是()

A.r-fB.r-f+1C.(r-f)MODn+1D.(r-f+n)MODn

10.在列车转车网络中,有四个车皮编号为1,2,3,4,并按此顺序送入栈中进行调度,这些车皮取出的顺序是()

A.4123B.3241C.3412D.4312

11.在计算递归函数时,如不使用递归过程,则一般情况下必须借助于()数据结构。

A.栈B.树C.双向队列D.广义表

12.一维数组与线性表的区别是()

A.前者长度固定,后者长度可变B.后者长度固定,前者长度可变

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

#include

#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++)

{

a[i-j+1][j]=k;

k=k+1;

}

else

if(i%2==0)

for(j=n;j>=i-n+1;j--)

{

a[i-j+1][j]=k;

k=k+1;

}

else

for(j=i-n+1;j<=n;j++)

{

a[i-j+1][j]=k;

k=k+1;

}

for(i=1;i<=n;i++)

{

for(j=1;j<=n;j++)

cout<

cout<

}

return0;

}

结果:

2.

#include

#include

#include

usingnamespacestd;

intmain()

{

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;

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

a[i][j]='';

for(i=1;i<=m;i++)

for(j=i;j<=n+1-i;j++)

{

x=st[j];

a[i][j]=x;

a[n+1-i][n+1-j]=x;

}

for(j=n;j>=1;j--)

{

for(i=1;i<=n;i++)

cout<

(2)<

cout<

}

return0;

}

输入:

ABCDEFG 

输出:

#include

#include

#definen10

usingnamespacestd;

intco(inti)

{

intj1,s1;

s1=n;

for(j1=n-1;j1>=n-i+1;j1--)

s1=s1*j1/(n-j1+1);

returns1;

}

intmain()

{

inti,s;

s=n+1;

for(i=2;i<=n;i++)

s=s+co(i);

cout<

return0;

}

输出:

4.

#include

#include

#definemaxn10000

usingnamespacestd;

longi,j,k,n,r,p,g,a[maxn];

longgcd(longm,longn)

{

longr;

while(n!

=0)

{

r=m%n;

m=n;

n=r;

}

returnm;

}

intmain()

{

n=1000;

r=200;

for(i=1;i<=n-r;i++)

a[i]=n-i+1;

for(i=2;i<=r;i++)

{

k=i;

for(j=1;j<=n-r;j++)

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;

for(i=1;i<=n-r;i++)

{

p=p*a[i];

while(p%5==0)

{

p=p/5;

g=g+1;

}

p=p%5;

}

cout<

return0;

}

输出:

________

四、程序填空(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时,得到所求结果:

否则对下一个数进行同样的处理。

[程序清单]

#include

usingnamespacestd;

intmain()

{

intr,i,j,k,x,y,a[100];

boolp;

j=0;

cin>>x;

while([1])

{

[2];

a[j]=x;

[3];

}

cin>>r;

p=true;

i=1;

while(p)

{

[4];

y=0;

for(x

if([6])

{

cout<

p=false;

}

else

i=i+1;

}

return0;

}

2.逻辑游戏:

一个同学给了我一个逻辑游戏。

他给了我图1,在这个图上,每一段边界都已经进行了编号。

我的任务是在图中画一条连续的曲线,使得这条曲线穿过每一个边界一次且仅穿过一次,而且曲线的起点和终点都在这整个区域的外面。

这条曲线是容许自交的。

对于图1,我的同学告诉我画出这样的一条曲线(图2)是不可能的,但是对于有的图形(比如图3),画出这样一条曲线是可行的。

对于给定的一个图,我想知道是否可以画出满足要求的曲线。

图1

图2

图3

图4

输入:

输入的图形用一个n×n的矩阵表示的。

矩阵的每一个单元里有一个0到255之间(包括0和255)的整数。

处于同一个区域的单元里的数相同,相邻区域的数不同(但是不相邻的区域里的数可能相同)。

输入的第一行是n(0

以下的n行每行包括n个整数,分别给出对应的单元里的整数(这n个整数之间用空格分开)。

图4给出了输入样例对应的图形。

输出:

当可以画出满足题意的曲线的时候,输出“YES”;否则,输出“NO”。

输入样例:

3

112

122

112

输出样例:

YES

程序:

#include

#include

usingnamespacestd;

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])!

=orig&&(a[x+1][y-1]!

=a[x+1][y]||abs(a[x][y-1])!

=orig))

ns++;

if(abs(a[x][y-1])!

=orig&&(③!

=a[x][y-1]||abs(a[x-1][y])!

=orig))

ns++;

if(abs(a[x][y+1])!

=orig&&(a[x-1][y+1]!

=a[x][y+1]||abs(a[x-1][y])!

=orig))

ns++;

for(i=0;i<4;i++)

{

x1=x+d[2*i];

y1=y+④;

if(x1>=1&&x1<=n&&y1>=1&&y1<=n&&⑤)

plimba(x1,y1);

}

}

intmain()

{

inti,j;

bun=1;

cin>>n;

for(i=0;i<=n+1;i++)

for(j=0;j<=n+1;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;

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

cin>>a[i][j];

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

{

if(a[i][j]>-1)

{

ns=0;

plimba(i,j);

if(ns%2==1)bun=0;

}

}

if(bun)

cout<<"YES"<

else

cout<<"NO"<

return0;

}

 

参考答案

一、选择题

BCDBAACDDB

AADBADAADA

二、问题求解

1.

abdfgec

2.

把N写成2m+r形式,J(N)=2*r+1,因400=28+144,则2*144+1=289

三、阅读程序

1.

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.

经常光顾□偶尔会去□不会去□[1]x!

=0

在上海,随着轨道交通的发展,地铁商铺应运而生,并且在重要的商业圈已经形成一定的气候,投资经营地铁商铺逐渐成为一大热门。

在人民广场地下“的美”购物中心,有一家DIY自制饰品店---“碧芝自制饰品店”。

[2]j++

[3]cin>>x;

三、主要竞争者分析[4]x=a[i]

[5]y++

[6]y==r-1

2.

[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]

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2