當前位置:編程學習大全網 - 編程語言 - 14屆全國青少年信息學奧賽初賽

14屆全國青少年信息學奧賽初賽

第十四屆全國青少年信息學奧林匹克聯賽初賽試題

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

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

壹、單項選擇題(***10題,每題1.5分,***計15分。每題有且僅有壹個正確答案)。

1.在以下各項中,( )不是操作系統軟件。

A.Solaris B.Linux C.Sybase D.Windows Vista E.Symbian

2.微型計算機中,控制器的基本功能是( )。

A.控制機器的各個部件協調工作 B.實現算數運算與邏輯運算 C.存儲各種控制信息

D.獲取外部信息 E.存放程序和數據

3.設字符串S=“Olympic”,S的非空字串的數目是( )。

A.29 B.28 C.16 D.17 E.7

4.完全二叉樹有2*N-1的結點,則它的葉子結點數目是( )。

A.N-1 B.2*N C.N D.2N-1 E.N/2

5.將數組{8,23,4,16,77,-5,53,100}中元素從大到小按順序排序,每次可以交換任意兩個元素,最少要交換( )次。

A.4 B.5 C.6 D.7 E.8

6.設棧S的初始狀態為空,元素a,b,c,d,e,f依次入棧,出棧順序為b,d,c,f,e,a那麽棧容量至少應該是( )。

A.6 B.5 C.4 D.3 E.2

7.與十進制數28.5625相等的四進制數是( )

A.123.21 B.131.22 C.130.22 D.130.21 E.130.20

8.遞歸過程和函數調用時,處理參數和返回地址,通常使用壹種稱為( )的數據結構。

A.隊列 B.多維數組 C.線性表 D.鏈表 E.棧

9.TCP/IP 是壹組構成互聯網基礎的網絡協議,字面上包括兩組協議:傳輸控制協議(TCP)和網際互聯協議(IP)。TCP/IP協議把Internet網絡系統描述成具有4個層次功能的網絡模型,其中提供源節點和目的節點之間的信息傳輸服務,包括尋址和路由器選擇等功能的是()。

A.鏈路層 B.網絡層 C.傳輸層 D.應用層 E.會話層

10.對有序數組{5,13,19,21,37,56,64,75,88,92,100}進行二分查找,等概率情況下,查找成功的平均查找長度(平均比較次數)是()。

A.35/11 B.34/11 C.33/11 D.32/11 E.34/10

二、不定項選擇題(***10題,每題1.5分,***計15分。每題正確答案的個數大於或等於1。多選或少選均不得分)。

11.下列關於圖靈的說法正確的有( )。

A.圖靈獎是美國計算機協會與1966年設立的,專門鼓勵那些對計算機做出重要貢獻的個人

B.圖靈獎有“計算機界諾貝爾獎”之稱。

C.迄今為止,還沒有華裔計算機科學家獲此殊榮。

D.圖靈獎的名稱取自計算機科學先驅、英國科學家阿蘭?圖靈。

12.計算機在工作過程中,若突然停電,( )中不會丟失信息不會丟失。

A.硬盤 B.CPU C.ROM D.RAM

13.若A=True,B=False,C=True,D=False,以下邏輯運算表達式真的有( )。

A.(A∧B)V(C∧DV?A) B.((?A∧B)VC)∧?B

C.(BVCVD)VD∧A D.A∧(DV?C)∧B

14.Web2.0是近年來互聯網熱門概念之壹,其核心是互動與分享。下列網站中,( )是典型的Web2.0的應用。

A.Sina B.Flickr C.Yahoo D.Google

15.(2008)10+ (5B)16 的結果是()。

A.(833)16 B.(2099)10 C.(4063)8 D.(100001100011)2

16.二叉樹T,已知其先序遍歷是1 2 4 3 5 7 6(數字為節點編號,以下同),後序遍歷是4 2 7 5 6 3 1,則該二叉樹的中根遍歷是( )

A.4 2 1 7 5 3 6 B.2 4 1 7 5 3 6 C.4 2 1 7 5 6 4 D.2 4 1 5 7 3 6

17.面向對象的程序設計(Object-Oriented Programming)是壹種程序設計的方法論,它將對象作為程序設計的基本單元,將數據和程序封裝在對象中,以提高軟件的重用性、靈活性、和擴展性。下面關於面向對象的程序設計說法中正確的是( )。

