![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
江蘇計(jì)算機(jī)等級(jí)考試二級(jí)python考試樣卷 |
江蘇省高等學(xué)校計(jì)算機(jī)等級(jí)考試 二級(jí)Python 語(yǔ)言考試(樣卷) (本試卷完成時(shí)間 120 分鐘) 第一部分 計(jì)算機(jī)信息技術(shù)基礎(chǔ)知識(shí) 選擇題(共20 分,每題2 分) 略 第二部分 Python 程序設(shè)計(jì) 一、 選擇題(共10 分,每題2 分) 1. 以下哪一個(gè)是Python 合法的標(biāo)識(shí)符? A._name B.1name C.stu-name D.stu.name 2. 以下關(guān)于Python 的賦值說(shuō)法中錯(cuò)誤的是哪一項(xiàng)? A.Python 中的變量在使用前必須賦值,變量賦值后該變量才會(huì)被創(chuàng)建。 B.Python 支持多元賦值和多重賦值。 C.Python 賦值時(shí)大小寫(xiě)敏感。 D.Python 中要首先聲明變量的類型后才能給該變量賦值。 3. 對(duì)于序列numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],以下相關(guān)操作和對(duì)應(yīng)輸出正確的是哪一 項(xiàng)? A.>>> numbers[0: 2] [1, 2, 3] B.>>> numbers[0: -1] [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] C.>>> numbers[-2:] [9, 10] D.>>> numbers[0::3] [1, 3, 5, 7, 9] 4. 以下不能作為字典的key 的是哪一個(gè)選項(xiàng)? A.2016 B.'China' C.listA = ['Name'] D.tupleA = (123) 5. 如果需要在文本文件test.txt 的中間部分添加一行字符串,以下open 語(yǔ)句的mode 位置 應(yīng)該選擇以下哪一項(xiàng)? A.a(chǎn) B.r+ C.w+ D.a(chǎn)+ 二、填空題(共20 分,每空2 分) 1.執(zhí)行如下代碼,結(jié)果分別是 (1) 和 (2) 。 >>> a = [5, 1, 3, 4] >>> print sorted(a, reverse = True) Out[]:____ >>> strs = ["a", "bb", "BB", "zz"] >>> print sorted(strs) Out[]:____ 2.若輸入字符串“baozi”,則程序運(yùn)行結(jié)果的第一行是 (3) ,第二行是 (4) ,第三行是 (5) 。 names = ["yunyun","sky","baozi","xiaoxiao","agui"] numbers = [5555555,11111,123456,88888,123321] data = dict(zip(names,numbers)) while True: name = input("Please input the name:") if data.get(name): print(data[name]) break else: print('Enter the name again. ') for (name, number) in data.items(): if(number < 100000): print(name) 3.執(zhí)行如下代碼,結(jié)果分別是 (6) 和 (7) 。 >>> import numpy as np >>> a = np.arange(1, 5) >>> np.power(a, 2).sum() Out[]:____ >>> np.add(a, np.arange(4)) Out[]:array([____]) 4.若輸入131 和2,則程序的運(yùn)行結(jié)果是 (8) 。 def foo(num, base): if(num >= base): foo(num // base , base) print(num % base , end = ' ') numA = int(input("Enter the first number: ")) numB = int(input("Enter the second number: ")) foo(numA, numB) 5.執(zhí)行如下代碼,則程序運(yùn)行結(jié)果的第一行是[ (9) ],第二行是 (10) 。 def fun(m, n): while n: m, n = n, m % n return m arr = [24, 18, 120, 54, 36, 35, 72, 33] print(arr[::-1]) hcf = fun(arr[0],arr[2]) for i in range(len(arr)): if i > 2 and i % 2 == 0: hcf = fun(hcf, arr[i]) print(hcf) 三、操作題(共50 分) 1. 完善程序(共12 分,每空3 分) 【要求】 1. 打開(kāi)T 盤(pán)中的文件myf0.py,按以下程序功能完善文件中的程序。 2. 修改后的源程序仍保存在T 盤(pán)myf0.py 文件中。 【程序功能】 定義函數(shù)countchar()統(tǒng)計(jì)字符串中26 個(gè)字母出現(xiàn)的次數(shù)(不區(qū)分大小寫(xiě))。例如字符串“Hope is a good thing.”的統(tǒng)計(jì)結(jié)果為: [1, 0, 0, 1, 1, 0, 2, 2, 2, 0, 0, 0, 0, 1, 3, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0] 【待完善的源程序】 def countchar( (1) ): list1 = [0]*26 for i in (2) (0,len(str)): if (str[i] >= 'a' (3) str[i] <='z'): list1[ord(str[i])- (4) ] += 1 print list1 if __name__ == "__main__": str = "Hope is a good thing." str = str.lower() countchar(str) 2. 改錯(cuò)(共16 分,每個(gè)錯(cuò)4 分) 【要求】 1.打開(kāi)T 盤(pán)中的文件myf1.py,按以下程序功能改正文件中程序的錯(cuò)誤。 2.可以修改語(yǔ)句中的一部分內(nèi)容,調(diào)整語(yǔ)句次序,增加少量的變量說(shuō)明或編譯預(yù)處理 命令,但不能增加其他語(yǔ)句,也不能刪去整條語(yǔ)句。 3.修改后的源程序仍保存在T 盤(pán)myf1.py 中。 【程序功能】 在已排好序的列表中插入一個(gè)數(shù)讓列表仍然有序。 函數(shù)insert 的形參data 指向的是原始的有序列表,num 為待插入的新數(shù),函數(shù)的功能是找 到列表中正確的插入位置進(jìn)行插入,讓新列表仍然有序。 【測(cè)試數(shù)據(jù)與運(yùn)行結(jié)果】 測(cè)試數(shù)據(jù): Enter a new number:11 屏幕輸出: The new sorted list is: [11, 13, 22, 31, 48, 54, 71, 91, 94] 測(cè)試數(shù)據(jù): Enter a new number:38 屏幕輸出: The new sorted list is: [13, 22, 31, 38, 48, 54, 71, 91, 94] 測(cè)試數(shù)據(jù): Enter a new number:a Please enter a digit! (輸出) Enter a new number:123 屏幕輸出: The new sorted list is: [11, 13, 22, 31, 48, 54, 71, 91, 94, 123] 【含有錯(cuò)誤的源程序】 def insert(data, num): length = length(data) data.append(num) for i in range(length) + 1: if num < data[i]: for j in range(length,i,-1): data[j] = data[j+1] data[i] = num break if __name__ == "__main__": data = [13,22,31,48,54,71,91,94] while True: try: num = int(input("Enter a new number:")) insert(data, num) print("The new sorted list is:",data) continue except ValueError: print("Please enter a digit!") 3. 編程(共22 分) 【要求】 1.打開(kāi)T 盤(pán)中的文件myf2.py,在其中輸入所編寫(xiě)的程序,輸出結(jié)果數(shù)據(jù)文件取名myf2.out。 2.?dāng)?shù)據(jù)文件的打開(kāi)、使用、關(guān)閉均用Python 標(biāo)準(zhǔn)庫(kù)中緩沖文件系統(tǒng)的文件操作函數(shù)實(shí)現(xiàn)。 【程序功能】 判斷所給出的數(shù)字是否是素?cái)?shù)并且按要求變化后的數(shù)字是否是默尼森數(shù)。 P 是素?cái)?shù)且M 也是素?cái)?shù),并且滿足等式M=2P-1,則稱M 為默尼森數(shù)。 【編程要求】 1.將測(cè)試數(shù)據(jù)放到一個(gè)列表中,結(jié)果放到一個(gè)新的列表中。 2.編寫(xiě)函數(shù)isprime(x),函數(shù)功能為判斷整數(shù)x 是否是素?cái)?shù),如果是則返回True,否則返回 False。 3.編寫(xiě)函數(shù)ismonisen(x),函數(shù)基于isprime(x)函數(shù),函數(shù)功能為判斷x 是否是默尼森數(shù), 如果是則返回True,否則返回False。 4.調(diào)用ismonisen(x)函數(shù),對(duì)測(cè)試數(shù)據(jù)進(jìn)行判斷,將測(cè)試數(shù)據(jù)中變化后的所有默尼森數(shù)保存 到一個(gè)新的列表中,并輸出(中間用一個(gè)空格分隔)到屏幕及文件myf2.out 中。最后將考 生本人準(zhǔn)考證號(hào)字符串輸出到文件myf2.out 中。 【測(cè)試數(shù)據(jù)與運(yùn)行結(jié)果】 測(cè)試數(shù)據(jù): 2, 7, 11, 13, 21 屏幕輸出: 3 127 8191 參考答案: 第一部分 計(jì)算機(jī)信息技術(shù)基礎(chǔ)知識(shí) 選擇題 略 第二部分 Python 程序設(shè)計(jì) 一、選擇題 (1) A (2)D (3)C (4) C (5)B 二、填空題 (1)[5, 4, 3, 1] (2)['BB', 'a', 'bb', 'zz'] (3)123456 (4)sky 或xiaoxiao (5)xiaoxiao 或sky (6)30 (7)1, 3, 5, 7 (8)1 0 0 0 0 0 1 1 (9)33, 72, 35, 36, 54, 120, 18, 24 (10)12 三、操作題 1.完善程序 def countchar( str): list1 = [0]*26 for i in range(0,len(str)): if (str[i] >= 'a' and str[i] <='z'): list1[ord(str[i])- ord('a')] += 1 # ord("a")或97 也正確 print(list1) if __name__ == "__main__": str = "Hope is a good thing." str = str.lower() countchar(str) 2.改錯(cuò) def insert(data, num): length = len(data) data.append(num) for i in range(length): if num < data[i]: for j in range(length,i,-1): data[j] = data[j-1] data[i] = num break if __name__ == "__main__": data = [13,22,31,48,54,71,91,94] while True: try: num = int(input("Enter a new number:")) insert(data, num) print("The new sorted list is:",data) break except ValueError: print("Please enter a digit!") 3.編程 import math def isprime(x): if x==1: return False k = int(math.sqrt(x)) for j in list(range(2,k+1)): if x % j == 0: return False return True def ismonisen(x): if isprime(x) and isprime(2**x-1): return True else: return False if __name__ == "__main__": num_list = [2, 7, 11, 13, 21] result_list = [] for num in num_list: if ismonisen(num): temp = 2 ** num - 1 print(temp, end = ' ') result_list.append(str(temp)+' ') with open("T:\\myf2.out", "w") as fp: fp.writelines(result_list) fp.write("\nMy exam number is: 0112400123 |