【正文】
主要考查Python變量。變量的命名規(guī)則有:只能以字母或下劃線開頭,不能包含特殊符號,不能是關(guān)鍵字;變量能存儲的數(shù)據(jù)很多,包含存儲漢字,在Python中,定義變量是不需要指定數(shù)據(jù)類型的,但Python本身是有數(shù)據(jù)類型的,它的數(shù)據(jù)類型可分為數(shù)字型和非數(shù)字型;數(shù)據(jù)類型是可以強制轉(zhuǎn)換的;變量被第二次賦值后,會覆蓋原有的數(shù)據(jù),故本題選D選項。29.D【詳解】本題主要考查Python中的運算符。/是除法運算,“%”是取余運算,mod是求余函數(shù),“//”是整除運算,因此D選項正確?!军c睛】解析:D【詳解】本題主要考查Python中的運算符。/是除法運算,“%”是取余運算,mod是求余函數(shù),“//”是整除運算,因此D選項正確?!军c睛】30.B【詳解】本題主要考查Python變量的命名。變量的命名規(guī)則有:只能以字母或下劃線開頭,不能包含特殊符號,不能是關(guān)鍵字,故可作為Python變量名的是Abc,故本題選B選項。解析:B【詳解】本題主要考查Python變量的命名。變量的命名規(guī)則有:只能以字母或下劃線開頭,不能包含特殊符號,不能是關(guān)鍵字,故可作為Python變量名的是Abc,故本題選B選項。二、程序填空31.day=int(s[8:])或day=int(s[2:]) 0,month1 isleap and month2 year%4==0 and year%100!=0 or year%400==0 【詳解】本題主要考查Python程序的執(zhí)行與調(diào)試。①2020年是閏年,2月是29天,故“20200520”這一天是這一年的第31+29+31+30+20=141天。②變量s是字符串型,下標從0開始,此處是將輸入日期中的天取出來放到變量day中,可以使用切片操作:從左邊開始截取,也可以從右邊截取,故此處填day=int(s[8:])或day=int(s[2:])。③通過循環(huán)將前month1個月的天數(shù)加起來,故變量i的范圍是0到month1,故填0,month1。④變量isleap標記是不是閏年,如果isleap值為真且month2,則sum需要遞增1,故填isleap and month2。⑤由題干閏年判斷條件,可知加框處應(yīng)改為year%4==0 and year%100!=0 or year%400==0。32.m=0 elift60: A 【詳解】本題主要考查Python程序的執(zhí)行與調(diào)試。①若員工在本月累計運動時間30小時以下,獎勵0元,即m=0。②達到45但不足60小時獎勵450元,故填elift60:。③10,不是有效值,故輸出信息為“輸入錯誤”,故本題選A選項。33.n*f(n1) range(1,n+1) s+f(i) 【詳解】本題主要考查Python程序的執(zhí)行與調(diào)試。①此處是定義遞歸函數(shù)f(n),由題干,當n=0時,返回1,否則返回n*f(n1),故此處填n*f(n1)。②用遞歸算法求1!+2!+……+n!,故變量i的范圍應(yīng)是1—n,for i in range(1,n+1)表示i的范圍是[1,n],故此處填range(1,n+1)。③循環(huán)體實現(xiàn)累加,將每一項階乘f(i)加到s中,故此處填s+f(i)。34.①n=len(a) sum+=1或sum=sum+1 6 【詳解】本題主要考查Python程序調(diào)試與執(zhí)行。①變量n用來保存數(shù)組a的長度,使用len函數(shù),故此處填n=len(a)。②使用for循環(huán)統(tǒng)計出80分(含80)以上的人數(shù),用變量sum統(tǒng)計滿足條件的人數(shù),當滿足if條件時,sum變量遞增,故此處填sum+=1或sum=sum+1。③執(zhí)行上述程序段后,sum=6,故輸出的內(nèi)容是6。35.x cj 【詳解】本題主要考查Python程序執(zhí)行與調(diào)試。①從鍵盤輸入10個學(xué)生的測試成績,range(a,b)的范圍是從a~b,但不包括b,故第一空填10。②每輸入一個數(shù)x,將其通過append函數(shù)加到列表cj中,故第二空填x。③求最大值用max函數(shù),求最小值用min函數(shù),故第三空填cj。36.total=0 i%3 == 2 and i%5 == 3 and i%7 == 2 a[j] 【詳解】本題主要考查Python程序的執(zhí)行與調(diào)試。①變量total用來統(tǒng)計有多少種情況,初始值為0,第一空填total=0。②當他們分成三人一組時,發(fā)現(xiàn)最后多出兩個;當他們分成五人一組時,發(fā)現(xiàn)最后多出三個;當他們分成七人一組時,發(fā)現(xiàn)最后多出兩個,即if判斷條件為i%3 == 2 and i%5 == 3 and i%7 == 2,滿足if條件時,將該值加到列表a中,故第二空填i%3 == 2 and i%5 == 3 and i%7 == 2。③最后通過for循環(huán)輸出所有可能的數(shù),用變量j控制,故第三空填a[j]。37.將year轉(zhuǎn)換為整型數(shù)據(jù),并賦值給year And year%100 != 0 or year 【詳解】本題主要考查Python程序設(shè)計。①input接收的數(shù)據(jù)類型是字符串型,該語句表示將year轉(zhuǎn)換為整型數(shù)據(jù),并賦值給year。判斷某一年是否是閏年的方法是年份數(shù)能被4整除,但不能被100整除,或者年份數(shù)能被400整除,故第二、三、四空分別填② And ③year%100 != 0 ④or ⑤最后輸出打印某一年是否是閏年,需要將year轉(zhuǎn)換為字符型。38.n=n1或 n=1 B 【詳解】本題主要考查算法及Python程序設(shè)計。①此處是判斷x是否為數(shù)字,若不是數(shù)字,則n遞減取前一位字符繼續(xù)進行判斷,故此處填n=n1或 n=1。②當while循環(huán)結(jié)束,表明此時x為數(shù)字,若int(x)%2 ==0,即x為偶數(shù),輸出“雙號”,否則輸出單號,故選B選項。39.0【詳解】本題主要考查Python中While循環(huán)結(jié)構(gòu)。Python 編程中 while 語句用于循環(huán)執(zhí)行程序,即在某條件下,循環(huán)執(zhí)行某段程序,以處理需要重復(fù)處理的相同任務(wù)。題中循環(huán)體內(nèi)含If選擇結(jié)構(gòu),即當i%3為0時,執(zhí)行sum變量累加i,輸出i,i自增加1操作,因此本題輸出0后,循環(huán)無限執(zhí)行下去?!军c睛】40.計算每一項的階乘 記錄階乘相加后的和 t記錄的是每一項階乘的結(jié)果,t*=n即t=t*n,t初值為1,能計算出每項的階乘結(jié)果,若為0,則每項的階乘結(jié)果都是0,不符合題意。 t=t*n s=s+t 【詳解】本題考查的是python語言編程。本題考查的是120階乘的求和。本題的重點是要先計算出對應(yīng)的每一項階乘的結(jié)果t,然后20項階乘的結(jié)果記錄在s中。在此過程中既要考慮到累乘求階乘結(jié)果,又要考慮到累加求所有階乘的和。初值n=0,在121的循環(huán)過程中,記錄每一項的階乘,s=0記錄階乘累加的和,t=1記錄每一項階乘的結(jié)果。每求一次階乘就要進行一次求和,故語句t*=n,s+=t均在“for n in range(1,21):”的循環(huán)體內(nèi)