1.TYPE
digits=(one,two,three,four); ( )
2.VAR n:integer
……
CASE n OF
1,3,5 : writeln(‘odders’);
2,4,6 : writeln(‘evener’);
3,4,7 : writeln(‘other’)
END; ( )
3.VAR b:boolean; i,n:integer;
……
b:=true;
FOR i:=2 TO n/2 DO
IF n MOD i=0
THEN b:=false; ( )
4.FUNCTION f(x:integer):1..100; ( )
5.VAR a,b:RECORD
x,y:real
END;
……
IF a=b
THEN writeln(‘a(chǎn)ll value is equal’); ( )
二、單項(xiàng)選擇題(每小題2分,共10分)
1.VAR ( )
c:char; b:boolean;
選出下面正確的賦值:
A.c:=’1998’;
B.c:=1
C.b:=’true’;
D.c:=’1’;
2.選出下面正確的表達(dá)式。 ( )
A. 3<>5 and 5-3=2
B. ‘5’+’3’
C. chr(ord(‘B’))
D. ord(‘2’)/2 mod 2
3.選出下面正確的類型定義。 ( )
A.TYPE operaters=(+,-,*,/);
B.TYPE digits=(‘1’,’2’,’3’,’4,’);
C.TYPE letters=(‘A’,’B’,’C’,’D’);
D.TYPE mtype=(int,realtype,caracter,bool);
4.VAR p,q:integer; r,s:real; ( )
且p,q,r,s都已賦值,選出下面正確的表達(dá)式。
A.p=q
B.p<>r
C.p=r
D.q<>s
5.VAR S:SET OF 1..5; A:SET OF ‘A’..’E’; ( )
A和S已賦值,選出正確的表達(dá)式。
A.A<>S
B . A∩S=[ ]
C . A<>[ ]
D . NOT ‘A’ IN S
三、填空題(每空1分,共10分)
1.VAR a:ARRAY [1..10,’A’..’E’] OF char;a中有_________個(gè)元素,每個(gè)元素是_________類型。
2.VAR tool:(bike,car,motor,bus); pred(car)=__________;succ(car)=______________。
3.A:=[1,3,5,7,9];B:=[2,4,6,8,10];A+B的值是__________,A*B的值是__________。
4.VAR p,q:^integer;
……
new(p); q:=NIL;
表達(dá)式p<>q的值是_____________,表達(dá)式p=q的值是_____________。
5.建立文件f(非標(biāo)準(zhǔn))時(shí),必須先調(diào)用標(biāo)準(zhǔn)過程___________ ;第一次從f上讀之前,必須先調(diào)用標(biāo)準(zhǔn)過程___________。
四、簡(jiǎn)答題(每小題5分,共20分)
1.寫一個(gè)表達(dá)式,若x滿中下式
10-7<|x|<107
則表達(dá)式取值true,否則,取值false.
寫一個(gè)程序片段,計(jì)算1至100中能被3整除的所有整數(shù)之和。
2.已知,VAR s: (knife,rule,pen,rubber); 且s中已有值,試寫一程序片段,把s中的值輸出到顯示器上。
3.VAR a:ARRAY[1..4][1..4] OF real ; 寫一程序片段,用賦值語句(即不用read過程),將下面的矩陣賦給a中元素。
1.1 5.2 9.3 13.4
2.1 6.2 10.3 14.4
3.1 7.2 11.3 15.4
4.1 8.2 12.3 16.4
五、程序分析題(共28分)指出下列程序的輸出。
PROGRAM t982(input,output);
VAR
a,b,c : integer;
PROCEDURE p (VAR x:integer; y:integer);
VAR
temp:integer;
BEGIN
temp:=x DIV y+c;
x:=temp;
writeln(x:4,y:4,temp:4)
END;
BEGIN
a:=9;b:=2;c:=3;
p(a,b);
writeln(a:4,b:4,c:4)
END.
PROGRAM t984(inprt, output);
VAR
i,j:integer;
a,b:ARRAY[1..5] OF integer;
BEGIN
FOR i:=1 TO 5 DO
BEGIN
a[i]:=2*i-1;
b[i]:=i
END;
FOR i:=1 TO 5 DO
FOR j:=1 TO 5 DO
IF a[i]=b[j]
THEN write(a[i]:4)
END.
PROGRAM t986(input,output);
TYPE
pointer=^node;
node=RECORD
n:integer;
next:pointer
END.
VAR
i:integer;
head,p,q:pointer;
PROCEDURE make(VAR head:pointer; key:integer);
VAR p,q,r: pointer;
BEGIN
p:=head;
WHILE(key>=p^.n) AND (p^.next<>NIL) DO
BEGIN
q:=p;
p:=p^.next
END;
new(r); r^.n:=key;
IF key
THEN BEGIN r^.next:=p; q^.next:=r END
ELSE BEGIN p^.next:r; r^.next:=NIL END
END;
PROCEDURE wlink(head:pointer);
VAR p:pointer;
BEGIN
p:=head;
WHILE p<>NIL DO
BEGIN
write(p^.n:4);
p:=p^.next
END;
END;
BEGIN
head:=NIL; i:=1;
WHILE i<=5 DO
BEGIN
new(p); p^.n:=2*i;
IF head=NIL THEN head:=p
ELSE q^.next:=p;
q:=p; i:=i+1
END;
q^.next:=NIL;
wlink(head);
make(head,20);
wlink(head)
END.
六、程序填空(共22分)
1.[程序說明] 程序t988給數(shù)組a中count個(gè)元素賦值,然后插入一個(gè)元素,最后顯示出a中的元素。過程P對(duì)給定的y,首先找插入位置,然后插入,且插入后a中元素仍是升序。(10分)
[程序]
PROGRAM t988(input,output);
CONST n=50;
TYPE atype=ARRAY[1..n] OF integer;
VAR a:atype;
i,count:integer;
PROCEDURE P(VAR x:atype; y:integer; VAR m:integer);
VAR i,k:integer;
BEGIN
IF m>=n
THEN writeln(‘out renge’)
ELSE BEGIN
_______________
WHILE_____________ AND (k
_____________
x[i+1]:=x[i];
_____________
m:=m+1
END
END;
BEGIN
count:=10;
FOR i:=1 TO count DO
a[i]:=2*i;
_______________
FOR i:=1 TO count DO
write(a[i]:4);
writeln
END.
2.[程序說明] t989是一個(gè)簡(jiǎn)單的設(shè)備管理程序。描述設(shè)備的類型cordtype中有編號(hào)no,名稱name,購買時(shí)間btime和價(jià)格price。該程序首先從鍵盤上讀入原始數(shù)據(jù),然后按價(jià)格升序排序,最后顯示設(shè)備信息。(12分)
[程序]
PROGRAM t989(input,output);
CONST m=5;
n=50;
TYPE strings=PACKED ARRAY[1..M] OF char;
cardtype=RECORD
no:integer;
name:strings;
btime:RECORD
year,month,day:integer
END;
price:real
END;
atype=ARRAY[1..n] OF cardtype;
VAR a:atype; i,c:integer;
PROCEDURE p1(VAR x:atype; VAR m:integer);
VAR t:cardtype;
BEGIN
m:=1;
_____________
WITH .btime DO
BEGIN
readln(name,no,price,year,month,day);
WHILE(no<>0) AND (m
x[m]:=t;
___________
m:=m+1
END
END;
m:=m+1
END;
PROCEDURE p2(VAR x:atype);
VAR i,j,k:integer;
temp:cardtype;
BEGIN
FOR i:=1 TO c-1 DO
BEGIN
FOR j:=j+1 TO c DO
IF___________THEN k:=j;
temp:=x[i];
x[i]:=x[k];
x[k]:=temp
END
END;
BEGIN
______________
p2(a);
FOR i:=1 TO c DO
_____________
writeln(no:6, name:6, btime.year:6, btime.month:4, btime.day:4, price:6:1)
END.
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |