當前位置:成語大全網 - 新華字典 - 高中信息學聯賽經典題型(pascal)

高中信息學聯賽經典題型(pascal)

第八屆全國青少年信息學奧林匹克聯賽(NOIP2002)初賽試題

(提高組 PASCAL語言 二小時完成)

審定:全國青少年信息學奧林匹克競賽科學委員會

主管:中國科協、教育部

主辦:中國計算機學會

承辦:江蘇省科協青少年科技中心

●●全部試題答案均要求寫在答卷紙上,寫在試卷紙上壹律無效●●

壹. 選擇壹個正確答案代碼(A/B/C/D),填入每題的括號內(每題1.5分,多選無分,***30分)

1. 微型計算機的問世是由於( )的出現。

A)中小規模集成電路 B)晶體管電路 C)(超)大規模集成電路 D)電子管電路

2. 中央處理器(CPU)能訪問的最大存儲器容量取決於( )。

A)地址總線 B)數據總線 C)控制總線 D)實際內存容量

3. 十進制書11/128可用二進制數碼序列表示為:( )。

A)1011/1000000 B)1011/100000000 C)0.001011 D)0.0001011

4. 算式(2047)10 -(3FF)16 +(2000)8的結果是( )。

A)(2048)10 B)(2049)10 C)(3746)8 D)(1AF7)16

5. 已知x =(0.1011010)2 ,則[ x / 2 ]補 =( )2 。

A)0.1011101 B)11110110 C)0.0101101 D)0.100110

6. IPv4地址是由( )位二進制數碼表示的。

A)16 B)32 C)24 D)8

7. 計算機病毒傳染的必要條件是:( )。

A)在內存中運行病毒程序 B)對磁盤進行讀寫操作

C)在內存中運行含有病毒的可執行的程序 D)復制文件

8. 在磁盤上建立子目錄有許多優點,下列描述中不屬於建立子目錄優點的是( )。

A)便於文件管理 B)解決根目錄中目錄項個數有限問題

C)加快文件查找速度 D)節省磁盤使用空間

9. 在使用E-mail前,需要對Outlook進行設置,其中ISP接收電子郵件的服務器稱為( )服務器。

A)POP3 B)SMTP C)DNS D)FTP

10.多媒體計算機是指( )計算機。

A)專供家庭使用的 B)裝有CD-ROM的

C)連接在網絡上的高級 D)具有處理文字、圖形、聲音、影像等信息的

11.微型計算機中,( )的存取速度最快。

A)高速緩存 B)外存儲器 C)寄存器 D)內存儲器

12.資源管理器的目錄前圖標中增加“+”號,這個符號的意思是( )。

A)該目錄下的子目錄已經展開 B)該目錄下還有子目錄未展開

C)該目錄下沒有子目錄 D)該目錄為空目錄

13.在WORD文檔編輯中實現圖文混合排版時,關於文本框的下列敘述正確的是( )。

A)文本框中的圖形沒有辦法和文檔中輸入文字疊加在壹起,只能在文檔的不同位置

B)文本框中的圖形不可以襯於文檔中輸入的文字的下方

C)通過文本框,可以實現圖形和文檔中輸入的文字的疊加,也可以實現文字環繞

D)將圖形放入文本框後,文檔中輸入的文字不能環繞圖形

14.壹個向量第壹個元素的存儲地址是100,每個元素的長度是2,則地5個元素的地址是( )。

A)110 B)108 C)100 D)109

15.已知A = 35H,A /\ 05H \/ A /\ 30H 的結果是:( )。

A)30H B)05H C)35H D)53H

16.設有壹個含有13個元素的Hash表(0 ~ 12),Hash函數是:H(key)= key % 13,,其中%是求余數運算。用線性探查法解決沖突,則對於序列(2、8、31、20、19、18、53、27),18應放在第( )號格中。

A)5 B)9 C)4 D)0

17.按照二叉數的定義,具有3個結點的二叉樹有( )種。

A)3 B)4 C)5 D)6

18.在壹個有向圖中,所有頂點的入度之和等於所有頂點的出度之和的( )倍。

A)1/2 B)1 C)2 D)4

19.要使1 ...8號格字的訪問順序為:8、2、6、5、7、3、1、4,則下圖中的空格中應填入( )。

1 2 3 4 5 6 7 8

4 6 1 -1 7 3 2

A)6 B)0 C)5 D)3

20.設棧S和隊列Q的初始狀態為空,元素e 1 ,e 2 ,e 3 ,e 4 ,e 5 ,e 6依次通過棧S,壹個元素出棧後即進入隊列Q,若出隊的順序為e 2 ,e 4 ,e 3 ,e 6 ,e 5 ,e 1 ,則棧S的容量至少應該為( )。

A)2 B)3 C)4 D)5

二.問題求解:(6 + 8 = 14分)

1. 在書架上放有編號為1 ,2 ,...,n的n本書。現將n本書全部取下然後再放回去,當放回去時要求每本書都不能放在原來的位置上。例如:n = 3時:

原來位置為:1 2 3

放回去時只能為:3 1 2 或 2 3 1 這兩種

問題:求當n = 5時滿足以上條件的放法***有多少種?(不用列出每種放法)

2. 設有壹棵k叉樹,其中只有度為0和k兩種結點,設n 0 ,n k ,分別表示度為0和度為k的結點個數,試求出n 0 和n k之間的關系(n 0 = 數學表達式,數學表達式僅含n k 、k和數字)。

三.閱讀程序,寫出正確的程序運行結果:(8 + 9 + 9 = 26分)

