資源簡(jiǎn)介 第二單元 算法的程序?qū)崿F(xiàn)信息技術(shù)(50分)一、選擇題(本大題共12小題,每小題2分,共24分。每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,不選、多選、錯(cuò)選均不得分)1.某算法的部分流程圖如圖所示,執(zhí)行這部分流程,若輸入的x依次為4,5,9,14,0,則輸出n的值是( )A.1 B.2C.3 D.42.根據(jù)圖a所示的凸透鏡成像規(guī)律,圖b所示流程圖中①②③處應(yīng)分別填入( )A.①stand=″″ zoom=″″②stand=″正立″③u>2f B.①stand=″倒立″ zoom=″放大″②stand=″正立″③u<2f C.①stand=″″ zoom=″″②zoom=″放大″③u>2f D.①stand=″倒立″ zoom=″放大″②zoom=″放大″③u<2f3.從身份證號(hào)碼中取出“出生日期”信息(第7~14位),下列Python表達(dá)式不正確的是( )A.s[6:14] B.s[-5:-13]C.s[6:][:8] D.s[:-4][6:]4.為便于四校聯(lián)考的組織,所有考生統(tǒng)一編制準(zhǔn)考證號(hào),某位考生的準(zhǔn)考證號(hào)如圖所示。其表示2023年4月組織的考試,高二年級(jí)學(xué)校編號(hào)為1,坐在05考場(chǎng)28號(hào)座位的考生信息,現(xiàn)有Python語(yǔ)句s='202304210528',以下表達(dá)式不能表示該考生所在年級(jí)的一項(xiàng)是( )A.s[6] B.s[-6]C.s[5:7] D.s[len(s)//2]5.已知浮點(diǎn)型變量h表示身高數(shù)據(jù),浮點(diǎn)型變量w表示體重?cái)?shù)據(jù),則下列Python表達(dá)式中,能夠正確計(jì)算身體質(zhì)量指數(shù)BMI并四舍五入保留兩位小數(shù)的是( )A.int(w/h*h*100+0.5)/100B.round(w//h**2,2)C.int(w*h**(-2)*100+0.5)/100D.round(h/w/w,2)6.輸入身份證號(hào)碼,能正確輸出其性別的程序段,代碼如下:s=input(″請(qǐng)輸入身份證號(hào)碼:″)if :print(xb[0])else:print(xb[1])則加框中①②處代碼依次為( )A.①xb={0:″女″,1:″男″} ②int(s[-2])%2==1B.①xb=[″女″,″男″] ②int(s[-2])%2==1C.①xb=[″女″,″男″] ②int(s[-2])%2==0D.①xb={0:″女″,1:″男″} ②int(s[-2])%2==07.已知某同學(xué)的BMI值存儲(chǔ)在變量X中,若BMI值小于18,則偏瘦;若BMI值在18到24之間,則正常;若BMI值大于24,則偏胖。小藍(lán)編寫(xiě)程序判斷該同學(xué)的身體狀況信息,并保存到變量Y中,則下列程序段無(wú)法實(shí)現(xiàn)該功能的是( )A.Y=″偏瘦″if X>=18:Y=″正?!?br/>elif X>24:Y=″偏胖″B.Y=″偏胖″if X<18:Y=″偏瘦″elif X<=24:Y=″正常″C.if X>24:Y=″偏胖″elif X>=18:Y=″正?!?br/>else:Y=″偏瘦″D.if 18<=X<=24:Y=″正常″else:Y=″偏瘦″if X>18:Y=″偏胖″8.有如下Pyhton程序段:s1=input(″請(qǐng)輸入:″)q=″1357902468″;s2=″″for ch in s1:if ″0″<=ch<=″9″:s2+=q[int(ch)]elif ″a″<=ch<=″z″:s2+=chr((ord(ch)-ord(″a″)+2)%26+ord(″a″))else:s2+=chprint(s2)運(yùn)行該程序,輸入s1的值為″Mike122@″,則s2的值為( )A.Mgic355@oo.amk B.Kgic931@oo.amkC.Mkmg355@ss.eqo D.Okmg931@ss.eqo9.有如下Python程序:a=[0]*10;c=0n=int(input(″輸入n的值:″))while n>0:a[n%10]+=1if a[n%10]==2:c+=1n//=10print(c)運(yùn)行該程序后,輸出結(jié)果為2,則輸入n的值可能為( )A.135553 B.234125C.202222 D.11223310.某校學(xué)生走班上課需要刷卡,每個(gè)學(xué)生都被分配了以“入學(xué)年份(4位)+班級(jí)(2位)+學(xué)號(hào)(2位)”為編碼規(guī)則的卡號(hào),刷卡后,簽到系統(tǒng)自動(dòng)在后臺(tái)數(shù)據(jù)庫(kù)中記錄卡號(hào)和姓名。為進(jìn)一步統(tǒng)計(jì),老師將本次簽到數(shù)據(jù)導(dǎo)出到“stu.txt”文件中,并編寫(xiě)了如下程序:dic={″01″:[″201班″,0],″02″:[″202班″,0],″03″:[″203班″,0],″04″:[″204班″,0]}myfile=open(″stu.txt″,″r″,encoding=″utf-8″)for line in myfile:(1)________for i in dic:print(str(dic[i][0])+″人數(shù)為:″+str(dic[i][1]))則劃線(xiàn)處的代碼為( )A.dic[line[5:6]][0]+=1B.dic[line[5:7]]+=1C.line[4:6]+=1D.dic[line[4:6]][1]+=111.有如下Python程序段:import randoms='abcdefghijklmnopq'for i in range(4): k=random.randint(0,4)+random.randint(0,1)*10 print(s[k],end='')執(zhí)行該程序后,輸出的結(jié)果不可能是( )A.ddaa B.eaeoC.dfam D.nemc12.某Python代碼如下:import randomlst=[0]*8 #定義列表lst,lst[0]~lst[7]初始值均為0i=0while i<8:if i % 2==0:lst[i]=int(random.random()*10)else:lst[i]=int(random.randint(1,5))*2+1i+=1print(lst)執(zhí)行程序后,列表lst[0]~lst[7]各元素值可能的是( )A.[0,10,2,9,8,3,4,5] B.[8,5,4,7,10,3,6,9]C.[4,11,3,5,9,6,1,7] D.[6,3,1,11,7,3,5,9]二、非選擇題(本大題共3小題,其中第13小題7分,第14小題10分,第15小題9分,共26分)13.小明編寫(xiě)Python程序,實(shí)現(xiàn)對(duì)某次評(píng)價(jià)報(bào)名序號(hào)的檢測(cè)并輸出該考生的評(píng)價(jià)類(lèi)別+科類(lèi)類(lèi)別。報(bào)名序號(hào)的編寫(xiě)方法是:由10位數(shù)字組成,畢業(yè)年份(4位)+評(píng)價(jià)類(lèi)別(1位)+科類(lèi)代碼(1位)+順序代碼(4位)。評(píng)價(jià)類(lèi)別:1普通、2單項(xiàng);科類(lèi)類(lèi)別:3藝術(shù)類(lèi)、4體育類(lèi)、5綜合類(lèi)。例如:輸入報(bào)名序號(hào)“2022150001”,輸出“普通綜合類(lèi)”(1)與加框處代碼功能相同的是________。(單選,填字母:A.s=dic[ticket[-6:-4]]/B.s=dic[ticket[-6:-5]])(2)實(shí)現(xiàn)查詢(xún)功能的Python程序如下,請(qǐng)?jiān)趧澗€(xiàn)處填入合適的代碼。while True:ticket= ①________num=0for i in ticket:if i>=″0″ and i<=″9″: num=num+1if len(ticket)?。?0:print(″輸入長(zhǎng)度不符合要求″)elif ②________:print(″輸入存在非數(shù)字字符″)else:breakdic={″13″:″普通藝術(shù)類(lèi)″,″14″:″普通體育類(lèi)″,″15″:″普通綜合類(lèi)″,″23″:″單項(xiàng)藝術(shù)類(lèi)″,″24″:″ 單項(xiàng)體育類(lèi)″,″25″:″單項(xiàng)綜合類(lèi)″}s=print(″該考生的考試科類(lèi)為:″,s)14.條形碼在現(xiàn)實(shí)生活中使用的越來(lái)越廣泛,如在各種商品上印上條形碼,超市里散裝稱(chēng)重商品在稱(chēng)重完成后也會(huì)打上條形碼。學(xué)校教務(wù)處想調(diào)查高二、高三學(xué)生對(duì)任教老師的滿(mǎn)意度。調(diào)查方式采用學(xué)生填涂機(jī)讀卡方式。由于高二、高三每個(gè)班學(xué)生選科不同。雖然采用機(jī)讀卡能方便將卡上的信息讀取出來(lái),但很難區(qū)分某個(gè)學(xué)生所涂的內(nèi)容是對(duì)哪個(gè)科目老師的投票。因此小張想通過(guò)設(shè)計(jì)條形碼來(lái)區(qū)別該張卡是哪位學(xué)生對(duì)哪些科目的投票。小張?jiān)O(shè)計(jì)的條形碼,包括了學(xué)生的入學(xué)年份、該生所在班級(jí)、學(xué)號(hào)及所選課代碼(選課代碼:01-物理,02-化學(xué),03-生物,04-政治,05-歷史,06-地理,07-技術(shù))。某學(xué)生條形碼如下圖所示,該生是2020年入學(xué),5班,學(xué)號(hào)為23號(hào),選科為:物理、生物、技術(shù)。(1)根據(jù)條形碼設(shè)計(jì)的規(guī)則,請(qǐng)你設(shè)計(jì)出2019年入學(xué)7班學(xué)號(hào)為15號(hào),選科為化學(xué)、生物、技術(shù)學(xué)生的條形碼顯示的數(shù)字為_(kāi)_______。(2)通過(guò)條碼形與機(jī)讀卡的組合,可以快速地統(tǒng)計(jì)出每班個(gè)班各科的教學(xué)情況。由于每個(gè)學(xué)生對(duì)投票的興趣不一,可能存在有些學(xué)生沒(méi)有興趣參與投票。如果某個(gè)科目參與投票的學(xué)生達(dá)不到該科目選科總?cè)藬?shù)的60%,則該科目的教學(xué)調(diào)查就沒(méi)有任何意義。為了統(tǒng)計(jì)出某個(gè)班哪幾個(gè)科目的教學(xué)調(diào)查無(wú)效,小張事前應(yīng)準(zhǔn)備好的數(shù)據(jù)是________(單選,填字母)。A.該年級(jí)總?cè)藬?shù) B.每個(gè)班級(jí)總?cè)藬?shù)C.參與教學(xué)調(diào)查投票的總?cè)藬?shù) D.每個(gè)班各科選課人數(shù)(3)小張?jiān)O(shè)計(jì)了一個(gè)實(shí)現(xiàn)統(tǒng)計(jì)某個(gè)班級(jí)哪幾個(gè)科目的教學(xué)調(diào)查是無(wú)效的算法,他事先將某個(gè)班學(xué)生條形碼通過(guò)掃描儀讀取后存入在txm.txt中,每個(gè)條形碼一行。為實(shí)現(xiàn)上述功能,請(qǐng)?jiān)趧澗€(xiàn)處填入合適選項(xiàng)或代碼。data=open(″txm.txt″) #班級(jí)選課人數(shù)存放在列表xknum中,代碼略kmmc=″物理化學(xué)生物政治歷史地理技術(shù)″line=data.readline()kmnum=[0]*7 #用于存放實(shí)際參與教學(xué)調(diào)查每個(gè)選科人數(shù)while line:for i in range(3): #統(tǒng)計(jì)每科參考投票的人數(shù)km=int(line[__①__])-1 #(選填字母,從下列A、B、C、D四個(gè)選項(xiàng)中選取一項(xiàng))kmnum[km]=kmnum[km]+1line=data.readline()s=″″for i in range(7):if ②________: #(填程序代碼)s=s+kmmc[i*2:(i+1)*2]+″″print(″無(wú)效的科目有:″,s)劃線(xiàn)①處的選項(xiàng)為( )A.9+i*2:9+i*2 B.9+i*2:11+i*2C.8+i*2:9+i*2 D.8+i*2:10+i*215.某年級(jí)要選出3位同學(xué)參加市趣味科學(xué)競(jìng)賽,現(xiàn)有8位同學(xué)報(bào)名參賽。參賽選手進(jìn)行展示后由大眾評(píng)委投票產(chǎn)生前三名。投票結(jié)果存儲(chǔ)在“vote.txt”文件中,如圖a所示。其中choose列的數(shù)據(jù)為大眾評(píng)委的投票對(duì)象,均以選手代碼顯示。選手名稱(chēng)與選手代碼的對(duì)應(yīng)關(guān)系如下表:選手名稱(chēng) 選手A 選手B 選手C 選手D 選手E 選手F 選手G 選手H選手代碼 0 1 2 3 4 5 6 7小明用Python編寫(xiě)了一個(gè)統(tǒng)計(jì)得票數(shù)的程序,用于檢查每位大眾評(píng)委的投票是否有效(每人投3票且不重復(fù)),并對(duì)有效結(jié)果進(jìn)行統(tǒng)計(jì),按照得票數(shù)從高到低輸出投票結(jié)果,如圖b所示。若存在并列且前三名總?cè)藬?shù)超過(guò)3人,則輸出所有滿(mǎn)足條件的選手,并通過(guò)隨機(jī)抽獎(jiǎng)形式在末位同分同學(xué)中抽取參賽學(xué)生,如圖c所示,在選手C、E、H中抽取一位同學(xué)作為第三名。(1)根據(jù)題意,若評(píng)委人數(shù)為7人,投票數(shù)據(jù)分別為“142,565,620,361,203,604,136”,則入選人員不可能為_(kāi)_______(單選,填字母)。A.選手A、選手B、選手GB.選手C、選手D、選手GC.選手A、選手C、選手DD.選手B、選手D、選手G(2)實(shí)現(xiàn)上述功能的代碼如下,請(qǐng)?jiān)趧澗€(xiàn)處填入合適的代碼。from random import randintdef check(x): #檢測(cè)投票是否有效flag=Falseisum,checklist=0,[0]*8if len(x)==3:for i in range(3): if ″0″<=x[i]<=″7″: checklist[int(x[i])]=1isum=sum(checklist[i]) #統(tǒng)計(jì)列表checklist[i]所有數(shù)據(jù)的和if ①________: flag=Truereturn flagdict={0:″選手A″,1:″選手B″,2:″選手C″,3:″選手D″,4:″選手E″,5:″選手F″,6:″選手G″,7:″選手H″}f=open(″vote.txt″,″r″)line=f.readline() #第一行為列標(biāo)題,讀取兩次跳過(guò)該行line=f.readline()count=[0]*8while line:linelist=line.split(″,″) #將字符串按逗號(hào)分隔為列表②________if check(s):for i in range(3): count[int(s[i])]+=1line=f.readline()f.close()a=[]for i in range(8):a.append([dict[i],count[i]])#將列表a按照選手票數(shù)從高到低排序并輸出,代碼略m=3 #入選人數(shù)b=[a[0]];k=1;st=0for i in range(1,len(a)): if ③________:break if a[i][1]?。絘[i-1][1]:st=i k+=1b.append(a[i])print(″滿(mǎn)足條件的選手:″)for i in range(k): print(b[i]) #輸出滿(mǎn)足票數(shù)前m條件的參賽選手#輸出最終入選人員print(″最終入選人員:″)for i in range(st): print(b[i])#末位同分的同學(xué),用抽獎(jiǎng)的方式確定入選人員flag=[0]*k④________while d>0:lucky=randint(st,k-1) #在最后同分的同學(xué)中隨機(jī)抽取if flag[lucky]==0:print(b[lucky])flag[lucky]=1d-=1第二單元 算法的程序?qū)崿F(xiàn)1.B [本題考查算法的表示。條件a=b+c表示該項(xiàng)等于他前兩項(xiàng)之和。輸入4個(gè)非0數(shù),循環(huán)4次。第1次循環(huán)時(shí),a,b,c的值依次為4,0,0;第2次循環(huán)時(shí),a,b,c的值依次為5,4,0;第3次循環(huán)時(shí),a,b,c的值依次為9,5,4;第4次循環(huán)時(shí),a,b,c的值依次為14,9,5。a=b+c的條件滿(mǎn)足了兩次,故n=2。]2.B [本題考查算法的表示。③處N的結(jié)果zoom='縮小',可以推出③處是u<2f?,那么當(dāng)u<2f時(shí),成像:倒立、放大,由此可以推出①處stand='倒立',zoom='放大',②處是u<=f的情況,u=f不成像,那么②處就是u3.B [本題考查字符串的切片操作。B選項(xiàng)步長(zhǎng)省略默認(rèn)為1,該處使用負(fù)索引,取值為空,故錯(cuò)誤。C和D為二次切片,注意的是切完第一次之后索引重新編排,例如s[6:][:8]為先將s從索引6切到最后,然后將這個(gè)結(jié)果從頭切到索引8的位置。]4.C [本題考查字符串求子串。A、D選項(xiàng)通過(guò)正索引6訪(fǎng)問(wèn)該學(xué)生所在年級(jí),B選項(xiàng)通過(guò)負(fù)索引-6訪(fǎng)問(wèn)該學(xué)生所在年級(jí)。C選項(xiàng)中s[5∶7]表示取字符串s的索引下標(biāo)5至6范圍內(nèi)的子串,不能表示該考生所在年級(jí)的一項(xiàng)。]5.C [對(duì)一數(shù)x四舍五入保留兩位小數(shù)的表達(dá)式為int(x*100+0.5)/100,而題中x為w*h**(-2)。]6.D [輸出xb[0],因此用字典存儲(chǔ)男生或女生信息,但A選項(xiàng)int(s[-2])%2==1表示男生。]7.A [本題考查Python分支結(jié)構(gòu)基本語(yǔ)法。A選項(xiàng)只要變量X的值大于等于18,輸出結(jié)果均為“偏胖”,與題干要求不符。]8.C [遍歷字符串s1,如果是數(shù)字,則在q字符串中取出位置的值;若是小寫(xiě)字母,循環(huán)后移2位。大寫(xiě)字母或特殊字符依次連接。]9.A [用數(shù)組a來(lái)存儲(chǔ)0~9各個(gè)數(shù)字出現(xiàn)的次數(shù),統(tǒng)計(jì)輸入n的各個(gè)位置上數(shù)字出現(xiàn)的次數(shù),當(dāng)某個(gè)數(shù)字出現(xiàn)2次或兩次以上,c進(jìn)行計(jì)數(shù)。]10.D [本題考查字典的應(yīng)用。遍歷文件myfile每行l(wèi)ine,取出班級(jí)代碼line[4∶6],將字典中該鍵對(duì)應(yīng)的值進(jìn)行計(jì)數(shù)操作。]11.C [本題考查隨機(jī)數(shù)模塊以及for循環(huán)。其中random.randint(0,4)產(chǎn)生一個(gè)0~4(包含)之間的隨機(jī)整數(shù),random.randint(0,1)產(chǎn)生隨機(jī)數(shù)0或者1,random.randint(0,1)*10產(chǎn)生隨機(jī)數(shù)0或者10,因此k的值為[0,1,2,3,4,10,11,12,13,14]中的任意一個(gè),for循環(huán)循環(huán)四次,每次用k作為位置去訪(fǎng)問(wèn)字符串s,'abcdefghijklmnopq'劃線(xiàn)字母為可能訪(fǎng)問(wèn)到并且輸出的字符,因此C選項(xiàng)中的f錯(cuò)誤,訪(fǎng)問(wèn)不到這個(gè)字符。]12.D [本題主要考查Python中循環(huán)和分支語(yǔ)句的綜合運(yùn)用,該程序語(yǔ)句的作用是當(dāng)i依次取[0,8]的值時(shí),若i為偶數(shù),則以i為索引的列表lst中的元素為[0,9]內(nèi)的隨機(jī)整數(shù),若i為奇數(shù),則以i為索引的列表lst中的元素為[0,5]內(nèi)的隨機(jī)整數(shù)的2倍加1(必定為奇數(shù)),故答案應(yīng)該選擇D。]13.(1)A (2)①input(″請(qǐng)輸入準(zhǔn)考證號(hào):″)?、趎um!=10解析 本題考查Python中字符串操作。(1)加框處代碼是以ticket字符串第4至5位為鍵,從字典中讀取對(duì)應(yīng)的數(shù)據(jù)。字符串切片時(shí)規(guī)則是取頭不取尾,A選項(xiàng):ticket[-6∶-4],截取的是倒數(shù)第6位和第5位,符合題意。而B(niǎo)選項(xiàng)中ticket[-6∶-5],只取了倒數(shù)第6位,不合題意。(2)①根據(jù)題意,首先要輸入評(píng)價(jià)報(bào)名序號(hào),即ticket字符串,此處為輸入語(yǔ)句。由于本題沒(méi)有給出程序運(yùn)行界面,輸入格式提示不明顯。②處用于判斷數(shù)字字符是否為10個(gè),即num?。?0。14.(1)20190715020307 (2)D(3)①D ②kmnum[i]/xknum[i]<0.6解析 (1)根據(jù)規(guī)則入學(xué)年份4位,班級(jí)2位,學(xué)號(hào)2位。(2)統(tǒng)計(jì)的是選科人數(shù)。(3)①中將獲取學(xué)科代碼,根據(jù)(1)中可知,前面學(xué)生信息占8位(0~7),學(xué)科代碼索引號(hào)從8開(kāi)始,每個(gè)學(xué)科占2位。②中將統(tǒng)計(jì)某個(gè)科目參與投票的學(xué)生達(dá)不到該科目選科總?cè)藬?shù)的60%的學(xué)科。15.(1)C (2)①isum==3或isum==len(x)②s=linelist[2] ③k>=m and a[i][1]?。絘[i-1][1]或k>=3 and a[i][1]!=a[i-1][1]?、躣=m-st解析 (1)投票565為廢票。選手6得票4,選手1203均得3票,在選手B、C、A、D隨機(jī)投2位。(2)①檢測(cè)投票有效條件是只能投3票,且不能出現(xiàn)重復(fù),遍歷選票x,并統(tǒng)計(jì)各張選票的選手的得票數(shù),若統(tǒng)計(jì)總選票數(shù)為3,說(shuō)明不重復(fù)。②選票中第3項(xiàng)為投票情況,提取第3項(xiàng)賦值給s。③④略。 展開(kāi)更多...... 收起↑ 資源預(yù)覽 縮略圖、資源來(lái)源于二一教育資源庫(kù)