PASCAL 复习题
(课程代码 352064)
一、选择题
1、下面语句中,可以使布尔型变量L的值为真的是___C____:
L:=T
L:=‘T’
L:=TRUE
L:=‘TRUE’
(2章 赋值语句)
2、下面的常量定义中正确的是__C___:
CONST B) CONST
I=100 OR 200 R:12.5;
PI=3.14 J:=10
(2章 常量定义)
3、循环语句FOR C:=‘X’ DOWNTO ‘Z’ DO writeln;的循环次数是___A___:
A)0
B)1
C)2
D)3
(4章 for语句)
4、如果输入的数据是2,3,4,则下面程序的输出应为___C_______:
PROGRAM SAM(INPUT,OUTPUT);
VAR i, x, y:integer;
BEGIN
FOR i:=1 TO 3 DO
BEGIN
Read(x); y:=sqr(x)
END;
Writeln(‘x=’,x, ‘y=’,y)
END.
x=2 y=4 x=2 y=4 x=2 y=4
(2,4章 for语句)
5、选择适当内容填入下面的过程说明中,要求过程SWAP中的形式参数X为值参,Y为变参 ____C______
PROCEDURE swap( );
…………
CONST x: real;VAL y:real
CONST x: real;y:real
C)X:real;VAR y:real
D)X,y:real
(5章 过程的语法)
6、分析下面的一组语句,其中N为整型变量,这组语句执行的结果将输出字符串Good________D___个
n:=0;
repeat
writeln(‘Good’);
n:=n+2;
until n=5
0
3
5
无限
(4章 repeat循环语句)
7、根据下面的变量说明
VAR
M, n, i, j:integer;bool:Boolean;
则下面的赋值语句中正确的是______B_______
m+n:=2*j
bool:=n=i DIV j
m=15 MOD 7
m:=i+j:=n+8
(2章 赋值语句)
8、对于PASCAL语言的记录类型,其开域语句用保留字____D____
RECORD
CASE
WHILE
WITH
(9章 with 语句)
9、设有如下的过程说明
PROCEDURE wri;
BEGIN
Writeln(‘Welcome to use pascal!!!’);
End;
则下面有关过程wri的叙述中正确的是____D_____
过程说明有错,因为没有形式参数
过程说明有错,因未说明过程的类型
过程说明有错,因为在过程体内没有给过程名赋值的语句
过程说明正确
(2章 赋值语句)
10、已知变量ch是字符型变量,下面PASCAL赋值语句正确的是___D_____
ch:=’ab cd’;
ch:=chr(ord(succ(‘c’)+1));
ch:=ord(‘b ’)+ord(‘a’);
ch:=pred(succ(succ(‘f’)));
(2章 赋值语句)
11、判断以下叙述,其中正确的是___A_______
(1,2章 基本知识)
12、以下不符合pascal规定的字符常量是___B_________
‘2’
‘pascal’
’’’’
‘a’
(2章 标准数据类型)
13、以下属非法的pascal用户自定义标识是_____A____
CONST
FORMAT
MAX
NEXT
(1章 保留字)
14、下面循环语句仅执行一次的是_____A_____
Repeat while (I<3) do
I:=I+1; I:=I+1;
Writeln(i) writeln(i);
Until I<3
for I:=0 downto 3 do D) I:=0
I:=I+1; while (I>0) or (I<3) do
Writeln(i); I:=I+1;
writeln(i);
(4 章 循环结构)
15、下面函数首部或过程首部合法的是__B_______
function sum;
procedure next;
function s(VAR s:real):integer;
procedure f(a,b:real):char;
(5章 函数与过程)
16、以下叙述不正确的是____D__________
Pascal提供了一些标准函数和过程,用户使用时可直接调用,无需定义
使用标准函数sin时,每调用一次都能得到唯一的一个值
标准函数只能出现在表达式中,不能以一个调用语句的形式单独调用
调用标准函数或标准过程均能通过一个函数名或过程名带回一个结果
(5章 函数与过程)
17、设有过程首部 procedure f (VAR x:integer;y:real);
若a,b为整型变量,c为实型变量,则合法的过程调用语句是____D_____
f(2,3)
f(2,3.0)
f(a+b,c)
f(b,2)
(4章 过程调用语法)
18、每个pascal程序都必须包括___D_____
B)类型定义
C)变量说明
D)程序首部
(1章 基本知识)
19、已知实型变量r的值为32 .635,若要求按32 . 635的形式输出,应使用的写语句是___B__
writeln(r );
writeln(r:6:3);
write(r:5:3);
writeln(r:5);
(2章 write语句)
20、以下标准数据类型中,____D______ 不能用读语句赋值
整型
实型
字符型
布尔型
(2章 基本类型)
21、以下程序段共执行_____C______次循环
I:=0.5;
While I<2.5 do
Begin
I:=I+0.5;
End;
1
3
4
(4章 for语句)
22、以下pascal程序输出结果是____C______
program tea(output);
VAR i,j:integer;
Begin
For i:=1 to 4 do
Begin
For j:=4-i to 1 do
Write(‘*’);
Writeln
end
end.
* * * * * * *
* * * *
(4章 for语句,多重循环)
23、下面循环语句能构成有限次循环的是____A_______
A) I:=5;
repeat
i:=i+1;
until I>0
I:=1;
Repeat
Writeln(i);
Until I>1
I:=5;
While (I>0) do
I:=I+1;
Writeln(i);
I:=1;
While I<>0 do
I:=I+2;
Writeln;
(4章 for,while,repeat 循环语句)
24、设a和b为同一类型枚举变量,以下语句合法的是:__A_______
(6章 枚举类型)
25、结构化程序的主要优点是( C )
程序体积小,节省内存空间
程序效率高,节省运行时间
程序结构清晰,可读性高,易维护与修改,可靠性高
容易实现巧妙的算法
(1章 概述)
26、下列for 循环的次数是( A )
a:=true ; b:=false ;
for I:=a to b do
write(i);
A)0 B) 1 C) A D) B
(4章 for语句)
27、COS500 +e -X 的正确表达式为( )
cos (50.0) + exp(-x)
cos (pi * 50.0/180) + exp(-x)
cos (3.1416 * 50.0 /180) + exp(-x)
cos (50.0) + 1.0/exp(-x)
(2章 表达式)
28、一个完整的pascal 程序由程序首部,说明部分及执行部分组成,其说明部分的次序为( C )
常量说明,类型说明,变量说明,标号说明,过程说明
标号说明,类型说明,变量说明,常量说明,过程说明
标号说明,常量说明,类型说明,变量说明,过程说明
类型说明,变量说明,标号说明,过程说明,常量说明
(1章 概述 )
29、.Pascal 程序中无序类型是指( A )
实型
字符型
整型
布尔型
(2章 基本类型)
30、有一单向链表,已知P,Q两接点,删除P 接点的操作是( A )
head …….
Q P
A)Q^.next:=P^.next; B)q^.next^.next:=next;
Dispose(p); dispose(p);
P^.next:=nil; q^:=p^.next;
Dispose(P); p^.next:=q^.next;
Dispose(p);
(11章 链表删除)
31、.下列具有输出功能的是_____D______
32、 当n为任意正奇数时,值总为Ttre的表达式是_____D______
33、 表达式Pred(Chr(Ord(‘A’)+4))的值是_____B______
34、 程序段:
FOR i:=1 TO 5 DO
FOR j:=2 TO i DO
Writeln(‘A’);
输出字符A的个数是_____B______
35、数学表达式Sin(60o)的正确PASCAL表达式是 :______C_______
36、下列属PASCAL合法常数的是 : _____A______
37、 设x是一个实型变量,下面能将x四舍五入使小数部分精确到百分之一的PASCAL表达式是:_____A______
38、 一个文件文件的基类型不可以是_____A______
39、 下列表达式中正确的是_____B______
40、 不能作为FOR语句循环控制变量的是下列哪种类型变量_____C______
填空题
1、下面程序依次读入一个字符,以与读入相反的次序,建立以HEAD为头的单向链表,直到读入’!’为止。(先建表尾)
Program reverselist(input,output);
Type link= ^objt;
Objt=record
Data:char;
Next:link
End;
Var head,p:link; ch:char;
Begin
New(head) ;
Head^.next:=NIL;
read(ch);
while ___ch<>’!’____ do
begin new(p); p^.data:=ch;
__p^.next=head^.next___;
__head^.next=p _______;
read(ch)
end;
end.
(4,11章 循环结构,链表)
2、以下程序求平方和 12+22+32+…….+n2
program sqt(input);
VAR
N: integer;
Function las(n:integer):integer;
Var s,i :integer ;
BEGIN
If n=1 then las:=_1_;__
Else begin
S:=0 ;
For I:= 1 to n do
S:=s+sqr(i) ;
las:=_s_;__
end;
End;
BEGIN
Readln(n);
Writeln(las(n))
End.
(4,5章 循环结构,函数)
简答题 (需要自己在理解的基础上总结)
(1) (1)比较循环结构: while <布尔表达式> do <语句> 与 repeat <语句> until <布尔表达式>,简述这两种循环结构的区别?
循环次数不同,While先判断后执行 Repeat先执行后判断
(2) 比较函数与过程的区别?
1、函数以function 开头,过程是procedure;2、函数需说明返回值的类型;函数不能单独调用,过程则是独立调用。
(3)简述在过程和函数中形式参数和实在参数的要求是什么?
形参与实参个数相同,次序一一对应,类型同一。
(4)简述全局变量与局部变量的区别?
主程序中说明的叫全程变量,可以在主程序和子程序中使用;在过程或函数中定义的变量叫局部变量,只能在子程序中起作用。
(5)比较变参与值参的区别?
值参不用VAR;使用值传递,结果不影响对应实际参数的值;值参可以是表达式,而变参只能是变量,结果影响对应实际参数的值;
(5)下面程序段功能是求n!
i:=1; s:=0;n:=10;
While (i<>10) do
Begin S:=s*i;
I:=i+1;
End;
写出循环程序段执行完后,S的值是多少?判断该程序段是否能够满足功能要求?若不能请修改。
S=0,不能满足要求,因将s的初始值赋值1.
(6)写出构成选择结构的两种语法形式?
If (判断表达式) then 语句 ekse 语句 ;
Case (表达式) of
常量1:语句1;
常量2:语句2;
。。。。。
常量n:语句n
End;
(7)判断:以下程序段是否能够实现:求一个三位数整数的个位十位百位的和。如果不能请改正确。
如:输入248,输出结果为:2+4+8=14
设i为输入的一个三位数的整数。
Var sum,I,gw,sw,bw:integer;
Read(i)
Gw:=I mod 10;
sw:=I mod 100;
bw:=I div 100;
sum:=gw+bw+sw;
不能, sw:=(I mod 100) div 10;
四、编程
1、编程:要求输出整数1到100中同时能够被3和4整除的所有整数。
2、编程:求1---100的偶数和。
Program bc(input,output);
Var I,sum:integer;
Begin
I:=2;
sum:=0;
while (i<=100) do
begin
sum:=sum+I;
i:=i+2;
end;
write(sum);
end.
3、打印乘法九九表。
Program bc(input,output);
Var I,j:integer;
Begin
For i:=1 to 9 do
Begin
For j:=1 to i do
Write(I,’*’,j,’=’,i*j;’ ‘ );
Writeln;
End;
End..
4、打印5行杨辉三角形
5、求出20个数中最大最小值
Program bc(input,output);
Var x,max,min;real;
Begin
Read(x);
Max:=x;
Min:=x;
For i:=2 to 20 do
Begin
Read(x);
If x>max then max:=x else if x<min then min:=x
End;
Write(‘max=’,max,’min=’,min );
End..