📄 1999年9月二级笔试试题pascal.txt
字号:
(41)设集合x=[2,4,6,8],y=[2,3,4,5,6],下面能使a=[ ]的赋值语句是
A)a:=x-y+[8] B)a:=(x+x)*(x-y)
C)a:=x*y-x D)a:=(y-x)-(x-y)
(42)有程序:
PROGRAM prog(Input,Output)
VAR a,b:Integer
PROCEDURE p(VAR x:Integer;y:Integer)
BEGIN
x:x+y
END
BEGIN
a:=5;b:=10
p(a,b)
p(a,a MOD b)
Writeln(a,',',b)
END
则运行结果为
A)10,10 B)20,20 C)10,20 D)20,10
(43)有下列程序:
PROGRAM exam2(Input,Output)
VAR i:Integer
FUNCTION ss(n:Integer):Boolean
VAR i:Integer;b:Boolean
BEGIN
i:=3;b:=True
WHILE(iBEGIN
IF n MOD i=0 THEN b:=False
i:=i+2
END
ss:=b
END
BEGIN
i:=3
WHILE iBEGIN
IF ss(i) AND ss(i+4) AND ss(i+10) THEN
Writeln(i)
i:=i+2
END
END
则程序的功能是
A)找出100以内的全部质数(即素数).
B)找出100以内质数的个数.
C)找出100以内满足i,i+4,i+10都是质数的i的个数.
D)找出100以内满足i,i+4,i+10都是质数的所有整数i.
(44)设有说明
VAR a,b,c:Integer
FUNCTION ff(x,y,z,j:Integer;VAR a:integer):Integer
VAR i:Integer
BEGIN
ff:=0;a:=j
FOR i:= a TO 3 DO
BEGIN
ff:=(z-y) DIV x
x:=x+1
END
END
执行语句c:=ff(ff(2,4,16,1,a),6,8,3,b)后变量c,a,b的值分别是
A)0,1,1 B)0,3,1 C)0,3,3 D)0,1,3
(45)下面哪个类型说明是错误的?
A)TYPE rec1=RECORD B)TYPE rec2=RECORD
a:Integer a:Integer
CASE flag:'A'..'C' OF CASE flag:'X'..'Z' OF
'A':(x:Char) 'X':(x:Char)
'B':(y:Char) 'Y':(y:Char)
'C':(z:Char) 'Z':(z:Char)
END END
C)TYPE rec3=RECORD D)TYPE rec3=RECORD
a:=Integer x:Integer
CASE flag:'A'..'C' OF CASE flag:'X'..'Z' OF
'A':(a:Char) 'X':(a:Char)
'B':(b:Char) 'Y':(b:Char)
'C':(c:Char) 'Z':(c:Char)
END END
(46)设有类型和变量说明如下:
TYPE t1=RECORD
a,b:Integer
END
t2=RECORD
a:Char;b:t1
END
VAR x:t2
下面哪组语句有错误?
A)x.a:='A' B)WITH x,b DO
x.b.a:=1 BEGIN
x.b.b:=2 a:='A';b:=5
END
C)WITH x DO D)x.a:='C'
BEGIN WITH x,b DO
WITH b DO BEGIN
BEGIN a:=1; b:=2
a:=1; b:=2 END
END
a:='C'
END
(47)设n是整型变量,阅读下面的程序段
Readln(n)
REPEAT
IF n MOD 2=0 THEN
n:=n+1
ELSE
n:=n+2
UNTIL n=1000
关于输入数据的正确描述是
A)只有输入的n是偶数时才会出现死循环
B)只有输入的n是奇数时才会出现死循环
C)只有输入的n大于或等于1000时才会出现死循环
D)输入任何数时都会出现死循环
(48)下面程序的输出是
PROGAM bs23(Output)
VAR a:ARRAY[1..10] OF Char
k:Integer; ch:Char
BEGIN
FOR k:=1 TO 10 DO
a[k]:=Chr(Ord('A')+k)
FOR k:=1 TO 10 DO
BEGIN
ch:=a[k]
a[k]:a[11-k]
a[11-k]:=ch
END
FOR k:=1 TO 10 DO
Write(a[k])
Writeln
END
A)ABCDEFGHIJ B)BCDEFGHIJK C)JIHGFEDCBA D)KJIHGFEDCB
(49)设文件file2.dat中是一行若干个大写字母(没有行结束符),请阅读下面的程序
PROGRAM bs24(Input,Output)
VAR f1,f2:Text
ch:Char;j:Integer
s:SET OF 'A'..'Z'
BEGIN
s:=[ ]
Assign(f1,'file2.dat')
Assign(f2,'out2.dat')
Reset(f1)
Rewrite(f2)
WHILE NOT Eof(f1) DO
BEGIN
Read(f1,ch)
s:=s+[ch]
END
FOR ch:='A' TO 'Z' DO
IF ch IN s THEN
Write(f2,ch)
Close(f1)
close(f2)
END
此程序的功能是
A)把file2.dat中不重复的字母写入文件out2.dat(即只保留出现一次的字母).
B)把file2.dat中重复出现的字母写入文件out2.dat(即只保留出现多次的字母)
C)把file2.dat中重复出现的字母中多余的字母滤去后,写入文件out2.dat(即若 有
多个字母相同,则只保留一个)
D)把file2.dat中的所有字母写入文件out2.dat.
(50)设有说明 CONSRT n=10
TYPE arr=ARRAY[1..n] OF Integer
要求函数func从数组a中查找一个等于x的数并返回此数的下标,如果a中没有此数,
则返回0,下面哪个函数不能完全正确地实现上述功能.
A)FUNCTION func(a:arr;x:Integer):Integer
VAR found:Boolean; k:Integer
BEGIN
found:=False; k:=1
WHILE (kIF x=a[k] THEN
found:=True
ELSE
k:=k+1
IF found THEN
func:=k
ELSE
func:=0
END
B)FUNCTION func(a:arr; x:integer):Integer
VAR found:Boolean; k:Integer
BEGIN
k:=0
REPEAT
k:=k+1
found:=x=a[k]
UNTIL(k=n) OR found
IF found THEN
func:=k
ELSE
func:=0
END
C)FUNCTION func(a:arr;x:Integer):Integer
VAR k:Integer
BEGIN
k:=1
WHILE (ka[k]) DO
k:=k+1
IF kn THEN
func:=0
ELSE
func:=k
END
D)FUNCION func(a:arr;x:Integer):integer
VAR k:Integer
BEGIN
k:=0
REPEAT
k:=k+1
UNTIL(a[k]=x) OR (k=n)
IF kn THEN
func:=0
ELSE
func:=k
END
二.填空题(每空2分,共40分)
请将每一个空的正确答案写在答题卡___1___至___20___序号的横线上, 答在试卷上不得
分.
(1)DOS命令分为内部命令与外部命令,PATH命令是___1___命令.
(2)设当前盘为A盘,当前目录为\X\Y,A盘上的一个文件QR.C 在当前目录下的子目录W中.
现已将A盘的当前目录改为\D\XY,当前盘改为C盘,如果需指定A盘上该文件应写成___2___.
(3)为了得到XCOPY命令的在线帮助,可使用的DOS命令之一为___3___.
(4)在DOS系统下,代表键盘与显示器的设备文件名为___4___.
(5)在DOS系统下,可以直接执行的文件的扩展名除.EXE外,还有两个是___5___.
(6)设有说明 TYPE
list=^node
node=RECORD
data:Char
next:list
END
下面过程letterlist的功能是:对输入的一串字母(限定为小写字母), 按输入顺序建立
一个字母链表(当输入的是非小写字母时停止建表).
PROGCEURE letterlist(VAR head:list)
VAR
h,p:list
ch:Char
BEGIN
head:=NIL
Read(ch)
WHILE ch IN ['a'..'z'] DO
BEGIN
___6___;
p^.data:=ch
___7___:=NIL
IF head=NIL
THEN head:=p
ELSE___8___:=p
h:=p
Read(ch)
END
Readln
h^.next:=NIL
END
(7)过程pl计算并输出两个四位整数m和n的乘积, 乘积分别放在两个整型变量hi 和lo
中,hi存放乘积的高4位数,lo存放乘积的低4位数.
例如,m=4567,n=5678,则计算结果为4567* 5678= 25931426,乘积的前4位数2593
存入hi,乘积的后4位数1426存入lo.
PROCEDURE pl(m,n:Ineger;VAR hi,lo:Integer)
VAR i:Integer
BEGIN
i:=n;hi:=0;___9___;
REPEAT
i:=i-1;lo:=lo+m
IF lo =10000 THEN
BEGIN
lo:=lo-___10___;
___11___;
END
UNTIL___12___;
Write(hi:4,',',lo:4)
END
(8)一个数如果正好等于其因子之和,就称其为"完数".例如6的因子是1,2,3,并且6=1+2+3,
所以6是一个"完数".下面的程序可以输出2──n之间的所有完数之和.其中n为2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -