noip普及组2010模拟试题(pascal)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了noip普及组2010模拟试题(pascal)相关的知识,希望对你有一定的参考价值。

参考技术A 全国青少年信息学(计算机)奥林匹克分区联赛模拟试卷
(提高组 PASCAL 语言 二小时完成)

命题人:江苏省华罗庚中学 杨志军

一、单项选择题(共10题,每题1.5分,共计15分。每题有且仅有一个正确答案。)
1、计算机的“存储程序”的工作原理是由数学家( )提出的。
(A)图灵 (B)帕斯卡 (C)冯•诺依曼 (D)莱布尼兹
2、为了能在网络上正确的传送信息,制定了一整套关于传输顺序,格式,内容和方式的约定,称之为( )。
(A)OSI参数模型 (B)网络操作系统 (C)网络通信软件 (D)通信协议
3、下列四个不同进制表示的数中,最大的是( )。
(A)1011001(2) (B)132(8) (C)92(10) (D)5B(16)
4、若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3。当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为( )。
(A)1和5 (B)2和4 (C)4和2 (D)5和1
5、对矩阵压缩存储是为了( )。
(A)方便运算 (B)节省空间 (C)提高运算速度 (D)方便存储
6、一棵完全二叉树,如果其上有一个结点的编号为11,则其父结点的编号为( )。
(A)22 (B)12 (C)10 (D)5
7、虚拟存储器是( )。
(A)磁盘上存放数据的存储空间
(B)读写磁盘文件数据时用到的内存中的一个区域
(C)操作系统为用户作业提供的、比计算机中的实际内存大得多的外存区域
(D)将部分ROM存储器作为磁盘驱动器
8、排序的方法有许多种,( )法从未排序列中依次取出元素,与已排序列(初始时为空)中的元素作比较,将其放入已排序列的正确位置上。
(A)插入排序 (B)快速排序 (C)冒泡排序 (D)选择排序
9、电线上停着两种鸟(A,B),可以看出两只相邻的鸟就将电线分为了一个线段。这些线段可分为两类:一类是两端的小鸟相同;另一类则是两端的小鸟不相同。已知:电线两个顶点上正好停着相同的小鸟,试问两端为不同小鸟的线段数目一定是( )。
(A)奇数 (B)偶数 (C)可奇可偶 (D)数目固定
10、以下哪一个不是栈的基本运算( )。
(A)删除栈顶元素 (B)删除栈底的元素
(C)判断栈是否为空 (D)将栈置为空栈

二、不定项选择题(共10题,每题1.5分,共计15分。多选少选均不得分。)
1、下列设备中,能作输入设备的是( )。
(A)绘仪 (B)键盘 (C)鼠标器 (D)光笔
2、为了防止所用软盘受病毒侵害,正确的方法是( )。
(A)在软盘上复制防病毒程序 (B)软盘格式化时加卷标
(C)软盘上的软件进行加密 (D)软盘加以写保护
3、风靡全球的因特网主要体现计算机在( )方面的发展趋势。
(A)巨型化 (B)网络化 (C)微型化 (D)智能化
4、下面是关于Windows 98文件名的叙述,正确的是( )。
(A)文件名中允许使用汉字 (B)文件名中允许使用多个圆点分隔符
(C)文件名中允许使用空格 (D)文件名中允许使用竖线“|”
5、在字处理系统的编辑状态下,“打开”文档的作用是( )。
(A)将指定的文档从内存中读入,并显示在当前窗口
(B)为指定的文档打开一个空白窗口
(C)将指定的文档从外存中读入,并显示在当前窗口
(D)显示并打印指定文档的内容
6、链表具有的特点是( )。
(A)可随机访问任一元素 (B)插入删除不需要移动元素
(C)不必事先估计存储空间 (D)所需空间与线性表长度成正比
7、设一个栈的输入序列为1、2、3、4,则借助于一个栈所得到的输出序列可能是( )。
(A)1、2、3、4 (B)2、3、4、1
(C)1、3、4、2 (D)4、1、2、3
8、关于编辑Word 2000的页眉页脚,下列叙述( )正确。
(A)文档内容和页眉页脚可以在同一窗口编辑
(B)页眉页脚中也可以插入剪贴画
(C)页眉页脚编辑时不能编辑文档内容
(D)文档内容和页眉页脚一起打印
9、下列关于计算机软件版权的叙述,正确的是( )。
(A)计算机软件是享有著作保护权的作品
(B)未经软件著作人的同意,复制其软件的行为是侵权行为
(C)盗版软件是一种免费软件
(D)盗版软件是一种违法行为
10、下面关于算法的正确的说法是( )
(A)算法必须有输出
(B)算法必须在计算机上用某种语言实现
(C)算法不一定有输入
(D)算法必须在有限步执行后能结束
(E)算法的每一步骤必须有确切的定义