A.面向對象的程序設計方法通常采用自頂向下的設計方法進行設計。

B.面向對象的程序設計方法具有繼承性(inheritance)、封裝性(encapsulation)、多態性(polymorphism)等幾大特點。

C.支持面向對象特性稱為面向對象的編程語言,目前較為流行的有C++,JAVA,C#等。

D.面向對象的程序設計的雛形來自於Simula語言,後來在SmallTalk語言的完善和標準化的過程中得到更多的擴展和對以前的思想的重新註解。至今,SmallTalk語言仍然被視為面向對象的基礎。

18.設T是壹棵有n個定點的樹,以下說法正確的是( )。

A.T是聯通的,無環的 B.T是聯通的,有n-1條邊

C.T是無環的,有n-1條邊 D.以上都不對

19.NOIP競賽推薦使用的語言環境有( )。

A.Dev-C++ B.Visual C++ C.Free Pascal D.Lazarus

20.在下列防火墻(Firewall)的說法中,正確的有( )。

A.防火墻是壹項協助確保信息安全的設備,其會依照特定的規則,允許或是限制數據通過

B.防火墻可能是壹臺專屬硬件或是安裝在壹般硬件上的壹套軟件

C.網絡層防火墻可以視為壹種IP數據包過濾器,只允許符合特定規定的數據包通過,其余的壹概禁止穿越防火墻

D.應用層防火墻是在TCP/IP的“應用層”上工作,可以攔截進出某應用程序的所有數據包

三、問題求解(***2題,每題5分,***計10分)

1.有6個城市,任何兩個城市之間有壹條道路連接,6個城市之間兩兩之間的距離如下表表示,則城市1到城市6的最短距離為____________。

城市1 城市2 城市3 城市4 城市5 城市6

城市1 0 2 3 1 12 15

城市2 2 0 2 5 3 12

城市3 3 2 0 3 6 5

城市4 1 5 3 0 7 9

城市5 12 3 6 7 0 2

城市6 15 12 5 9 2 0

2.書架上有21本書,編號從1 到 21 從中選4 本,其中每兩本的編號都不相鄰的選法壹***有___________________種。

四、閱讀程序寫結果(***4題,每題8分,***計32分)。

1.var

i,a,b,c,d:integer;

f:array[0..3] of integer;

begin

for i:=0 to 3 do

read(f[i]);

a:=f[0]+f[1]+f[2]+f[3];

a:=a div f[0];

b:=f[0]+f[2]+f[3];

c:=(b*f[1]+a) div f[2];

d:=f[(b div c) mod 4];

if (f[(a+b+c+d) mod 4]>f[2]) then

begin

a:=a+b;

writeln(a)

end

else

begin

c:=c+d;

writeln(c);

end;

end.

輸入: 9 19 29 39

輸出:_______________________________

2.procedure foo(a,b,c:integer);

begin

if a>b then foo(c,a,b)

else

writeln(a,',',b,',',c)

end;

var a,b,c:integer;

begin

readln(a,b,c);

foo(a,b,c);

end.

輸入:2 1 3

輸出:_________________

3.procedure f(a,b,c:integer);

begin

write(a,b,c,'/');

if (a=3)and(b=2)and(c=1) then exit;

if (b<c) then f(a,c,b)

else

if a<b then

if a<c then f(c,a,b) else f(b,c,a);

end;

var a,b,c:integer;

begin

readln(a,b,c);

f(a,b,c);

end.

輸入:1 3 2

輸出:____________________

4.var

s:string;

i,j,len,k:integer;

begin

readln(s);

len:=length(s);

for i:=1 to len do

if (ord(s[i])>=ord('A')) and (ord(s[i])<=ord('Z')) then

s:=chr(ord(s[i])-ord('A')+ord('a'));

for i:=1 to len do

if (ord(s[i])<ord('X')) then s:=chr(ord(s[i])+3)

else

s:=chr(ord(s[i])-23);

write(s);

write('/');

for j:=1 to 3 do

begin

i:=1;

while i<=len-j do

begin

s[i]:=s[i+j];

i:=i+j;

end;

end;

writeln(s);

end.

