资源描述
西店中学计算机信息学竞赛测试卷〔一〕
班级: 姓名: 得分:
一、根底题〔13X2+4+4=34分〕
1、及二进制数101.01011等值的十六进制数为( )
B)5.51
2、下面四个不同进制的数,最小的一个数是〔 〕。
〔A〕〔11011001〕2 〔B〕〔75〕10 〔C〕〔37〕8 〔D〕〔A7〕16
3、运算式(2021)10-(3723)8的结果是( )。
A、 (-1715)10 B、(5)10 C、 (-5)16 D、 (111)2 E、 (3263)8
4、(2004)10 + (32)16的结果是〔 〕。
A. (2036)10 B. (2054)16 C. (4006)10 D. (1)2 E. (2036)16
5、小张用十六进制、八进制和十进制写了如下一个等式: 52 - 19 = 33
式中三个数是各不一样进位制的数,试问52、19、33,分别为〔 〕.
〔A〕八进制,十进制,十六进制 〔B〕十进制,十六进制,八进制
〔C〕八进制,十六进制,十进制 〔D〕十进制,八进制,十六进制
6、在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. (a<>0)and (b<>0)
7、表达式round(sqr(11/3))>sqr(11 div 3)的值是:〔 〕
A、T B、F C、FALSE D、TRUE
8、以下中错误的PASCAL表达式是
A、10e6*3.7 B、17 DIV 3 C
9、设a=6,b=3,c=42.15,d=-8,那么表达式(a*trunc(c)-b) mod succ(d)的值为:〔 〕
A、12 B、-4 C、7 D、4
10、表达式sqrt(abs(-100)*sqr〔round〔4.2〕〕)的值是:〔 〕
A、30 B、40
11、表达式〔4 MOD〔-3〕〕及〔-4 MOD 3〕的值为: 。
〔A〕-1,-1 〔B〕1,-1 〔C〕-1,1 〔D〕1,1
12、以下IF语句中,ENDIF 表示相应IF的完毕:
y=0
if x<0
then Y=5
else if x<10
then y=10
if x<100
then y=100
endif
else y=200
endif
endif
试指出: 当X=80 时,运行的结果是______;
当X=5 时,运行结果为_________。
〔A〕 Y=9 〔B〕 Y=5 〔C〕 Y=10 〔D〕 Y=100 〔E〕Y=200
13、判别闰年的条件〔年份能被4整除,并且不能被100整除;或者能被400整除的整数年份〕:
14、任给自然数n,k, 1≤K≤9 ,按如下计算步骤求序列XJXJ-1……X0的步骤:{8%}
(1) j=0
(2) 如果N>=K 那么转第3步,否那么转第7步
(3) Xj = N MOD K {div表示整数除法,结果取整数;
(4) N =N DIV K mod表示整除取余数}
(5) j=j+1
(6) 回第2步
(7) Xj = N
(8) 完毕
试求当: N=1998, K=3时,XJXJ-1……X0 之值为 。
二、问题求解〔5+5+5+7=22分〕
15、:1到10中有两个数1、7不能被2,3,5整除,那么1到1000中有多少个数不能被2,3,5 整除?
16、某班有50名学生,每位学生发一张调查卡,上写a,b,c三本书的书名,将读过的书打ü,结果统计数字如下: 只读a者8人;只读b者4人;只读c者3人;全部读过的有2人;读过a,b两本书的有4人;读过a,c两本书的有2人;读过b,c两本书的有3人;
〔1〕读过a的人数是
〔2〕一本书也没有读过的人数是
17、根据Nocomachns定理,任何一个正整数n的立方一定可以表示成n个连续的奇数的和。
例如:
13= 1
23= 3+ 5
33= 7+ 9 +11
43= 13+15+17+19
在这里,假设将每一个式中的最小奇数称为X,那么当给出n之后,请写出X及n之间的关系表达式:
18、一百个人排成一队,从头到尾报数,报奇数者出列,剩下的人再从头到尾报数,报奇数者仍然出列。试问这样下去留在队列中的那个人,第一次报数时是多少号?并用最简洁的语言表达你求解的思路。
那人的第一次报数号是:_________
分析过程:〔用简单的语言描述分析过程〕
三、程序阅读,写出程序运行结果〔24分,每题6分〕
19、 program ex19;
var a,b,n:longint;
begin
readln(n); a:=0;b:=0;
repeat
a:=a+1;b:=b+a;
until b>=n;
writeln(a);
end.
输入:20210 输出:
20、 Program ex20(input,output);
Var a,n,s:integer;
begin
a:=1;n:=2;s:=0;
while s<10 do
begin
a:=a*n; s:=s+a;
end;
writeln(s:5,a:5,n:5);
end.
输出结果为:
21、 Program ex21;
Var
i:integer;
a:array[1..20] of integer;
begin
a[1]:=1;
a[2]:=2;
for i:=3 to 20 do
a[i]:=a[i-2]*a[i-1];
write(a[6]/a[5]);
end.
输出结果为:
22、 program ex22;
VAR X,Y1,Y2,Y3:INTEGER;
BEGIN
READLN(X);Y1:=0;Y2:=1;Y3:=1;
WHILE Y2<=X DO
BEGIN
Y1:=Y1+1;
Y3:=Y3+2;
Y2:=Y2+Y3;
END;
WRITELN(Y1);
END.
输入:23420 输出结果为:
四、完善程序〔45分,每空3分〕
23、读入10个数,计算它们的和、积、平均值。
Program b2〔input,output〕;
Var
x,s,m,a:real;
i:integer;
Begin
s:=0;
〔1〕 ;
For i:=1 to 10 do
begin
read(x);
s:= 〔2〕 ;
m:= 〔3〕 ;
end; { For }
a:= 〔4〕 ;
writeln(‘sum=’,s,’mul=’,m,’ave=’,a );
End.
24、 计算两个正整数m和n的最大公约数,请将以下程序补充完整。
Program eb4 〔input,output〕;
Var
m,n,r:integer;
begin
write(‘input m,n=’);
readln( (1) );
repeat
r:= (2) ;
m:=n;
n:=r;
until (3) ;
writeln(‘The greatest common divide is’,m);
end.
25、输入50个正整数,把这十个数按由小到大的顺序排列,并以每行5个输出。
program ex5_2;
var
a:array[1..10]of integer;
i,j,t:integer;
begin
writeln('Input 10 integers:');
for i:=1 to 10 do read(a[i]);
readln;
for i:=1 to 9 do
begin
for j:= 〔1〕 to 10 do
if 〔2〕 then
begin
t:=a[i];
〔3〕 ;
a[j]:=t;
end;
end;
for i:=1 to 10 do
begin
write(a[i]:5);
if 〔4〕 then writeln;
end;
end.
26、问题描述:用筛选法求100以内的素数〔质数〕
Program lx53
Var
a:array [ 1..100 ] of integer ;
i,j,k:integer;
begin
for i:=1 to 100 do
a[i]:=iI;
a[1]:=0;
i:=2;
while i<=100 do
begin
k:=i;
while (1) do
begin
(2)
a[k]:=0;
end;
inc(i);
while a[i]=0 do (3)
end
for i:=1 to 100 do
if (4) then write(a[ i ] , ‘ ’);
end.
西店中学计算机信息学竞赛测试答题卷
班级: 姓名: 得分:
一、根底题〔13X2+4+4=34分〕
1
2
3
4
5
6
7
8
9
10
11
X=80
X=5
13、 14、
二、问题求解〔5+5+5+7=22分〕
15、 16、〔1〕 〔2〕
17、
18、那人的第一次报数号是:_________
分析过程:〔用简单的语言描述分析过程〕
三、程序阅读,写出程序运行结果〔24分,每题6分〕
19、
20、
21、
22、
四、完善程序〔45分,每空3分〕
23〔1〕
〔2〕
〔3〕
〔4〕
24〔1〕
〔2〕
〔3〕
25〔1〕
〔2〕
〔3〕
〔4〕
26〔1〕
〔2〕
〔3〕
〔4〕
五、编写程序
27、输入一个十进制数,将其转换成二进制数并输出。〔10分〕
28、随机产生50个三位数,输出;按从小到大的顺序排序,输出。〔15分〕
西店中学计算机信息学竞赛测试答案
班级: 姓名: 得分:
一、填空题
1、及二进制数101.01011等值的十六进制数为( )
B)5.51
2、下面四个不同进制的数,最小的一个数是〔 〕。
〔A〕〔11011001〕2 〔B〕〔75〕10 〔C〕〔37〕8 〔D〕〔A7〕16
答案:6.最小的一个数是C 。
3、运算式(2021)10-(3723)8的结果是( )。
A、 (-1715)10 B、(5)10 C、 (-5)16 D、 (111)2 E、 (3263)8
4、(2004)10 + (32)16的结果是〔 〕。
A. (2036)10 B. (2054)16 C. (4006)10 D. (1)2 E. (2036)16
5、小张用十六进制、八进制和十进制写了如下一个等式: 52 - 19 = 33
式中三个数是各不一样进位制的数,试问52、19、33,分别为〔 〕.
〔A〕八进制,十进制,十六进制 〔B〕十进制,十六进制,八进制
〔C〕八进制,十六进制,十进制 〔D〕十进制,八进制,十六进制
答案:7.等式中的52,19,33,分别为 B 。
6、在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. (a<>0)and (b<>0)
答案选D
7、表达式round(sqr(11/3))>sqr(11 div 3)的值是:〔 〕
A、T B、F C、FALSE D、TRUE
8、以下中错误的PASCAL表达式是
A、10e6*3.7 B、17 DIV 3 C
答案:D
9、设a=6,b=3,c=42.15,d=-8,那么表达式(a*trunc(c)-b) mod succ(d)的值为:〔 〕
A、12 B、-4 C、7 D、4
10、表达式sqrt(abs(-100)*sqr〔round〔4.2〕〕)的值是:〔 〕
A、30 B、40
11、表达式〔4 MOD〔-3〕〕及〔-4 MOD 3〕的值为: 。
〔A〕-1,-1 〔B〕1,-1 〔C〕-1,1 〔D〕1,1
答案:表达式的值是 B
12、以下IF语句中,ENDIF 表示相应IF的完毕:
y=0
if x<0
then Y=5
else if x<10
then y=10
if x<100
then y=100
endif
else y=200
endif
endif
试指出: 当X=80 时,运行的结果是______;
当X=5 时,运行结果为_________。
〔A〕 Y=9 〔B〕 Y=5 〔C〕 Y=10 〔D〕 Y=100 〔E〕Y=200
答案:9.当x=80时,运行的结果为 E 。
当x=5时,运行的结果为 D 。
13、判别闰年的条件〔年份能被4整除,并且不能被100整除;或者能被400整除的整数年份〕:
答案:〔〔y mod 4 = 0〕 and 〔y mod 100 <> 0 〕〕 or 〔y mod 400 = 0〕
14、任给自然数n,k, 1≤K≤9 ,按如下计算步骤求序列XJXJ-1……X0的步骤:{8%}
(1) j=0
(2) 如果N>=K 那么转第3步,否那么转第7步
(3) Xj = N MOD K {div表示整数除法,结果取整数;
(4) N =N DIV K mod表示整除取余数}
(5) j=j+1
(6) 回第2步
(7) Xj = N
(8) 完毕
试求当: N=1998, K=3时,XJXJ-1……X0 之值为 。
答案:当n=1998,k=3时,xjxj-1…x0之值为2202100 。
二、问题求解
15、:1到10中有两个数1、7不能被2,3,5整除,那么1到1000中有多少个数不能被2,3,5 整除?
答案:266
16、为了便于处理表达式,常常将普通表达式〔称为中缀表示〕转换为前缀{运算符在前,如X/Y写为/XY} 和后缀 { 运算符在后,如X/Y写为XY/}的表达形式。
在这样的表示中可以不用括号即可确定求值的顺序,如:
〔P+Q〕*〔R-S〕→*+PQ-RS 或 → PQ + RS -*
〔1〕试将下面的表达式改写成前缀及后缀的表示形式:
<A> A+B*C/D
<B> A-C*D+B∧E
〔2〕试将下面的前缀表示复原成中缀的表示形式,同时写出后缀表示:
+△A *B△C
{注:前缀式中△表示一元运算符取负号,如△A表示〔-A〕}
答案:此题共8分〔1+1+1+1+2+2〕。
〔1〕<a>前缀形式为:+A/*BCD;后缀形式为:ABC*D/+
<b>前缀形式为:+-A*CD∧BE;后缀形式为:ACD*-BE∧+
〔2〕 中缀形式为〔-A〕+B*〔-C〕;后缀形式为:A△BC△*+
17、某班有50名学生,每位学生发一张调查卡,上写a,b,c三本书的书名,将读过的书打ü,结果统计数字如下: 只读a者8人;只读b者4人;只读c者3人;全部读过的有2人;读过a,b两本书的有4人;读过a,c两本书的有2人;读过b,c两本书的有3人;
〔1〕读过a的人数是 〔2〕一本书也没有读过的人数是
答案:〔1〕读过a的人数是12人。〔2〕一本书也没读过的人数是30人。
18、根据Nocomachns定理,任何一个正整数n的立方一定可以表示成n个连续的奇数的和。
例如:
13= 1
23= 3+ 5
33= 7+ 9 +11
43= 13+15+17+19
在这里,假设将每一个式中的最小奇数称为X,那么当给出n之后,请写出X及n之间的关系表达式:
答案:给出n之后,X及n之间的关系表达式为: N2-N+1
19、“圆桌问题〞之相邻不重复:有n个人坐在一张圆桌上吃饭,要求每天每一个人两边相邻的人不同,问这样最多可以安排多少天?如3个人时只能1天,4个人时也只能是1天,而5个人可以安排2天。
答案:(n-1)/2 (n为奇数时); n/2-1 〔n为偶数时〕
20、一百个人排成一队,从头到尾报数,报奇数者出列,剩下的人再从头到尾报数,报奇数者仍然出列。试问这样下去留在队列中的那个人,第一次报数时是多少号?并用最简洁的语言表达你求解的思路。〔20+20分〕
那人的第一次报数号是:_________ (5分)
分析过程:〔用简单的语言描述分析过程〕〔10分〕:
答案:那人的第一次报数号是: 64 〔5分〕
分析过程:〔用简单的语言描述分析过程〕〔10分〕:
每次留下的是2的次方数,最后一次留下的即是2的最高次方数
2n<100
n=6
即为64
三、程序阅读,写出程序运行结果
21、 program ex21;
var a,b,n:longint;
begin
readln(n); a:=0;b:=0;
repeat
a:=a+1;b:=b+a;
until b>=n;
writeln(a);
end.
输入:20210 输出:
答案:200。b=(1+a)*a/2,
即b>=20210…
22、 Program ex22(input,output);
Var a,n,s:integer;
begin
a:=1;n:=2;s:=0;
while s<10 do
begin
a:=a*n; s:=s+a;
end;
writeln(s:5,a:5,n:5);
end.
输出结果为:
答案:14 8 2
23、 Program ex23;
Var
i:integer;
a:array[1..20] of integer;
begin
a[1]:=1;
a[2]:=2;
for i:=3 to 20 do
a[i]:=a[i-2]*a[i-1];
write(a[6]/a[5]);
end.
输出结果为:
答案:4
24、 program ex24;
VAR X,Y1,Y2,Y3:INTEGER;
BEGIN
READLN(X);Y1:=0;Y2:=1;Y3:=1;
WHILE Y2<=X DO
BEGIN
Y1:=Y1+1;
Y3:=Y3+2;
Y2:=Y2+Y3;
END;
WRITELN(Y1); {循环次数}
END.
输入:23420 输出
答案:153
四、完善程序
25、读入10个数,计算它们的和、积、平均值。
Program b2〔input,output〕;
Var
x,s,m,a:real;
i:integer;
Begin
s:=0;
〔1〕 ;
For i:=1 to 10 do
begin
read(x);
s:= 〔2〕 ;
m:= 〔3〕 ;
end; { For }
a:= 〔4〕 ;
writeln(‘sum=’,s,’mul=’,m,’ave=’,a );
End.
答案:(1)m:=1 〔2〕s+x 〔3〕m*x 〔4〕 s/10
26、 计算两个正整数m和n的最大公约数,请将以下程序补充完整。
Program eb4 〔input,output〕;
Var
m,n,r:integer;
begin
write(‘input m,n=’);
readln( (1) );
repeat
r:= (2) ;
m:=n;
n:=r;
until (3) ;
writeln(‘The greatest common divide is’,m);
end.
答案:(1)m,n (2)m mod n (3)r=0
27、输入50个正整数,把这十个数按由小到大的顺序排列,并以每行5个输出。
program ex5_2;
var
a:array[1..10]of integer;
i,j,t:integer;
begin
writeln('Input 10 integers:');
for i:=1 to 10 do read(a[i]);
readln;
for i:=1 to 9 do
begin
for j:= 〔1〕 to 10 do
if 〔2〕 then
begin
t:=a[i];
〔3〕 ;
a[j]:=t;
end;
end;
for i:=1 to 10 do
begin
write(a[i]:5);
if 〔4〕 then writeln;
end;
end.
答案:〔1〕i+1 〔2〕a[i]<a[j]〔3〕a[i]:=a[j] 〔4〕i mod 5=0
28、问题描述:用筛选法求100以内的素数〔质数〕
Program lx53
Var
a:array [ 1..100 ] of integer ;
i,j,k:integer;
begin
for i:=1 to 100 do
a[i]:=iI;
a[1]:=0;
i:=2;
while i<=100 do
begin
k:=i;
while (1) do
begin
(2)
a[k]:=0;
end;
inc(i);
while a[i]=0 do (3)
end
for i:=1 to 100 do
if (4) then write(a[ i ] , ‘ ’);
end.
答案:(1) k<=100 (2) k:=k+i (3) i:=i+1 (4) a[i]<>0
五、编写程序
输入一个十进制数,将其转换成二进制数并输出。
随机产生50个三位数,输出;按从小到大的顺序排序,输出。
展开阅读全文