三、问题求解(共2题,每题5分,共计10分。)
1、假定有四个元素A,B,C,D进一个栈,出栈顺序是ABCD,请写出所有数目的进栈序列。

2、一个商场有m种颜色的小球,每种小球足够多,在这m种小球中挑选n个小球的选法有多少种?如 m=2,n=3 时有4种选法分别是:两种小球的个数分别为0/3,1/2,2/1,3/0.问:当m=4,n=4时,选法数=__________。

四、阅读程序(共4题,每题8分,共计32分。)
1、 PROGRAM EX1;
VAR
n,i,j,k:integer;
BEGIN
write('Enter n : '); readln(n);
for i:=1 to n do
begin
for j:=1 to n do
begin
if i>=j then k:=j else k:=i;
write(k:4)
end;
writeln
end
END.
输入:Enter n : 7
输出:

2、 PROGRAM EX2;
VAR n,m:integer;
FUNCTION f(n:integer):integer;
VAR tmp,i:integer;
BEGIN
tmp:=1;
FOR i:=1 TO (n DIV 2) DO
tmp:=tmp+f(i);
f:=tmp;
END;
BEGIN
write('n = ');readln(n);
m:=f(n);
writeln('f(',n,')=',m)
END.
输入:n = 6
输出:

3、 PROGRAM EX3;
VAR
I,J,S:INTEGER;
B:ARRAY[0..5] OF INTEGER;
BEGIN
S:=1;
FOR I:=1 TO 5 DO B[I]:=I;
J:=1;
WHILE J>0 DO
BEGIN
J:=5;
WHILE (J>0) AND (B[J]=10+J-5) DO J:=J-1;
IF J>0 THEN BEGIN
S:=S+1; B[J]:=B[J]+1;
FOR i:=J+1 TO 5 DO B[i]:=B[J]+i-J
END;
END;
WRITELN('S=',S);
END.
输出:

4、 PROGRAM EX4;
CONST n=4;
TYPE se=array[1..n*2] of char;
VAR i,j,i1,j1,k,s,t,s1,L,swap:integer;
temp:char;a:se;
BEGIN
for i:=1 to n*2 do read(a[i]);
readln;
s:=0;
t:=0;
for i:=1 to n*2 do
if a[i]='1' then s:=s+1
else if a[i]='0' then t:=t+1;
if (s>n) or (t>n)
then writeln('error')
else begin
s1:=0;
for i:=1 to 2*n-1 do if a[i]>a[i+1] then s1:=s1+1;
writeln('jamp=',s1); swap:=0;
for i:=1 to 2*n-1 do
for j:=i+1 to 2*n do
if a[i]>a[j] then
begin
temp:=a[i];a[i]:=a[j];a[j]:=temp;
s:=0;
for L:=1 to 2*n-1 do
if a[L]>a[L+1] then s:=s+1;
if s>swap
then begin swap:=s; i1:=i; j1:=j end;
temp:=a[i];a[i]:=a[j];a[j]:=temp
end;
if swap>0 then writeln('maxswap=',swap-s1,' i=',i1,' j=',j1)
end
End.
输入:10101100
输出:

