1. 程式人生 > >NOIP提高組2005-2009初賽+模擬1

NOIP提高組2005-2009初賽+模擬1

為節省篇幅,程式閱讀填空就不放上來了
NOIP2005
1、 字串“ababacbab”和字串“abcba”的最長公共子串是()
A) abcba B)cba C)abc D)ab
【分析】選擇B
注意是公共子串,是要連續的,不連續的是子序列,要注意區分

2、Intel的首顆64位處理器是()
A)8088 B)8086 C)80386 D)Pentium
【分析】選擇D
8086是首顆16位處理器,8088是第二個,80386是首顆32位處理器,Pentium原名為80586或i586

3、常見的郵件傳輸伺服器使用()協議傳送郵件
A) HTTP B)SMTP C)TCP D)FTP E)POP3
【分析】選擇B
SMTP和POP3分別是發收郵件的協議,HTTP是超文字,TCP是通訊協議,FTP是檔案傳輸協議,與郵件不同

4、下列外設介面可以通過無線連線的方式連線裝置的是()
A)USB2.0 B)紅外 C)藍芽 D)串列埠
【分析】選擇BC
USB2.0就是一般電腦上的那個方格,紅外是一種通訊距離0-1米左右的快速傳輸方法,藍芽顯而易見,串列埠就是連線的頭部很大,投影儀與電腦的連線就是串列埠

5、以下斷電之後將不能儲存資料的有()
A)硬碟 B)暫存器 C)視訊記憶體 D)記憶體
【分析】選擇BCD
暫存器只是暫存指令資料和地址,視訊記憶體是存影象,記憶體就是隨機儲存器。

NOIP2006
NOIP2006
1、在程式設計時(使用任一種高階語言,不一定是 C++),如果需要從磁碟檔案中輸入一個很大的二維陣列 (例如 1000*1000 的 double 型陣列),按行讀(即外層迴圈是關於行的)與按列讀(即外層迴圈是 關於列的)相比,在輸入效率上( )。
A)沒有區別 B)有一些區別,但機器處理速度很快,可忽略不計
C)按行讀的方式要高一些 D)按列讀的方式要高一些 E. 取決於陣列的儲存方式。
【分析】選擇E
不同的語言的陣列儲存方式不同,輸入效率的確取決於陣列的儲存方式。
若陣列第一維存行,第二維存列,那麼按行讀的方式要快一些。

2、將 5 個數的序列排序,不論原先的順序如何,最少都可以通過( )次比較,完成從小到大的排序。
A. 6 B. 7 C. 8 D. 9
【分析】選擇B
比較次數為[log2n!],解得選B
設S(n)表示n個數排序(在最壞情況下)所需要的最少比較次數,在理論上可以證明:S(n)≥[log_2⁡n]。當n=5時,S(n)=7,即至少需要進行7次比較。具體比較方法如下:
首先,將第1、2個數進行比較,然後再將第3,4個數進行比較,最後再將2次比較的大數再進行一次比較,這樣共經過3次比較後,可得到下面的關係,其中箭頭表示兩個有序數(從小指向大)。
這裡寫圖片描述
然後,將e插入有序連abd,這經過2次比較總能做到,比較結果如下:
這裡寫圖片描述



這裡寫圖片描述
最後,最多經過2次比較,就可以將c插入到其餘4個數組成的有序鏈中,從而完成排序。

3、在下列各資料庫系統軟體中,以關係型資料庫為主體結構的是 SQL和bas一定是()。
A) ACCESS (微軟) B)SQL Server(由OIns.收集)
C)Oracle(穩定性更高) D)Foxpro
【分析】選擇ABCD
資料庫結構型別有三類,關係型,層次型,網狀型
目前接觸到的資料庫結構都是關係型(oracle ,SQL sever,Acess,My SQL,foxpro,sybase),
層次型:IMS為典型代表
網狀型:DBTG為典型代表