1. program Gxp1;

var i , n , jr , jw , jb : integer ;

ch1 : char ;

ch : array[1..20] of char ;

begin

readln(n);

for i:=1 to n do read(ch[i]);

jr:=1; jw:=n; jb:=n;

while (jr<=jw) do

begin

if (ch[jw]=’R’)

then begin

ch1:=ch[jr]; ch[jr]:=ch[jw]; ch[jw]:=ch1; jr:=jr+1;

end

else if ch[jw]=’W’

then jw:=jw-1;

else begin

ch1:=ch[jw]; ch[jw]:=ch[jb]; ch[jb]:=ch1; jw:=jw-1; jb:=jb-1;

end

end;

for i:=1 to n do write(ch[1]);

writeln;

end.

輸入:10

RBRBWWRBBR

輸出:

2. program Gxp2;

var i , j , s ,sp1 : integer ;

p : boolean ;

a : array[1..10] of integer ;

begin

sp1:=1; a[1]:=2; j:=2;

while sp1<10 do

begin

j:=j+1; p:=true;

for i:=2 to j-1 do

if (j mod i=0) then p:=false;

if p then begin

sp1:=sp1+1; a[sp1]:=j;

end;

end;

j:=2; p:=true;

while p do

begin

s:=1;

for i:=1 to j do s:=s*a[i];

s:=s+1;

for i:=2 to s-1 do

if s mod i=0 then p:=false;

j:=j+1;

end;

writeln(s); writeln;

end.

輸出:

3. Program Gxp2

Var d1 , d2 , X , Min : real ;

begin

Min:=10000; X:=3;

while X<15 do

begin

d1:=sqrt(9+(X-3)*(X-3)); d2:=sqrt(36+(15-X)*(15-X));

if(d1+d2)<Min then Min:=d1+d2;

X:=x+0.001;

end;

writeln(Min:10:2);

end.

輸出:

四.完善程序:(15 + 15 = 30分)

1. 問題描述:工廠在每天的生產中,需要壹定數量的零件,同時也可以知道每天生產壹個零件的生產單價。在N天的生產中,當天生產的零件可以滿足當天的需要,若當天用不完,可以放到下壹天去使用,但要收取每個零件的保管費,不同的天收取的費用也不相同。

問題求解:求得壹個N天的生產計劃(即N天中每天應生產零件個數),使總的費用最少。

輸入:N(天數 N<=29)

每天的需求量(N個整數)

每天生產零件的單價(N個整數)

每天保管零件的單價(N個整數)

輸出:每天的生產零件個數(N個整數)

例如:當N=3時,其需要量與費用如下:

第壹天 第二天 第三天

需 要 量 25 15 30

生產單價 20 30 32

保管單價 5 10 0

生產計劃的安排可以有許多方案,如下面的三種:

第壹天 第二天 第三天 總的費用

25 15 30 25*20+15*30+30*32=1910

40 0 30 40*20+15*5+30*32=1835

70 0 0 70*20+45*5+30*10=1925

程序說明:

b[n]:存放每天的需求量

c[n]:每天生產零件的單價

d[n]:每天保管零件的單價

e[n]:生產計劃

程序:

program exp5;

var

i,j,n,yu,j0,j1,s : integer ;

b,c,d,e : array[0..30] of integer ;

begin

readln(n);

for i:=1 to n do readln(b[i],c[i],d[i]);

for i:=1 to n do e[i]:=0;

①__________:=10000; c[n+2]=0; b[n+1]:=0 j0:=1;

while (j0<=n) do

begin

yu:=c[j0]; j1:=j0; s:=b[j0];

while ②__________ do

begin

③__________ j1:=j1+1; s:=s+b[j1];

end;

④__________ j0:=j1+1;

end;

for i:=1 to n do ⑤__________

readln;

end.

二.問題描述:有n種基本物質(n≤10),分別記為P1,P2,……,Pn,用n種基本物質構造物質,這些物品使用在k個不同地區(k≤20),每個地區對物品提出自己的要求,這些要求用壹個n位的數表示:a1a2……a n,其中:

ai = 1表示所需物質中必須有第i種基本物質

= -1表示所需物質中必須不能有第i種基本物質

= 0無所謂

問題求解:當k個不同要求給出之後,給出壹種方案,指出哪些物質被使用,哪些物質不被使用。

程序說明:數組 b[1],b[2]……b[n] 表示某種物質

a[1..k,1..n] 記錄k個地區對物品的要求,其中:

a[i,j]=1 表示第i個地區對第j種物品是需要的

a[i,j]=0 表示第i個地區對第j種物品是無所謂的

a[i,j]= -1 表示第i個地區對第j種物品是不需要的

程序:

program gxp2;

var

i,j,k,n : integer ;

p : boolean ;

b : array[0..20] of 0..1 ;

a : array[1..20,1..10] of integer ;

begin

readln(n,k);

for i:=1 to k do

begin

for j:=1 to n do read(a[i,j]);

readln;

end;

for i:=0 to n do b[i]:=0;

p:=true;

while ①__________ do

begin

j:=n;

while b[j]=1 do j:=j-1;

②__________

for i:=j+1 to n do b[i]:=0;

③__________

for i:=1 to k do

for j:=1 to n do

if (a[i,j]=1) and (b[j]=0) or ④__________

then p:=true;

end;

if ⑤__________

then writeln(‘找不到!’)

else for i:=1 to n do

if (b[i]=1) then writeln(‘物質’,i,’需要’)

else writeln(‘物質’,i,’不需要’);

end.