點選藍字關注我們
全國青少年軟體程式設計(C語言)等級考試試卷
(二級)測試卷
2019年12月
分數:100.00 題數:7
一、程式設計題(第1部分)(共4題,每題15分,共60分)
1.與指定數字相同的數的個數
輸出一個整數序列中與指定數字相同的數的個數。
時間限制:1000
記憶體限制:65536
輸入
輸入包含三行:第一行為N,表示整數序列的長度(N <= 100);第二行為N個整數,整數之間以一個空格分開;第三行包含一個整數,為指定的整數m。
輸出
輸出為N個數中與m相同的數的個數。
樣例輸入
3
2 3 2
2
樣例輸出
2
方法1:簡單統計

2. 找第一個隻出現一次的字元
給定一個隻包含小寫字母的字元串,請你找到第一個僅出現一次的字元。如果沒有,輸出no。
時間限制:1000
記憶體限制:65536
輸入
一個字元串,長度小于100000。
輸出
輸出第一個僅出現一次的字元,若沒有則輸出no。
樣例輸入
abcabd
樣例輸出
c
方法1:桶排序
方法2:暴力搜尋
3. 圖像相似度
圖像相似度
給出兩幅相同大小的黑白圖像(用0-1矩陣)表示,求它們的相似度。
說明:若兩幅圖像在相同位置上的像素點顔色相同,則稱它們在該位置具有相同的像素點。兩幅圖像的相似度定義為相同像素點數占總像素點數的百分比。
時間限制:1000
記憶體限制:65536
輸入
第一行包含兩個整數m和n,表示圖像的行數和列數,中間用單個空格隔開。1 <= m <= 100, 1 <= n <= 100。之後m行,每行n個整數0或1,表示第一幅黑白圖像上各像素點的顔色。相鄰兩個數之間用單個空格隔開。之後m行,每行n個整數0或1,表示第二幅黑白圖像上各像素點的顔色。相鄰兩個數之間用單個空格隔開。
輸出
一個實數,表示相似度(以百分比的形式給出),精确到小數點後兩位。
樣例輸入
3 3
1 0 1
0 0 1
1 1 0
1 1 0
0 0 1
0 0 1
樣例輸出
44.44
方法1:二維數組
4. 最大值和最小值的差
輸出一個整數序列中最大的數和最小的數的差。
時間限制:1000
記憶體限制:65536
輸入
第一行為M,表示整數個數,整數個數不會大于10000;第二行為M個整數,以空格隔開,每個整數的絕對值不會大于10000。
輸出
輸出M個數中最大值和最小值的差。
樣例輸入
5
2 5 7 4 2
樣例輸出
5
方法1:使用數組
方法2:不使用數組
二、程式設計題(第2部分)(共2題,每題13分,共26分)
5. 成績排序
給出班裡某門課程的成績單,請你按成績從高到低對成績單排序輸出,如果有相同分數則名字字典序小的在前。
時間限制:1000
記憶體限制:65536
輸入
第一行為n (0 < n < 20),表示班裡的學生數目;接下來的n行,每行為每個學生的名字和他的成績, 中間用單個空格隔開。名字隻包含字母且長度不超過20,成績為一個不大于100的非負整數。
輸出
把成績單按分數從高到低的順序進行排序并輸出,每行包含名字和分數兩項,之間有一個空格。
樣例輸入
4
Kitty 80
Hanmeimei 90
Joey 92
Tim 28
樣例輸出
Joey 92
Hanmeimei 90
Kitty 80
Tim 28
方法1:冒泡排序
方法2 :使用sort函數
6. 和為給定數
給出若幹個整數,詢問其中是否有一對數的和等于給定的數。
時間限制:1000
記憶體限制:65536
輸入
共三行:第一行是整數n(0 < n <=100,000),表示有n個整數。第二行是n個整數。整數的範圍是在0到10^8之間。第三行是一個整數m(0 <= m <= 2^30),表示需要得到的和。
輸出
若存在和為m的數對,輸出兩個整數,小的在前,大的在後,中間用單個空格隔開。若有多個數對滿足條件,選擇數對中較小的數更小的。若找不到符合要求的數對,輸出一行No。
樣例輸入
4
2 5 1 4
6
樣例輸出
1 5
方法1:二分查找
三、程式設計題(第3部分)(共1題,每題14分,共14分)
7. 計算兩個日期之間的天數
給定兩個日期,計算相差的天數。比如2010-1-1和2010-1-3相差2天。
時間限制:1000
記憶體限制:65536
輸入
共兩行:第一行包含三個整數startYear,startMonth,startDay,分别是起始年、月、日。第二行包含三個整數endYear,endMonth,endDay,分别是結束年、月、日。相鄰兩個整數之間用單個空格隔開。年份範圍在1~3000。保證日期正确且結束日期不早于起始日期。
輸出
輸出一個整數,即是兩個日期相差的天數。
樣例輸入
2008 1 1
2009 1 1
樣例輸出
366
方法1:日期差
微信搜尋
NOIP那些事兒
長按識别左側二維碼,關注我們