4、將2006 個人分成若干不相交的子集,每個子集至少有 3 個人,並且:
(1)在每個子集中,沒有人認識該子集的所有人.
(2)同一子集的任何 3 個人中,至少有 2 個人互不認識.
(3)對同一子集中任何 2 個不相識的人,在該子集中恰好只有 1 個人認識這兩個人.則滿足上述條件的子集最多能有 _ _ _ _ _個.
【分析】答案是401
首先,“最多能有多少個”說明只需要考慮最多能形成的子集個數(不考慮多餘的部分),加上“每個子集至少有 3 個人”,那麼,必須滿足四個條件。
如果有3個人:由(2),設A和B互不認識,由(3)C一定認識A和B,這與(1)互相矛盾。
如果有4個人:A、B、C、D,由(2),至少有兩個人互不認識,設A與B互不認識。由(3),可設A,B的熟人為C,於是C不能認識D,否則C就認識所有人與(1)矛盾。再由(3),可設C,D的熟人是A,於是B不能認識D,否則B也是C,D的熟人,與(3)矛盾。而B,D的熟人不能是A,否則就認識所有人,與(1)矛盾。同樣,B,D的熟人不能是C。於是,B,D沒有共同的熟人,與(3)矛盾。
至少5個人的子集可以滿足(1)(2)(3)。以5人為例,設A認識B,B認識C,C認識D,D認識E,E認識A,此外沒有其他的相認關係,顯然滿足所有的條件。
於是,答案為[2006/5]=401.

NOIP2007
1、 在以下各項中,()不是CPU 的組成部分。
A)控制器 B)運算器 C)暫存器 D)主機板 E)算術邏輯單元(ALU)
【分析】選擇D
CPU由控制器,運算器,暫存器組成,算數邏輯單元是cpu的執行單元,位於運算器中
主機板位於儲存器中。

2、在關係資料庫中,存放在資料庫中的資料的邏輯結構以( )為主。
A)二叉樹 B)多叉樹 C)雜湊表 D)B+樹 E)二維表
【分析】選擇E
資料庫有層次型資料庫,關係型資料庫,網狀資料庫。
層次是樹,關係是二維表,網狀是連結指標。

3、在C 語言中,表示式23|2^5的值是()
A)23 B)1 C)18 D)32 E)24
【分析】選擇A
^的優先順序比|高,因此應該先算2^5。
2^5是7,7|23=23
下圖是c++基本位運算運算子的優先順序
這裡寫圖片描述

4、一個無法靠自身的控制終止的迴圈稱為“死迴圈”,例如,在C 語言程式中,語句“while(1)
printf(“”);”就是一個死迴圈,執行時它將無休止地列印號。下面關於死迴圈的說法中,只有()是正確的。
A)不存在一種演算法,對任何一個程式及相應的輸入資料,都可以判斷是否會出現死迴圈,因而,任何編譯系統都不做死迴圈檢驗
B)有些編譯系統可以檢測出死迴圈
C)死迴圈屬於語法錯誤,既然編譯系統能檢查各種語法錯誤,當然也應該能檢查出死迴圈
D)死迴圈與多程序中出現的“死鎖”差不多,而死鎖是可以檢測的,因而,死迴圈也是可以檢測的
E)對於死迴圈,只能等到發生時做現場處理,沒有什麼更積極的手段
【分析】選擇A

5、在下列關於計算機語言的說法中,正確的有()。
A)高階語言比組合語言更高階,是因為它的程式的執行效率更高
B)隨著Pascal、C等高階語言的出現,機器語言和組合語言已經退出了歷史舞臺
C)高階語言程式比組合語言程式更容易從一種計算機移植到另一種計算機上
D)C是一種面向過程的高階計算機語言
【分析】選擇CD
高階語言還要轉化成機器語言,才能讓電腦執行,而這個轉化的過程需要時間,但是組合語言不用轉化,因此執行效率更高。
然而低階語言沒有退出歷史舞臺,還應用在硬體層,對硬體直接控制,也應用於微控制器。彙編公司如果沒有別的編譯器來適應不同的作業系統,就不能編譯了。
Fortran、C、Pascal是面向過程的,c++、java是面向物件的。

6、 在下列關於演算法複雜性的說法中,正確的有()。
A)演算法的時間複雜度,是指它在某臺計算機上具體實現時的執行時間
B)演算法的時間複雜度,是指對於該演算法的一種或幾種主要的運算,運算的次數與問題的規模之間的函式關係
C)一個問題如果是NPC類的,就意味著在解決該問題時,不存在一個具有多項式時間複雜度的演算法。但這一點還沒有得到理論上的證實,也沒有被否定
D)一個問題如果是NP類的,與C有相同的結論
【分析】選擇BC
解析:時間複雜度是一種函式關係
NP:多項式的時間和空間內可以被驗證的問題
NPC:屬於NP問題,也屬於NP_Hard問題

