2019 CSP-S / NOIP提高組初賽試題解析(一)
一、單項選擇題
1. 若有定義:int a=7; float x=2.5,y=4.7;則表達式x+a%3*(int)(x+y)%2的值是:( )
A.0.000000 B.2.750000 C.2.500000 D.3.500000
解析:D。基礎,考察數據類型和算術優先級。
2. 下列屬於圖像文件格式的有( )
A.WMV B.MPEG C.JPEG D.AVI
解析:C。計算機基礎知識,其他三個是視頻格式。
3. 二進制數11 1011 1001 0111 和 01 0110 1110 1011 進行邏輯或運算的結果是( )。
A.11 1111 1111 1101 B.11 1111 1111 1101 C.10 1111 1111 1111 D.11 1111 1111 1111
解析:D。位運算基本知識,兩位上有一位為1的時候結果就為1。0|0=0;1|0=1;0|1=1;1|1=1。
4. 編譯器的功能是( )
A.將源程序重新組合 B.將一種語言(通常是高級語言)翻譯成另一種語言(通常是低級語言) C.將低級語言翻譯成高級語言 D.將一種編程語言翻譯成自然語言
解析:B。編譯器是將高級語言(如C++)編譯成計算機能夠理解的二進制0和1(機器語言、低級語言)
5. 設變量x為float型且已賦值,則以下語句中能將x中的數值保留到小數點后兩位,並將第三位四舍五入的是( )
A.X=(x*100+0.5)/100.0; B.x=(int)(x*100+0.5)/100.0; C.x=(x/100+0.5)*100.0; D.x=x*100+0.5/100.0;
解析:B。主要考察強制類型轉換,加0.5再轉成int是四舍五入常用操作。
6. 由數字1,1,2,4,8,8所組成的不同的4位數的個數是( )
A.104 B.102 C.98 D.100
解析:B。排列組合問題,也可以用窮舉算。若由4種不同數字即1、2、4、8有A(4,4)=24種;若有且只有2個數一樣,共有1124;1128;1148;1288;1488;2488六類,共6*A(4,4)/A(2,2)=72種;若1、1、8、8組合有A(4,4)/(A(2,2)*2)=6種;
7. 排序的算法很多,若按排序的穩定性和不穩定性分類,則( )是不穩定排序。
A.冒泡排序 B.直接插入排序 C.快速排序 D.歸並排序
解析:C。排序的穩定性特點是排序完成后,之前相同的元素排序不會改變。快速排序在排序時在交換中間元素時可能會打亂順序。如3、1、1、2、1、6、7、8、9,在一開始3與中間1交換后,穩定性已被打破。
8. G是一個非連通無向圖(沒有重邊和自環),共有28條邊,則該圖至少有( )個頂點。
A.10 B.9 C.11 D.8
解析:B。要求最小的點就是要盡可能占用邊, n 個點的完全無向圖最多占用n*(n+1)/2 條邊,n=8的時候是8*7/2=28,意味着8個頂點最多有28條邊。由於題目是求非連通圖,則再加上單獨第9個點。
9. 一些數字可以顛倒過來看,例如0、1、8顛倒過來看還是本身,6顛倒過來是9,9顛倒過來看還是6,其他數字顛倒過來都不構成數字。類似的,一些多位數也可以顛倒過來看,比如106顛倒過來是901。假設某個城市的車牌只有5位數字,每一位都可以取0到9。請問這個城市有多少個車牌倒過來恰好還是原來的車牌,並且車牌上的5位數能被3整除?( )
A.40 B.25 C.30 D.20
解析:B。第1、2位有(0、1、8、6、9)五個數字,第3位有(0、1、8)三個數字,第4、5位由第1、2位決定。由於0,1,8模3正好余0,1,2,所以其他位確定則第3位自然確定,共5*5=25種。
10. 一次期末考試,某班有15人數學得滿分,有12人語文得滿分,並且有4人語、數都是滿分,那么這個班至少有一門得滿分的同學有多少人?( )
A.23 B.21 C.20 D.22
解析:A。容斥原理,至少一門滿分人數=數學滿分+語文滿分-語文數學滿分=15+12-4=23。
11. 設A和B是兩個長為n的有序數組,現在需要將A和B合並成一個排好序的數組,請問任何以元素比較作為基本運算的歸並算法,在最壞情況下至少要做多少次比較?( ) A.n² B.n㏒n C.2n D.2n-1 解析:D。兩個數組從小到大依次比較,哪邊小哪邊入數組,當某一數組全部計入結果數組后,剩下的也依次進入。最好的情況是數組A所有數都比數組B第一個數小,只要比較n次。最壞情況是全部比較完,最后AB只剩最后一個數比較,總比較次數就是2n-1。12. 以下哪個結構可以用來存儲圖?( )
A.棧 B.二叉樹 C.隊列 D.鄰接矩陣
解析:D。數據結構基礎。
13. 以下哪些算法不屬於貪心算法( )。
A.Di.jkstra算法 B.Floyd算法 C.Prim算法 D.Kruskal算法
解析:B。Floyd算法枚舉了全部情況自然不是貪心,其他算法均有取最小值。
14. 有一個等比數列,共有奇數項,其中第一項和最后一項分別是2和118098,中間一項是486,請問一下哪個數是可能的公比?( )。
A.5 B.3 C.4 D.2
解析:B。直接代入看是否整除可以快速求得答案。可令公比為q,2*q^(2n-2)=118098,得q^(n-1)=248,四個選項中只有3是248的約數。
14. 有正實數構成的數字三角形排列形式如圖所示。第一行的數為a(1,1),第二行a(2,1),a(2,2),第n行的數為a(n,1),a(n,2),…,a(n,n)。從a(1,1)開始,每一行的數a(i,j)只有兩條邊可以分別通向下一行的兩個數a(i+1,j)和a(i+1,j+1)。用動態規划算法找出一條從a(1,1)向下通道a(n,1),a(n,2),…,a(n,n)中某個數的路徑,使得該路徑上的數之和最大。
令C[i][j]是從a(1,1)到a(i,j)的路徑上的數的最大和,並且C[i][0]= C[0][j]=0,則C[i][j]=( )
A.max{C[i-1][j-1],C[i-1][j]}+ a(i,j) B.C[i-1][j-1]+C[i-1][j] C.max{C[i-1][j-1],c[i-1][j]}+1 D.max{C[i][j-1],C[i-1][j]}+ a(i,j)
解析:A。每個點只能從上方兩個點過來,自然取最大的加a(i,j)。
視頻地址
鏈接:https://pan.baidu.com/s/1tHo1DFMaDuMZAemNH60dmw
提取碼:7jgr