五、完善程序(共2题,第1题每空3分;第2题每空2分。共计28分。)
1、[程序说明]
对称矩阵通常只需存储其下三角部分,例如,下列对称矩阵
1 2 3 4
2 5 6 7
3 6 8 9
4 7 9 10
可用一维数组(1,2,3,4,5,6,7,8,9,10)存储其下三角部分,N阶对称矩阵下三角部分的元素个数为(N*N+N)/2。
本程序用来计算N阶对称矩阵A的平方B,B也是一个N阶对称矩阵,程序中X,Y是分别存放A,B下三角部分的一维数组。程序最后输出B的值。(以下三角形式表示)
矩阵乘法定义如下:设A、B是两个N阶矩阵,且A*B=C,则
Cij=Ai1*B1j+ Ai2*B2j+ Ai3*B3j+ …+ Ain*Bnj
PROGRAM EX1;
CONST maxn=10;
x:array [1..10] of longint=(1,2,3,4,5,6,7,8,9,10);
VAR i,j,k,m,n,ii,jj,L,s:longint;
y:array [1..maxn*(maxn+1) div 2] of longint;
BEGIN
n:=4; m:=1;
for jj:= ⑴ do
for ii:= ⑵ do
begin
i:=ii;
j:=jj;
L:= ⑶ ;
s:=0;
for k:=1 to n do
begin
s:=s+x[i]*x[j];
if ⑷ then i:=i+L else i:=i+1;
if ⑸ then j:=j+L else j:=j+1;
L:=L-1
end;
y[m]:=s;
m:=m+1
end;
for i:=1 to n do
begin
for j:=1 to i do write(y[ ⑹ ]:5);
writeln
end
END.

2、[程序说明]
在任意给定的字符表(例如’1’,’2’,’3’)上,生成一个由该字符表上的字符组成、含n个字符的序列,但要求生成的序列中没有两个相邻子序列是相同的。
例如,对于n=5,序列”12321”是问题的一个解,而序列”12323”因有两个相邻的子序列都为”23”,所以该序列不是问题的解。
为找到一个满足要求的长为n个字符的序列,从空序列开始,每次检查当前序列是否含有两个相同的相邻子序列。在没有两个相邻子序列相同的情况下,在序列之后添加一个字符,让序列延长。如果当前序列有两个相邻的子序列一样时,就改变序列。如此重复执行延长、检查或改变、检查,直到找到一个满足问题要求的解。下面是体现上述求解思想找一个由n个字符组成,但不含相同相邻子序列的字符串。
PROGRAM EX2;
VAR i,j,m,n:longint;
good:boolean;
s:string;
BEGIN
write('Input the length of string:');
readln(n);
m:= ⑺ ;
s:='';
good:= ⑻ ;
repeat
if good
then begin m:=m+1; s:=s+'1'; end
else begin while s[m]='3' do m:=m-1;
s[0]:=chr(m);s[m]:= ⑼ end;
good:=true;
j:=1;
while good and ( ⑽ ) do
begin
for j:=1 to m div 2 do
begin
i:=1;
while (i<=j) and ( ⑾ ) do i:=i+1;
if i>j then good:=false
end;
j:=j+1
end
until good and (m=n) or (m=0);
if m>0 then writeln(s) else writeln('No answer!')
END.

全国青少年信息学(计算机)奥林匹克分区联赛模拟试卷
参 考 答 案

一、单项选择题(共10题,每题1.5分,共计15分。每题有且仅有一个正确答案。)
1、C 2、D 3、C 4、B 5、B
6、D 7、B 8、A 9、B 10、B

二、不定项选择题(共10题,每题1.5分,共计15分。多选少选均不得分。)
1、BCD 2、D 3、B 4、ABC 5、C
6、BCD 7、ABC 8、ACD 9、ABD 10、ACDE

