當前位置:成語大全網 - 英語詞典 - 求NOIP2010初步答案的詳細解釋。

求NOIP2010初步答案的詳細解釋。

第16屆全國信息學奧林匹克競賽各省初賽試題及答案。

NOIP2010(帕斯卡改進小組)

壹、多項選擇題

1.10十進制數相當於16十進制數A1.2是()。

a . 101.2 b . 111.4 c . 161.125d . 177.25

2.壹個字節由()二進制組成。

A.8B.16 C.32 D .以上都有可能。

3.下列邏輯表達式的值始終為真()。

A.P∨(┓P∧Q)∨(┓P∧┓Q)

B.Q∨(┓P∧Q)∨(P∧┓Q)

C.P∨Q∨(P∧┓Q)∨(┓P∧Q)

D.P∨┓Q∨(P∧┓Q)∨(┓P∧┓Q)

4.4下可執行文件的默認擴展名。Linux是()。

A.exeb.com.dll.d .以上都不是。

5.如果方程7*7=41在某個系統中成立,那麽方程12*12=()在這個系統中也成立。

A.b . 100 c . 164d . 196

6.提出計算機“存儲程序”工作原理的是()。

A.克勞德?香農. b .戈登。摩爾·查爾斯?巴比克·馮?諾伊曼

7.前綴表達式“+3 * 2+5 12”的值是()。

A.23 B. 25 C. 37 D. 65

8.主存的訪問速度比中央處理器(CPU)的工作速度慢很多,影響了後者的效率。根據局部性原理,CPU訪問的存儲單元通常傾向於在壹個連續的小區域內。因此,為了提高整個系統的執行效率,在CPU中引入了()。

A.寄存器b .緩存c .閃存d .外部存儲器

9.完全二叉樹的順序存儲方案是指將完全二叉樹的節點按照從上到下、從左到右的順序結構存儲在壹個數組中。假設根節點存儲在數組的位置1,節點K的父節點如果存在,應該存儲在數組的位置()。

A.2kb.2k+1 C.K./2,輪D. (k+1)/2。

10.下列比賽中歷史最悠久的是()。

A.NOIP·NOI·IOI·APIO

二、不定選擇題

1.元素R1、R2、R3、R4和R5按照R1、R2、R3、R4和R5的順序堆疊。如果第1個是R3,那麽第5個可能是()。

A.R2 R4 R5

2.Pascal語言、C語言、C++語言都屬於()。

A.高級語言b .自然語言c .解釋語言d .編譯語言

3.就地排序是指輔助空間(除了存儲要排序的元素)的大小與數據大小無關的壹種排序算法。下列屬於原位排序的有()。

A.冒泡排序b .插入排序c .基數排序d .選擇排序

4.在整數的補碼表示法中,下列說法正確的是()。

A.只有負整數的最高編碼位是1。

b .編碼位數確定後,所能表示的最小整數和最大整數的絕對值相同。

C.整數0只有壹個唯壹代碼。

D.用補碼表示的兩個數相加時,如果在最高有效位產生進位,則表示運算溢出。

5.如果二叉樹的前序遍歷序列是ABCDEFG,後序遍歷序列是CBFEGDA,那麽根節點的左子樹中的節點數可能是()。

A0 b . 2 c . 4d . 6

6.在下面的HTML語句中,能正確生成NOI官方網站超鏈接的是()。

A.& lta URL = " h t t p://w w w w n o I . c n " >歡迎來到NOI網站

B.& lta href = " h t t p://w w w n o I . c n " >歡迎來到NOI網站

C.& lta & gth t t p://w w w w n o I . c n & lt;/a & gt;

D.& lt壹個名稱" h t t p://w w w n o I c n " >歡迎來到NOI網站

7.關於拓撲排序,下列說法正確的是()。

A.所有連通有向圖都可以實現拓撲排序。

b對於同壹個圖,拓撲序的結構是唯壹的。

C.在拓撲排序中,入度為0的節點總是排在入度大於0的節點之前。

D.拓撲排序結果序列中的第壹個節點必須是入度大於0的點。

8.平面的法線是指垂直於該平面的直線。平面通過點(1,1,1),(0,3,0),(2,0,0)的法線是()。

A.通過點(1,1,1)和(2,3,3)的直線

B.通過點(1,1,1)和(3,2,1)的直線

C.通過點(0,3,0)和(-3,1,1)的直線

D.通過點(2,0,0)和(5,2,1)的直線

9.鏈表中有兩個指針字段llink和rlink,分別指向節點的前任和繼任者。設p指向鏈表中的壹個節點,其左右節點非空。現在需要刪除節點P,那麽下面的語句順序是正確的

( )。

a . p-& gt;rlink-& gt;llink = p-& gt;rlink

p->;llink-& gt;rlink = p-& gt;llink刪除p;

b . p-& gt;llink-& gt;rlink = p-& gt;rlink

p->;rlink-& gt;llink = p-& gt;llink刪除p;

