【正文】
句y+=x*2等價(jià)于y=y+x*2=1+2*2=5,故y的值是5,故本題選C選項(xiàng)。29.D【詳解】本題主要考查Python表達(dá)式的運(yùn)算。round(x,n)方法返回 x 的小數(shù)點(diǎn)四舍五入到n個(gè)數(shù)字,abs是求絕對值,已知a=2,b=10/3,則表達(dá)式round(b,1)+abs(解析:D【詳解】本題主要考查Python表達(dá)式的運(yùn)算。round(x,n)方法返回 x 的小數(shù)點(diǎn)四舍五入到n個(gè)數(shù)字,abs是求絕對值,已知a=2,b=10/3,則表達(dá)式round(b,1)+abs(a)=+2=,故本題選D選項(xiàng)。30.B【詳解】本題主要考查Python運(yùn)算符。在Python語言等高級語言中,“=“往往被用于賦值語句,而表示相等的情況時(shí),大多用“==”。因此B選項(xiàng)正確。解析:B【詳解】本題主要考查Python運(yùn)算符。在Python語言等高級語言中,“=“往往被用于賦值語句,而表示相等的情況時(shí),大多用“==”。因此B選項(xiàng)正確。二、程序填空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是字符串型,下標(biāo)從0開始,此處是將輸入日期中的天取出來放到變量day中,可以使用切片操作:從左邊開始截取,也可以從右邊截取,故此處填day=int(s[8:])或day=int(s[2:])。③通過循環(huán)將前month1個(gè)月的天數(shù)加起來,故變量i的范圍是0到month1,故填0,month1。④變量isleap標(biāo)記是不是閏年,如果isleap值為真且month2,則sum需要遞增1,故填isleap and month2。⑤由題干閏年判斷條件,可知加框處應(yīng)改為year%4==0 and year%100!=0 or year%400==0。32.+*/ b==0 str(c) 【詳解】本題主要考查Python程序執(zhí)行與調(diào)試。①變量fh用來接收運(yùn)算符,由代碼“if fh in s”可知,變量s保存加減乘除(+*/)四種運(yùn)算符,故此處填+*/。②變量b保存第二個(gè)數(shù),當(dāng)進(jìn)行除法運(yùn)算時(shí),如果除數(shù)為“0”,提示輸出“除數(shù)不能為0!”,此處是處理b=0的情況,故填b==0。③變量c保存運(yùn)算結(jié)果,此處輸出 c的結(jié)果,故填str(c)。33.全文 變量 k+1 枚舉法 Word/WPS/PowerPoint等 【詳解】本題主要考查Python程序的執(zhí)行與調(diào)試。①百度屬于全文搜索引擎,也是關(guān)鍵詞搜索。②變量可以反復(fù)賦值,故k是變量。③循環(huán)體執(zhí)行完,k遞增,繼續(xù)找水仙花數(shù),故此處填k+1。④逐一驗(yàn)證了100到999之間所有的三位數(shù)是否符合,這種算法叫做枚舉法。⑤在研究成果展示環(huán)節(jié), 張軒小組可以使用Word/WPS/PowerPoint等軟件制作《探秘水仙花數(shù)》的研究成果報(bào)告。34.①i =(Len(s)\8)*8 ②a(start + c((i1)Mod 8+1)) ③ss = convert(Asc(b(i))) 【詳解】(1)“A”的ASCII碼值是65,用二進(jìn)制表示為0100001,m=35,用二進(jìn)制表示為0010001,位做異或運(yùn)算,相同為0,相異為1,可得:01100010。(2)①以8個(gè)數(shù)據(jù)為一段進(jìn)行分段處理,個(gè)數(shù)等于8的數(shù)據(jù)段需進(jìn)行位置變換,故需進(jìn)行位置變換的數(shù)據(jù)段有(Len(s)\8)個(gè),數(shù)據(jù)個(gè)數(shù)為i =(Len(s)\8)*8。②位置變換方法:加密后數(shù)據(jù)段的第ⅰ個(gè)元素=原數(shù)據(jù)段的第c(i)個(gè)元素,其中i=1,2,……,8,i表示段內(nèi)位置。代碼“Do While i =(Len(s)\8)*8”中的i對應(yīng)段內(nèi)位置可為“1+(i1)Mod8”,start表示該數(shù)據(jù)段第一個(gè)數(shù)據(jù)的前個(gè)位置,故數(shù)組b第i位置元素是來自數(shù)組a第start + c(1+(i*1)Mod 8)位置,故②處代碼為“a(start + c(i1)Mod8+1))”。③位置變換后的數(shù)據(jù)需轉(zhuǎn)二進(jìn)制,再按位做異或運(yùn)算,故③處的代碼是調(diào)用自定義函數(shù)convert把b(i)中字符的ASCII碼轉(zhuǎn)二進(jìn)制后存入變量ss,故此處代碼為“ss = convert(Asc(b(i))”。35.tc0 c=c+1 或者c+=1 【詳解】本題主要考查Python程序執(zhí)行與調(diào)試。①變量tc保存西瓜數(shù)量,當(dāng)tc大于0時(shí),一直循環(huán),故第一空填tc0。②變量c保存天數(shù),每循環(huán)一次,變量c遞增1,故第二空填c=c+1 或者c+=1。36.34或 money//hen_price+1 101 或 money//threechick_price+1 chick_num*3 【詳解】本題主要考查Python程序執(zhí)行與調(diào)試。①母雞只數(shù)可能為133,對比最外層循環(huán)范圍,第一空填34或 money//hen_price+1。②小雞只數(shù)可能為1100,同理第二空填101 或 money//threechick_price+1。③公雞5文錢1只,母雞3文錢1只,小雞3只1文錢,故第三空填chick_num*3。37.for i in range(100,1000): a=i//100 b= (i//10)%10 c=i%10 if i==a*a*a+b*b*b+c*c*c: print(i)【詳解】本題主要考查程序設(shè)計(jì)??赏ㄟ^Python程序設(shè)計(jì)實(shí)現(xiàn)題干要求,通過for循環(huán)找出水仙花數(shù),依次取出三位數(shù)的每一位數(shù),其中百位a= i//100,十位b= (i//10)%10,個(gè)位c=i%10,然后判斷是否是水仙花數(shù),具體代碼如下:for i in range(100,1000): a=i//100 b= (i//10)%10 c=i%10 if i==a*a*a+b*b*b+c*c*c: print(i)38.【詳解】本題主要考查程序設(shè)計(jì)與實(shí)現(xiàn)。可以使用Python程序?qū)崿F(xiàn)題干要求:39.l=[]for i in range(2000, 3201): if (i%7==0) and (i%5!=0): (str(i))print (39。,39。.join(l))【詳解】本題主要考查程序設(shè)計(jì)。由題干要求,可以使用Python程序設(shè)計(jì)語言實(shí)現(xiàn),可使用for循環(huán)以及列表,可以使用join函數(shù)按逗號分隔格式打印結(jié)果,join函數(shù)連接字符串?dāng)?shù)組,將字符串、元組、列表中的元素以指定的字符(分隔符)連接生成一個(gè)新的字符串,具體代碼如下:l=[]for i in range(2000, 3201): if (i%7==0) and (i%5!=0): (str(i))print (39。,39。.join(l))40.([n1,0]) head=0 long1 head=llist[k][1] llist[k][1]=llist[t][1] k=llist[k][1] 【詳解】本題主要考查Python程序執(zhí)行與調(diào)試。①for循環(huán)體是將索引0n 追加到llist中,此處是循環(huán)體執(zhí)行完,將末元素與首元素的索引加入到llist中,([n1,0])。②head是列表頭,初始化為0,故填head=0。③最后剩下一個(gè),其余人都將被殺掉,故循環(huán)條件是long1,變量long控制元素個(gè)數(shù),故填long1。④索引為t的刪除后,此處是更新head值,故填head=llist[k][1]。⑤刪完后,如果t等于head,需要更新索引k,將索引t的值賦給變量k,故填llist[k][1]=llist[t][1]。⑥如果t不等于head,也需要更新索引k,故填k=llist[k][1]