三、问题求解(共2题,每题5分,共计10分。)
1、 ABCD ABDC ACBD ADBC ADCB BACD BADC
CABD CBAD DABC DACB DBAC DCAB DCBA

2、35

四、阅读程序(共4题,每题8分,共计32分。)
1、 1 1 1 1 1 1 1
1 2 2 2 2 2 2
1 2 3 3 3 3 3
1 2 3 4 4 4 4
1 2 3 4 5 5 5
1 2 3 4 5 6 6
1 2 3 4 5 6 7
2、 f(6)=6
3、 S=252
4、 jamp=5
maxswap=2 i=6 j=7

五、完善程序(共2题,第1题每空3分;第2题每空2分。共计28分。)
1、 ⑴ 1 to n ⑵ jj to n
⑶ n-1 ⑷ k<ii
⑸ k<jj ⑹ (2*n-j+2)*(j-1) div 2+i-j+1

2、 ⑺ 0 ⑻ true
⑼ succ(s[m]) ⑽ j<=m div 2
⑾ s[m+1-j-i]=s[m+1-i]

noip2006普及组pascal试题解答

普及组(Pascal 语言)参考答案与评分标准

一、单项选择题:(每题 1.5 分)由OIFans.cn收集
1. D 2. B 3. B 4. C 5. B 6.B 7. C 8. A 9. D 10. D

11. C 12. D 13. C 14. B 15. C 16. B 17. B 18. A 19. C 20. B

二、问题求解:(每题 5 分)

1. 4 次 (1 分),
第一步:分成 3 组:27,27,26,将前 2 组放到天平上(4 分)。

2.有获胜策略(1 分),第 1 次在第 5 堆中取 32 颗石子(4 分),。

三、阅读程序写结果

1. 10,10 (对 1 个数给 4 分,无逗号扣 1 分)

2. 6 28 496 8128 33550336

(前 2 个对 1 个数给 1 分,后 3 个对 1 个数给 2 分)

3. 5

4. 6 2 5 4 3 7 9 9 7 3 4 5 2 6(数字之间无空格扣 2 分)

四、完善程序(前 4 空(①--④),每空 2.5 分,后 6 空(⑤--⑩),每空 3 分)

1.① k=n (或 n=k)

② count mod 5=0

③ perm(k+1)由OIFans.cn收集

④ a[k]:=a[j];a[j]:=t

⑤ perm(1)

2.⑥ break

⑦ t mod 50=0

⑧ a-p*b(或 a-b*p)

⑨ c*10+1 (或 10*c+1)

⑩ n

参考资料:http://www.oifans.cn/docs/noip2006/06ppans/noip2006.htm

参考技术A #include <fstream>
#include <string.h>
using namespace std;
ifstream fin("machine.in");
ofstream fout("machine.out");
const int maxn = 100+5;
int n, m, g[maxn][maxn];
int link[maxn], used[maxn];

int path(int i)

if (used[i]) return 0;
used[i] = 1;
int j;
for (j = 1; j <= m; j++) if (g[i][j])
if (!link[j] || path(link[j]))

link[j] = i;
return 1;

return 0;


main()

int i, j, k;
fin >> n >> m >> k;
memset(g, 0, sizeof(g));
for (i = 0; i < k; i++)

int temp, x, y;
fin >> temp >> x >> y;
if (x && y) g[x][y] = 1;


memset(link, 0, sizeof(link));
memset(used, 0, sizeof(used));

for (i = 1; i <= n; i++) if (path(i)) memset(used, 0, sizeof(used));
int tot = 0;
for (i = 1; i <= m; i++) if (link[i]) tot++;
fout << tot << endl;
return 0;

以上是关于noip普及组2010模拟试题(pascal)的主要内容,如果未能解决你的问题,请参考以下文章

noip2006普及组pascal试题解答

悬赏!急!pascal竞赛普及组模拟试题

noip2010普及组初赛

守望者逃离 pascal 2007NOIP普及组第三题

急求pascal初中普及组资料

NOIP2012普及组 pascal 第二题