資源簡介 非選擇題專項(三)二、非選擇題(本大題共3小題,其中第13題8分,第14題9分,第15題9分,共26分)13.某紅木加工廠為了防止粉塵爆炸,在木料車間搭建了粉塵監(jiān)測系統(tǒng)。該系統(tǒng)示意圖如圖 a 所示,網絡應用軟件的實現架構是 B/S 架構。粉塵爆炸有三個條件:一是有火源,二是氧氣濃度達到 21% ,三是粉塵濃度不能超過 20~60g/m3 。請回答下列問題:圖a(1)用戶要查詢該系統(tǒng)的實時數據,可以通過________查詢。(單選,填字母:A.客戶端 APP/ B.客戶端瀏覽器)(2)關于該系統(tǒng)中數據的傳輸,下列說法正確的是________。(多選,填字母) (注:全部選對得2分,選對但不全的得1分,不選或有選錯的得0分)A.只能由傳感器到智能終端 B.只能由智能終端到服務器C.只能由執(zhí)行器到智能終端 D.可以由客戶端到服務器,也可以由服務器到客戶端(3)在車間不同位置安裝了10個粉塵傳感器,用于找出最易發(fā)生粉塵爆炸的位置。現編寫程序,找出10個傳感器每小時(0~23時)粉塵濃度最大值出現的次數,并輸出次數最多的傳感器編號。若同一時段出現多個相同的最大值,則輸出最先出現的編號。部分Python程序代碼如下,輸出界面如圖b所示,請在劃線處填入合適的代碼。sensor=[″s1″,″s2″,″s3″,″s4″,″s5″,″s6″,″s7″,″s8″,″s9″,″s10″] #傳感器的編號dis= [[16,22, … … ,8],[ 10,25, … … ,25], … … ,[9, 14, … … , 14]]#dis 中存儲 10 個傳感器每小時的粉塵濃度數據,分別是 dis[0]—dis[9] 。如 dis[0]中的 [ 16,22, … … ,8],分別是傳感器s1在第 0 、1 、2… …23時采集到的粉塵濃度值。ds_count=[0]* 10 #存儲每個傳感器最大值出現的次數for i in range(0,24): max1=p1=0 for j in range(0, 10): if dis[j][i]>max1: max1=dis[j][i] p1=① ds_count[p1]+= 1print(″ 10 個傳感器最大值出現的次數為″,ds_count)max2=p2=0for i in range(0, 10): if ds_count[i]>max2: max2=ds_count[i] p2=iprint(″次數最多的是″,② ,″粉塵傳感器。″)(4)最易發(fā)生粉塵爆炸的位置找到后,需在此增加一個執(zhí)行器,用于防止粉塵爆炸,寫出 該執(zhí)行器的名稱及實現的功能______________________________________。14.某校高三首考后,匯總了學生7選3成績以及次考科目棄考情況(注意:1表示次考棄考,0表示參加次考),ckqk.xlsx文件部分數據如圖a所示,現要統(tǒng)計各班人均棄科目考門數和各科次考棄考比例,編寫如下Python程序。圖a請回答下列問題:(1)下列代碼讀取ckqk.xlsx文件,輸出各班每人平均棄考門數,輸出格式如圖b所示,則劃線處應填寫的代碼為________。(單選,填字母)A.groupby('班級').棄考門數.mean()B.groupby('班級',as index=False)['棄考門數'].mean()import pandas as pddf = pd.read_excel('ckqk.xlsx')df['棄考門數']=df[['棄考科目1','棄考科目2','棄考科目3']].sum(axis=1)dfg=df.________________print(dfg)(2)統(tǒng)計7選3每門科目選考人數和棄考人數,并計算各科目棄考比例,Python程序如下,請在劃線處填寫合適的代碼。courses ={}for i in df.index: for k in range(1, 4): subject =df.at[i,'科目%d'%k] if ① : courses[subject]=[1,0] #[1,0]表示當前為本科目第1個人,棄考人數初值置0 else: courses[subject][0]+=1 abandon=df.at[i,'棄考科目%d'%k] if abandon==1: ② dfs = pd.DataFrame(courses)dfs = dfs.Tdfs = dfs.rename(columns={0:'總人數',1:'棄考人數'})dfs['棄考比例']=round(dfs['棄考人數']/dfs['總人數']*100, 1)dfs =dfs.sort_values('棄考比例', ascending=False)(3)編寫代碼繪制如圖c所示圖表,則7先3科目中次考棄考比例超30%的有 ① 門。為實現該功能,請在下面劃線處填入合適代碼。圖cimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']plt.figure('chart',figsize=(6,4))plt.title('各科次考棄考比例分析')plt.bar(dfs.index,② , label='棄考比例')plt.ylabel('各科棄考百分比')plt.xlabel('7選3科目'); plt.legend(); plt.show()15.小陽的創(chuàng)意工坊,每天都會接到很多訂單,且每個訂單花費一個單位時間。其中order列表中存儲每個訂單的截止時間和利潤。假設他的工作是從0時刻開始算,訂單能在截止時間內(包括截止時間)完成,就會獲得利潤。他可以選擇完成當前時間之后的任意一個訂單,過了截止時間的訂單就會自動取消。(1)為了獲得較高利潤,小陽想到按時間優(yōu)先的方式來完成訂單。為此定義tsort(lst)函數,其中參數lst的每個元素包括截止時間和利潤。函數的功能是根據訂單截止時間升序排列。def tsort(lst): n=len(lst) for i in range(n-1): for j in range(n-i-1): if lst[j][0]>lst[j+1][0]: return lst調用該函數,若 lst=[[2,4],[1,4],[1,2],[3,5],[2,3],[3,6]],虛線框中的程序段執(zhí)行次數為 。(2)小陽發(fā)現按時間優(yōu)先設計的算法,獲得的利潤并不是最大的。在截止時間進行排序后的訂單基礎上對算法重新設計:依次對每個訂單進行處理,確保每個截止時間要完成的訂單利潤為當前訂單隊列和所有未超時訂單中利潤最高。部分python程序段如下,請在劃線處填入合適的代碼。order=[[2,5],[1,4],[1,3],[3,1],[3,2],[2,6]]n=len(order)ans=0 #ans 存放最大利潤之和que=[[] for i in range(n)] #利潤優(yōu)先訂單隊列head=tail=0order=tsort(order)def enque(tmp,tail,head): #數組模擬優(yōu)先隊列入隊 p=tail que[tail]=tmp tail+=1 for i in range(tail-1,head,-1): if que[i-1][1]>tmp[1]: que[i]=que[i-1] ① que[p]=tmp return tailfor i in range(n): if ② : tail=enque(order[i],tail,head) ans+=order[i][1] else: if order[i][1]>que[head][1]: ③ head+=1 tail=enque(order[i],tail,head) ans+=order[i][1]print(″利潤最大為″+str(ans))(3)小陽接到訂單 order=[[2,5],[1,4],[1,3],[3,1],[3,2],[2,6]],輸出結果為 。非選擇題專項(三)13.(1)B (2)AD (3)①j ②sensor[p2] (4)參考1:風扇,功能:當粉塵濃度過高時,打開風扇,吹散粉塵參考2:蜂鳴器,功能:當粉塵濃度值高時,發(fā)出警告(2分)(評分標準:寫的執(zhí)行器和功能要一一對應;寫出多項就以第一項為準;只寫出執(zhí)行器給1分,只寫出功能不給分。)解析 (1)B/S 架構通過瀏覽器查詢實時數據。(2)A選項傳感器只是采集數據,數據從傳感器到智能終端。B選項智能終端和服務器直接數據雙向傳輸。C選項數據是從智能終端到執(zhí)行器。D選項服務器接受客戶端請求數據,同時傳輸相應數據到客戶端。(3)①由語句ds_count[p1]+=1可得變量p1保存最大值的下標j。②變量p2對應的傳感器名稱sensor[p2]。(4)略。14.(1)B (2)①subject not in courses或not subject in courses ②course[subject][1] += 1(3)①5 ②dfs[″棄考比例″]解析 (1)根據圖b,分組方法gorupby的相應參數as_index=False。(2)①字典courses每對鍵值對的結構是:″科目″:[選科人數, 棄考人數],先判斷字典中是否存在相應的鍵,不存在,就要創(chuàng)建相應的鍵值對。 ② 如果某同學某科目有棄考,則要對應科目棄考人數累加:course[subject][1] += 1。(3)①略。 ② 根據圖C, 柱狀圖的數據分別是dfs.index, dfs.[″棄考比例″]。15.(1)3 (2)①p=i-1 ②order[i][0]>tail-h(huán)ead ③ans-= que[head][1] (3)利潤最大為13解析 (1)加框處語句為冒泡排序中數組的交換次數,程序實現升序排列,只需找到數據中的逆序對。[2,4]和[1,4],[1,2]是逆序對,[3,5]和[2,3]是逆序對。(2)①實現在有序的隊列que中插入新數據訂單tmp,從后往前遍歷,若大于tmp[1]的元素,則將其后移一位que[i]=que[i-1],同時更新變量p的值。②將沒有超時的訂單入隊,并計算隊列中所有訂單的總利潤。③在當前訂單和已經入隊的定單中刪除一個利潤最小的訂單。若當前訂單的利潤大于隊首訂單的利潤(隊首訂單利潤最低),刪除隊首訂單(出隊處理),然后將當前訂單入隊并插入到合適的位置,從而保證利潤總和最大。而ans已經存儲了之前入隊的訂單利潤和,因此當刪除隊首訂單時,需要減去原隊首訂單利潤,并加上當前入隊訂單利潤。(3)利潤最大為5+6+2。(共19張PPT)非選擇題專項(三)第四部分 考前題型特訓二、非選擇題(本大題共3小題,其中第13題8分,第14題9分,第15題9分,共26分)13.某紅木加工廠為了防止粉塵爆炸,在木料車間搭建了粉塵監(jiān)測系統(tǒng)。該系統(tǒng)示意圖如圖 a 所示,網絡應用軟件的實現架構是 B/S 架構。粉塵爆炸有三個條件:一是有火源,二是氧氣濃度達到 21% ,三是粉塵濃度不能超過 20~60g/m3 。請回答下列問題:圖a(1)用戶要查詢該系統(tǒng)的實時數據,可以通過 查詢。(單選,填字母:A.客戶端 APP/ B.客戶端瀏覽器)(2)關于該系統(tǒng)中數據的傳輸,下列說法正確的是 。(多選,填字母) (注:全部選對得2分,選對但不全的得1分,不選或有選錯的得0分)A.只能由傳感器到智能終端B.只能由智能終端到服務器C.只能由執(zhí)行器到智能終端D.可以由客戶端到服務器,也可以由服務器到客戶端(3)在車間不同位置安裝了10個粉塵傳感器,用于找出最易發(fā)生粉塵爆炸的位置。現編寫程序,找出10個傳感器每小時(0~23時)粉塵濃度最大值出現的次數,并輸出次數最多的傳感器編號。若同一時段出現多個相同的最大值,則輸出最先出現的編號。部分Python程序代碼如下,輸出界面如圖b所示,請在劃線處填入合適的代碼。(4)最易發(fā)生粉塵爆炸的位置找到后,需在此增加一個執(zhí)行器,用于防止粉塵爆炸,寫出 該執(zhí)行器的名稱及實現的功能______________________________________。答案 (1)B (2)AD (3)①j ②sensor[p2] (4)參考1:風扇,功能:當粉塵濃度過高時,打開風扇,吹散粉塵參考2:蜂鳴器,功能:當粉塵濃度值高時,發(fā)出警告(2分)(評分標準:寫的執(zhí)行器和功能要一一對應;寫出多項就以第一項為準;只寫出執(zhí)行器給1分,只寫出功能不給分。)解析 (1)B/S 架構通過瀏覽器查詢實時數據。(2)A選項傳感器只是采集數據,數據從傳感器到智能終端。B選項智能終端和服務器直接數據雙向傳輸。C選項數據是從智能終端到執(zhí)行器。D選項服務器接受客戶端請求數據,同時傳輸相應數據到客戶端。(3)①由語句ds_count[p1]+=1可得變量p1保存最大值的下標j。②變量p2對應的傳感器名稱sensor[p2]。(4)略。14.某校高三首考后,匯總了學生7選3成績以及次考科目棄考情況(注意:1表示次考棄考,0表示參加次考),ckqk.xlsx文件部分數據如圖a所示,現要統(tǒng)計各班人均棄科目考門數和各科次考棄考比例,編寫如下Python程序。圖a請回答下列問題:(1)下列代碼讀取ckqk.xlsx文件,輸出各班每人平均棄考門數,輸出格式如圖b所示,則劃線處應填寫的代碼為 。(單選,填字母)A.groupby('班級').棄考門數.mean()B.groupby('班級',as index=False)['棄考門數'].mean()import pandas as pddf = pd.read_excel('ckqk.xlsx')df['棄考門數']=df[['棄考科目1','棄考科目2','棄考科目3']].sum(axis=1)dfg=df. print(dfg)(3)編寫代碼繪制如圖c所示圖表,則7先3科目中次考棄考比例超30%的有① 門。為實現該功能,請在下面劃線處填入合適代碼。圖cimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']plt.figure('chart',figsize=(6,4))plt.title('各科次考棄考比例分析')plt.bar(dfs.index,② , label='棄考比例')plt.ylabel('各科棄考百分比')plt.xlabel('7選3科目'); plt.legend(); plt.show()答案 (1)B (2)①subject not in courses或not subject in courses ②course[subject][1] += 1 (3)①5 ②dfs[″棄考比例″]解析 (1)根據圖b,分組方法gorupby的相應參數as_index=False。(2)①字典courses每對鍵值對的結構是:″科目″:[選科人數, 棄考人數],先判斷字典中是否存在相應的鍵,不存在,就要創(chuàng)建相應的鍵值對。 ② 如果某同學某科目有棄考,則要對應科目棄考人數累加:course[subject][1] += 1。(3)①略。 ② 根據圖C, 柱狀圖的數據分別是dfs.index, dfs.[″棄考比例″]。15.小陽的創(chuàng)意工坊,每天都會接到很多訂單,且每個訂單花費一個單位時間。其中order列表中存儲每個訂單的截止時間和利潤。假設他的工作是從0時刻開始算,訂單能在截止時間內(包括截止時間)完成,就會獲得利潤。他可以選擇完成當前時間之后的任意一個訂單,過了截止時間的訂單就會自動取消。(1)為了獲得較高利潤,小陽想到按時間優(yōu)先的方式來完成訂單。為此定義tsort(lst)函數,其中參數lst的每個元素包括截止時間和利潤。函數的功能是根據訂單截止時間升序排列。def tsort(lst): n=len(lst) for i in range(n-1): for j in range(n-i-1):答案 (1)3 (2)①p=i-1 ②order[i][0]>tail-h(huán)ead ③ans-= que[head][1] (3)利潤最大為13解析 (1)加框處語句為冒泡排序中數組的交換次數,程序實現升序排列,只需找到數據中的逆序對。[2,4]和[1,4],[1,2]是逆序對,[3,5]和[2,3]是逆序對。(2)①實現在有序的隊列que中插入新數據訂單tmp,從后往前遍歷,若大于tmp[1]的元素,則將其后移一位que[i]=que[i-1],同時更新變量p的值。②將沒有超時的訂單入隊,并計算隊列中所有訂單的總利潤。③在當前訂單和已經入隊的定單中刪除一個利潤最小的訂單。若當前訂單的利潤大于隊首訂單的利潤(隊首訂單利潤最低),刪除隊首訂單(出隊處理),然后將當前訂單入隊并插入到合適的位置,從而保證利潤總和最大。而ans已經存儲了之前入隊的訂單利潤和,因此當刪除隊首訂單時,需要減去原隊首訂單利潤,并加上當前入隊訂單利潤。(3)利潤最大為5+6+2。 展開更多...... 收起↑ 資源列表 非選擇題專項(三).pptx 非選擇題專項(三)(含解析).docx 縮略圖、資源來源于二一教育資源庫