試 題 一(15分)
閱讀下列對線性表操作的3個子列程的流程圖 ,選答案填入A-E
[ 說明 ]在主存儲器中有一個右圖所示的表格結(jié)構(gòu),表格的每個元素由值(V)和
指針(P)兩部分組成,在表格中以鏈接方式存放著一個線性表(LINEAR LIST) L,
它的第一個元素的位置放在LP中.表格中全部空閑元素也鏈接成一個線性表E,它
的第一個元素位置存放在cp中兩個線性表最後壹個元素指針全是0
(1)子例程ENTER(U,M) (2)子例程 FIND<U,M) (3) 子例程 DELETE(M)
在線性表L 中位于M 從線性表L中找出第一 從至少有兩個元素的線
(M<>0)處的元素之后插 個其值為U的元素,把位置 性表L中刪除緊接在位置M
入一個以U為值的結(jié)點. 放入M. 沒有以U為值的元 之后的一個元素. 把刪除
素時,把M置為O. 的元素放進線性表E中.
供選答案 A,B,C,D,E:
(1)M->P(M) (2)P(M)->M (3)P(M)->P(I) (4)P(I)->P(M) (5)CP->P(I)
(6)P(I)->CP (7)I->CP (8)CP->I (9)I->P(M) (10)P(M)->I
試題二 (15分)
[程序的說明]本程序輸入字符序列,直到26個大寫字母均出現(xiàn)為止.程序輸出已
輸入的字符的總個數(shù)和各大寫字母首次輸入時的序號,對于最現(xiàn)出現(xiàn)的五個不同
大寫字母還要輸出它們在已輸入序列中出現(xiàn)的次數(shù).
PROGRAM ALPHABET (INPUT,OUTPUT);
VAR C:CHAR; N,M:INTEGER;
S,SL:____________ ;
p,g:array ['A'..'Z'] of integer;
begin
s:=______________ ; sl:=[]; n:=0 ; _____________;
for c:= 'A' to 'Z' do
begin g[c]:=0; p[c]:=0 end;
reprat read (c);____________;
if ________ then
begin s:=s-[c]; p[c]:=n;
IF m<=5 then
begin sl:=_____________; m:=m+1; end
end
if ______________ then g[c]:=g[c]+1
until_____________;
writeln;
writeln (n,'CHARACTER COUNTED');
FOR C:='A' TO 'Z' do
begin write (c,p[c]:8);
if g[c]<>0 then write(g[c]:8);
end
end.
試題三 (20 分)
[程序說明] 本程序按照學生學號的順序輸入學生的成績,按照分數(shù)從高到低的順
序輸出學生的名次,該名次的分數(shù),同一名次的人數(shù)和學號(每行最多輸出10個學號).
程序中用MARK和NO分別表示學生分數(shù)和學號.
PROGRAM exam(input,output);
const m=1000;
type st=record
mark:0..100;
no:integer
end;
sttype=array [1..m] of st;
var a:sttype; q,i,j,k,p,w,n:integer; b:boolean;
procedure sorter (var a:sttype; n:integer);
var i,j:integer; w:st; b:boolean;
begin b:=true; i:=1 ;
while (i<n) and b do
begin b:=false;
for j:=n downto ___ do
if __________ then
begin w:=a[j-1] ; a[j-1]:=a[j];
a[j]:=w; ________
end;
i:=i+1;
end
end;
begin read(n);
if n<=m then
begin
for i:=1 to n do
begin read (a[i],mark); a[i].no:=i end;
_______________; i:=1; j:=0;
writeln ('ORDER','MARK',' COUNT ', 'NUMBRE');
while i<=n do
begin J:=J+1 ;w:=a[i].mark; p:=i+1; b:=true;
while b and (p<=n) do
if __________________then p:=p+1 else b:=false;
write ( j:6,' ',w:4, ' ',(p-i):5, ' ':3);
k:=0;
for q:=i to p-1 do
begin if k=10 then
begin writeln ; write (' ':20 ); k:=0 end;
write(a[q].no:5); k:=k+1
end;
writeln; _____________________
end
end else writeln ('ERROR')
end.
試題四 (25分)
[程序說明] 過程MULITICOM用于比較兩個由鏈表(LINKED LIST)表示整數(shù)的大小,
其中過程C的功能是比較兩個數(shù)的絕對值大小,程序中用PLUS 和MINUS分別表示正
和負,用IT,EQ和GT分別表示小于,等于和大于.用SING,SIZE 分別表示數(shù)的符號和
位數(shù),整數(shù)高位無意義的零在鏈表中沒有表示
type signtype=(plus,minus);
relation=(lt,eq,gt);
listptr=^node;
node=record
item:0..9;
next:listptr
end;
multi=record
sign:signtype;
size:1..maxint;
value:listptr
end;
procedure multicom (var r:relation; m1,m2:multi);
procedure c(p1,p2:listptr);
begin
if p1=nil then r:=sq* else begin
c(pl^.next,p2^.next);
if r=eq then
if_____________________________then r:=lt
else if _______________________then r:=gt
end
end;
begin
if m1.sign<>m2.sign
then if_____________________
then r:=gt else r:=lt
else if m1.size<>m2.size
then if ______________________________________
then r:=gt else r:=lt
else if m1.sign=plus
then _______________________________
else _______________________________
end;
轉(zhuǎn)帖于:軟件水平考試_考試吧- 推薦給朋友
- 收藏此頁
·2008年下半年軟考信息系統(tǒng)項目管理師試題(下午II) (2008-12-21 22:39:30)
·2008年下半年計算機軟考網(wǎng)絡工程師試題(下午) (2008-12-21 22:26:13)
·2008下半年軟考系統(tǒng)分析師考試試題(下午)II (2008-12-21 22:20:49)
·2008年下半年計算機軟考程序員試題(下午) (2008-12-21 22:18:18)
·2008年下半年計算機軟考程序員試題(上午) (2008-12-21 22:11:38)
如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系,我們將會及時處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請注明出處。