C.p->rlink-& gt;llink = p-& gt;llink

p->;rlink-& gt;llink-& gt;rlink = p-& gt;rlink刪除p;

D.p->llink-& gt;rlink = p-& gt;rlink

p->;llink-& gt;rlink-& gt;link = p-& gt;llink刪除p;

10.今年(2010)發生的事件有()。

A.惠普實驗室的研究員Vinay Deolalikar聲稱已經證明了P≠NP。

B.英特爾收購了電腦安全軟件公司McAfee。

C.蘋果發布iPhone 4手機。

D.微軟發布Windows 7操作系統。

第三,解決問題

1.LZW編碼是壹種自適應字典編碼。在編碼的過程中,最開始只有壹個基本結構元素的編碼字典。如果在編碼過程中遇到新條目,該條目和新代碼將被添加到字典中,並用於編碼後續信息。

例如,考慮壹個要編碼的信息字符串:“xyx yy yy xyx”。初始字典只有三個詞條,第壹個是X,代碼是1;第二個是y,代碼是2;第三個是空格,編碼為3;因此,字符串“xyx”的代碼是1-2-1(其中-是代碼分隔符),它後面的壹個空格是1-2-1-3。但是因為有壹個空格,我們知道前面的“xyx”是壹個單詞,又因為這個單詞不在字典裏,我們可以自適應的把這個詞條加入字典,編碼為4,然後按照新的字典對後續的信息進行編碼,以此類推。於是,最終得到代碼:1-2-1-3-2-2-3-5-3-4。

我們可以看到信息被壓縮了。壓縮後的信息傳輸給接收方,接收方根據基本字典就可以完成序列的完全恢復。解碼過程是編碼過程的反向操作。現在已知初始字典中的三個詞條如上所述,接收方接收到的編碼信息為2-2-1-2-3-1-3-4-3-1-2-1-3-5-3-6。

2.無向圖G有七個頂點。如果沒有由奇邊組成的簡單環,它最多有_ _ _ _ _ _ _ _ _條邊。

3.記住T是壹個隊列,開頭是空的,現有的n個總數不超過32的正整數依次放入隊列。如果不管這些數是什麽,我們都能找到壹種出隊列的方法使得某壹時刻隊列T中的數之和正好是9,那麽n的最小值就是_ _ _ _ _ _ _ _ _。

第四,閱讀程序寫出結果

1.

常數

size = 10;

定義變量

I,j,cnt,n,m:整數;

數據:數組[1..size]的整數;

開始

readln(n,m);

對於i := 1到n do

read(data[I]);

對於i := 1到n do

開始

CNT:= 0;

對於j := 1到n do

if(data[I]& lt;data[j])或((data[j] = data[i])和(j & lt我))

然後是Inc(CNT);

如果cnt = m

然後writeln(data[I]);

結束;

結束。

投入

5 2

96 -8 0 16 87

輸出:_ _ _ _ _ _ _ _ _

2.

常數

size = 100;

定義變量

na,nb,I,j,k:整數;

a,b:數組[1..size]的整數;

開始

readln(na);

對於i := 1到na do

讀(a[I]);

readln(nb);

for i := 1 to nb do

讀作(b[I]);

I:= 1;

j:= 1;

while(我& lt= na)和(j & lt= nb) do

開始

如果a[I]& lt;= b[j]那麽

開始

寫(a[i],' ');

inc(壹);

結束

否則開始

寫(b[j],' ');

Inc(j);

結束;

結束;

如果我& lt=那na呢

對於k := i到na do

寫(a[k],' ');

如果j & lt那麽= nb

對於k := j到nb do

寫(b[k],' ');

結束。

投入

1 3 5 7 9

2 6 10 14

輸出:_ _ _ _ _ _ _ _ _

3.

常數

num = 5;

定義變量

n:整數;

函數r(n:整數) :整數;

定義變量

I:整數;

開始

如果n & lt= num then

開始

r:= n;

退出;

結束;

對於i :=1到num do

如果r(n-I)& lt;那麽0

開始

r:= I;

退出;

結束;

r:=-1;

結束;

開始

readln(n);

writeln(r(n));

結束。

輸入16

輸出:_ _ _ _ _ _ _ _ _

4.

常數

size = 100;

定義變量

n,m,x,y,I:整數;

r: array[1..size]的整數;

映射:數組[1..尺寸,1..大小]的布爾值;

找到:布爾型;

函數成功:布爾型;

定義變量

I:整數;

開始

對於i :=1到n do

如果不是映射[r[i]][r[i mod n + 1]]

那麽開始吧

成功:=假;

退出;

結束;

成功:=真;

結束;

過程交換(var a,b:整數);

定義變量

t:整數;

開始

t:= a;

a:= b;

b:= t;

結束;

procedure perm(左、右:整數);

定義變量

I:整數;

開始

如果找到

然後退出;

如果離開& gt正確

那麽開始吧

如果成功

那麽開始吧

對於i := 1到n do

writeln(r[i],' ');

