單項選擇題
一、單項選擇題(共10題,每題1.5分,總計15分。每題有且僅有一個正確答案)。
A.Solaris B.Linux C.Sybase D.Windows Vista E.Symbian
A.控制機器的各個部件協調工作 B.實現算數運算與邏輯運算 C.存儲各種控制信息
D.獲取外部信息 E.存放程式和數據
3.設字元串S=“Olympic”,S的非空字串的數目是( )。
A.29 B.28 C.16 D.17 E.7
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.遞歸過程和
函式調用時,處理參數和返回地址,通常使用一種稱為( )的
數據結構。
9.TCP/IP 是一組構成網際網路基礎的
網路協定,字面上包括兩組協定:
傳輸控制協定(TCP)和網際互聯協定(IP)。
TCP/IP協定把Internet網路系統描述成具有4個層次功能的
網路模型,其中提供源節點和目的節點之間的信息傳輸服務,包括定址和
路由器選擇等功能的是()。
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。多選或少選均不得分)。
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
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
A.
防火牆是一項協助確保信息安全的設備,其會依照特定的規則,允許或是限制數據通過
B.
防火牆可能是一台專屬硬體或是安裝在一般硬體上的一套
軟體C.
網路層防火牆可以視為一種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.
參考答案
參考答案與評分標準
一、單項選擇題:(每題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;