本文将为大家带来普及组模拟题两套!更多模拟题请查看本次及后续推送的其他文章!
● ○ ● NOIP普及组模拟 ● ○ ●
NOIP初赛提高组模拟试题(第一套)
(初中组PASCAL语言,120分钟完成)
◆◆请将正确答案在答题卷上填写,在本试题卷上答题无效◆◆
一、选择题(每题只有一个选项符合题目要求,多选无效,1.5*20=30分)
1、世界第一台电子计算机于( )在美国研制成功,采用的主要逻辑元件是( )。
A、1946 电子管 B、1946 晶体管 C、1947 电子管 D、1946 超大规模集成电路
2、个人计算机的主机包括( )。
A、运算器和显示器 B、CPU和内存储器 C、CPU和键盘D、UPS和内存储器
3、当前微机中存储器访问速度正确的是( )。
A、RAM > Cache > 硬盘 > 软盘 B、Cache > 硬盘 > RAM > 软盘
C、RAM > 硬盘> 软盘> Cache D、Cache > RAM > 硬盘 > 软盘
4、Windows应用程序之间可以方便地通过( )交换数据。
A、 邮箱B、文本区 C、对话框 D、剪贴板
5、(2008)10 + (5B)16的结果是( )。
A. (833)16 B. (2089)10 C. (4163)8 D. (100001100011)2
6、下列计算机设备中,既是输入设备,又是输出设备的是( )。
A.键盘 B.触摸屏 C.扫描仪 D.投影仪 E.数字化仪
7、常见的邮件传输服务器使用( )协议接收邮件。
A.HTTP B.SMTP C.TCP D.FTP E.POP3
8、设A=true,B=false,C=true,D=false,以下逻辑运算表达式值为真的是( )。
A. (A∧B)∨(C∧D∨A) B. ((A∧B)∨C)∧D
C. (B∨C∨D)∧D∧A D. A∧(D∨C) ∨B
9、纯文本文件格式常用于保存( )文件。
A、声音 B、位图 C、网页 D、源程序
10、动态 RAM 的特点是(),
A、工作中需要动态地改变存储单元内容 B、工作中需要动态地改变访存地址
C、每隔一定时间需要刷新D、每次读出后需要刷新
11、使用数据库的主要目的之一是为了解决数据的( )问题。
A、可靠性 B、传输 C、保密 D、共享
12、()是一种串行总线规范,它支持设备热插拔
A、RS232 B、 EPPC、SCSID、 USB
13、Internet是全球最大的开放式计算机互联网络。网中每一台主机都分配有惟一的( )位IP地址。
A、24 B、32 C、48 D、64
14、彩色显示器所显示的五彩斑斓的色彩,是由红色、蓝色和( )色混合而成的。
A. 紫 B. 白 C. 黑 D. 绿 E. 橙
15、为确保企业局域网的信息安全,防止来自Internet的黑客入侵或病毒感染,采用( ) 可以实现一定的防范作用。
A、网管软件 B、邮件列表 C、防火墙软件 D、防病毒软件
16、算法指的是( )
A、计算机程序B、解决问题的计算方法
C、排序算法D、解决问题的有限运算序列
17、设A=true,B=false,C=true,D=false,以下逻辑运算表达式值为真的是( )。
A. (A∧B)∨(C∧D∨A) B. ((A∧B)∨C)∧D
C. (B∨C∨D)∧D∧A D. A∧(D∨C)∧B
18、一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈的输出序列的是( )
A、2 3 4 1 5 B、5 4 1 3 2 C、2 3 1 4 5D、1 5 4 3 2
19、二叉树T,已知其后根遍历是4 2 7 5 6 3 1(数字为结点编号,以下同),中根遍历是2 4 1 5 7 3 6,则该二叉树的先根遍历是( )。
A. 4 2 5 7 6 3 1 B. 7 4 2 5 6 3 1 C. 1 2 4 3 5 7 6 D. 4 2 7 6 5 3 1
20、若待排序对象序列在排序前已按其排序码序列递增排列,则采用( )方法比较次数最少。
A、直接插入排序B、快速排序 C、归并排序 D、直接选择排序
二、问题求解(每题5分,共10分)
1、(取石子游戏) 现有5堆石子,石子数依次为173,15,17,129,46,甲乙两人轮流从任一堆中任取(每次只能取自一堆,不能不取), 取最后一颗石子的一方获胜。甲先取,问甲有没有获胜策略(即无论乙怎样取,甲只要不失误,都能获胜)?如果有,甲第一步应该在哪一堆里取多少?请写出你的结果: 。
2、递推。某商店有m种不同颜色的小球且每种小球的数量都足够多。要在这m种不同颜色的小球里挑选出n个小球,设共有s种不同的选法。例如当m=2,n=3时,s=4,也就是说,共有4种不同的选法。(分别为:【0,3】,【1,2】,【2,1】,【3,0】)。现在,令m=5,n=4,试求出选法数s= 。
三、阅读程序,写出程序运行的结果:(第1、2题每题7分,第3、4题每题8分,共30分)
1、
program t1;
var x,y:integer;
u,v:array[0..3] of integer;
begin
for x:= 0 to 3 do read(u[x]);
v[0]:=u[0]+u[2];
v[1]:=v[0]+u[2];
v[2]:=(u[0]-u[1]-u[2]) MOD u[1]-4;
v[3]:=(v[0]-v[1]-v[2]) DIV u[0];
x:= v[0]+v[1] MOD v[2] DIV v[3];
if x<10>
y:=v[0]+v[1]+v[2]+v[3]
else y:=10+u[0]+v[1]+v[2]+v[3];
write(x,':',y);
end.
输入:3 8 11 15
输出:
2、
program t2;
var n,i,j:Longint;
s:Array [1..100] of integer;
begin
readln(n);i:=0;
repeat
inc(i);
if n mod 2=1 then s[i]:=1 else s[i]:=0;
n:=n div 2;
until n=0;
for j:=i downto 1 do write(s[j]);writeln;
end.
输入:2004
输出:
3、
program t3;
var a,b,f:integer;
function gcd(n,m:integer):integer;
begin
if n=0 then gcd:=m
else gcd:=gcd(m mod n ,n);
end;
begin
readln(a,b);
f:=gcd(a,b);
writeln(f)
end.
输入: 3012 1024
输出:
4、
program t4;
var n,k,j:integer;
a:array[1..40] of integer;
procedure sub(x:integer);
var j1,j2,p,s:integer;
begin
j1:=0;p:=1;
while p=1 do begin
j1:=j1+1;
s:=0;
for j2:=1 to n do
if a[j2]>a[j1] then s:=s+1;
if s=x-1 then
begin writeln(a[j1]);p:=0 end;
end;
end;
begin
readln(n,k);
for j:=1 to n do read(a[j]); readln;
sub(k);
sub(n-k);
readln;
end.
输入:10 4
12 1 5 65 132 87 7 68 99 13
输出:
四、完善程序题( 每空3分,共30分)
1、【问题描述】integer类型的范围是-32768~32767,Longint类型的范围是 -2147483648 ~ 2147483647 ,
int64 类型的范围是-9223372036854775808 ~ 9223372036854775807 ,现在要写一个加法的程序。输入两个数a和b,输出它们的和。So easy?当a和b是100位正整数的时候,计算机编程语言便没有类型可以存在,如果强力输入会出错。所以我们写了一个特殊的程序。
输入:a,b(0<>,b10^100)
输出:a+b。
【程序清单】
program jiafa;
var a,b:string;
x,y,z:array[0..200]of longint;
i,len:longint;
begin
readln(a);
readln(b);
x[0]:=length(a);
for i:=1 to x[0] do
x[i]:=ord(a[x[0]-i+1])-48;
①
for i:=1 to y[0] do
y[i]:=ord( ② )-48;
for i:=1 to x[0] do
z[i]:=x[i];
for i:=1 to y[0] do
z[i]:= ③ ;
if (x[0]>y[0]) then
len:=x[0]
else
len:=y[0];
for i:=1 to len do
if z[i]>9 then
begin
z[i+1]:=z[i+1]+ z[i] div 10;
z[i]:=z[i] mod 10;
end;
if ( ④ ) then
len:=len+1;
for i:= ⑤ do
write(z[i]);
writeln;
end.
2、【问题描述】降序组合。给定两个自然数n,r(n>r)输出从数1到n中按降序顺序取r个自然数的所有组合。例如,n=5,r=3时,输出的结果是:
5 4 3
5 4 2
5 4 1
5 3 2
5 3 1
5 2 1
4 3 2
4 3 1
4 2 1
3 2 1
程序中用a1,a2,…,ar表示一个降序排列的r个数的组合,要求a1≥r。
【程序清单】
var n,r,I,j:integer;
a:array[1..20]of integer;
begin
readln(n,r);
i:=1;a[1]:=n;
repeat
if i<>r then
if ① then
begin
a[i+1]:= ② ;
i:=i+1;
end
else
begin
③ ;
④ ;
end;
else
begin
for j:=1 to r do write(a[j]:3);
writeln;
if a[r]=1 then
begin
i:=i-1;
a[i]:=a[i]-1;
end
else
a[i]:=a[i]-1
end
until ⑤ ;
end.
参考答案
二、问题解答:(每题5分,共10分)
1、从17里面拿4个
2、70
三、写运行结果(第1、2题每题7分,第3、4题每题8分,共30分)
1、14:32
2、11111010100
3、4
4、68
13
四、完善程序(每空3分,共30分)
1、
① y[0]:=length(b);
② b[y[0]-i+1]
③ z[i]+y[i]
④ z[len+1]>0
⑤ len downto 1
2、
① a[i]+i>r
② a[i]-1
③ dec(i)
④ dec(a[i])
⑤ a[1]=r-1
NOIP初赛提高组模拟试题(第二套)