内容发布更新时间 : 2024/11/14 14:27:24星期一 下面是文章的全部内容请认真阅读。
第22届胜利油田学生信息学奥林匹克竞赛
小学组Pascal语言试题
☆全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效☆
一、单项选择。(每小题2分,共20分) 1.下列标识符中,正确的是:
A. a+b B. name C. 4ab D. if 2. 下列的变量说明中,哪个是不正确的?
A. B. Var a,b,c:integer; Var x1:integer; x,y:real; x2:integer;
C. D. Var s,t:real; Var sum,total:integer; a,s,b:integer;
3. 将数学式子 (a?b)?c?d 写成Pascal表达式,正确的是:
A. (a?b)?c?d C. (a?b)?c/d
B. a?b*c/d D. (a?b)*c/d
4.已有如下变量说明: var a,b:integer; x,y: real;
下面的赋值语句中,计算机能接受的是:
A. a:=a+b; B. a:=a/b; C. b:=y; 5. 下面运算符中,运算结果一定是integer类型的是:
A. + B. - C.div
D. x:=x div y; D. /
6. 设整型变量i的的值为12,实型变量A的值为-47.28,执行语句writeln(i:4,A:8:2)的结果是:
A. 12□□-47.28□□
B. 12□-47.2800
C. 12口口口口-47.28 D. 口口12口口-47.28 7. 下面关于FOR循环的叙述中,不正确的是:
A. 在循环体中不能改变循环控制变量的值 B.循环控制变量可以是任意的数据类型 C.FOR循环分为递增型和递减型两种
D. 在执行过程中初值和终值不会改变 8. 有如下程序段:
read(a,b,c); readln(d,e); readln;
readln(f,g);
其中,所有变量均为整型。如果输入的数据如下: 1 2
3 4 5 6 7 8 9 10 11
12 13
则变量f的值为:
A.10 B.11 C.12 D.139. 有如下程序段: S:=0; i:=1; while i<=5 do begin
s:=s+i; i:=i+1; end;
执行该程序段后,变量i的值为:
A. 1 B. 3 C. 5 D. 6 10.对于下面的程序段:
x:=28; y:=20 ; z:=30; if x>y then z:=x+y;
x:=y; z:=x+y; y:=z;
执行该程序段后, 变量y的值为: A. 28
B. 30
C. 40
D. 48
二、解决问题(4+6=10分)
1.观察下列数的规律,然后填空。
0,1,2,5,12,29,_________
2.有红、黄、蓝、绿四种颜色的旗子,每次取三面从上到下挂出,可以有多少种不同的挂法?
三、写出程序的运行结果。(每小题5+5+6+8+8,共32分) 1.
program xjg1;
var x,a,b,c:integer; begin
readln(x);
if (x>=100) and (x<=999) then begin
a:=x div 100;
b:=(x-a*100) div 10; c:=x mod 10; x:=c*100+b*10+a;
writeln(x); end
else writeln('Input error!'); end.
输入:927 2.
program xjg2;
var x,i,sum1, sum2: integer; begin
repeat
readln(x);
until x>0;
sum1:=0; sum2:=1; if x mod 2=1 then
for i:= 1 to 5 do
sum1:=sum1+i
else
for i:=1 to 5 do
sum2:=sum2*i;
writeln(sum1:5, sum2:5); end. 输入:68 3.
program xjg3; var
x,a,b,c:integer; begin
readln(x);
a:=0; b:=1; c:=1; while b c:=c+100; a:=a*2007; b:=b+c; end; writeln(b:5,c:5); end. 输入:2007 4. program xjg4; var x,i,s,max:integer; begin read(x); max:=x; s:=x;