資源簡介 第三章 算法的程序實現 檢測練習一、選擇題1.Python是當下熱門的編程語言,它的特點有( )A.面向過程 B.代碼規范 C.庫豐富 D.廣泛應用于人工智能領域2.下列選項中,flag的值與其他三項不同的是( )A. B.C. D.3.在Python程序設計語言當中,執行語句print(3,4,5,sep='*'),則輸出結果為( )A.3,4,5 B.3 4 5 C.345* D.3*4*54.在Python程序設計語言當中,數據輸出通過( )函數來實現。A.output() B.input() C.print() D.int()5.在Python語言中,如果要把a的值賦給b,賦值表達式的正確格式是( )A.a==b B.a=b C.b==a D.b=a6.在Python程序設計語言中,數據輸入通過( )函數來實現。A.print() B.int() C.input() D.len()7.在Python程序中對變量賦值,通過賦值運算符( )來完成。A.= B.== C.!= D.>8.在Python程序設計語言當中,關系表達式“5>3”的值是( )A.True B.False C.5 D.39.在Python程序設計語言當中,如果a=3,b=2,則a+3*b的運行結果是( )A.2 B.3 C.9 D.1210.在Python程序設計語言當中,如果x=5,y=3,則2*x//y的值是( )A.1 B.2 C.3 D.511.在Python程序當中,表達式“7%3”的運算結果是( )A.1 B.2 C.3 D.712.以下Python程序數據,數據類型為Number(數值)的是( )A.16 B.'年齡' C.['張小明',16,'男'] D.('張小明',16,'男')13.在Python運行環境下,按順序輸入如下指令,變量a的值是( )a=1a='hello'a=[1,'hello']a=1+2A.1 B.'hello' C.[1,'hello'] D.314.以下變量標識符,符合Python程序設計語言規定的是( )A.1_Name B.Name C.1Name D.Name-115.不能被計算機直接識別、理解執行的語言需要轉換,這種轉換是( )A.人工轉換或機器轉換 B.人工智能技術中的自然語言理解C.操作系統負責轉換 D.計算機語言提供的解釋器或編譯器負責轉換16.以下不屬于高級語言的是( )A.Java語言 B.Python語言 C.匯編語言 D.C語言17.下列不是Python中的字符串的是( )A.123 B."print" C."ABC" D."程序"18.2的平方使用Python語言怎么表示( )A.2*3 B.2**2 C.23 D.3**219.有以下Python代碼:a=int(input(“請輸入a的值:”))print(a*6)假如從鍵盤輸入3,則運行結果為( )A.666 B.18 C.18.0 D.aaa20.已知列表x=[1,2,3,4],那么執行語句del x[1]后x的值為( )A.[2,3,4] B.[1,2,3,4] C.[1,3,4] D.[3,4]二、填空題21.為了便于程序的閱讀和理解,通常會在源代碼中添加 。22.在Python中通常用 來表示常量。23.寫出運行結果。a,b,c=5,3,6a,b=b,aprint("輸出a,b的值:",a,b)結果:24.寫出運行結果。list=['石榴',1,'香蕉','橙子','栗子']list[0]='蘋果'del list[l]list.append('獼猴桃')print (list)結果:25.下面程序的運行結果為( )三、判斷題26.Python表達式'37'+str(21)的運行結果是'58'。( )27.Python中判斷變量s能否被變量a整除,可以用表達式“s//a”的結果判斷。( )28.Python是一種面向對象的編譯型計算機程序設計語言。( )29.表達式x+5=y-2用來判斷x+5和y-2是否相等。( )30.用Python程序產生一個[1,100]的隨機整數,程序中應加入import math語句。( )四、操作題31.你是一名數據分析師,正在開發一個處理特定序列數據的應用程序,這些數據是以環狀序列的形式提供的。現在需要設計一個算法,能夠在這些環狀序列中找出最長升序子串(若有多組最長子串,則輸出最先出現那組)。例如環狀序列“BCEGHBCEFGA”中最長升序子串是“ABCEGH”。程序運行界面如圖所示。請輸入序列數據:BCEGHBCEFGA最長升序長度是:6最長升序子串是:ABCEGH實現上述功能的程序段如下,請回答下列問題:(1)請在劃線處填入合適的代碼(2)加框處代碼有誤,請改正s=input("請輸入序列數據:")n=len(s)for i in range(n-1):if:breakif i==n-2:k=n-1maxc=nelse:maxc=1cnt=1p1=i+1p2=(p1+1)%nwhile① :if s[p1]cnt+=1if cnt>maxc:maxc=cnt②else:cnt=1p1=p2p2=(p2+1)%nprint("最長升序長度是:",maxc)s1=""for i in range(maxc):s1=s[k]+s1③print("最長升序子串是:",s1)32.機器人從原點(0,0)開始在平面中移動。機器人只能通過用戶給定的指令 UP 向上,DOWN 向下,LEFT 向左和 RIGHT 向右移動。如機器人收到的運動指令向上 5 步,向下 3 步,向左 3 步, 向右 2 步,按回車鍵結束指令輸入,程序運行界面如下所示:請輸入方向和步數,隔開UP,5,隔開DOWN,3,隔開LEFT,3,隔開RIGHT,2,隔開經過4個指令機器人距離原點2.24左側為運動方向,右側數字為前進步數。請編寫一個程序,計算經過一系列運動之后,機器人當前位置離開原點的距離(四舍五入保留兩位小數)。(1)請把下面的代碼補充完整。import mathpos=[0,0]n=0print('請輸入方向和步數')while True:s=input(',隔開')if not s: break① movement=s.split(',')#用于字符串分割的常用方法。如:'a#b#c'.split('#')結果為['a', 'b', 'c'] direction=movement[0] steps=② if direction=='UP': pos[1]+=steps elif direction=='DOWN': pos[1]-=steps elif direction=='LEFT': pos[0]-=steps③ : pos[0]+=stepsprint('經過'+④ +'個指令')print('機器人距離原點',⑤ )33.小錢設計了一個用于判定素單詞的Python程序。判斷素單詞的規則如下:設定小寫字母a—z對應的數字為1—26,大寫字母A—Z對應的數字為27—52,將某個單詞的所有字母按照其對應的數字求和,若和為素數則判斷為素單詞?,F用程序來判斷一個單詞是否是素單詞,如果是輸出“yes”,反之則輸出“no”。如單詞“Hello”,字母分別對應的數字為:34、5、12、12、15,其和為34+5+12+12+15=78,不是素數,因此單詞“Hello”不是素單詞,輸出“no”。(1)根據題意,當輸入單詞“Love”,輸出的結果是 。(2)實現素單詞判斷的python程序如下,請在劃線處填入合適的代碼。s=input("請輸入一個單詞:")m=0flag=Truefor i in range(len(s)):ch=s[i]if "Z">=ch>="A":m=①elif "z">=ch>="a":#將小寫字母轉換為對應的數字并累加至變量m,代碼略for i in range(2,m):if② :flag=Falsebreakif③ :print("yes")else:print("no")34.小嘉給好朋友小浙發送了一段字符串信息,該字符串信息是小嘉利用某種編碼規則編碼后的結果。編碼規則如下:將字符串中連續出現n(n≥2)次的字符串str編碼為“n[str]”的形式,若字符串str中仍然有連續出現多次的字符串,則繼續轉換,直到字符只出現1次。例如,可將原始字符串“mmfffmmfff”編碼為“2[2[m]3[f]]”。請幫助小浙設計一段解碼程序,將收到的字符串信息恢復成原始字符串。實現解碼功能的程序段如下,請回答下列問題:(1)若小浙收到的字符串信息是“3[a2[c]]”,則原始字符串是“ ”(2)請在劃線處填入合適的代碼s = input("請輸入經過編碼的字符串:")Lst = []res,k="",0for i in range(len(s)):①If ch == "[":lst.append([k,res])#在列表末尾添加元素[k,res]k,res=0,""elif ch == "]":curk,lres = lst.pop(-1)#將列表末尾元素取出,并分別賦值給curk,lresres = lres + curk*reselif② :k = k*10+int(ch)else:res=③print("原始字符串為:",res)35.奇偶校驗碼是一種增加二進制傳輸系統可靠性的簡單且廣泛采用的方法,該方法通過增加一個校驗位使得傳輸的二進制碼中“1”的個數恒為奇數或偶數,因此該校驗碼也分為“奇校驗” 和“偶校驗”。“奇校驗”的原理:在發送端發送的每個字節二進制碼后增加一個校驗位(0 或1),使得“1”的個數為奇數;接收端接收并統計每個字節及其校驗位中“1”的個數,若為偶數,則意味著傳輸過程中存在差錯。例如:接收到的每個字節及校驗碼 “1” 的個數 傳輸正誤100101001 4 錯誤011010101 5 正確101011010 5 正確根據以上原理,小強編寫了一個 Python 程序,對接收到的 9 位二進制編碼進行“奇校驗”, 判斷其傳輸的正誤,若判斷正確則將該二進制編碼(校驗碼除外)轉成十六進制并輸出。請回答下列問題:(1)若接收到的二進制碼為“101011011”,傳輸過程 (選填:是/否)存在差錯。(2)實現上述功能的 Python 程序如下,請在劃線處填入合適的代碼。def BtoH(s):p=0;ans=""code={10:"A",11:"B",12:"C",13:"D",14:"E",15:"F"}for j in range(0,8,4):p=int(s[j:j+4],2)# int(x,2):將 x 按照二進制轉換成十進制整數if 0<=p<=9:ans=ans+str(p)else:ans=①return anss=input("請輸入 9 位二進制編碼:")k=0for i in s:#統計 9 位二進制編碼中“1”的個數k=k+int(i)if ② :print("傳輸錯誤!")else:print("傳輸正確!")result=③print("字節編碼用十六進制表示:", result)(3)輸入"1010110111"程序運行后,輸出的結果正確的是( )(單選,填字母)A.傳輸正確! B.傳輸錯誤!C.傳輸正確! 字節編碼用十六進制表示: AD D.傳輸錯誤! 字節編碼用十六進制表示: AD參考答案:1.BCD2.A3.D4.C5.D6.C7.A8.A9.C10.C11.A12.A13.D14.B15.D16.C17.A18.B19.B20.C21.注釋22.大寫字母23.輸出a,b的值:3,524.['蘋果', '香蕉', '橙子', '栗子','獼猴桃']25.026.錯誤27.錯誤28.錯誤29.錯誤30.錯誤31. s[i]>s[i+1] p1!=i或p2!=i+1 k=p2 k=(k-1)%n32. n=n+1 int(movement[1])或float(movement[1]) elif direction=='RIGHT'或if direction=='RIGHT' str(n) round(math.sqrt(pos[0]**2+pos[1]**2),2)或round((pos[0]**2+pos[1]**2)**0.5,2)33. no m+ord(ch)-ord(‘A’)+27或m+ord(ch)-38 m%i==0 flag或flag==True或i==m-134. "accaccacc"或accaccacc ch=s[i] "0"<=ch<="9" res+ch35. 是 ans+code[p] k%2==0或(k+1)%2==1或(k-1)%2==1 BtoH(s) C 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