資源簡介 中小學教育資源及組卷應用平臺3.3計算機程序與程序設計語言(2)-粵教版(2019)高中信息技術必修一練習學校:___________姓名:___________班級:___________考號:___________一、選擇題1.計算機能直接識別和執行的的語言是()A.匯編語言B.機器語言C.高級語言D.C語言【答案】B【解析】【詳解】本題考查的是計算機語言。計算機語言有:機器語言、匯編語言、高級語言。機器語言能被計算機直接識別和執行。匯編語言、高級語言需要翻譯成機器語言才能執行。故選項B正確。【版權所有:21教育】2.現有流程圖如下,關于流程圖的說法正確的是()A.運行后,輸入語句一定會被執行三次B.程序運行后,輸入語句至少會被執行一次C.該程序的循環次數為3次D.第一次輸入guess的值為8,則程序運行結果為“對不起,你失敗了!”【答案】B【解析】【分析】【詳解】本題考查流程圖相關知識點輸入語句執行次數,取決于cout值,不一定為三次。故選項A說法錯誤程序是要與guess值進行比較,故輸入語句至少會被執行一次。故本題選B選項該程序的循環次數受cout制約,有多種可能。故選項C說法錯誤第一次輸入guess的值為8,則程序運行結果為“對不起,您猜錯了!”。故選項D說法錯誤3.計算機能夠直接識別和執行的程序設計語言是()。A.低級語言B.匯編語言C.機器語言D.高級語言【答案】C【解析】【詳解】本題考查的是程序語言。程序設計語言可以分為:機器語言、匯編語言(低級語言)、高級語言。機器語言是由二進制0、1代碼指令構成,能夠被計算機直接識別和執行。匯編語言指令是機器指令的符號化,與機器指令存在著直接的對應關系。高級語言是面向用戶的、基本上獨立于計算機種類和結構的語言。故選項C正確。4.x和n都是正整數且x<=n,下列選項中,與語句“x=xModn+1”功能相同的是()21世紀教育網版權所有A.x=(x+1)ModnB.x=x+1Ifx=nThenx=1C.x=x+1Ifx=n+1Thenx=1D.x=x+1Ifx=n+1Thenx=0【答案】C【解析】【詳解】本題考查賦值語句,VB運算。題干x=xModn+1,有兩種情況。(1)x5.下面程序執行結束,文本框Text1中顯示()PrivateSubForm_Click()a="123":b="456"c=Val(a)+Val(b)Text1.Text=str(c\100)EndSubA.123B.3C.5D.579【答案】C【解析】【分析】【詳解】本題主要考查VB程序設計的相關知識。a="123"是將字符串型數據”123”賦值給a,b="456"將字符串型數據”456”賦值給b,c=val(a)+val(b)是分別把a和b的值轉換為數值型,然后相加,此時c=579,Text1.Text=str(c\100)是將c整除100后,轉換為字符類型賦值給Text1.Text,因此,文本框Text1中顯示5,故C選項正確。二、簡答題6.高級語言的編譯過程和解釋過程各有什么優勢和不足。【答案】(1)編譯型語言優點是程序執行速度快,程序執行效率高,同等條件下對系統要求較低。不足之處是跨平臺性差些。(2)解釋型語言優點是不同系統平臺間的兼容性高。不足之處是程序執行效率比較低。【解析】【詳解】本題考查的是高級語言的編譯與解釋的區別。(1)編譯型語言優點是程序執行速度快,程序執行效率高,同等條件下對系統要求較低。不足之處是跨平臺性差些。(2)解釋型語言優點是不同系統平臺間的兼容性高。不足之處是程序執行效率比較低。7.程序設計語言有哪些,分別具備什么特點。【答案】(1)機器語言:是由“0”和“1”這樣的二進制代碼指令組來表示。每一條機器指令包含兩個主要部分:操作(指出計算機應做什么)和被操作的對象(指出處理的數據或它的地址),計算機能直接識別和執行。21cnjy.com(2)匯編語言:使用了一種類似英文縮略詞且帶有助記性符號的語言,來替代一個特定的指令的二進制串,每條指令都和一條機器指令相對應。需要一個專門的語言翻譯器,負責將程序中的每條語句都翻譯成用二進制數表示的機器語言。(3)高級語言:接近于數學語言或人的自然語言,并且不再過度地倚賴某種特定的機器或環境,必須經過翻譯器將其翻譯成機器語言。www-2-1-cnjy-com【解析】【分析】【詳解】本題考查程序設計語言及其特點相關知識點(1)機器語言:是由“0”和“1”這樣的二進制代碼指令組來表示。每一條機器指令包含兩個主要部分:操作(指出計算機應做什么)和被操作的對象(指出處理的數據或它的地址),計算機能直接識別和執行。2·1·c·n·j·y(2)匯編語言:使用了一種類似英文縮略詞且帶有助記性符號的語言,來替代一個特定的指令的二進制串,每條指令都和一條機器指令相對應。需要一個專門的語言翻譯器,負責將程序中的每條語句都翻譯成用二進制數表示的機器語言。(3)高級語言:接近于數學語言或人的自然語言,并且不再過度地倚賴某種特定的機器或環境,必須經過翻譯器將其翻譯成機器語言。三、填空題8.以下流程圖描述的算法,執行結果是_______。【答案】@@@@########【解析】【分析】【詳解】本題考查的知識點是程序的識讀。初始值t=0,n=1,執行輸出“@@@@”語句,再執行判斷n>2表達式,不符合該條件表達式,故執行輸出“####”,再執行n=n+1語句,即n=2,再執行判斷t=1表達式,不符合該條件表達式,故執行判斷n>2表達式,不符合該條件表達式,故執行輸出“####”,再執行n=n+1語句,即n=3,再執行判斷t=1表達式,不符合該條件表達式,故執行判斷n>2表達式,符合該條件表達式,故執行輸出“”,再執行t=1語句,再執行n=n+1語句,即n=4;再執行判斷t=1表達式,符合該條件表達式,故程序結束。21cnjycom所以流程圖的執行結果為:@@@@########。故答案為@@@@########。9.編寫VB程序,實現如下功能:單擊“計算”按鈕,在列表框List1中產生10個[1,99]隨機數,文本框Text1顯示相鄰兩個數字之間相差最大的差值。運行界面如圖所示。(1)窗體上,“計算”按鈕的對象名是_____。(2)實現上述功能的VB程序如下,請在劃線處填入合適的代碼。Privatesubcmd1_click()Dimb(1to10)asintegerDimIasinteger,maxasinteger,aasinteger,casintegerMax=0Fori=1to10RandomizeA=int(rnd99)+1_______________________List1.additemstr(a)NextiFori=2to10C=________________Ifc>maxthen__________________NextI____________________________Endsub【答案】Cmd1b(i)=aabs(b(i﹣1)﹣b(i))max=ctext2.text=str(max)【解析】【詳解】(1)Cmd1_ClickCmd1表示對象名稱,Click表示它是一個點擊事件,“計算”按鈕的對象名是Cmd1;(2)①該處獲取的a是一個隨機數,需要將a存儲在b(i)中,所以該處為:b(i)=a;②次數將所有的隨機數逐個比較,c表示臨時生成的最大差值,所以該處為:abs(b(i﹣1)﹣b(i));③根據條件Ifc>max,可以看出如果差值比最大差值大,改變最大差值max的值為c,所以該處為max=c,④結果在文本框中輸出,所有答案為text2.text=str(max),此題同等類似答案都可,不唯一。四、判斷題10.需求分析之后、程序設計之前,需要對系統進行總體設計和詳細設計。總體設計就是在需求分析的基礎上對模型細化、分解任務,明確程序由哪些模塊組成。(____)【答案】對【解析】【詳解】本題考查的是程序設計。需求分析之后、程序設計之前,需要對系統進行總體設計和詳細設計。總體設計就是在需求分析的基礎上對模型細化、分解任務,明確程序由哪些模塊組成。題干說法正確。五、操作題11.某數據解密算法描述如下:(1)在輸入的數字字符串中依次提取有效的密文,有效的密文的特點:①是一組連續的,都小于5的三位數字串;②每個位置上的數字不能被重復提取;(2)對有效密文進行解密的過程:將密文作為一個五進制數轉換為對應的十進制數值,根據ASCII字符的十進制編碼表,得出對應的明文字符(提示:空格符所對應的ASCII碼值為十進制數32,小寫字母“z”所對應的ASCII碼值為十進制數122).例如,密文242轉換成十進制數為72,對應的明文字符為大寫字母“H”。程序運行界面如下圖所示,在文本框Text1中輸入密文,單擊“解密”按鈕,在文本框Text2中輸出解密后的明文密碼。(1)若輸入的密文為“841497230235”,則對應的明文是__________。(2)實現上述功能的VB代碼如下,劃線處的語句有錯,應改為__________________。(3)請在劃線處填入合適的代碼.'以下代碼是將有效密文數字轉換為十進制數的函數Functionconv(pAsString)AsIntegerDimkAsInteger,qAsString,iAsIntegerk=0:g=""Fori=1To3q=Mid(p,i,1)________________Nexticonv=kEndFunctionPrivateSubCommand1_Click()DimstAsString,pAsString,resAsStringDimc1AsString,c2AsString,c3AsStringDimiAsInteger,dAsInteger,nAsIntegerst=Text1.Text:n=Len(st)i=1:res=""DoWhilei<=n–2'提取有效密文,并進行轉換c1=Mid(st,i,1):c2=Mid(st,i+1,1):c3=Mid(st,i+2,1)【來源:21cnjy.com】Ifc1<"5"Orc2<"5"Orc3<"5"Then______________d=conv(p)Ifd>=32Andd<=122Thenres=res+Chr(d)______________Elsei=i+1EndIfLoopText2.Text=resEndSub【答案】mAc1<"5"Andc2<"5"Andc3<"5"或其它等價答案①k=k5+Val(q)或k=k+Val(q)5^(3-i)或其它等價答案②p=Mid(st,i,3)③i=i+3【解析】【詳解】本題考查VB綜合能力。(1)若輸入的密文為“841497230235”,可知,414轉為m,230轉為A。(2)改錯語句條件是同時小于5,故改為c1<“5”Andc2<“5”Andc3<“5”(3)代碼第一空,將有效密文數字轉換為十進制數的函數,采用位權相加,故填入k=k5+Val(q)。(4)代碼第二空,將連續的三個字符取出,填入p=Mid(st,i,3)。(5)第三空,繼續往下判斷,故填入i=i+3。21教育名師原創作品12.如果一個正整數從左到右讀與從右到左讀是一樣的,就稱它為回文式數(簡稱回數),如圖321。“回數猜想”的主要思想是,對任意正整數,若它不是回數,則按下列算法即可獲得一個回數:(1)把該整數的數字順序顛倒,求得該數的逆序數;(2)將該整數和其對應的逆序數相加;(3)若相加結果不是回數,則將結果作為新的整數,返回步驟(1)。小林按照上述算法,設計了驗證回數猜想的VB程序(猜想次數不超過10次),程序功能如下:在文本框Text1中輸入一個正整數,單擊“驗證”按鈕(Command1),獲取文本框Text1中的數,當該數不是回數時,采用回數猜想的方法進行驗證,并在列表框List1中輸出每次驗證的過程,若驗證成功或驗證次數超過10次,則停止驗證,最后在列表框List1中輸出驗證結果。程序運行效果如圖所示。實現上述功能的VB程序如下:PrivateSubCommand1_Click()DimtAsString,aAsLong,bAsLongDimcountAsInteger'count用于存儲回數猜想的驗證次數t=Text1.Textcount=1DoWhileCheck(t)=FalseAndcount<=10a=Val(t)①c=a+bList1.AddItemStr(a)&"+"&Str(b)&"="&Str(c)count=count+1t=cLoopIfCheck(t)ThenList1.AddItem"驗證成功!"ElseList1.AddItem"10次內未驗證成功!"EndIfEndSub'自定義函數TurnFunctionTurn(xAsString)AsLongDimsAsString,iAsIntegers=""Fori=Len(x)To1Step-1s=s&Mid(x,i,1)NextiTurn=②EndFunction'自定義函數Check,檢查x是否為回文數FunctionCheck(xAsString)AsBooleanDimiAsIntegerCheck=TrueFori=1ToLen(x)\2Step1IfMid(x,i,1)<>③ThenCheck=Falsemid(x,len(x)+1-i,1)NextiEndFunction(1)程序代碼中,自定義函數Turn(x)的功能是(2)請在劃線處填入合適代碼。【答案】(1)求x的逆序數(2)①b=turn(t)②Val(s)③mid(x,len(x)+1-i,1)【解析】【分析】【詳解】本題主要考查VB程序的執行與調試。(1)函數Turn(x)通過for循環從后開始截取數實現求x的逆序數(2)①將文本框中的原始數賦值給a,將t的逆序數賦值給b,然后將兩數相加,故此處填b=turn(t)②最后將逆序數s的值轉為整型賦值給Val(s)③判斷是不是回文數,截取兩端的數進行比較是不是相等,故此處填mid(x,len(x)+1-i,1)。13.某高一班主任需要對剛入學的新生排座位,教室座位按6排8列進行擺放(班級學生數不超過48個),并且要求每列的學生按身高從低到高排列。編寫VB程序,實現教室排座位功能:單擊“讀取數據”按鈕Command1,從數據庫中讀取該班所有同學的班內學號(兩位數字)和身高數據(3位數字),并在列表框List1中按8個一行顯示;單擊“排座位”按鈕Command2,對每列數據按身高從小到大排列,并顯示在列表框List2中。程序運行界面如圖所示,請回答下列問題:(1)要使窗體的標題欄文字顯示為“排座位”,則應設置窗體的______屬性(單選,填字母:A.Text/B.Name/C.Caption)。(2)程序中加框處代碼有錯,請改正。________(3)實現上述功能的VB程序如下,請在劃線處填入合適的代碼。Constm=6Constn=8Dima(1Tomn)AsString'存儲學號Dimb(1Tomn)AsInteger'存儲身高DimnumAsInteger'班級總人數PrivateSubCommand1_Click()'從數據庫中讀取該班的學號和身高數據存入數組a和數組b,班級人數存入變量num,代碼略.'以下代碼為在列表框List1中輸出數據s="":List1.AddItem"(講臺)"Fori=1Tonum=s=s&Str(b(i))&"["&a(i)&"]"Ifi=mThenList1.AddItems:s=""EndIfNextiIfs<>""ThenList1.AddItemsEndSubPrivateSubCommand2_Click()DimiAsInteger,jAsInteger,iminAsIntegerwww.21-cn-jy.comDimt1AsString,t2AsInteger,sAsStringList2.AddItem"(講臺)"Fori=1To①_______s=""Forj=(i-1)n+1To(i-1)n+nIfj<=numThen②__________Ifimin<>jThent1=a(imin):a(imin)=a(j):a(j)=t1t2=b(imin):b(imin)=b(j):b(j)=t2EndIfs=s&Str(b(j))&"["&a(j)&"]"EndIfNextjList2.AddItemsNextiEndSubFunctionfPos(pAsInteger)AsIntegerDimiAsInteger,jAsInteger,kAsInteger21教育網k=pFori=③_____________Ifb(i)<b(k)Thenk=iNextifPos=kEndFunction【答案】CIModn=0或i/n=i\n或i/n=int(i/n)(注此處n可以用8替換.)其他等價答案①(num-1)\n+1或其他等價答案imin=fPos(j)p+nTonumStepn或其他等價答案2-1-c-n-j-y【解析】【分析】【詳解】本題主要考查VB程序的執行與調試。(1)要使窗體的標題欄文字顯示為“排座位”,則應設置窗體的Caption屬性,故本題選C選項。(2)輸出數據為每8個數據一行,此處條件應為I是8(或N)的整數倍。所以此處要寫的表達式意義為i能被n整除,故應改為iModn=0,或i/n=i\n或i/n=int(i/n),這里n可以用8代替。故此處填iModn=0或i/n=i\n或i/n=int(i/n)。(3)①根據班級實際人數num計算共幾排,例如num<8為1排,8<=num<=16為2排,我們要的表達式要實現這個目標,表達式肯定要用到整除運算,如果用num直接整除8,num<8時則為0排。要實現有1排則表達式應為num\8+1。當num=8時代入這個表達式,如現成了兩排與事實不符,為了讓num=8時也是1排,則表達式中num需要減1。(num-1)\n+1,經過驗證此表達式條例num變化實現。故此處填(num-1)\n+1。④根據Forj=(i-1)n+1To(i-1)n+n可知,該循環是生成第i行數據,比如當i等于2時,應選擇從第2行到最后一行中該列身高最小值所在的位置,然后將該位置的數據和第j個元素交換。故該處為代碼為fPos函數的調用,該函數返回第j個學生所在的這一列且行號大于等于i的身高最小的元素位置。故此處填imin=fPos(j)。⑤該自定義函數內的循環體功能是尋找第p個元素所在的這一列中最小身高所在的位置(但不包含第p個元素之前的身高數據)。因此該處所填代碼為p+nTonumStepn。14.某校老師編寫一個VB程序分析學生技術成績,功能如下:在列表框List1中顯示原始學生信息,單擊“分析”按鈕Command1,統計各班參加考試人數、高分(97及以上)人數和均分,并按班級均分從大到小顯示在列表框List2中,程序運行界面如圖所示。實現上述功能的VB程序段如下,請回答下列問題:(1)學生成績存儲在數據表中,其字段名是(2)請在劃線處填入合適的代碼。DimrecCountAsInteger'存放學生人數DimsClass(1To1000)AsInteger'存放學生班級DimsName(1To1000)AsString'存放學生姓名DimsScore(1To1000)AsInteger'存放學生成績PrivateSubCommand1_Click()DimiAsInteger,tAsInteger,ncAsIntegerDima(1To20)AsInteger,b(1To20)AsInteger'分別存放班級高分人數和班級參加考試人數21·cn·jy·comDimsum(1To20)AsInteger,ave(1To20)AsSingle'分別存放班級總分和班級均分Dimc(1To20)AsIntegerFori=1TorecCount①b(t)=b(t)+1Ifb(t)=1Thennc=nc+1②EndIfIfsScore(i)>=97Thena(t)=a(t)+1sum(t)=sum(t)+sScore(i)NextiFori=1Toncave(c(i))=Int(sum(c(i))/b(c(i))100+0.5)/10021·世紀教育網NextiFori=1Tonc-1Forj=ncToi+1Step-1If③Thent=c(j):c(j)=c(j-1):c(j-1)=tEndIfNextjNextiFori=1ToncList2.AddItemStr(c(i))+""+Str(b(c(i)))+""+Str(a(c(i)))+""+Str(ave(c(i)))NextiEndSubPrivateSubForm_Load()'鏈接數據庫,代碼略recCount=0DoWhileNotrs.EOFrecCount=recCount+1sClass(recCount)=rs.Fields("class")sName(recCount)=rs.Fields("name")sScore(recCount)=rs.Fields("score")rs.MoveNextLoop'將數據顯示在列表框List1中,代碼略EndSub【答案】(1)score(2)①t=sClass(i)②c(nc)=t或其他相同答案③ave(c(j))>ave(c(j-1))【來源:21·世紀·教育·網】【解析】【分析】【詳解】本題考查VB綜合能力,VB連接數據庫等(1)根據sScore(recCount)=rs.Fields(score)這條代碼可知,學生成績存儲在數據表中,其字段名是score。(2)代碼第一空,聯系上下代碼,可知此處關于t的賦值,t代表班級,故t=sClass(i)是該空答案。(3)代碼第二空是c數組賦值,c數組中存放的是按順尋訪問到的是第幾個班級,故c(nc)=t是該空答案。(4)第三空是冒泡排序內循環,根據平均分降序排序,故填入ave(c(j))>ave(c(j-1))。【出處:21教育名師】15.某地區中考錄取采用“平行志愿”的投檔錄取方式,該錄取方式的具體規則為:①根據考生的考試總分從高到低依次對考生的填報志愿進行投檔;②每位考生可填三個志愿學校,輪到該考生投檔時依次對其三個志愿進行投檔,若第一志愿學校還有剩余招生名額,就被第一志愿學校錄取,結束該考生的投檔,否則需對其后續志愿學校進行同樣的投檔操作,若該考生所填的所有志愿學校都沒有剩余招生名額,則該考生無法被任何學校錄取,該考生的投檔結束。21cnjycom③當所有學校都已完成計劃招生數時,停止投檔,錄取結束。編寫VB程序,實現上述“平行志愿”投檔錄取的功能,單擊“讀取考生數據”按鈕Command1,則從數據庫中獲取所有考生的成績、志愿信息以及每個學校的計劃招生數,單擊“投檔錄取”按鈕Command2,開始進行投檔錄取,并在列表框List1中輸出每個學校的計劃招生數、實際招生數、錄取分數線和最低錄取名次信息,程序運行界面如圖所示。請回答下列問題:(1)若A校計劃招生520人,B校計劃招生480人,C校計劃招生540人,某同學的考分名次為490名,其三個志愿學校依次為B校、A校、C校,且已知同名次的人數最多有30人,則該同學不可能被哪所學校錄取:______。(2)實現上述功能的VB程序如下,請在劃線處填入合適的代碼。ConstschCnt=5'學校數量ConststuMaxCnt=10000'最多考生人數DimzsCnt(1ToschCnt)AsInteger'存儲每個學校的計劃招生人數DimzsCnt2(1ToschCnt)AsInteger'存儲每個學校的實際招生人數Dima(1TostuMaxCnt)AsSingle'存儲考生總分成績Dimb(1TostuMaxCnt3)AsInteger'存儲考試志愿,每個考生有3個志愿,每個志愿為學校編號DimstuCntAsInteger'實際考生總人數PrivateSubCommand1_Click()'從數據庫中讀取所有考生的總分和志愿信息存儲到數組a和數組b中(第1個考生總分存儲到a(1),第1個考生的3個志愿分別存儲到b(1)、b(2)、b(3)中,…),然后按總分對數組a和數組b進行降序排序,總分相同時,需根據各科成績決定排序先后,但名次相同,考生總人數存儲到stuCnt變量中;'讀取每個學校的計劃招生數,存儲到數組zsCnt中;'以上功能代碼略EndSubPrivateSubCommand2_Click()DimschAsInteger'學校代碼,用1~5中的一個數字表示某學校代碼DimiAsInteger,jAsInteger,finishedAsInteger,prevScoreAsSingleDimstuMc(1TostuMaxCnt)AsIntegerDimMinScore(1ToschCnt)AsSingleDimMinMc(1ToschCnt)AsIntegerfinished=0:i=1prevScore=-1DoWhile①______Ifa(i)=prevScoreThenstuMc(i)=stuMc(i-1)Else②____________EndIfprevScore=a(i)Forj=1To3③________IfzsCnt2(sch)<zsCnt(sch)ThenzsCnt2(sch)=zsCnt2(sch)+1MinScore(sch)=a(i)MinMc(sch)=stuMc(i)ExitForEndIfNextjfinished=0Forj=1ToschCntIfzsCnt2(j)=zsCnt(j)Thenfinished=finished+1EndIfNextji=i+1Loop'在List1中輸出每所學校的代碼、計劃招生數、實際招生數、錄取分數線、最低錄取名次,代碼略EndSub【答案】C校i<=stuCntAndfinishedstuMc(i)=isch=b((i-1)3+j)【解析】【詳解】本題主要考查VB程序的執行與調試。①某同學的考分名次為490名,且已知同名次的人數最多有30人,所以該同學可能被B校或A校錄取,不可能被C校錄取,故本題填C校。②此處通過while循環完成每個學校的錄取工作,循環條件是,變量i小于等于學校數,并且已完成的學校數小于總的學校數,故此處填i<=stuCntAndfinished3+j)。21世紀教育網www.21cnjy.com精品試卷·第2頁(共2頁)21世紀教育網(www.21cnjy.com)中小學教育資源及組卷應用平臺3.3計算機程序與程序設計語言(2)-粵教版(2019)高中信息技術必修一練習學校:___________姓名:___________班級:___________考號:___________一、選擇題1.計算機能直接識別和執行的的語言是()A.匯編語言B.機器語言C.高級語言D.C語言2.現有流程圖如下,關于流程圖的說法正確的是()A.運行后,輸入語句一定會被執行三次B.程序運行后,輸入語句至少會被執行一次C.該程序的循環次數為3次D.第一次輸入guess的值為8,則程序運行結果為“對不起,你失敗了!”3.計算機能夠直接識別和執行的程序設計語言是()。A.低級語言B.匯編語言C.機器語言D.高級語言4.x和n都是正整數且x<=n,下列選項中,與語句“x=xModn+1”功能相同的是()21世紀教育網版權所有A.x=(x+1)ModnB.x=x+1Ifx=nThenx=1C.x=x+1Ifx=n+1Thenx=1D.x=x+1Ifx=n+1Thenx=05.下面程序執行結束,文本框Text1中顯示()PrivateSubForm_Click()a="123":b="456"c=Val(a)+Val(b)Text1.Text=str(c\100)EndSubA.123B.3C.5D.579二、簡答題6.高級語言的編譯過程和解釋過程各有什么優勢和不足。7.程序設計語言有哪些,分別具備什么特點。三、填空題8.以下流程圖描述的算法,執行結果是_______。9.編寫VB程序,實現如下功能:單擊“計算”按鈕,在列表框List1中產生10個[1,99]隨機數,文本框Text1顯示相鄰兩個數字之間相差最大的差值。運行界面如圖所示。(1)窗體上,“計算”按鈕的對象名是_____。(2)實現上述功能的VB程序如下,請在劃線處填入合適的代碼。Privatesubcmd1_click()Dimb(1to10)asintegerDimIasinteger,maxasinteger,aasinteger,casinteger2·1·c·n·j·yMax=0Fori=1to10RandomizeA=int(rnd99)+1_______________________List1.additemstr(a)NextiFori=2to10C=________________Ifc>maxthen__________________NextI____________________________Endsub四、判斷題10.需求分析之后、程序設計之前,需要對系統進行總體設計和詳細設計。總體設計就是在需求分析的基礎上對模型細化、分解任務,明確程序由哪些模塊組成。(____)【來源:21·世紀·教育·網】五、操作題11.某數據解密算法描述如下:(1)在輸入的數字字符串中依次提取有效的密文,有效的密文的特點:①是一組連續的,都小于5的三位數字串;②每個位置上的數字不能被重復提取;(2)對有效密文進行解密的過程:將密文作為一個五進制數轉換為對應的十進制數值,根據ASCII字符的十進制編碼表,得出對應的明文字符(提示:空格符所對應的ASCII碼值為十進制數32,小寫字母“z”所對應的ASCII碼值為十進制數122).21教育名師原創作品例如,密文242轉換成十進制數為72,對應的明文字符為大寫字母“H”。程序運行界面如下圖所示,在文本框Text1中輸入密文,單擊“解密”按鈕,在文本框Text2中輸出解密后的明文密碼。21cnjycom(1)若輸入的密文為“841497230235”,則對應的明文是__________。(2)實現上述功能的VB代碼如下,劃線處的語句有錯,應改為__________________。(3)請在劃線處填入合適的代碼.'以下代碼是將有效密文數字轉換為十進制數的函數Functionconv(pAsString)AsIntegerDimkAsInteger,qAsString,iAsIntegerk=0:g=""Fori=1To3q=Mid(p,i,1)________________Nexticonv=kEndFunctionPrivateSubCommand1_Click()DimstAsString,pAsString,resAsStringDimc1AsString,c2AsString,c3AsStringDimiAsInteger,dAsInteger,nAsIntegerst=Text1.Text:n=Len(st)i=1:res=""DoWhilei<=n–2'提取有效密文,并進行轉換c1=Mid(st,i,1):c2=Mid(st,i+1,1):c3=Mid(st,i+2,1)Ifc1<"5"Orc2<"5"Orc3<"5"Then______________d=conv(p)Ifd>=32Andd<=122Thenres=res+Chr(d)______________Elsei=i+1EndIfLoopText2.Text=resEndSub12.如果一個正整數從左到右讀與從右到左讀是一樣的,就稱它為回文式數(簡稱回數),如圖321。“回數猜想”的主要思想是,對任意正整數,若它不是回數,則按下列算法即可獲得一個回數:www-2-1-cnjy-com(1)把該整數的數字順序顛倒,求得該數的逆序數;(2)將該整數和其對應的逆序數相加;(3)若相加結果不是回數,則將結果作為新的整數,返回步驟(1)。小林按照上述算法,設計了驗證回數猜想的VB程序(猜想次數不超過10次),程序功能如下:在文本框Text1中輸入一個正整數,單擊“驗證”按鈕(Command1),獲取文本框Text1中的數,當該數不是回數時,采用回數猜想的方法進行驗證,并在列表框List1中輸出每次驗證的過程,若驗證成功或驗證次數超過10次,則停止驗證,最后在列表框List1中輸出驗證結果。程序運行效果如圖所示。實現上述功能的VB程序如下:PrivateSubCommand1_Click()DimtAsString,aAsLong,bAsLongDimcountAsInteger'count用于存儲回數猜想的驗證次數t=Text1.Textcount=1DoWhileCheck(t)=FalseAndcount<=10a=Val(t)①c=a+bList1.AddItemStr(a)&"+"&Str(b)&"="&Str(c)21cnjy.comcount=count+1t=cLoopIfCheck(t)ThenList1.AddItem"驗證成功!"ElseList1.AddItem"10次內未驗證成功!"EndIfEndSub'自定義函數TurnFunctionTurn(xAsString)AsLongDimsAsString,iAsIntegers=""Fori=Len(x)To1Step-1s=s&Mid(x,i,1)NextiTurn=②EndFunction'自定義函數Check,檢查x是否為回文數FunctionCheck(xAsString)AsBooleanDimiAsIntegerCheck=TrueFori=1ToLen(x)\2Step1IfMid(x,i,1)<>③ThenCheck=Falsemid(x,len(x)+1-i,1)NextiEndFunction(1)程序代碼中,自定義函數Turn(x)的功能是(2)請在劃線處填入合適代碼。13.某高一班主任需要對剛入學的新生排座位,教室座位按6排8列進行擺放(班級學生數不超過48個),并且要求每列的學生按身高從低到高排列。編寫VB程序,實現教室排座位功能:單擊“讀取數據”按鈕Command1,從數據庫中讀取該班所有同學的班內學號(兩位數字)和身高數據(3位數字),并在列表框List1中按8個一行顯示;單擊“排座位”按鈕Command2,對每列數據按身高從小到大排列,并顯示在列表框List2中。程序運行界面如圖所示,請回答下列問題:(1)要使窗體的標題欄文字顯示為“排座位”,則應設置窗體的______屬性(單選,填字母:A.Text/B.Name/C.Caption)。21教育網(2)程序中加框處代碼有錯,請改正。________(3)實現上述功能的VB程序如下,請在劃線處填入合適的代碼。Constm=6Constn=8Dima(1Tomn)AsString'存儲學號Dimb(1Tomn)AsInteger'存儲身高DimnumAsInteger'班級總人數PrivateSubCommand1_Click()'從數據庫中讀取該班的學號和身高數據存入數組a和數組b,班級人數存入變量num,代碼略.'以下代碼為在列表框List1中輸出數據s="":List1.AddItem"(講臺)"Fori=1Tonum=s=s&Str(b(i))&"["&a(i)&"]"Ifi=mThenList1.AddItems:s=""EndIfNextiIfs<>""ThenList1.AddItemsEndSubPrivateSubCommand2_Click()DimiAsInteger,jAsInteger,iminAsInteger21·cn·jy·comDimt1AsString,t2AsInteger,sAsStringwww.21-cn-jy.comList2.AddItem"(講臺)"Fori=1To①_______s=""Forj=(i-1)n+1To(i-1)n+n21·世紀教育網Ifj<=numThen②__________Ifimin<>jThent1=a(imin):a(imin)=a(j):a(j)=t12-1-c-n-j-yt2=b(imin):b(imin)=b(j):b(j)=t2【來源:21cnjy.com】EndIfs=s&Str(b(j))&"["&a(j)&"]"【版權所有:21教育】EndIfNextjList2.AddItemsNextiEndSubFunctionfPos(pAsInteger)AsIntegerDimiAsInteger,jAsInteger,kAsIntegerk=pFori=③_____________Ifb(i)<b(k)Thenk=iNextifPos=kEndFunction14.某校老師編寫一個VB程序分析學生技術成績,功能如下:在列表框List1中顯示原始學生信息,單擊“分析”按鈕Command1,統計各班參加考試人數、高分(97及以上)人數和均分,并按班級均分從大到小顯示在列表框List2中,程序運行界面如圖所示。【出處:21教育名師】實現上述功能的VB程序段如下,請回答下列問題:(1)學生成績存儲在數據表中,其字段名是(2)請在劃線處填入合適的代碼。DimrecCountAsInteger'存放學生人數DimsClass(1To1000)AsInteger'存放學生班級DimsName(1To1000)AsString'存放學生姓名DimsScore(1To1000)AsInteger'存放學生成績PrivateSubCommand1_Click()DimiAsInteger,tAsInteger,ncAsIntegerDima(1To20)AsInteger,b(1To20)AsInteger'分別存放班級高分人數和班級參加考試人數Dimsum(1To20)AsInteger,ave(1To20)AsSingle'分別存放班級總分和班級均分Dimc(1To20)AsIntegerFori=1TorecCount①b(t)=b(t)+1Ifb(t)=1Thennc=nc+1②EndIfIfsScore(i)>=97Thena(t)=a(t)+1sum(t)=sum(t)+sScore(i)NextiFori=1Toncave(c(i))=Int(sum(c(i))/b(c(i))100+0.5)/100NextiFori=1Tonc-1Forj=ncToi+1Step-1If③Thent=c(j):c(j)=c(j-1):c(j-1)=tEndIfNextjNextiFori=1ToncList2.AddItemStr(c(i))+""+Str(b(c(i)))+""+Str(a(c(i)))+""+Str(ave(c(i)))NextiEndSubPrivateSubForm_Load()'鏈接數據庫,代碼略recCount=0DoWhileNotrs.EOFrecCount=recCount+1sClass(recCount)=rs.Fields("class")sName(recCount)=rs.Fields("name")sScore(recCount)=rs.Fields("score")rs.MoveNextLoop'將數據顯示在列表框List1中,代碼略EndSub15.某地區中考錄取采用“平行志愿”的投檔錄取方式,該錄取方式的具體規則為:①根據考生的考試總分從高到低依次對考生的填報志愿進行投檔;②每位考生可填三個志愿學校,輪到該考生投檔時依次對其三個志愿進行投檔,若第一志愿學校還有剩余招生名額,就被第一志愿學校錄取,結束該考生的投檔,否則需對其后續志愿學校進行同樣的投檔操作,若該考生所填的所有志愿學校都沒有剩余招生名額,則該考生無法被任何學校錄取,該考生的投檔結束。③當所有學校都已完成計劃招生數時,停止投檔,錄取結束。編寫VB程序,實現上述“平行志愿”投檔錄取的功能,單擊“讀取考生數據”按鈕Command1,則從數據庫中獲取所有考生的成績、志愿信息以及每個學校的計劃招生數,單擊“投檔錄取”按鈕Command2,開始進行投檔錄取,并在列表框List1中輸出每個學校的計劃招生數、實際招生數、錄取分數線和最低錄取名次信息,程序運行界面如圖所示。請回答下列問題:(1)若A校計劃招生520人,B校計劃招生480人,C校計劃招生540人,某同學的考分名次為490名,其三個志愿學校依次為B校、A校、C校,且已知同名次的人數最多有30人,則該同學不可能被哪所學校錄取:______。21cnjycom(2)實現上述功能的VB程序如下,請在劃線處填入合適的代碼。ConstschCnt=5'學校數量ConststuMaxCnt=10000'最多考生人數DimzsCnt(1ToschCnt)AsInteger'存儲每個學校的計劃招生人數DimzsCnt2(1ToschCnt)AsInteger'存儲每個學校的實際招生人數Dima(1TostuMaxCnt)AsSingle'存儲考生總分成績Dimb(1TostuMaxCnt3)AsInteger'存儲考試志愿,每個考生有3個志愿,每個志愿為學校編號DimstuCntAsInteger'實際考生總人數PrivateSubCommand1_Click()'從數據庫中讀取所有考生的總分和志愿信息存儲到數組a和數組b中(第1個考生總分存儲到a(1),第1個考生的3個志愿分別存儲到b(1)、b(2)、b(3)中,…),然后按總分對數組a和數組b進行降序排序,總分相同時,需根據各科成績決定排序先后,但名次相同,考生總人數存儲到stuCnt變量中;'讀取每個學校的計劃招生數,存儲到數組zsCnt中;'以上功能代碼略EndSubPrivateSubCommand2_Click()DimschAsInteger'學校代碼,用1~5中的一個數字表示某學校代碼DimiAsInteger,jAsInteger,finishedAsInteger,prevScoreAsSingleDimstuMc(1TostuMaxCnt)AsIntegerDimMinScore(1ToschCnt)AsSingleDimMinMc(1ToschCnt)AsIntegerfinished=0:i=1prevScore=-1DoWhile①______Ifa(i)=prevScoreThenstuMc(i)=stuMc(i-1)Else②____________EndIfprevScore=a(i)Forj=1To3③________IfzsCnt2(sch)<zsCnt(sch)ThenzsCnt2(sch)=zsCnt2(sch)+1MinScore(sch)=a(i)MinMc(sch)=stuMc(i)ExitForEndIfNextjfinished=0Forj=1ToschCntIfzsCnt2(j)=zsCnt(j)Thenfinished=finished+1EndIfNextji=i+1Loop'在List1中輸出每所學校的代碼、計劃招生數、實際招生數、錄取分數線、最低錄取名次,代碼略EndSub21世紀教育網www.21cnjy.com精品試卷·第2頁(共2頁)21世紀教育網(www.21cnjy.com) 展開更多...... 收起↑ 資源列表 3.3計算機程序與程序設計語言(2)-粵教版(2019)高中信息技術必修一練習(原卷版).doc 3.3計算機程序與程序設計語言(2)-粵教版(2019)高中信息技術必修一練習(解析版).doc 縮略圖、資源來源于二一教育資源庫