發現:=真;

結束;

退出;

結束;

對於i:=從左到右做

開始

swap(r[left],r[I]);

燙發(左+ 1,右);

swap(r[left],r[I]);

結束;

結束;

開始

readln(n,m);

fillchar(map,sizeof(map),false);

對於i := 1到m do

開始

readln(x,y);

map[x][y]:= true;

map[y][x]:= true;

結束;

對於i := 1到n do

r[I]:= I;

發現:=假;

perm(1,n);

如果找不到

然後writeln('無解決');

結束。

輸入:

9 12

1 2

2 3

3 4

4 5

5 6

6 1

1 7

2 7

3 8

4 8

5 9

6 9

輸出:_ _ _ _ _ _ _ _ _

動詞 (verb的縮寫)改進程序

1.(過河)壹個月的壹個漆黑的夜晚,壹群人在河的右岸,試圖通過唯壹的木橋走到河的左岸。在黑暗中,過橋時,他們不得不用燈照明。不幸的是,他們只有壹盞燈。另外,木橋最多能承受兩個人同時通過,否則就會倒塌。每個人都獨自走過獨木橋。不同的人可能需要不同的時間。兩個人壹起過獨木橋,因為只有壹盞燈,所以需要的時間就是慢壹點的人獨自過橋的時間。現在輸入n (2

比如有三個人,A,B,C,他們單獨過橋的時間是1.24,那麽總的最少需要時間是7。具體方法是:A和B壹起過橋到河的左岸,A獨自返回河的右岸帶回燈光,然後A和C壹起過橋到河的左岸,總時間為2+65,438+0+4。

常數

SIZE = 100;

無窮大= 10000;

左=真;

右=假;

左向右=真;

RIGHT _ TO _ LEFT = false

定義變量

n,I:整數;

時間:數組[1..Size]的整數;

位置:數組[1..大小]的布爾值;

函數max(a,b :integer):整數;

開始

如果a & gtb那麽

最大:= a

其他

max:= b;

結束;

函數go(stage : boolean):整數;

定義變量

I,j,num,tmp,ans:整數;

開始

if (stage =從右向左)

那麽開始吧

num:= 0;

ans:= 0;

對於i := 1到n do

如果pos[i] = Rignt,則

開始

inc(數字);

如果時間[I]& gt;然後回答

ans:= time[I];

結束;

如果__________,那麽

開始

go:= ans;

退出;

結束;

ans :=無窮大;

對於i := 1至n–1 do

如果pos[i] = RIGHT,那麽

對於j := i+1到n do

如果pos[j] = RIGHT,那麽

開始

pos[I]:= LEFT;

pos[j] :=左;

tmp := max(time[i],time[j])+_ _ _ _ _ _ _;

如果tmp & lt然後回答

ans:= tmp;

pos[i] :=右;

pos[j]:= RIGHT;

結束;

go:= ans;

結束

else if (stage =從左到右)

那麽開始吧

ans :=無窮大;

對於i := 1到n do

如果_______那麽

開始

pos[i] :=右;

tmp:= _ _ _ _ _ _ _ _;

如果tmp & lt然後回答

ans:= tmp;

_________;

結束;

go:= ans;

結束

else go:= 0;

結束;

開始

readln(n);

對於i := 1到n do

開始

read(time[I]);

pos[i] :=右;

結束;

writeln(go(RIGHT _ TO _ LEFT));

結束。

NOIP2010提高小組參考答案和評分標準(Pascal語言)

壹、單項選擇題(* * 10題,每題1.5分,* * 15分)

1 2 3 4 5 6 7 8 9 10

C A A D B D C B C B

二、不定選擇題(* * 10題,每題1.5分,* * * 15分,多選或少選不計分)

1 2 3 4 5 6 7 8 9 10

ACD AD ABD AC B B D D BCD ABC

三、解題(***3題,每題5分,* * * 15分)

1.yyxy xx yyxy xyx xx xyx

2.12

3.18

四、閱讀程序寫結果(***4題,每題7分,28分作***)

1.16

2.1 2 3 5 6 7 9 10 14

3.4

4.1 6 9 5 4 8 3 2 7

五、完善程序(1空2分,其余10空,每空2.5分,* * * 27分)

(註意:在下面的過程中可能有壹些等價的填空方法。各省可以請自己的專家在電腦上審核,不壹定要報科委審核。)

1.①數量& lt= 2(或數字

②走(從左到右)

③位置[i] =左(或左=位置[i])

④ time[i]+go(從右向左)(或go(從右向左)+time[i])

⑤位置[i] :=左側

在這個問題中,LEFT可以替換為true,LEFT_TO_RIGHT可以替換為true,RIGHT_TO_LEFT可以替換為false。

2.① opt[k]

② home[r] := k

③ j := i+i(或j := 2 * i或j := i * 2)

④ swap(i,j)(或swap(j,I))

⑤值[i]+堆[1](或堆[1]+值[I])

⑥即時通訊