noip2012

时间:2026-05-06 21:31:57编辑:莆田seo君

求一份noip普及组pascal语言的模拟试题(笔试)

NOIP2006第十二届全国青少年信息学奥林匹克联赛初赛试题 普及组 Pascal 语言2007年03月02日 星期五 05:17 P.M.第十二届全国青少年信息学奥林匹克联赛初赛试题
( 普及组 Pascal 语言 二小时完成 )
● ● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效 ●● 一、 单项选择题 (共20题,每题1.5分,共计30分。每题有且仅有一个正确答案.)。
1. 在下面各世界顶级的奖项中,为计算机科学与技术领域做出杰出贡献的科学家设立的奖项是( )。
A. 沃尔夫奖 B. 诺贝尔奖 C. 菲尔兹奖 D. 图灵奖
2. 在下列各软件中,不属于NOIP竞赛(复赛)推荐使用的语言环境有( )。
A. gcc/g++ B. Turbo Pascal
C. RHIDE D. free pascal
3. 以下断电之后仍能保存数据的有( )。
A. 寄存器 B. ROM C. RAM D. 高速缓存
4.Linux是一种( )。
A. 绘图软件 B. 程序设计语言 C. 操作系统 D. 网络浏览器
5. CPU是( )的简称。
A. 硬盘 B. 中央处理器 C. 高级程序语言 D. 核心寄存器 6. 在计算机中,防火墙的作用是( )。
A. 防止火灾蔓延 B.防止网络攻击
C. 防止计算机死机 D. 防止使用者误删除数据
7. 在下列关于计算机语言的说法中,不正确的是( )。
A. Pascal和C都是编译执行的高级语言
B. 高级语言程序比汇编语言程序更容易从一种计算机移植到另一种计算机上
C. C++是历史上的第一个支持面向对象的计算机语言
D. 与汇编语言相比,高级语言程序更容易阅读
8. 在下列关于计算机算法的说法中,不正确的是( )。
A. 一个正确的算法至少要有一个输入
B. 算法的改进,在很大程度上推动了计算机科学与技术的进步
C. 判断一个算法的好坏的主要标准是算法的时间复杂性与空间复杂性
D. 目前仍然存在许多涉及到国计民生的重大课题,还没有找到能够在计算机上实施的有效算法
9. 在下列各种排序算法中,不是以"比较"作为主要操作的算法是( )。
A. 选择排序 B. 冒泡排序 C. 插入排序 D. 基数排序
10.在编程时(使用任一种高级语言,不一定是Pascal),如果需要从磁盘文件中输入一个很大的二维数组(例如1000*1000的double型数组),按行读(即外层循环是关于行的)与按列读(即外层循环是关于列的)相比,在输入效率上( )。
A. 没有区别 B. 按行读的方式要高一些
C. 按列读的方式要高一些 D. 取决于数组的存储方式。
11.在Pascal语言中,表达式 (21 xor 2)的值是( )
A. 441 B. 42 C.23 D.24
12.在Pascal语言中,判断a不等于0且b不等于0的正确的条件表达式是( )
A. not a=0 or not b=0 B. not((a=0)and(b=0))
C. not(a=0 and b=0) D. (a0)and (b0)
13.某个车站呈狭长形,宽度只能容下一台车,并且只有一个出入口。已知某时刻该车站状态为空,从这一时刻开始的出入记录为:"进,出,进,进,进,出,出,进,进,进,出,出"。假设车辆入站的顺序为1,2,3,……,则车辆出站的顺序为( )。
A. 1, 2, 3, 4, 5 B. 1, 2, 4, 5, 7
C. 1, 4, 3, 7, 6 D. 1, 4, 3, 7, 2
14.高度为n的均衡的二叉树是指:如果去掉叶结点及相应的树枝,它应该是高度为n-1的满二叉树。在这里,树高等于叶结点的最大深度,根结点的深度为0,如果某个均衡的二叉树共有2381个结点,则该树的树高为( )。
A. 10 B. 11 C. 12 D. 13
15. 与十进制数1770 对应的八进制数是( )。
A. 3350 B. 3351 C. 3352 D. 3540
16.将5个数的序列排序,不论原先的顺序如何,最少都可以通过( )次比较,完成从小到大的排序。
A. 6 B. 7 C. 8 D. 9
17. 设A=B=D=true,C=false,以下逻辑运算表达式值为真的有( )。
A. (A∧B)∨(C∧D) B. ((A∨B∨D)∧C)
C. A∧(B∨C∨D) D. (A∧B∧C)∨ D
18. (2010)16 + (32)8的结果是( )。
A. (8234)10 B. (202B)16
C. (20056)8 D. (100000000110)2
19. 设栈S的初始状态为空,元素a, b, c, d, e 依次入栈,以下出栈序列不可能出现的有( )。
A. a, b, c, e, d B. b, c, a, e, d
C. a, e, c, b, d D. d, c, e, b, a
20. 已知6个结点的二叉树的先根遍历是1 2 3 4 5 6(数字为结点的编号,以下同),后根遍历是3 2 5 6 4 1,则该二叉树的可能的中根遍历是( )
A. 3 2 1 4 6 5 B. 3 2 1 5 4 6
C. 2 1 3 5 4 6 D. 2 3 1 4 6 5
二.问题求解(共2题,每题5分,共计10分)
1.(寻找假币) 现有80枚硬币,其中有一枚是假币,其重量稍轻,所有真币的重量都相同,如果使用不带砝码的天平称重,最少需要称几次,就可以找出假币?你还要指出第1次的称重方法。请写出你的结果:_________________________________________________。
2.(取石子游戏) 现有5堆石子,石子数依次为3,5,7,19,50,甲乙两人轮流从任一堆中任取(每次只能取自一堆,不能不取), 取最后一颗石子的一方获胜。甲先取,问甲有没有获胜策略(即无论乙怎样取,甲只要不失误,都能获胜)?如果有,甲第一步应该在哪一堆里取多少?请写出你的结果:
_________________________________________________。
三.阅读程序写结果(共4题,每题8分,共计32分)
1. Program ex301;
var
u:array[0..3] of integer;
i,a,b,x,y:integer;
begin
y:=10;
for i:=0 to 3 do
read(u[i]);
a:=(u[0]+u[1]+u[2]+u[3]) div 7;
b:=u[0] div ((u[1]-u[2]) div u[3]);
x:=(u[0]+a+2)-u[(u[3]+3) mod 4];
if (x>10) then
y:=y+(b*100-u[3]) div (u[u[0] mod 3]*5)
else
y:=y+20+(b*100-u[3]) div (u[u[0] mod 3]*5);
writeln (x,',',y);
end. {*注:本例中,给定的输入数据可以避免分母为0或下标越界。 }
输入:9 3 9 4
输出:_______________
2.Program ex302;
const
m:array[0..4] of integer=(2,3,5,7,13);
var
i,j:integer;
t: longint;
begin
for i:=0 to 4 do
begin
t:=1;
for j:=1 to m[i]-1 do
t:=t*2;
t:=(t*2-1)*t;
write (t,' ');
end;
writeln;
end.
输出:____________________
3.Program ex303;
Const
NN=7;
Type
Arr1=array[0..30] of char;
var
s:arr1;
k,p:integer;
Function fun(s:arr1; a:char;n:integer):integer;
var
j:integer;
begin
j:=n;
while (a0) do dec(j);
fun:=j;
end;
begin
for k:=1 to NN do
s[k]:=chr(ord('A')+2*k+1);
k:=fun(s,'M',NN);
writeln(k);
end.
输出:_____________
4.program ex304;
var
x,x2:longint;
procedure digit(n,m:longint);
var n2:integer;
begin
if(m>0) then
begin
n2:=n mod 10;
write(n2:2);
if(m>1) then digit(n div 10,m div 10);
n2:=n mod 10;
write(n2:2);
end;
end;
begin
writeln('Input a number:');
readln(x);
x2:=1;
while(x2<x) do x2:=x2*10;
x2:=x2 div 10;
digit(x,x2);
writeln; 5
end.
输入:9734526
输出:______________________________
四.完善程序 (前4空,每空2.5分,后6空,每空3分,共28分)
1.(全排列)下面程序的功能是利用递归方法生成从1到n(n<10)的n个数的全部可能的排列(不一定按升序输出)。例如,输入3,则应该输出(每行输出5个排列):
123 132 213 231 321
312
程序:
Program ex401;
Var
i,n,k:integer;
a:array[1..10] of integer;
count:longint; {变量count记录不同排列的个数,这里用于控制换行}
Procedure perm(k:integer);
var j,p,t:integer;
begin
if ① then
begin
inc(count);
for p:=1 to k do
write(a[p]:1);
write(' ');
if ( ② ) then writeln;
exit;
end;
for j:=k to n do
begin
t:=a[k]; a[k]:=a[j]; a[j]:=t;
③ ;
t:=a[k]; ④ ;
end
end;
begin
writeln('Entry n:');
read(n);
count:=0;
for i:=1 to n do a[i]:=i;
⑤ ;
end.
2. 由键盘输入一个奇数 P (P<100,000,000),其个位数字不是5,求一个整数 S,使 P×S = 1111...1 ( 在给定的条件下,解 S 必存在)。要求在屏幕上依次输出以下结果:
(1)S 的全部数字。除最后一行外,每行输出 50 位数字。 (2) 乘积的数字位数。
例1:输入p=13,由于13*8547=111111,则应输出(1)8547,(2)6
例2:输入p=147,则输出结果应为(1)755857898715041572184429327286470143613
(2)42,即等式的右端有42个1。
程序:
program ex402;
var
p,a,b,c,t,n:longint;
begin
while (true) do
begin
writeln ('Input p, the last digit is 1 or 3 or 7 or 9:');
readln(p);
if (p mod 20)and(p mod 50) then
⑥ ; {如果输入的数符合要求,结束循环 }
end;
a:=0; n:=0;
while (a<p) do
begin
a:=a*10+1; inc(n);
end;
t:=0;
repeat
b:=a div p;
write(b:1);
inc(t);
if ( ⑦ ) then writeln;
c:= ⑧ ; a:= ⑨ inc(n);
until c<=0;
dec(n);
writeln; writeln('n=', ⑩ );
end.

来源: http://hi.baidu.com/noip2007/blog/item/9bc3b9ee9f84d6292cf53457.html


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

全国青少年信息学(计算机)奥林匹克分区联赛模拟试卷
(提高组 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]


上一篇:节能环保电锅炉

下一篇:没有了