7、 近20年來,許多計算機專家都大力推崇遞迴演算法,認為它是解決較複雜問題的強有力的工具。在下
列關於遞迴演算法的說法中,正確的是()。
A)在1977年前後形成標準的計算機高階語言“FORTRAN77”禁止在程式使用遞迴,原因之一是該方法可能會佔用更多的記憶體空間
B)和非遞迴演算法相比,解決同一個問題,遞迴演算法一般執行得更快一些
C)對於較複雜的問題,用遞迴方式程式設計往往比非遞迴方式更容易一些
D)對於已經定義好的標準數學函式sin(x),應用程式中的語句“y=sin(sin(x));”就是一種遞
歸呼叫
【分析】選擇AC
遞迴要用到棧記憶體,且執行速度會比較慢,這也就是為什麼可以用遞迴寫的dp題可以優化成用迴圈寫。
構成遞迴需具備的條件:子問題須與原始問題為同樣的事,且更為簡單; 不能無限制地呼叫本身,須有個出口,化簡為非遞迴狀況處理。

8、給定n 個有標號的球,標號依次為1,2,…,n。將這n 個球放入r 個相同的盒子裡,不允許有空盒,其不同放置方法的總數記為S(n,r)。例如,S(4,2)=7,這7 種不同的放置方法依次為{(1),(234)}, {(2),(134)}, {(3),(124)}, {(4),(123)}, {(12),(34)}, {(13),(24)},{(14),(23)}。當n=7,r=4 時,S(7,4)= ___
【分析】答案是350
本題源於經典dp題之n的m劃分。
定義S(n,m)是前n個球放在m個盒子裡且沒有空盒的方案。
轉移的方程:S(n,m)=S(n-1,m)*m+S(n-1,m-1).考慮第i個放置位置,如果當前m個都不是空的,i可以放在m箇中的任意一個位置,如果第m號是空的,那麼i只能放在第m號上。
另一種排列組合的方法運算起來是
C(7,1) * C(6,2) * C(4,2) * C(2,2) / P(3,3)+C(7*3) * C(4,2) + C(7,4)=350
7 * 15 * 6 * 1 / 6 + 35 * 6 + 35 =350

另2007年的程式閱讀很有挑戰性,讀者顆自行查閱嘗試。

NOIP2009
1、在字長為16位的系統環境下,一個16位帶符號整數的二進位制補碼為1111111111101101。其對應的十進位制整數應該是:
A)19 B)-19 C)18 D)-18
【分析】選擇B
1111111111101101 的原碼為:
1000000000010011 也就是-19,最高位為符號位,不變動。
其中對於 正數:原碼=反碼=補碼 負數:原碼與反碼符號位不變,其他相反 補碼為反碼+1

2、表示式a*(b+c)-d的字尾表示式是:
A)abcd*+- B)abc+d- C)abc+d- D)-+*abcd
【分析】選擇B
主要是考樹的遍歷,要明白字首、中綴和字尾表示式。
構造二叉樹,運算元做葉子節點,運算子做非葉節點。先把中序表示式按中序遍歷就可以得到樹,再按後序遍歷得到字尾表示式。
此題為

3、關於CPU下面哪些說法是正確的:
A)CPU全稱為中央處理器(或中央處理單元)。
B)CPU能直接執行機器語言。
C)CPU最早是由Intel公司發明的。
D)同樣主頻下,32位的CPU比16位的CPU執行速度快一倍。
【分析】選擇AB
C項中,Intel最早發明的是微處理器,而CPU之前就由電子管、電晶體實現著呢
D項中,位數只能說明處理的字長,所在的系統硬體指令不同,速度很難說誰快。

4、關於計算機記憶體下面的說法哪些是正確的:
A)隨機儲存器(RAM)的意思是當程式執行時,每次具體分配給程式的記憶體位置是隨機而不確定的。
B)一般的個人計算機在同一時刻只能存/取一個特定的記憶體單元。
C)計算機記憶體嚴格來說包括主存(memory)、快取記憶體(cache)和暫存器(register)三個部分。
D)1MB記憶體通常是指1024*1024位元組大小的記憶體。
【分析】選擇BD
一般是對位元組的一個單元序列操作。1MB=1024KB=1024*1024B
A中RAM不是位置隨機,而是隨時訪問,所謂“隨機存取”,指的是當儲存器中的訊息被讀取或寫入時,所需要的時間與這段資訊所在的位置無關。
C中快取記憶體和暫存器的物理實現是整合在CPU中,這兩部分不屬於馮諾依曼體系中的五大部分的任意一個部分。五大體系是運算器、控制器、儲存器、輸入裝置、輸出裝置