輸入:ABCDEFGuvwxyz

輸出:________________________________

五.完善程序(前6空,每空3分,後5空,每空2分,***28分)。

1.(找第k大的數)給定壹個長度為1000000的無序正整數序列,以及另壹個數n(1<=n<=1000000),接下來以類似快速排序的方法找到序列中第n大的數(關於第n大的數:例如序列{1,2,3,4,5,6}中第3大的數是4)

Var a:array[1..1000000] of integer;

n,m,ans:integer;

procedure swap(var a,b:integer);

var t:integer;

begin

if (a<>b) then begin

t:=a; a:=b; b:=t;

end;

end;

Function FindKth(left,right,n:integer):integer;

Var tmp,value,i,j:integer;

begin

if left=right then exit(left);

tmp:=random(right-left)+left;

swap(a[tmp],a[left]);

value:=____①_____

i:=left; j:=right;

while i<j do

begin

while (i<j) and (________②______) do dec(j);

if i<j then begin

a:=a[j];inc(i);

end else break;

while (i<j) and (___③___) do inc(i);

if i<j then begin

a[j]:=a[i]; dec(j);

end else break;

end;

____④_____

if i<n then begin inc(i); exit(FindKth(_____⑤_____));end;

if i>n then begin dec(j); exit(______⑥________);end;

exit(i);

end;

var i:integer;

begin

randomize;

ans:=-1;

m:=5;

for i:=1 to m do

read(a[i]);

read(n);

ans:=FindKth(1,m,n);

writeln(a[ans]);

end.

2.(矩陣中的數字)有壹個n*n(1≤n≤5000)的矩陣a,對於1≤i<n, 1≤j≤n, a[i,j]<a[i+1,j] a[j,i]<a[j,i+1]。即矩陣中左右相鄰的兩個元素,右邊的元素壹定比左邊的大。上下相鄰的兩個元素,下面的元素壹定比上面的大。給定矩陣a中的壹個數字k,找出k所在的行列(註意:輸入數據保證矩陣中的數各不相同)。

var

n,k,answerx,answery:integer;

a:array[1..5000,1..5000] of integer;

Procedure FindKPosition;

Var I,j:integer;

Begin

i:=n; j:=n;

while j>0 do begin

if a[n,j]<k then break;

dec(j);

end;

______①_________

while a[i,j]<>k do

begin

while (___②_____) and (i>1) do dec(i);

while (___③_____) and (j<=n) do inc(j);

end;

_______④________

_______⑤________

end;

var i,j:integer;

begin

read(n);

for i:=1 to n do

for j:=1 to n do

read(a[i,j]);

read(k);

FindKPosition;

writeln(answerx,' ',answery);

end. NOIP2008年提高組(Pascal語言)參考答案與評分標準

壹、單項選擇題:(每題1.5分)

1. C 2. A 3. B 4. C 5. B

6. D 7. D 8. E 9. B 10. C

二、 不定項選擇題 (***10題,每題1.5分,***計15分。每題正確答案的個數大於或等於1。多選或少選均不得分)。

11. ABD 12. AC 13. BC 14. B 15. ABC

16. ABD 17. BCD 18. ABC 19. ACD 20. ABCD

三、問題求解:(***2題,每題5分,***計10分)

1.7

2.3060

四、閱讀程序寫結果(***4題,每題8分,***計32分)

1. 23 (信心題)

2. 1,3,2 (簡單遞歸)

3. 132/213/231/312/321/ (全排列)

4. defghijxyzabc/hfizxjaybcccc (字符串替換)

五.完善程序 (前6空,每空3分,後5空,每空2分,***28分)

(說明:以下各程序填空可能還有壹些等價的寫法,各省可請本省專家審定和上機驗證,不壹定上報科學委員會審查)

1. ① a[left]

② a[j] < value (或a[j] <= value)

③ a[i] > value (或a[i] >= value)

④ a[i] := value;

⑤ i,right,n

⑥ FindKth(left, i, n)

2. ① inc(j); (或者j := j+1;)

② a[i,j] > k

③ a[i,j] < k

④ answerx := i;

⑤ answery := j;

  • 上一篇:為什麽後端工資普遍比前端高
  • 下一篇:父女_初中記敘文
  • copyright 2024編程學習大全網