![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
江蘇省計(jì)算機(jī)二級(jí)python樣卷 |
江蘇省高等學(xué)校計(jì)算機(jī)等級(jí)考試 二級(jí)Python 語(yǔ)言考試(樣卷) (本試卷完成時(shí)間 120 分鐘) 第一部分 計(jì)算機(jī)信息技術(shù)基礎(chǔ)知識(shí) 選擇題(共20 分,每題2 分) 1. 根據(jù)不同的應(yīng)用需求,數(shù)字音頻采用的編碼方法有多種,文件格式也各不相同。下列的音頻格式中,由微軟公司開(kāi)發(fā)的,采用未壓縮方法編碼的是____。 A. WAV B. MP3 C. AAC D. WMA A 解析:MP3是一種音頻壓縮技術(shù),由于這種壓縮方式的全稱叫MPEG Audio Layer3,所以人們把它簡(jiǎn)稱為MP3,WMA是微軟制訂的音頻壓縮文件格式,比mp3標(biāo)準(zhǔn)晚,比mp3還小,比mp3音質(zhì)還好, WAV是微軟公司(Microsoft)開(kāi)發(fā)的一種聲音文件格式, 采用未壓縮編碼方式。 5 2. 下列有關(guān)IP地址(IPv4)和路由器的敘述中,錯(cuò)誤的是_____。 A. 每個(gè)IP地址使用32個(gè)字節(jié)的二進(jìn)制數(shù)表示,在使用中通常寫成“點(diǎn)分十六進(jìn)制”的形式 B. IP地址分為五類,其中A類、B類和C類是三個(gè)基本類,每類有不同長(zhǎng)度的網(wǎng)絡(luò)號(hào)和主機(jī)號(hào) C. IP地址空間的分配由國(guó)際組織ICANN負(fù)責(zé),目前IP地址空間已分配完畢 D. 路由器是連接異構(gòu)網(wǎng)絡(luò)的關(guān)鍵設(shè)備,一臺(tái)路由器會(huì)擁有(使用)多個(gè)不同的IP地址 A 解析: 每個(gè)IP地址使用32個(gè)字節(jié)的二進(jìn)制數(shù)表示,在使用中通常寫成“點(diǎn)分十進(jìn)制”的形式 。 4 3. 字符集及其編碼是計(jì)算機(jī)中表示、存儲(chǔ)、處理和交換文本信息的基礎(chǔ),但由于歷史原因,目前不同系統(tǒng)或應(yīng)用中使用的字符編碼方案并不統(tǒng)一。下列編碼方案中,所有字符均采用等長(zhǎng)編碼(編碼長(zhǎng)度相同)的是______。 A. GB2312 B. GB18030 C. UTF-8 D. UTF-16 A 解析: GB2312編碼:是我國(guó)1981年頒布的第一個(gè)國(guó)標(biāo),該標(biāo)準(zhǔn)選出6763個(gè)常用漢字和682個(gè)非漢字字符,所有字符采用2字節(jié)編碼; GB18030:包含漢字23940個(gè),與GB2312與GBK保持兼容。同時(shí)與UCS也接軌,在我國(guó)信息處理產(chǎn)品中強(qiáng)制執(zhí)行,ASCII采用1字節(jié)編碼,漢字采用2字節(jié)編碼,其他采用4字節(jié)編碼; UCS:國(guó)際標(biāo)準(zhǔn)化組織(ISO)制定了一個(gè)將全世界所有文字與符號(hào)集中進(jìn)行統(tǒng)一編碼,稱為UCS,與其等同的是由微軟等公司共同制定的工業(yè)標(biāo)準(zhǔn)Unicode,UCS有兩種標(biāo)準(zhǔn)UTF-8和UTF-16,UTF-8采用ASCII碼用1個(gè)字節(jié)編碼,拉丁字母,標(biāo)點(diǎn)符號(hào)等采用2字節(jié)編碼,漢字采用3個(gè)字節(jié)編碼,其他極少字符采用4字節(jié)編碼,UCS-16是指ASCII和漢字都采用2字節(jié)編碼,其他不常用字符采用4字節(jié)編碼,在Windows中文版上現(xiàn)在使用UTF-16,也是Java,.NET軟件開(kāi)發(fā)環(huán)境等默認(rèn)的編碼標(biāo)準(zhǔn)。 5 4. TCP/IP模型將計(jì)算機(jī)網(wǎng)絡(luò)分成下列4層,每一層都包含若干個(gè)協(xié)議。在TCP/IP模型中,HTTP協(xié)議工作在______。 A. 接口層 B. 互連層 C. 傳輸層 D. 應(yīng)用層 D 解析: TCP/IP包括了100多個(gè)協(xié)議,將通信問(wèn)題劃分為四個(gè)層次,從高到低依次是應(yīng)用層、傳輸層、網(wǎng)絡(luò)互連層、網(wǎng)絡(luò)接口與硬件層,應(yīng)用層規(guī)定了運(yùn)行在不同主機(jī)上的應(yīng)用程序之間如何通過(guò)互連的網(wǎng)絡(luò)進(jìn)行通信,包括的協(xié)議如HTTP,SMTP,FTP,TELNET等;傳輸層規(guī)定了怎樣進(jìn)行端-端的數(shù)據(jù)傳輸,有TCP和UDP兩個(gè)協(xié)議,TCP協(xié)議負(fù)責(zé)可靠的完成數(shù)據(jù)從發(fā)送計(jì)算機(jī)到接收計(jì)算機(jī)的傳輸,UDP是不可靠的數(shù)據(jù)傳輸協(xié)議, 例如音頻和視頻數(shù)據(jù)的傳輸;網(wǎng)絡(luò)互連層規(guī)定了在整個(gè)互連的網(wǎng)絡(luò)中所有計(jì)算機(jī)統(tǒng)一使用的編址方案和數(shù)據(jù)包格式(稱為IP數(shù)據(jù)報(bào)),以及IP數(shù)據(jù)報(bào)的轉(zhuǎn)發(fā)機(jī)制;網(wǎng)絡(luò)接口與硬件層規(guī)定了怎樣與各種不同的網(wǎng)絡(luò)進(jìn)行接口,并負(fù)責(zé)將IP包轉(zhuǎn)換成適合在特定網(wǎng)絡(luò)中傳輸?shù)膸袷?/SPAN> 。 4 5. 下列有關(guān)計(jì)算機(jī)網(wǎng)絡(luò)組成、分類和工作模式等敘述中,錯(cuò)誤的是______。 A. 按網(wǎng)絡(luò)所覆蓋的地域范圍來(lái)分,人們常將計(jì)算機(jī)網(wǎng)絡(luò)分為LAN、ATM、WLAN等類型 B. 有些廣域網(wǎng)是一些機(jī)構(gòu)或組織自行構(gòu)建的專用網(wǎng),有些是網(wǎng)絡(luò)運(yùn)營(yíng)商構(gòu)建的公用數(shù)據(jù)網(wǎng) C. 網(wǎng)絡(luò)協(xié)議是計(jì)算機(jī)網(wǎng)絡(luò)的重要組成部分,目前互聯(lián)網(wǎng)主要采用TCP/IP協(xié)議系列 D. 計(jì)算機(jī)網(wǎng)絡(luò)有兩種基本工作模式,即P2P工作模式和C/S工作模式 A 解析: 按網(wǎng)絡(luò)所覆蓋的地域范圍來(lái)分分為局域網(wǎng)(LAN)、城域網(wǎng)(MAN)、廣域網(wǎng)(WAN) 。 4 6. 下列有關(guān)計(jì)算機(jī)的邏輯組成和分類的敘述中,錯(cuò)誤的是______。 A. 一臺(tái)計(jì)算機(jī)中往往有多個(gè)處理器,它們各有其不同的處理任務(wù),其中CPU是核心部件 B. 主存儲(chǔ)器與CPU高速連接,用來(lái)存放已經(jīng)啟動(dòng)運(yùn)行的程序代碼和需要處理的數(shù)據(jù) C. 人們提及PC時(shí),泛指臺(tái)式機(jī)、筆記本電腦、智能手機(jī)和平板電腦等個(gè)人使用的計(jì)算機(jī) D. 嵌入式計(jì)算機(jī)是內(nèi)嵌在其他設(shè)備中的專用計(jì)算機(jī),許多嵌入式計(jì)算機(jī)都把軟件固化在芯片中 C 解析: 人們提及PC時(shí),泛指臺(tái)式機(jī)、筆記本電腦等個(gè)人使用的計(jì)算機(jī) 。(注: 一臺(tái)計(jì)算機(jī)中往往有多個(gè)處理器,如CPU,圖形處理器等) 2 7. 字符集及其編碼是計(jì)算機(jī)中表示、存儲(chǔ)、處理和交換文本信息的基礎(chǔ),但由于歷史原因,目前不同系統(tǒng)或應(yīng)用中使用的字符編碼方案并不統(tǒng)一。下列編碼方案中,目前在我國(guó)信息處理產(chǎn)品中強(qiáng)制貫徹執(zhí)行的是____。 A. GB 2312 B. GBK C. GB 18030 D. UCS/Unicode C 解析: GB18030:包含漢字23940個(gè),與GB2312與GBK保持兼容。同時(shí)與UCS也接軌,在我國(guó)信息處理產(chǎn)品中強(qiáng)制執(zhí)行。 5 8. 在現(xiàn)代通信系統(tǒng)中,為了能有效地提高數(shù)據(jù)鏈路的利用率、降低通信成本,一般使用多路復(fù)用技術(shù)讓多路信號(hào)同時(shí)共用一條傳輸線進(jìn)行傳輸。用戶通過(guò)電話線使用ADSL技術(shù)接入互聯(lián)網(wǎng)時(shí),ADSL技術(shù)接入方式主要是使用了______。 A. TDM B. WDM C. FDM D. CDM C 解析:時(shí)分多路復(fù)用(TDM)是各終端設(shè)備按不同時(shí)間來(lái)輪流使用同一線路來(lái)傳輸數(shù)據(jù),是計(jì)算機(jī)網(wǎng)絡(luò)傳輸使用的主要方式,頻分多路復(fù)用(FDM)是將不同信源發(fā)出的信號(hào)調(diào)制在不同頻率的載波上,波分多路復(fù)用(WDM)是在一根光纖傳輸不同波長(zhǎng)的光波。碼分是指每個(gè)用戶分配一個(gè)地址碼,各個(gè)碼型互不重疊,通信各方之間不會(huì)相互干擾,且抗干攏能力強(qiáng) 。 4 9. 光盤是目前常見(jiàn)的輔助存儲(chǔ)器。下列相關(guān)敘述中,錯(cuò)誤的是____。 A. 光盤存儲(chǔ)器由光盤驅(qū)動(dòng)器和光盤片兩部分組成,光盤的基片是鋁合金材料 B. 從接口來(lái)看,目前內(nèi)置DVD光驅(qū)與主機(jī)的接口主要是SATA,外置的主要是USB C. DVD光盤分為單面單層、單面雙層等多種類型,目前最常用的是單面單層的盤片 D. BD光驅(qū)采用波長(zhǎng)較短的藍(lán)色激光在光盤上進(jìn)行數(shù)據(jù)讀寫,因而提高了光盤存儲(chǔ)容量 A 解析: 光盤的基片是耐熱的有機(jī)玻璃 。 2 10. 在微軟公司的Office軟件中內(nèi)置了一種程序設(shè)計(jì)語(yǔ)言,用戶可以使用它來(lái)編寫程序以擴(kuò)展功能。該語(yǔ)言是_____。 A. VBA B. VBScript C. Java D. C# A 解析: VBA用于編寫程序來(lái)擴(kuò)展Office軟件的功能,VBScript用于嵌入到Html文檔中以擴(kuò)充網(wǎng)頁(yè)的功能,Java用于網(wǎng)絡(luò)編程,包括編寫安卓智能手機(jī)的App,Object-C語(yǔ)言是iPhone和iPad編程的語(yǔ)言, Lisp語(yǔ)言與PROLOG語(yǔ)言主要用于人工智能,Ada語(yǔ)言用于飛行器控制,MATLAB是一種面向向量和矩陣運(yùn)算的數(shù)值計(jì)算語(yǔ)言。 3 第二部分 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í)大小寫敏感。 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 B.r+ C.w+ D.a+ 二、填空題(共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 盤中的文件myf0.py,按以下程序功能完善文件中的程序。 2. 修改后的源程序仍保存在T 盤myf0.py 文件中。 【程序功能】 定義函數(shù)countchar()統(tǒng)計(jì)字符串中26 個(gè)字母出現(xiàn)的次數(shù)(不區(qū)分大小寫)。例如字符串“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 盤中的文件myf1.py,按以下程序功能改正文件中程序的錯(cuò)誤。 2.可以修改語(yǔ)句中的一部分內(nèi)容,調(diào)整語(yǔ)句次序,增加少量的變量說(shuō)明或編譯預(yù)處理 命令,但不能增加其他語(yǔ)句,也不能刪去整條語(yǔ)句。 3.修改后的源程序仍保存在T 盤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 盤中的文件myf2.py,在其中輸入所編寫的程序,輸出結(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.編寫函數(shù)isprime(x),函數(shù)功能為判斷整數(shù)x 是否是素?cái)?shù),如果是則返回True,否則返回 False。 3.編寫函數(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 |