5、關於計算機網路,下面的說法哪些是正確的:
A)網路協議之所以有很多層主要是由於新技術需要相容過去老的實現方案。
B)新一代網際網路使用的IPv6標準是IPv5標準的升級與補充。
C)TCP/IP是網際網路的基礎協議簇,包含有TCP和IP等網路與傳輸層的通訊協議。
D)網際網路上每一臺入網主機通常都需要使用一個唯一的IP地址,否則就必須註冊一個固定的域名來標明其地址。
【分析】選擇C
A網路協議分層不是為了相容,而是根據網路分層模型來的。
B新的IPv6是IPv4的升級。
D即使註冊了域名也要有IP地址的。

6、1.拓撲排序是指將有向無環圖G中的所有頂點排成一個線性序列,使得圖中任意一對頂點u和v,若< u,v >∈E(G),則u線上性序列中出現在v之前,這樣的線性序列成為拓撲序列。如下的有向無環圖,對其頂點做拓撲排序,則所有可能的拓撲序列的個數為__
【分析】432
其實就是一道排列組合題,看清題意後可知8和9要最後算
5是獨立出來的,其他數就要嚴格按拓撲序弄,最後答案是
C(2,1)×C(6,1)×[C(8,1)+C(8,2)]=2×6×(8+28)=432

NOIP模擬賽1
1、下列敘述中錯誤的是()。
A、微機應避免置於強磁場之中 B、微機使用時間不宜過長,而應隔幾個小時關機一次
C、微機應避免頻繁關開,以延長其使用壽命
D、微機應經常使用,不宜長期閒置不用
【分析】選擇B
微機是體積小的計算機,根據生活經驗可知,微機並不需每隔幾小時就關機一次。

2、下列不正確的檔名是()。
A. command。Com B. command_com C. command,com D. command:com
【分析】選擇D
檔名中不可出現< > / \ | : ” * ?

3、通訊時,模擬訊號也可以用數字通道來傳輸,能實現模擬訊號與數字訊號之間轉換功能的是()
A、D/A B、A/D C、Modem D、Codec
【分析】選擇D
D/A 為數字訊號轉模擬訊號
A/D 為模擬訊號轉數字訊號
Modem即為日常所說的“貓”,它在傳送端通過調製將數字訊號轉換為模擬訊號,在接收端通過解調再將模擬訊號轉換為數字訊號,並不能說模擬訊號可以用數字通道來傳輸,Modem為網路單方面傳輸給使用者,不存在通訊。
Codec即多媒體數字訊號編解碼器,主要負責數字->模擬訊號轉換(D/A)和模擬->數字訊號的轉換(A/D)

4、下面不屬於網路作業系統的是()
A、UNIX B、WINDOWS NT C、NETWARE D、DOS
【分析】選擇D
A:強大的多使用者多工作業系統,屬於分時作業系統
B:Microsoft Windows NT (New Technology)是Microsoft在1993年推出的面向工作站、網路伺服器和大型計算機的網路作業系統,也可做PC作業系統
C:Netware是NOVELL公司推出的網路作業系統。Netware最重要的特徵是基於基本模組設計思想的開放式系統結構
D:dos,是磁碟作業系統的縮寫,是個人計算機上的一類作業系統,不屬於網路作業系統
主要的網路作業系統有Windows,UNIX,Linux,NETWARE四個

5、對一般的二維陣列G而言,當()時,其按行儲存的G[i,j]的地址與按列儲存 的G[j,i]的地址相同。
A、 G的列數與行數相同。 B、 G的列的上界與G的行的上界相同。
C、 G的列的下界與行的下界相同。 D、 G的列的上界與行的下界相同。
【分析】選擇A
按行優先順序儲存的二維陣列Amn地址計算公式:LOC(aij)=LOC(a11)+[(i-1)×n+j-1]×d ;按列優先順序儲存的二維陣列Amn地址計算公式LOC(aij)=LOC(a11)+[(j-1)×m+i-1]×d其中LOC(a11)是開始結點的存放地址(即基地址)d為每個元素所佔的儲存單元數 ;由上述公式可知,當m==n時才會與題意相符;

6、一副撲克牌除去大小王外,有52張牌。其中有黑桃、紅心、方塊、梅花四種花色,每種花色點數從小到大各有13張。在上述52張中任取5張,取得炸彈(four of a kind,即四張點數相同的牌加一張另外點數的牌)的取法數有___種;取得輔魯(full house,即三張點數相同另加二張點數相同牌)的取法數有___多少種?請注意,二種取法中,只要有一張牌花色不同或點數不同,這二種取法就是不同的。
【分析】624 3744
第一個空:選四張的情況是13,剩下(52-4)=48中選一張,答案13*48=628
第二個空:四張裡選三張,13種花色,及(4C3)*13,剩下12種花色四張選兩張,就是(4C2)*12,答案是4*13*12*6=3744