pascal试题 下载本文

内容发布更新时间 : 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;