【正文】
,int是整型,str是字符串型,float是浮點(diǎn)型,故本題選A選項(xiàng)。二、程序填空31.是 k%2==0或(k+1)%2==1或(k1)%2==1 ans+code[p] ans 【詳解】本題主要考查Python程序的執(zhí)行與調(diào)試。①若接收到的二進(jìn)制碼為“101011011”,1的個數(shù)有6個,則傳輸過程存在差錯。②變量k統(tǒng)計(jì)1的個數(shù),若k是偶數(shù)則表明傳輸錯誤,否則傳輸正確,故此處填k%2==0或(k+1)%2==1或(k1)%2==1。③如果p是1~9之間的數(shù)字,則直接將p拼接到ans中,否則從字典code中取對應(yīng)的字母,故此處填ans+code[p]。④變量ans保存轉(zhuǎn)換后的十六進(jìn)制,故此處填ans。32.b/(2*a) 【詳解】本題主要考查Python程序執(zhí)行與調(diào)試。①delta大于0,方程有兩個不同的解,delta等于0,方程有兩個相同的解,delta小于0,方程無解,故第一空填0。②delta=0,則方程有兩個相同的根,x=b/(2*a),故第二空填b/(2*a)。33.B C C C D 【詳解】本題主要考查二分查找算法及Python程序?qū)崿F(xiàn)。①二分查找的循環(huán)條件是left<=right,故選B選項(xiàng)。②此處是取中間值,需要整除2,故填(left+right)//2,故選C選項(xiàng)。③如果mid對應(yīng)的列表值是1000,表示已找到,則用break跳出循環(huán),選C選項(xiàng)。④如果mid對應(yīng)的列表值小于1000,則需要更新left的值為mid+1繼續(xù)循環(huán),選C選項(xiàng)。⑤否則更新right的值為mid1,選D選項(xiàng)。34.s=0n=eval(input( 請輸入一個數(shù):))for i in range(0,n): f=1 for j in range(1,i): f=f*j s+=fprint(s%1000000)【詳解】本題主要考查Python程序設(shè)計(jì)。可以通過嵌套for循環(huán)實(shí)現(xiàn)題干要求,外層循環(huán)進(jìn)行求和,內(nèi)層循環(huán)實(shí)現(xiàn)階乘,具體代碼如下:s=0n=eval(input( 請輸入一個數(shù):))for i in range(0,n): f=1 for j in range(1,i): f=f*j s+=fprint(s%1000000)35.a(chǎn)=int(input( 請輸入數(shù) a:))b=int(input( 請輸入數(shù) b:))if ab: t=a a=b b=t print(用戶輸入的數(shù)按小到大排序結(jié)果是: , a, b)else :print(原樣輸出 ,a,b)【詳解】本題主要考查Python程序設(shè)計(jì)。使用input函數(shù)接收兩個數(shù)a和b,用if條件分支結(jié)構(gòu)判斷a和b的大小,如果a大于b,則交換,否則原樣輸出,具體代碼如下:a=int(input( 請輸入數(shù) a:))b=int(input( 請輸入數(shù) b:))if ab: t=a a=b b=t print(用戶輸入的數(shù)按小到大排序結(jié)果是: , a, b)else :print(原樣輸出 ,a,b)36.int(day[5:7]) (year%4==0 and year%100!=0 or year%400==0) and month=2 tall_day+=1 110 【詳解】本題主要考查Python程序的執(zhí)行與調(diào)試。①此處是取出字符串day中的月份賦給變量month,month是第5~第6位,str[start:end],start會包含在結(jié)果中而end卻不會,故此處填int(day[5:7])。②此處判斷是不是閏年,因?yàn)殚c年的二月有29天,故if判斷還要判斷當(dāng)前的月份是不是包含2月即大于等于2月,故此處填(year%4==0 and year%100!=0 or year%400==0) and month=2。③如果是閏年且當(dāng)前日期包括2月,則循環(huán)完tall_day需增加1天,故填tall_day+=1。④輸入“2020419”為當(dāng)年的第110天。37.【詳解】本題主要考查Python程序的執(zhí)行與調(diào)試。運(yùn)行結(jié)果如下:38.參考答案1:for i in range(2,101): j=2 while j=i: if i%j==0: break j+=1 if ji: continue else: print(i,end= )參考答:2:for i in range(2,101): for j in range(2,i): if(i%j==0): break else:print(i)【詳解】本題考查是Python語言編程解決問題。break 語句可以立即終止當(dāng)前循環(huán)的執(zhí)行,跳出當(dāng)前所在的循環(huán)結(jié)構(gòu)。無論是 while 循環(huán)還是 for 循環(huán),只要執(zhí)行 break 語句,就會直接結(jié)束當(dāng)前正在執(zhí)行的循環(huán)體。這就好比在操場上跑步,原計(jì)劃跑 10 圈,可是當(dāng)跑到第 2 圈的時候,突然想起有急事要辦,于是果斷停止跑步并離開操場,這就相當(dāng)于使用了 break 語句提前終止了循環(huán)。答案中代碼的實(shí)現(xiàn)過程見下圖:參考答案1:參考答案2:39.champion 3 i 【詳解】本題主要考查Python程序的執(zhí)行。①champion是選手編號列表,此處是循環(huán)讀取選手編號,使用for i in champion,故此處填champion。②四人中有一人說了假話,即3個人說真話,即當(dāng)cond=3時,則表示找到了誰是冠軍,故此處填3。③當(dāng)cond是3時,i即為冠軍,故此處填i。40.n r n 【詳解】本題考查的是Python循環(huán)語句。輾轉(zhuǎn)相除法:用較大數(shù)除以較小數(shù),再用出現(xiàn)的余數(shù)(第一余數(shù))去除除數(shù),再用出現(xiàn)的余數(shù)(第二余數(shù))去除第一余數(shù),如此反復(fù),直到最后余數(shù)是0為止。如果是求兩個數(shù)的最大公約數(shù),那么最后的除數(shù)就是這兩個數(shù)的最大公約數(shù)。 由n = min(x,y) 可知最小值為n,故①處為n,由r = m%n 可知余數(shù)為r,故②處為r,最后的除數(shù)是n(即最大公約數(shù)為n),故③處為n。