小学生计算机程序设计竞赛试卷及参考答案
1、下列表达式的值为FALSE 的是( )。
A. Not( ‘90' '100 ')
B.Round((Abs(-10.5))) 10
C. Odd(True(98.49))
D.Ord(Chr(Pred(8))) =7
2 、判断变量ch 的值是否为大写字母,下列表达式正确的是( )。
A. ch = 'A' and ch = 'Z'
B.'A' =ch = 'Z'
C.(ch =A)and(ch =Z)
D. not(ch 'A' )or(ch ' Z')
3、表达式Chr(Ord( ‘ a')+5)) 的值是( )。
A.'f '
B.‘E'
C.102
D.101
4、与十进制数2014 等值的二进制数是( )。
A.11111011110
B.11110011110
C.10111111110
D.11111111010
5、[x] 补码=10011101 ,其原码为( )。
A.11001111
B.11100100
C.11100011
D.01100101
6、十进算术表达式:5*512+7*64 +4*8 +7 的运算结果,用二进制表示为( )。
A. 101111100111
B.111111100101
7、(2014)16 + (924)10 的结果是( )
C. 111110100101
D.111111011011
7、(2014)16 + (924)10 的结果是( )
A. (9036)10
B. (23B0)16
C. (9130)10
D. (100011000110)2
二、计算下列函数(1*15)
1、Sqr (7)的值为( )。
2、Round(19.6) 的值为( )。
3、Round(14.4) 的值为( )。
4、int(-5.7) 的值为( ) 。
5、Abs(-4.1) 的值为( )。
6、-37 mod 6 的值为( )。
7、'A ' 'a'的值为( )。
8、odd(25) 的值( )。
9、Not(17-5 13) 的值为( )。
10、(11 10 )and(7 =7) 的值为( )。
11、Round(-11.1) 的值为( )。
12、Round(-9.7) 的值为( )。
13、Trunc(-17.7) 的值为( )
14、chr(ord( ‘h ')) 的值为( )。
15、已知chr(97) 的值为字母a则chr(99) 的值为字母( )。
三、问题求解(5+6)
1、兄弟两人去钓鱼,一共钓了23 条,哥哥钓的鱼比弟弟的三倍还多3 条,哥哥弟弟各钓了多少条?
哥哥____________________ 弟_ 弟___________________________
2、对一批编号为1~100 ,全部开关朝上(开)的灯进行以下操作:凡是1 的倍数反方向拨一次开关;2 的倍数反方向又拨一次开关;3 的倍数反方向又拨一次开关;⋯⋯100 的倍数反方向又拨一次开关。
问:最后为关熄状态的灯的编
号有哪些?
四、看程序写结果
1、
var d, p: integer;
begin
p:=1;
d:=5;
while d 1 do
begin
p:=2*(p+1);
d:=d-1
end;
writeln (p) end.
输出:____________________
2、
var x,y:longint;
begin x:=2014; y:=924;
while (x 0) and (y 0) do begin
if x =y then x:=x-y else y:=y-x
end;
if x=0 then writeln(y) else writeln(x) end.
输出:_____________________________
3、
var i,j,n:integer; b:array[1..10] of 0..2;
begin n:=2014;j:=0;
while n 0 do begin j:=j+1;b[j]:=n mod 3; n:=n div 3; end; for i:=j downto 1 do write(b[i]); writeln;
end. 输出:
4、
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.
输出:___________________________________
5、
var i,k:integer; a:array [0..20] of integer; begin
a[1]:=1; a[2]:=1;
k:=1;
repeat
a[k+2]:=1;
for i:=k+1 downto 2 do a[i]:=a[i]+a[i-1];
k:=k+1;
until k
for i:=1 to 6 do write(a[i]:5);
writeln
end.
输出:______________________________________
五、完善程序(3*4 )
1、鸡兔同笼问题:
鸡有一头二脚,兔有一头四脚;鸡兔同笼共有头m 个、脚n 个,问笼中鸡、兔各有多少?例如输入:4 10
输出:
3
1
var n,m:Qword;
begin
readln(m,n);
writeln(① );
writeln(② );
end.
2、最小公倍数
求两个正整数m、n 的最小公倍数k。
例如输入:12 9 输出:36
var a,b,t:Qword;
function gcd(m,n:Qword):Qword;
begin
if m mod n=0 then gcd:=n else gcd:= ③ ; end;
begin
readln(a,b);if a b then begin t:=a;a:=b;b:=t;end;writeln( ④ );
end.
3、汉诺塔问题
将A 柱上的圆盘移到C 柱。
移动规则如下:1 、一次只能移动一个
盘;2、不允许把大盘放在小盘上。
第一行只有一个正整数:k ,表示总移动次数
接下来的k 行,每行是一种移动方法。
例如输入3 输出
7
A- C
A- B
C- B
A- C
B- A
B- C
A- C var k,n,i:longint; procedure try(a,b,c:char;m:longint); begin
if m=1 then writeln(⑤ )
else
begin try(⑥ ); writeln(a, ' - ‘,c); try(⑦ );
end; end;
begin readln(n);
k:=1;
for i:=1 to n do
⑧; writeln(⑨ ); try(⑩ );
end.
计算机程序设计竞赛答案
一、选择题:(2 *7 ) 题号1 2 3 4 5 6 7 答案A 或B D A A C A B
二、计算下列函数( 1*15 ) 题号1 2 3 4 5
答案49 20 14 -5.0 ⋯E+000 4.1
题号6 7 8 9 10
答案-1 True True True True
题号11 12 13 14 15 答案-11 -10 -17 h c
三、问答题( 5+6 )
1、18 5
2、 1 4 9 16 25 36 49 64 81 100
四、看程序写结果( 6*5 )
1、46
2、2
3、2202121
4、s=252
5、 1 5 10 10 5 1
五、完善程序(3*10)
1、① (m*4-n)div 2 ② m-(m*4-n)div 2
2 、③ gcd(n,m mod n) ④ a*b div gcd(a,b)
3、⑤ a,' - ‘,c ⑥ a,c,b,m-1 (a,c,b, m div 2)
⑦ b,a,c,m-1(b,a,c,m div 2) ⑧ k:=k*2
⑨ k-1 ⑩ ‘A','B','C',n ( ‘A','B','C',K-1)。