資源簡介 絕密★考試結束前2023學年第一學期浙江強基聯盟 10月統測高三 技術試題 (2023.10)第一部分 信息技術(共 50分)一、選擇題(本大題共 12小題,每小題 2分,共 24分。每小題列出的四個選項中,只有一個符合題目的要求,不選、多選、錯選均不得分)1.下列有關數據與信息的說法正確的是A.信息可用數字信號來表達,數字信號是以連續變化的物理量存在B.數據只能用數字或文字來表示C.同一信息對于不同的人群,其價值相同D.信息必須經過數字化之后才能被計算機進行存儲和處理【答案】D【解析】數據的表現形式有多種;模擬信號是以連續變化的物理量存在;同一信息對于不同的人群,其價值不同。2.關于人工智能,下列說法不.正.確.的是A.人工智能的發展在就業、安全、倫理等方面可能會帶來新的挑戰B.基于深度學習的人工智能,一般會構造包含若干層的神經網絡C.專家系統是基于數據驅動的人工智能方法實現的D.圖靈測試是測試機器是否具有智能的方法【答案】C【解析】專家系統是符號主義的代表。閱讀下列材料,回答第 3至 5題:某智慧食堂消費系統的部分功能:食堂內設有多臺自助點餐終端,顧客下單后,系統自動計算訂單金額,并提供相應的支付方式供顧客選擇。顧客完成支付,系統會將訂單信息發送至后廚。配餐完成后,系統會通知顧客前往取餐。系統還具備數據分析功能,通過對顧客的消費習慣、菜品銷售情況等數據進行分析,幫助食堂管理者了解顧客需求,優化菜品搭配和供應鏈管理。3.下列關于信息系統的組成描述,說法正確的是A.該信息系統中的用戶僅指食堂就餐的顧客B.使用該系統不需要網絡的支持C.觸摸屏自助點餐終端屬于該系統的硬件D.顧客點餐的數據保存在自助點餐終端中【答案】C【解析】點餐的數據保存在數據庫中。高三技術 試題卷 第 1 頁(共 10 頁)4.下列關于該信息系統的安全與防護,說法不.正.確.的是A.定期備份服務器中數據可提升信息系統數據的安全B.利用身份認證技術對該系統中不同的管理者設置不同的權限C.及時更新系統,修復漏洞,提高系統安全性,降低病毒感染風險D.設置防火墻,保護內部網絡免受非法用戶的入侵【答案】B【解析】訪問控制技術可以對該系統中不同的管理者設置不同的權限。5.關于該系統的功能,以下說法不.正.確.的是A.顧客輸入餐桌號、用餐人數、菜品等信息屬于數據收集和輸入功能B.顧客可查詢菜品、賬單等信息屬于數據查詢功能C.顯示或打印點餐數據和總消費金額屬于數據輸出功能D.根據顧客點餐數據,優化菜品搭配屬于數據存儲功能【答案】D【解析】根據顧客點餐數據,優化菜品搭配屬于數據加工處理功能。6.下列關于網絡系統的說法,不.正.確.的是A.網絡由計算機系統、數據通信系統以及網絡軟件和網絡協議組成B.計算機網絡按網絡的覆蓋范圍分為:局域網、城域網、廣域網C.HTTP協議用于管理被傳送內容的完整性D.網絡系統最基本的功能是數據通信【答案】C【解析】TCP協議管理被傳送內容的完整性。7.李華需要對處理好的照片進行編碼,照片由類型+編號兩部分構成。如果類型最多有 10種,每種類型的照片不超過 60 張。在盡可能減少編碼長度的情況下,使用該編碼方案保存的照片,以下說法正確的是A.用 4 位二進制數表示照片類型,6 位二進制數表示照片編號B.用 4 位二進制數表示照片類型,5 位二進制數表示照片編號C.用 3 位二進制數表示照片類型,6 位二進制數表示照片編號D.用 3 位二進制數表示照片類型,5 位二進制數表示照片編號【答案】A【解析】如果類型最多有 10 種,需要用 4 位二進制數表示照片類型;每種類型的照片不超過 60 張,需要用 6 位二進制數表示照片編號。8.已知某二叉樹的后序遍歷為 GDBEHFCA,中序遍歷為 DGBAECHF,下列說法正確的是A.該二叉樹中葉子節點有 3 個高三技術 試題卷 第 2 頁(共 10 頁)B.該二叉樹的前序遍歷為 ABDGCEHFC.該二叉樹是一棵完全二叉樹,樹的高度為 4D.該二叉樹中度為 1 的節點有 2 個【答案】A【解析】根據題意,可以構建出如下二叉樹。該二叉樹的前序遍歷為 ABDGCEFH。不是完全二叉樹,該二叉樹中度為 1 的節點有 3 個 。9.有如下程序段:a=[30,10,20,11,12,50]d=[0]*6 ; max=0 ; n=len(a)for i in range(1,n):for j in range(i):if a[j]d[i]+=1if d[i]>max:max=d[i]執行程序后,變量 max的值是A.2 B.3 C.4 D.5【答案】D【解析】d 數組存儲 i 號位前有多少個比 a[i]小的元素個數。max 為 d 數組中元素值的最大值。10.有如下程序段:def fun(k):if k==1 :return "1"elif k%2==0:return fun(k-1)+str(k%2)else:return str(k%2)+fun(k-1)執行語句 s=fun(5),則 s的值為高三技術 試題卷 第 3 頁(共 10 頁)A."00111" B."11010" C."11100" D."10110"【答案】C【解析】f(5)=’1’+f(4)=’1’+f(3)+’0’=’1’+’1’+f(2)+’0’=’1’+’1’+f(1)+’0’+’0’=’11100’11.有如下 Python程序段:s=input()stack=[0]* len(s);top=-1;presign='+';num=0for i in range(len(s)):if '0'<=s[i]<='9':num=num*10+int(s[i])if i==len(s)-1 or s[i] in '+-*/':if presign=='+':top+=1stack[top]=numelif presign=='-':top+=1stack[top]=-numelif presign=='*':top+=1stack[top]=stack[top-1]*numelse:top+=1stack[top]=stack[top-1]//numpresign=s[i]num=0print(sum(stack)) #sum函數對 stack中所有元素求和若輸入'5*4-6+10/3',程序運行后,輸出結果是A.32 B.24 C.17 D.8【答案】A【解析】根據前置運算符來進行棧內元素值的更新。stack 為[5, 20, -6, 10, 3, 0, 0, 0, 0, 0]12.有如下 Python程序段:a=[i for i in range(1,7)]b=[0]*6head,tail=0,0for i in range(1,7):cnt=1while cnta[tail]=a[head]head=(head+1)%6高三技術 試題卷 第 4 頁(共 10 頁)tail=(tail+1)%6cnt+=1b[a[head]-1]=ihead=(head+1)%6執行該程序段后,b[5]的值為A.2 B.3 C.4 D.5【答案】B【解析】a 數組不斷更新用來存放當前循環隊列 b 中未存放數據的下標位置。b 數組更新為:第一次 b[0]=1,第二次 b[2]=2,第三次 b[5]=3,第四次 b[1]=4,第五次 b[3]=5,第六次 b[4]=6二、非選擇題(本大題共 3 小題,第 13 小題 8分,第 14 小題 9分,第 15 小題 9分,共 26 分)13.小華開發了一個自動改卷系統,但是由于科目不同,沒有固定的題號模板,于是小華又編寫了 Python程序,能根據試卷答案自動輸出題號。如圖 13-1 為答案模板文件,小華在模板文件中錄入答案后保存為"卷 3.txt",如圖 13-2所示,每一行是一題或者一題中的一小題的答案,題號之間沒有跳躍。例如:圖 13-2中【1】和【5】之間有 4 行,A、B、C、D 為第 1 到 4 題的答案。程序運行結果如圖 13-3 所示。第 13題圖 1 第 13題圖 2 第 13題圖 3(1)實現上述功能的 Python 程序如下,若刪除圖 13-2 最后一行(【7】所在的行),對程序運行結果影響(填文字:有/沒有)。(2)請在劃線處填入合適的代碼。f=open("卷 3.txt",encoding="utf-8")line=f.readline().strip() #strip()用于刪除字符串尾部的"\n"換行符c=0preId=0QuestionInfo=[ ]while line:if line[0] == "【":curId = ①if curId - preId > 1:for i in range(preId, curId):QuestionInfo.append(str(i))elif c>0:for i in range(1, c + 1):QuestionInfo.append(str(preId) + "(" + str(i) + ")")高三技術 試題卷 第 5 頁(共 10 頁)c = 0②else:③line=f.readline().strip() #strip()用于刪除字符串尾部的"\n"換行符f.close()print("卷 3 題號劃分為:")for Id in QuestionInfo:print(Id)【答案】(1)有 2 分(2) ①int(line[1:-1]) 或 int(line[1:len(line)-1]) 或等價答案 2 分②preId=curId 2 分③c+=1 或 c=c+1 或等價答案 2 分【解析】(1)沒有最后一行就無法確定【6】后面是多個小題還是多個題。(2)①取出題號數字,要注意多位數的情況②迭代 preId 到當前題號,為下一次遇到新題號做準備③小題數量計數14.小華在公司實驗室搭建了一個農業大棚溫濕度監測系統,溫度上升到超過 30℃或溫度下降到低于 10℃時,智能終端連接的蜂鳴器發出警報。系統的硬件搭建方式是:服務器通過實驗室局域網的無線網絡連接智能終端,智能終端連接傳感器和執行器,傳感器采集的數據由智能終端經 IoT模塊發送到Web服務器。請回答下列問題:(1)若公司門口施工導致電信光纖被挖斷,會導致_____(單選,填字母:A.服務器接收不到智能終端發出的數據 / B.在實驗室使用局域網無法訪問Web服務器 / C.在家中無法訪問Web服務器)。(2)小華基于 Flask Web框架編寫服務器端的程序,部分代碼如下,視圖函數 index()的返回值由____接收(單選,填字母:A.瀏覽器 / B.智能終端 / C.智能終端和瀏覽器都可以)。(3)要獲取視圖函數 index()返回的頁面,應訪問的 URL是 http:// 。#導入 Falsk 框架模塊及其他相關模塊,創建 app實例,代碼略@app.route('/index')def index():#從數據庫讀取近 1 小時獲取的傳感器編號、溫度和濕度組成的二維列表 data,代碼略return render_template('idx.html',data=data)#服務器其他功能,代碼略if __name__ == '__main__':app.run(port=8000)(4)小華將該系統用于種植草莓,不同季節,不同農作物對環境的要求都有所差異。同一種農作物在不同的生長時期(苗期、現蕾期、盛花期、初果期、膨果期等)需要的生長環境也不同。請為小華提出合理建議,優化或增加系統功能:____________________________________________。(5)小華采用 excel表格記錄了 2個實驗組種植草莓的實驗數據,他希望繪制“淡雪現蕾期生長表現對比”柱形圖,部分數據(前 12行)如圖 14-1所示(時間格式為“年/月/日 時:分”) 。高三技術 試題卷 第 6 頁(共 10 頁)第 14題圖 1 第 14題圖 2df = pd.read_excel('strawberry.xlsx')name=input("請輸入品種")period=input("請輸入生長階段")df=df[df["品種"]==name]df= df[df["生長階段"]==period]df = df.groupby(" ① ", as_index = False).mean() #分組求平均值plt.title(name+period+"生長表現對比")plt.bar(df.實驗組, df.生長表現) #繪制柱形圖①請在程序中劃線處填入合適的代碼。②小華要輸出每個品種現蕾期生長階段生長表現最好時的溫度濕度,為此他需要修改程序代碼,以下操作恰當的是 (多選,填字母)。(注:全部選對的得 2分,選對但不全的得 1分,不選或有選錯的得 0 分)A.篩選品種B.篩選生長階段C.根據生長階段分組,每組按生長表現降序排序,輸出每組第一行D.根據品種分組,每組按生長表現降序排序,輸出每組第一行【答案】(1)C 1 分(2)A 1 分(3)127.0.0.1:8000/index 1 分(4) 建立不同作物在不同時期的閾值表,使不同時期的報警閾值不同等合理建議 2 分要求:回答內容題目描述的內容相關且合理(5) ①實驗組 2 分②BD 2 分【解析】(1)光纖是外網,只影響實驗室內外之間的通信(2)render_template 函數是利用提供的網頁模板文件生成純 HTML 文件,然后返回到用戶瀏覽器(3)考察了默認的 IP 地址以及人為規定的 port=8000(4)略。(5)①根據 bar 的圖以及 plt.bar 代碼可以看出②每個品種都要分析,所以品種不能被篩選掉,A 錯誤。規定了要對現蕾期進行研究,所以要篩選生長階段,B 正確。按生長階段分組后,每組有多個品種,只留第一行肯定錯誤。C 錯誤。高三技術 試題卷 第 7 頁(共 10 頁)D 項是要搭配 B 選項,先篩選出現蕾期的數據,再按品種分組,排序后每個品種現蕾期表現最好的溫度濕度都排在了每組的第一行。D 正確。15.某咖啡店,店里共有 4種咖啡,類型編號為 0到 3,每次只能制作一種類型的咖啡,咖啡都是批量現做(制作過程中不能更改數量或類型)。店員需按照訂單的先后順序完成訂單(即當前訂單完成之前不能換訂單),已經接到的訂單中的同一類型咖啡可以一起制作(假設咖啡機能同時制作的數量上限足夠高),且不需要額外增加時間(即只需制作一杯的時間)。如圖 15-1為每個訂單的咖啡數量,初始“訂單 0”中[6,0,2,4]表示 0到 3號咖啡的購買數量。此時店員先做數量最多的 6份 0號咖啡,1分鐘后接到新訂單[1,18,0,2],之后每分鐘都會接到 1個新訂單,這些訂單都計入每種咖啡的待做數量。3 分鐘后這 6份 0號咖啡制作完成,程序會在“訂單 0”中選擇還沒制作的且待做數量最多的(數量相同時先后不作要求)咖啡作為下一次要制作的咖啡。編寫 Python程序,每次制作完一種咖啡,輸出接下來要制作的咖啡,運行界面如圖 15-2:第 15題圖 1 第 15題圖 2(1)由圖 15-1 的訂單信息,3 分鐘后"咖啡 0"制作完成,那么圖 15-2中(1)處店員接下來要做的咖啡是咖啡 。(2)根據待制作的咖啡數量,對鏈表初始化,生成降序鏈表 lnk,則代碼運行后 y的值為 。def sort():for i in range(3):for j in range(3,i,-1):if waitlist[index[j]][1] > waitlist[index[j - 1]][1]:index[j], index[j - 1] = index[j - 1], index[j]if waitlist[index[j]][1]==0:return jreturn 4waitlist=[[3,6],[4,0],[1,2],[2,4]] # "咖啡 0"的批量制作時間為 3 分鐘,目前待做量為 6,以此類推q=[[6, 0, 2, 4], [1, 18, 0, 2], [2, 1, 2, 1], [0, 1, 0, 5],…… #如圖 15-1,代碼略#q保存訂單流,第一個訂單[6,0,2,4]作為初始訂單已計入 waitlistindex=[0,1,2,3]y=sort()lnk=[-1]*4for i in range(y-1): #創建降序鏈表lnk[index[i]]=index[i+1]p=lnk_h=index[0]print("請制作咖啡"+str(p))waitlist[p][1]=0 #咖啡 p進入制作,待做數量回 0(3)請在劃線處填入合適的代碼。def enqueue(order): #order是一個訂單,例如[1,2,0,3]global lnk_hflag.append([0,0,0,0]) #新訂單 4種咖啡未完成高三技術 試題卷 第 8 頁(共 10 頁)for i in range(4):f = Trueif waitlist[i][1]==0: f=Falseif order[i]==0: continuewaitlist[i][1]+=order[i] #將訂單 order中的咖啡 i累加到待制作數量中cur=lnk_hwhile cur!=-1 and waitlist[i][1]pr,cur=cur,lnk[cur]if cur!=i:tmp = lnk[i]lnk[i]=curif cur==lnk_h:lnk_h=ielse:lnk[pr]=iif f:while cur!=i:pr,cur=cur,lnk[cur]①def nextfood(qhead,qtail): #找到下一次要做的咖啡global lnk_hcur=lnk_hwhile ② :pr,cur=cur,lnk[cur]if cur==lnk_h:lnk_h=lnk[lnk_h]elif cur==-1:return -1else:lnk[pr]=lnk[cur]waitlist[cur][1]=0for i in range( ③ ):if q[i][cur]!=0: flag[i][cur] = 1return curqhead,qtail=0,1order=q[qhead]flag=[[1,0,0,0]] #flag[i][j]=1 標記"訂單 i"中的"咖啡 j"已經在做或已經做完。lnk_h, time =lnk[lnk_h],0while True:time=(time+1)%waitlist[p][0]if qtailenqueue(q[qtail]) #接新訂單qtail+=1if time==0:高三技術 試題卷 第 9 頁(共 10 頁)while qheadqhead+=1order=q[qhead]p=nextfood(qhead,qtail)if p == -1 : breakprint("請制作咖啡"+str(p))【答案】(1)3 1 分(2)3 2 分(3) ①lnk[pr]=tmp 或等價答案 2 分②cur!=-1 and (q[qhead][cur]==0 or flag[qhead][cur]==1) 或等價答案 2 分③qhead, qtail 或 0,tail 或 qtail 或等價答案 2 分range 的第一個參數只要是 0 到 qhead 之間,都可以給分【解析】(1)初始訂單[6,0,2,4]的 6 杯咖啡 0 一開始就已經在做了, 所以各咖啡待做的數量是[0,0,2,4],在咖啡 0制作當中,接到了 3 個訂單,待做數量變成了[3,20,4,12],此時咖啡 1 最多,但是當前還在完成訂單 0 的過程中,由訂單 0 中的[6,0,2,4]可知,咖啡 1 數量為 0,所以不作為下一種要做的咖啡,而是選擇了 12 份咖啡 3.本質上是按照待做數量看成一個降序鏈表,然后盡可能取鏈表頭部,但是要經過篩選,篩選條件就是該咖啡在當前訂單中,且還沒被做過。(2)通過索引排序得到了使 waitlist 能夠按照待做數量降序排序。lnk 是個純指針鏈表。在索引排序的過程中,從后往前比,把大的數運到前面,如果遇到最大的數為 0,則結束排序,return 不含 0 的節點個數,也就是說數量為 0 的咖啡不會出現在 lnk 鏈表里,也是為后面 nextfood 做鋪墊,到待制作咖啡對應的鏈表為空的時候,整個程序也就結束了。(3)①前面有一句 tmp=lnk[i],也就是備份 i 的后繼節點,因為新訂單使咖啡 i 數量變多,要重新維護鏈表使它仍然降序,這里就考慮了幾種情況:情況一:是咖啡 i 本身不在鏈表里,那么只要找到位置插入節點即可,對應的就是 f==False的情況情況二:是咖啡 i 本身在鏈表里,且位置發生了變化,那就要從頭開始找到新的插入位置, 然后插入咖啡i 這個節點,插入后繼續向后查找并刪除鏈表中原來的咖啡 i 節點情況三:咖啡 i 已經在鏈表里,且其數量增加后在鏈表中的位置不需要調整。②要找到下一種要做的咖啡,由于鏈表是降序的,從數量多的開始遍歷,這里實際上就是考察了對節點的篩選,要求當前訂單 q[qhead]中該咖啡數量不為 0,且還沒被做過,但是既然是查找算法,就要考慮邊界保護的問題,所以 cur!=-1 也是必須的,如果當前鏈表已經是空鏈表,說明待做咖啡已經沒有了,所有訂單都完成了。③將當前訂單到已經接到的訂單中所有的咖啡 cur(也就是下一件馬上要讓店員做的咖啡)標記為 1.意思就是要開始做了。那么有些同學寫 range(0,tail),這樣會重復標記之前已經標記過 1 的那些已經完成的訂單,程序也能正常運行,只是效率不高。考慮到能想到這一步并做出來已經很不容易,程序能運行就給分。高三技術 試題卷 第 10 頁(共 10 頁) 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