資源簡(jiǎn)介 高中信息技術(shù)綜合庫(kù)-VB程序的調(diào)試一、高中信息高中信息技術(shù)綜合庫(kù)VB程序的調(diào)試1.小新同學(xué)今天剛剛學(xué)習(xí)了循環(huán)結(jié)構(gòu),老師講的例題是求5!,課后小新想求10!,結(jié)果他在老師的程序基礎(chǔ)上修改后,卻出現(xiàn)了如下圖的錯(cuò)誤(代碼見(jiàn)下圖),以下說(shuō)法正確的是( )Dim i As Integer ——1Dim s As Integer ——2s=1 ——3For i=1 To 10s=s*i ——4Next iPrint sA.1處改為Dim i As long B.2處改為Dim s As longC.3處改為s=0 D.4處改為s=s+i【答案】B【知識(shí)點(diǎn)】程序的調(diào)試及運(yùn)行;常量、變量及變量的賦值【解析】【解答】定義變量的類(lèi)型時(shí)要考慮變量的大小,求10的階乘時(shí),其結(jié)構(gòu)超出了整型變量的取值范圍所以2處應(yīng)改為Dim s As long ,選項(xiàng)B正確。故答案選B。【分析】本題考查的是VB基本數(shù)據(jù)類(lèi)型。2.將n個(gè)元素轉(zhuǎn)換成(n\m)*m矩陣(n是m的倍數(shù))。例如有42個(gè)元素,m=7,則可轉(zhuǎn)換成6*7(6行7列)的矩陣轉(zhuǎn)換示例如下:轉(zhuǎn)換前元素次序?yàn)椋?br/>12 2 5 3 6 9 4 10 8 5 6 9 6 3 5 8 11 2 8 9轉(zhuǎn)換為矩陣如下:現(xiàn)要在矩陣中找一個(gè)規(guī)模為3*3的子方陣,使得該子方陣的各元素之和最大。(1)若n=25,m=5,則該矩陣中共有3*3的子方陣個(gè)數(shù)為 。(填數(shù)字)(2)實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)?jiān)趧澗€處填入合適代碼。Private SubCommand1_Click()Dim a(1 To100) As IntegerDim sum(0 To101) As Long ‘sum(i)=a(1)+a(2)+a(3)+…+a(i)Dim i AsInteger, j As Integer, n As Integer, m As Integer, k As IntegerDim ans AsLong, begin As Integer, maxi As IntegerDim maxsum AsLong, s As Stringn=Val(Text1.Text)m=Val(Text2.Text)If n Mod m <>0 Then List1.AddItem “輸入數(shù)據(jù)不符合要求”:Exit SubFor i=1 To na(i)=Int(Rnd*50+1)s=s+Str(a(i))If i Mod m=0Then List1.AddItem s:s=“”Next ik=3sum(1)=a(1)For i=2 To n ‘求sum(i) Next imaxsum=0ans=0For i=1 Ton\m-k+1For j=k To mbegin=(i-1)*m+j-k+1maxsum=maxsum+sum(j+(i-1)*m)-sum(j-k+(i-1)*m) maxsum=maxsum+(j+(i+1)*m)-sum(j-k+(i+1)*m)If maxsum>ansThen ans=maxsum: maxi=beginmaxsum=0Next jNext is= “”For i=1 To kFor j=1 To ks=s+Str(a( ))Next jList2.AddItemss=“”Next iList2.AddItem“maxsum=”+Str(ans)End Sub【答案】(1)9(2)sum(i)= sum(i-1)+a(i);maxsum= maxsum+ sum(j+i*m)- sum(j-k+i*m);a(maxi+j-1 +(i- 1)*m)【知識(shí)點(diǎn)】算法的控制結(jié)構(gòu);常量、變量及變量的賦值【解析】【解答】(1)若n=25,m=5,則該矩陣中有5行5列,從第1列到第3列,第2列到第4列,第3列到第5列,橫向可以排3個(gè),同時(shí)縱向也可以排3個(gè),因此有9個(gè)子矩陣。( 2 ) sum(i)求第i項(xiàng)及以前所有項(xiàng)的和即sum(i)= sum(i-1)+a(i)。 j+(i- 1)m顯然是該行中子矩陣最后1列的位置,因此j+(i-1)*m-k子矩陣第1列的位置。sum(j+ (i-1)*m)-sum(j-k+(i- 1)*m)是該行中子矩陣所有列的和。②中要填的是下一行(中間一行)的所有列之和即maxsum=maxsum+sum(j+i*m)-sum(j-k+i*m)。Maxi記錄的是最大子矩陣的開(kāi)始位置,在③中,變量i表示行,表示列即s=s+ Str(a(maxi+j-1 +(i-1)*m)。【分析】本題考查的是對(duì)VB語(yǔ)句的理解以及矩陣,循環(huán)結(jié)構(gòu)。3.有如下VB程序段:a(1)=20: a(2)=3: a(3)=21: a(4)=37a(5)=62: a(6)=20: a(7)=13: a(8)=33k=Abs(a(2)-a(1))For i=3 To 8If Abs(a(i)- a(i-1))>k Then k= Abs(a(i)-a(i-1))Next執(zhí)行該程序段后,變量k的值為( )A.7 B.17 C.25 D.42【答案】D【知識(shí)點(diǎn)】算法的控制結(jié)構(gòu)【解析】【解答】本題可采用變量跟蹤法進(jìn)行分析。該程序段的功能是求數(shù)組中相鄰元素的最大差值:因此執(zhí)行程序段后,變量k的值為42。故答案選D。【分析】本題考查的是對(duì)循環(huán)結(jié)構(gòu)程序段的理解。1 / 1高中信息技術(shù)綜合庫(kù)-VB程序的調(diào)試一、高中信息高中信息技術(shù)綜合庫(kù)VB程序的調(diào)試1.小新同學(xué)今天剛剛學(xué)習(xí)了循環(huán)結(jié)構(gòu),老師講的例題是求5!,課后小新想求10!,結(jié)果他在老師的程序基礎(chǔ)上修改后,卻出現(xiàn)了如下圖的錯(cuò)誤(代碼見(jiàn)下圖),以下說(shuō)法正確的是( )Dim i As Integer ——1Dim s As Integer ——2s=1 ——3For i=1 To 10s=s*i ——4Next iPrint sA.1處改為Dim i As long B.2處改為Dim s As longC.3處改為s=0 D.4處改為s=s+i2.將n個(gè)元素轉(zhuǎn)換成(n\m)*m矩陣(n是m的倍數(shù))。例如有42個(gè)元素,m=7,則可轉(zhuǎn)換成6*7(6行7列)的矩陣轉(zhuǎn)換示例如下:轉(zhuǎn)換前元素次序?yàn)椋?br/>12 2 5 3 6 9 4 10 8 5 6 9 6 3 5 8 11 2 8 9轉(zhuǎn)換為矩陣如下:現(xiàn)要在矩陣中找一個(gè)規(guī)模為3*3的子方陣,使得該子方陣的各元素之和最大。(1)若n=25,m=5,則該矩陣中共有3*3的子方陣個(gè)數(shù)為 。(填數(shù)字)(2)實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)?jiān)趧澗€處填入合適代碼。Private SubCommand1_Click()Dim a(1 To100) As IntegerDim sum(0 To101) As Long ‘sum(i)=a(1)+a(2)+a(3)+…+a(i)Dim i AsInteger, j As Integer, n As Integer, m As Integer, k As IntegerDim ans AsLong, begin As Integer, maxi As IntegerDim maxsum AsLong, s As Stringn=Val(Text1.Text)m=Val(Text2.Text)If n Mod m <>0 Then List1.AddItem “輸入數(shù)據(jù)不符合要求”:Exit SubFor i=1 To na(i)=Int(Rnd*50+1)s=s+Str(a(i))If i Mod m=0Then List1.AddItem s:s=“”Next ik=3sum(1)=a(1)For i=2 To n ‘求sum(i) Next imaxsum=0ans=0For i=1 Ton\m-k+1For j=k To mbegin=(i-1)*m+j-k+1maxsum=maxsum+sum(j+(i-1)*m)-sum(j-k+(i-1)*m) maxsum=maxsum+(j+(i+1)*m)-sum(j-k+(i+1)*m)If maxsum>ansThen ans=maxsum: maxi=beginmaxsum=0Next jNext is= “”For i=1 To kFor j=1 To ks=s+Str(a( ))Next jList2.AddItemss=“”Next iList2.AddItem“maxsum=”+Str(ans)End Sub3.有如下VB程序段:a(1)=20: a(2)=3: a(3)=21: a(4)=37a(5)=62: a(6)=20: a(7)=13: a(8)=33k=Abs(a(2)-a(1))For i=3 To 8If Abs(a(i)- a(i-1))>k Then k= Abs(a(i)-a(i-1))Next執(zhí)行該程序段后,變量k的值為( )A.7 B.17 C.25 D.42答案解析部分1.【答案】B【知識(shí)點(diǎn)】程序的調(diào)試及運(yùn)行;常量、變量及變量的賦值【解析】【解答】定義變量的類(lèi)型時(shí)要考慮變量的大小,求10的階乘時(shí),其結(jié)構(gòu)超出了整型變量的取值范圍所以2處應(yīng)改為Dim s As long ,選項(xiàng)B正確。故答案選B。【分析】本題考查的是VB基本數(shù)據(jù)類(lèi)型。2.【答案】(1)9(2)sum(i)= sum(i-1)+a(i);maxsum= maxsum+ sum(j+i*m)- sum(j-k+i*m);a(maxi+j-1 +(i- 1)*m)【知識(shí)點(diǎn)】算法的控制結(jié)構(gòu);常量、變量及變量的賦值【解析】【解答】(1)若n=25,m=5,則該矩陣中有5行5列,從第1列到第3列,第2列到第4列,第3列到第5列,橫向可以排3個(gè),同時(shí)縱向也可以排3個(gè),因此有9個(gè)子矩陣。( 2 ) sum(i)求第i項(xiàng)及以前所有項(xiàng)的和即sum(i)= sum(i-1)+a(i)。 j+(i- 1)m顯然是該行中子矩陣最后1列的位置,因此j+(i-1)*m-k子矩陣第1列的位置。sum(j+ (i-1)*m)-sum(j-k+(i- 1)*m)是該行中子矩陣所有列的和。②中要填的是下一行(中間一行)的所有列之和即maxsum=maxsum+sum(j+i*m)-sum(j-k+i*m)。Maxi記錄的是最大子矩陣的開(kāi)始位置,在③中,變量i表示行,表示列即s=s+ Str(a(maxi+j-1 +(i-1)*m)。【分析】本題考查的是對(duì)VB語(yǔ)句的理解以及矩陣,循環(huán)結(jié)構(gòu)。3.【答案】D【知識(shí)點(diǎn)】算法的控制結(jié)構(gòu)【解析】【解答】本題可采用變量跟蹤法進(jìn)行分析。該程序段的功能是求數(shù)組中相鄰元素的最大差值:因此執(zhí)行程序段后,變量k的值為42。故答案選D。【分析】本題考查的是對(duì)循環(huán)結(jié)構(gòu)程序段的理解。1 / 1 展開(kāi)更多...... 收起↑ 資源列表 高中信息技術(shù)綜合庫(kù)-VB程序的調(diào)試(學(xué)生版).docx 高中信息技術(shù)綜合庫(kù)-VB程序的調(diào)試(教師版).docx 縮略圖、資源來(lái)源于二一教育資源庫(kù)