信息学初赛模拟试题一二及答案Word文档格式.docx
《信息学初赛模拟试题一二及答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《信息学初赛模拟试题一二及答案Word文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
end
elsey:
=200;
write('
y='
y);
end.
A.y=9B.y=200C.y=10D.y=100
5、设栈S的初始状态为空,现有5个元素组成的序列{1,2,3,4,5},对该序列在S栈上依次进行如下操作(从序列中的1开始,出栈后不再进栈):
进栈,进栈,进栈,出栈,进栈,出栈,进栈,试问出栈的元素序列是________。
A.{5,4,3,2,1}B.{2,1}C.{2,3}D.{3,4}
6、ASCII码是()。
A.国标码B.二进制编码C.十进制编码D.美国标准信息交换码
7、一台计算机的字长是4个字节,这意味着()。
A.能处理的数值最大为4位十进制数9999
B.能处理的字符串最多由4个英文字母组成
C.在CPU中能够同时处理32位二进制数据
D.在CPU中运算的最大结果为2的32次方
8、假设一台计算机的地址总线为16,那么中央处理器CPU能访问的最大存储器容量为()
A.2*16KB B.16KB C.216B D.16*1024*8B
9、计算机最终处理的信息形式是()
A.ASCII码
B.BCD码
C.二进制
D.十六进制
10、与十六进制数6F等值的八进制数是()
A.166
B.139
C.157
D.183
11、以下属非法用户自定义标识符的是()。
A.date B.dir C.list D.type
12、设X和Y是同一种枚举类型变量,则下列语句中合法的是()。
A.X:
=ORD(Y) B.X:
=Y C.READ(X,Y) D.WRITE(T,Y)
13、计算机能够直接识别和处理的程序是_______程序
A.汇编语言 B.源程序 C.机器语言 D.高级语言
14、设有说明
VARA:
ARRAY['
A'
..'
E'
,1..4,BOOLEAN]OFREA1;
则A['
,3]是()。
A.一个实型的数组元素
B.一个数组,该数组具有两个实型数组元素
C.一个数组,该数组具有4*2个实型数组元素
D.一个数组,该数组具有5*4*2个实型数组元素
15、下列属于线性时间的排序算法是:
()
A.快速排序 B.桶排序 C.冒泡排序
16、一棵包含n个节点的树有几条边:
A.n B.n-1 C.不一定
17、在Pascal语言中,表达式35div3mod4的值是________。
A.0 B.2 C.3 D.6
18、在数据结构中,"
树"
结构下层结点出现三个以上的结点,这种结构称为________。
A.三层树 B.三叉树 C.多层树 D.多叉树
19、在Pascal语言中,下列程序段所计算的公式是________。
程序段:
S:
=0;
T:
=1;
ForI:
=1to10do
Begin
=T*I;
S:
=S+T;
end;
A.S=1+2+3+4+……+10
B.S=1*2*3*4*……*10
C.S=1!
+2!
+3!
+4!
+……+10!
D.S=1+2*3+3*4+4*5+……+10*11
20、以下说法正确的是()。
A.CPU与内存不交换信息B.CPU与内存直接交换信息
C.CPU与内存间接不交换信息D.CPU与内存部分交换信息
二、阅读下列程序,写出程序运行结果(第1题5分,第2,3,4题各6分,共23分)
programexp1;
constn=5;
varI,j,k:
integer;
r:
array[0..10]ofinteger;
forI:
=1tondo
read(r[I]);
=2tondo
k:
=r[I];
j:
=I-1;
while(k>
r[j])and(j>
0)do
beginr[j+1]:
=r[j];
=j-1;
r[j+1]:
=k;
end;
write(r[I],’’);
writeln
键盘输入:
84935
屏幕输出:
programexp2;
vara,b,f:
functiongd(m,n:
integer):
ifn=0thengd:
=m
elsegd:
=gd(n,mmodn);
readln(a,b);
write(‘(‘,a,’,’,b,’)=’);
f:
=gd(a,b);
writeln(f)
17216
3、Programexp3(input,output);
VARI,J,S:
INTEGER;
B:
ARRAY[0..5]OFINTEGER;
BEGIN
S:
=1;
FORI:
=1TO5DOB[I]:
=I;
J:
WHILEJ>
0DO
BEGIN
=5;
WHILE(J>
0)AND(B[J]=10+J-5)DOJ:
=J-1;
IFJ>
0THEN
=S+1;
B[J]:
=B[J]+1;
FORi:
=J+1TO5DOB[i]:
=B[J]+i-J
END;
WRITELN('
S='
S);
END.
4、programexp4(input,output);
varm,n,g:
functiongcd(m,n:
ifn=0thengcd:
elsegcd:
=gcd(n,mmodn)
read(m,n);
g:
=gcd(m,n);
writeln('
m='
m,'
n='
n,'
gcd='
g)
输入:
489
输出:
三、问题解答(第1题每空4分,第2题8分)
1、数据结构中,下面是一个树结构图,这个树的"
先序遍历"
结果是________,中序遍历结果是:
________________。
248+3*4107-*/@
2、给出一个后缀算术表达式为
写出对应的中缀算术表达式:
___________________________________________
四、完善程序(第一题每空3分,第二题每空2分,第三题每空4分,共32分)
1、连续整数平台问题
已知一个含有多个整数的数组,其中相同的元素集中在一起形成一个平台。
以下程序用于对输入的数组求出其中最大平台长度。
例如,中元素个数为20,它们依次为
22223333311111111144
则它的最大平台长度为9。
constmaxlength=100;
var
a:
array[1..maxlength]ofinteger;
i,maxi,n,s,t:
write('
);
readln(n);
fori:
=1tondoread(a[i]);
readln;
maxi:
t:
=[1]
s:
ifa[i]=tthen[2]
else
begin
ifs>
maxithenmaxi:
=s;
=a[i];
[3]
[4]
maxi='
maxi);
2、1000!
尾0问题
以下程序用于统计1000!
末尾有多少个0。
其中1000!
=123…1000。
实际上我们只要统计1000!
有多少个因子10。
由于10=52,因而只需统计有多少个因子5和2。
显然在1~1000的所有数中,5的因子个数比2的因子个数少。
因此,只要统计1~1000的所有数中共有多少个因子5就行了。
vari,j,n:
n:
=1to200do
j:
=i*5;
while[5]=0do
=n+1;
=[6]
writeln(n:
4);
3、[问题描述]找数问题:
以下程序用在n个不同元素中找出第k个最小元素。
程序中用分治策略来设计算法。
把这n个元素放在一个数组中,然后取出第k个元素为标准m,把n个元素重新排列:
小于标准m的元素放在数组前面,大于该标准的放在数组的后面。
把该元素m放在两者之间。
设小于标准的元素个数为j-1,如果j=k,则A(k)即为所求元素。
如果j>
k,则第k个元素必在区间[1,j],因此取A[1],…,A[j]为新的元素集合,然后重复上述的”部分排序”的过程。
如果j<
k,则第k个元素必在区间[j+1,n],因此取A[j],…,A[n]为新的元素集合,重复过程。
直至j=k为止。
[程序清单]
varj,k,n:
array[1..100]ofinteger;
proceduresearch(b,e:
integer);
varI,m,t:
ifb=ethenbeginj:
=b;
exitend;
I:
=e;
m:
=[7];
Repeat
Whilea[I]<
mdoinc(i);
Whilem<
a[j]do[8];
IfI<
jthen
Begint:
=a[I];
a[I]:
=a[j];
a[j]:
=tend;
UntilI>
=j;
IfI=kthenexit;
If[9]thensearch(b,j)elsesearch(j+1,e)
End;
procedure[10]
varI:
=1tondowrite(a[I],’’);
writeln;
writeln(‘a[‘,k,’]=’,a[k]);
write(‘n=’);
write(‘a[1..’,n,’]=’);