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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章