【正文】
:B【詳解】本題主要考查Python基本運算符。“**”是冪運算,x**y為返回x的y次冪,因此B選項正確?!军c睛】二、程序填空16.range(100,1000) x//10%10 x%10 print (三位數(shù)之內(nèi)的水仙花是:+str(x)) 【詳解】本題主要考查Python程序的執(zhí)行與調(diào)試。①水仙花數(shù)是指一個三位數(shù),即[100,999],for x in range(100,1000)表示x的范圍是100999,故此處填range(100,1000)。②變量g、s、b分別存放個位、十位、百位上的數(shù),故s=x//10%10(“//”表示整除,“%”表示取余)。③g=x%10。④如果滿足 x==(b**3 + s**3 + g**3),則輸出“三位數(shù)之內(nèi)的水仙花是:x”,故此處填print (三位數(shù)之內(nèi)的水仙花是:+str(x))。17.(A[i]) j len(B) klen(A)+len(B)1 A[i] B[j] 【詳解】本題主要考查python編程。根據(jù)表格所示,列表B中第5個元素為309,因此①處為309;A[i] B[j]時,將列表末尾添加A[i],因此②(A[i]);當(dāng)列表未結(jié)束時,列表末尾添加相應(yīng)元素,因此③處為j len(B);算法二中引入變量k,用以記錄i與j的和,當(dāng)k小于len(A)+len(B)1說明兩列表未結(jié)束,因此④處為klen(A)+len(B)1;若A[i] B[j],則先將A[i] 添加至列表末尾,因此⑤處為A[i] B[j]。【點睛】18.b/(2*a) 【詳解】本題主要考查Python程序執(zhí)行與調(diào)試。①delta大于0,方程有兩個不同的解,delta等于0,方程有兩個相同的解,delta小于0,方程無解,故第一空填0。②delta=0,則方程有兩個相同的根,x=b/(2*a),故第二空填b/(2*a)。19.or i+1 【詳解】本題主要考查Python程序執(zhí)行與調(diào)試。①分析程序可知,程序采用枚舉的算法找出該數(shù),當(dāng)不滿足條件時,i遞增繼續(xù)判斷,故i的初始值是0,第一空填0。②一個數(shù)除以3余2,除以5余3,除以7余2,此處是取不滿足情況時,i遞增,and取反變?yōu)閛r,故第二空填or。③同理第三空填i+1。20.k=len(s) ord(s[i])==ord(s[i+1])1 and flag==False 或 ord(s[i])==ord(s[i+1])1 and not flag 或 ord(s[i])+1==ord(s[i+1]) and flag==False 或 ord(s[i])+1==ord(s[i+1]) and not flag flag = False 【詳解】本題主要考查Python程序的執(zhí)行與調(diào)試。①第一空將輸入的字符串s的長度賦給變量k,故填k=len(s)。②flag用來標(biāo)記是否有連續(xù)字符構(gòu)成的升序段,第二空判斷相鄰位置后面字符的ASCII值是否比前面的字符的ASCII值大1且flag為False,故填ord(s[i])==ord(s[i+1])1 and flag==False 或 ord(s[i])==ord(s[i+1])1 and not flag 或 ord(s[i])+1==ord(s[i+1]) and flag==False 或 ord(s[i])+1==ord(s[i+1]) and not flag。③如果不滿足if判斷條件,則需要將該字符加到變量result中,同時賦值flag為False,表示當(dāng)前沒有連續(xù)字符構(gòu)成的升序段,需要繼續(xù)判斷尋找,故填flag = False。21.for i in range(1,10): for j in range(1,i+1): print(str(j)+*+str(i)+=+str(i*j),end= )print()【詳解】本題主要考查Python程序的執(zhí)行。九九乘法口訣表可以通過嵌套for循環(huán)實現(xiàn),內(nèi)層循環(huán)完一次,執(zhí)行print()換行,具體代碼如下:for i in range(1,10): for j in range(1,i+1): print(str(j)+*+str(i)+=+str(i*j),end= )print(