中文字幕精品无码一区二区,成全视频在线播放观看方法,大伊人青草狠狠久久,亚洲一区影音先锋色资源

字符串處理及排序 練習-浙江省2023屆高三信息技術一輪復習VB專題

資源下載
  1. 二一教育資源

字符串處理及排序 練習-浙江省2023屆高三信息技術一輪復習VB專題

資源簡介

※ 練習
1、(2021寧波模擬15)一個含有n個元素的整數數組,如果數組兩個連續元素之間差的絕對值包括了[1,n-1]之間的所有整數,則稱之為一組“完美跳數”。小余制作了驗證完美跳數的VB程序,功能如下:在文本框Text1中輸入一組以逗號分隔且以逗號結尾的整數數組,單擊“驗證”按鈕Command1,在標簽Labe11中顯示驗證結果,運行界面如圖所示。
(1)觀察程序界面,具有Caption屬性的對象有 個。(填個數)
Private Sub Command1 Click()
Dim n As Integer,i As Integer,j As Integer,s As String,chr As String,temp As String
Dim a(1 To 100)As Integer,b(1 To 100)As Integer
s=Text1.Text
i=1:n=0
Do While i〈=Len(s)
ch=Mid(s,i,1)
If ch〉="0"And ch〈="9"Then
temp=temp+ch
Else
n=n+1

temp=""
End If
i=i+1
Loop
For i=2 To n

Next i
For i=1 To n-2
For j= n To i+1 Step-1
If b(j)〈b(j-1)Then t=b(j):b(j)=b(j-1):b(j-1)=t
Next j
Next i
For i=1 To n-1
If b(i)< > i Then Exit For
Next i
If i=n Then Labell.Caption="完美跳數"Else Labe11.Caption="非完美跳數"
End Sub
(2)請在上述程序的劃線處填上合適的代碼。
(3)上述程序加框處代碼有誤,請改正。
2、(2021嘉興模擬15)倉庫中有一批不同款式的衣服,相同款式的衣服具有相同的代號,現要統計每個款式的數量,并按數量從多到少的排序。小明編寫了一個VB程序完成該統計。程序運行時,在文本框Text1輸入每件衣服的代號n(1≤n≤100),代號之間用逗號相隔,衣服的總數量不超過100件。單擊按鈕Command1后,在列表框List1中按每個款式的庫存數量從大到小輸出。程序運行界面如第15題圖所示。
(1)代碼“Private Sub Command1_Click()”的Click是 (單選,填字母:A.對象名/B.屬性名/C.事件名)。
(2)實現上述功能的VB程序如下,請在劃線處填入合適的代碼。
(3)已知程序中加框處代碼有錯誤,請改正。
Private Sub Command1_Click()
Dims As String,ch As String,p As Integer,t As Integer
Dim a(1 To max)As Integer,b(1 To max)As Integer,c(1 To max)As Integer
’數組a用于存儲輸入的數據,數組b用于存儲每款衣服的數量,數組c用于存儲衣服的代號;數組a和b的初值均為0。
s=Text1. Text:p=1 :max=100
For i=1 To max
c(i)=i
Next i
For i=1 To Len(s)
① ①
If ch>="0"And ch〈="9"Then
a(p)=a(p)*10+Val(ch)
Else

End If
Next i
For i=1To p’統計各款衣服的數量
b(i)=b(i)+1
Next i
For i=1 To max-1’排序
k=i
For j=i+1 To max
If ③ Then k=j
Next j
t=b(i):b(i)=b(k):b(k)=t
t=c(i):c(i)=c(k):c(k)=t
Next i
For i=1 To max
If b(i)>0 Then Listl.AddItem Str(c(i))+""+Str(b(i))
Next i
End Sub
3、(2021杭州模擬15) “2021年我要學好Python!”小明這樣想著。雖然一年里只要不出去旅游的日子都可以學習,但是對算法學習而言,連續不間斷的效果更好,小明希望選一個最長的時間段學習Python。輸入某些特定日期(X月X日)作為計劃好的外出旅游時間,算出2021年最長的學習天數。編寫VB程序,實現上述功能。運行程序,在文本框Textl中輸入計劃出去旅游的時間,用逗號間隔,并以逗號結尾,輸入月份和日期。如“3,1,2,19,”表示3月1日和2月19日要外出旅游不能學習。單擊“統計”按鈕Command1,輸出最長學習天數。程序運行界面如第15題圖所示。
請回答下列問題:
(1)窗體中至少包含 個對象(不含窗體)。
(2)實現上述功能的VB程序如下,請在劃線處填入合適的代碼。
(3)程序中加框處代碼有錯,請改正。
Dim yf(1To 12)As Integer每月天數
Private Sub For m Load)
“初始化1-12月天數,依次存儲在數組yf(1)-yf(12)中,代碼略
End Sub
Private Sub Command1Click)
Dim k As Integer,n As Integer,i As Integer,jAs Integer
Dim t As Integer,z As Integer,qt As Integer,maxk As Integer
Dim y(1To 365)As Integer, r(1To 365)As Integer'y數組存儲月,r數組存儲日
Dim sum(0 To 12)As Integer
Const yearn=365
k=0
For i=1 To Len(Text1.Text)
c=Mid(Text1.Text,i,1)
Ifc=","Then
k=k+1
Ifk Mod2=1Then y((k+1)\2)=t Else r(k+1)\2)=t
t=0.
Else
t= ①
End If
Next i
n=k\2
For i=1To n-1以月為主關鍵字、日為次關鍵字升序排序
For j=1To n-i
If ② then
t=y(j):y(j)=y(j+1):y(j+1)=t
t=r(j):r(j)=r(j+1):rj+1)=t
End If
Next j
Next i
sum(0)=0
For i=1To 12
sum(i)=sum(i-1)+yf(i)
Next i
maxk=0:t=0
For i=1To n
z=t
t=r(i)+ sum(y(i))(3)改錯
Ifi>1 Then qt=t-z-1Else qt=t-1
If qt>maxk Then maxk=qt ‘記錄長時間段
Next i
qt= ③
If qt>maxk Then maxk=qt
Label3.Caption="最長學習天數為:"+Str(maxk)+“天”
End Sub
4、(2021臺州模擬16)點陣方式是漢字輸出顯示和打印的一種字形編碼。某字庫描述漢字字形的點陣規模為8x8,每個點用1個二進制位表示,“0”表示白點,“1”表示黑點,且左上角(第1行第1列)的點是白點。漢字“中”的點陣字形和對應編碼如第16題圖a所示。
圖a 圖b
現對該漢字的編碼進行壓縮:從第1行第1列開始,從左到右、由上至下,對連續的“0”和“1”進行壓縮,得到一組數值,即為對應漢字的壓縮碼。如,“中”的壓縮碼為“3,1,4,7,1,1,2,1,2,1,1,1,2,1,2,1,1,7,1,1,2,1,2,1,4,1,7,1,4”,其含義為:第一個數“3”,表示連續3個0;第二個數“1”,表示連續1個1;第三個數“4”,表示連續4個0;第四個數“”,表示連續7個1;..(以此類推,依次表示0和1的交替個數)。小王編寫了一個漢字壓縮碼的解壓縮程序,功能如下:在文本框Textl中輸入以逗號分隔的壓縮碼,單擊“解壓縮”按鈕Commandl,程序對壓縮碼進行解壓縮處理,將編碼轉換成字形顯示在列表框Listl中,并計算白點、黑點數,顯示在標簽Labell中。程序運行界面如第16題圖b所示。
(1)若某漢字壓縮碼為“3,1,7,1,7,4,4,1,7,,1,7,1,7,1,4,8”,則該字形中黑點的個數是 。
(2)實現上述功能的VB程序如下,請在劃線處填入合適代碼。
Const n=8
Dim a(l To n*n)As Integer
Private Sub Command1_ClickO
Dim s As String,c As String,1ine As String
Dim i As Integer,j As Integer,k As Integer
Dim total As Integer,flag As Integer,sum(0 To 1)As Integer
s=Text1.Text +","
j=1:k=0
For i=1 To Len(s)
c=Mid(s,i,1)
If c=","Then
k=k+1
a(k)=Val( ① )
j=i+1
End If
Next i
sum(0)=0:sum(1)=0
total=0:line=""
flag=0 ’左上角編碼為0,即白點
For i=1 To k
For j=1 To a(i)
total=total+1
1ine=line+ ②
If total Mod n=0 Then
List1.AddItem line
1ine=""
End If
Nextj

flag=1-flag
Next i
Label1.Caption="白點數:"+Str(sum(0))+"黑點數:"+Str(sum(1))
End Sub
Function convert(x As Integer)As String
‘將編碼0、1轉換成白點和黑點;代碼略
End Function
5、(2021麗水模擬16)將某字符串按“V”的形狀進行變換,其變換方法描述如下:
(1)將字符串中的字母轉換為大寫字母后按升序進行排序;
(2)根據給定的行數,將字符串從上往下、從左到右進行“V”字形排列;
(3)從左往右逐行讀取字符串并輸出;例如:輸入字符串為:“NoThinglslmpossible”,經過排序得到字符串:“BEGHIIIILMNNOOPSSST”,行數輸入為3時,排列如下:
經過變換后得到新字符串為:“BILOSEHIIMNOSSGINPT”。編寫VB程序,實現如下功能:在文本框Textl中輸入行數,在文本框Text2中輸入字符串(限定字母),單擊“變換”按鈕Command1,在標簽Label3中輸出變換結果。程序運行效果如圖所示。
(1)若小明在文本框Textl中輸入3,在文本框Text2中輸入的的字符串為“NOTHING”,則在標簽框Label3中輸出的結果為 。
(2)實現該功能的VB程序如下,請在劃線處填入合適的代碼。
6、(2021金華十校模擬16)刪數問題。輸入一個正整數s,去掉其中任意k個數字后,剩下的數字按原左右次序將組成一個新的整數,設計算法使得剩下數字組成的新數最小。
為了實現上述要求,小明按“每次刪除左側第一個升序序列的末位數字”的思想,編寫了一個VB程序,程序的運行界面如下所示,在文本框Text1中輸入正整數s,在文本框Text2中輸入刪除的數字個數k,單擊按鈕Command1后,在標簽Label3上顯示結果,顯示結果要求刪除前導零,若刪完后結果為0,則輸出0。
實現上述功能的程序如下:
Dim a(1To 1000)As Integer
Private Sub Command1_Click()
Dims As String,k As Integer,n As Integer
Dim i As Integer,j As Integer,x As Integer
Dim left As Integer,flag as Boolean
s=Text1.Text
k=Val(Text2.Text)
n=Len(s)
If k > n Then
Label3.Caption=”輸入的數據不足"+Str(k)+“位”
Exit Sub
End If
For i=1 To n
a(i)=Val(Mid(s,i,1))
Next i
Do While k<>0
flag=True
For j=1To n-1
If ① Then
Call ss(j,n)刪除數組中第j位,后續數據前移一位
n=n-1:k=k-1
flag=False
Exit For 退出for循環
End If
Next j
If flag Then
n=n-k:k=0
End If
Loop
,在剩余的n個數字中,去除多余額前導零,如:00010,只輸出10
i=1:left=1
Do While ②
left=left+1
i=i+1
Loop
Label3.Caption=""
For i=left To n
Label3.Caption=Label3.Caption +Str(a(i))
Next i
If n=0 Then Label3.Caption="0"
End Sub
’數組a中,刪除head位置的數據,后續數據前移1位
Sub ss(head As Integer,tail As Integer)
For i=head To tail-1
a(i+1)=a(i)
Next i
End Sub
(1)若要清空label1中內容,能實現該功能的語句是 (單選,填字母:A.Labell.Label=""/B.Labell.Caption=“"/C.Labell.Clear)。
(2)請在劃線處填入合適的代碼。
(3)加框處代碼有錯,請改正。
7、(2021紹興模擬15)為了把工廠中高低不等的物品按從低到高排好序,工程師發明了一種排序機械臂,它首先在參加排序的所有物品中同時選出高度最低和最高的物品,分別交換到左、右邊界,再縮小左、右邊界,然后在余下的物品中采用同樣的方法排序,直到所有物品成為一個有序的序列。編寫VB程序,實現上述排序功能:運行程序,單擊“讀取”按鈕Command1,在列表框Listl中顯示待排序的物品,然后單擊“排序”按鈕Command2,在列表框List2中顯示排序好的物品。程序運行界面如圖所示。
請回答下列問題:
若要程序運行時,窗體For m1的標題顯示為“物品排序”,則For mLoad)事件中應添加的代碼是
(單選,填字母:A.For ml.Name="物品排序"/B.For ml.Text="物品排序"/C.For ml.Caption="物品排序")。
(2)實現上述功能的VB程序如下,請在劃線處填入合適的代碼。
(3)程序中加框處代碼有錯,請改正。
Const m=9 'm表示物品個數
Dim id(m)As Integer,gd(m)As Integer
Private Sub Command1 Click)
讀取物品的信息依次存入數組id,gd中,并在列表框List1中顯示,代碼略
End Sub
Private Sub Command2_Click)
Dim LAs Integer,R As Integer,t As integer
Dim imin As Integer,imax As Integer
L=1:R=m分別指向待排序區間的左右邊界
Do While Limin=L

For i=L+1To R
If gd(i)If gd(i)Next i
t=id(imin):id(imin)=id(L):id(L)=t
t=gd(imin):gd(imin)=gd(L):gd(L)=t
If imax=L Then ② 考慮最大值恰好在L位置的情形
t=id(imax):id(imax)=id(R):id(R)=t
t=gd(imax):gd(imax)=gd(R):gd(R)=t
L=L+1

Loop
For i=1To m
List2.Addltem Str(id(i))+""+Str(gd(i))
Next i
End Sub
8、(2021溫州十校模擬15)為方便習題講解,需對某次考試中選擇題得分率數據進行統計分析,找出選擇題得分率最低的前m項對應的題號及考點(若有與第m項得分率相同的,一并選取)。
編寫VB程序,實現上述功能。運行程序時,先讀取每個選擇題的題號、得分率和考點,顯示在列表框List1中。在文本框Text1中輸入得分率最低的前m項值,單擊“統計”按鈕,按照得分率從小到大升序排序,并在列表框List2中輸出得分率最低前m項的題號、得分率及考點。程序運行界面如第15題圖所示。
請回答下列問題:
(1)“統計”按鈕的事件過程名是 。
(2)實現上述功能的VB程序如下,請在劃線處填入合適的代碼。
(3)程序中加框處代碼神墻有錯,請改正。
Dim n As Integer
Dim th(0 To 100)As Integer,df(0 To 100)As Single,kd(1 To 100)As String
Private Sub For m_Load()
’讀取題號、得分率和考點分別存入數組th、df和kd數組,在列表框List1中顯示,代碼略
’選擇題的個數存入變量n,代碼略
End Sub
Function dq(x As String,k As Integer)As String
’固定數據的位數
dq=x
Do While ①
dq=dq+" "
Loop
End Function
Private Sub Select_Click()
Dim m As Integer,i As Integer,j As Integer,p As Integer,t As Integer,mm As Integer
List2.Clear
m=Val(Text1.Text)
i=1
Do While i<=n-1
p=i
For j=i+1 To n
If ② Thenp=j
Next j
If p< >i Then
t=th(i):th(i)=th(p):th(p)=t
End If
If i>m Or df(i)< >df(i-1) Then Exit Do’改錯
i=i+1
Loop

For i=1 To mm
List2.AddItem dq(Str(th(i)),6)+dq(Str(df(th(i))),8)+dq(kd(th(i)),12)
Next i
End Sub
9、(2021衢州模擬15)某市要組織高中生參加競技比賽。現要求在報名的n名學生中挑選出m名身高大于等于175cm的學生,被挑選出的學生兩兩組隊,且隊內兩名成員的體重之和不能超過175公斤。
編寫VB程序,實現上述挑選、組隊功能。運行程序,在列表框List1中顯示m名身高大于等于175cm的學生信息,且根據體重數值降序排序。單擊“組隊”按鈕,在符合條件的情況下盡可能多的兩兩組隊,并將組隊結果顯示在列表框List2中。程序運行界面如第15題圖所示,實現上述功能的VB程序如下。
請回答下列問題:
(1)觀察代碼可知,該程序“組隊”按鈕的對象名為 。
(2)請在劃線處填入合適的代碼。
(3)程序中加框處代碼有錯,請改正。
Const n=20
Dim id(1 To 20)As Integer,h(1 To 20)As Integer,w(1 To 20)As Integer ,mAs Integer
Private Sub For m Load()
’從數據庫中讀取n名學生的編號、身高和體重分別存儲在數組id、h和w中,代碼略。
m=0’存儲身高≥175cm的學生總數
For i=1 To n
k=i
For j=i+1 To n
If h(j)〉=175 Then
If w(j)〉w(k) Then k=j‘(3)
End If
Next j
If k< > i Then
t=id(i):id(i)=id(k):id(k)=t
t=h(i):h(i)=h(k):h(k)=t
t=w(i):w(i)=w(k):w(k)=t
End If
If h(i)<175 Then
m=i-1
Exit For ’結束挑選
E1se

End If
List1.AddItem str(id(i))+""+Str(h(i))+""+Str(w(i))
Next i
End Sub
Private Sub Com_Click()
L=1:R=m
Do While LIf ② Then
List2.AddItem Str(id(L))+"號和"+Str(id(R))+"號組隊”
L=L+1:R=R-1
Else

End If
Loop
End Sub
10、 (2021慈溪模擬15)為了提高群眾的安全意識,需要從各個學校挑選志愿者做好防詐騙宣傳。組委會從數據庫中看到k(1〈=k<=11)個不同的學校共上報了n(k<=n〈=100)位志愿者。由于人數太多,為了快速決定志愿者人選,組委會決定從中選擇一段連續的區間,這個區間內每個報名的學校至少包含1名志愿者,同時要求滿足條件的區間長度最小,輸出區間內的志愿者名單。
例如,有10條報名數據,來自5個不同的學校,學校編碼依次是2,1,2,4,3,3,5,5,3,5,則包
含5個學校的最短區間是從第2個到第7個,并從List2中顯示所選區間中的志愿者姓名,程序界面如圖所示。
(1)要使窗體For ml標題顯示“選取志愿者”,則需修改該窗體的 (單選,填字母:A.Text/B.Caption/C.Name(名稱))屬性。
(2)實現上述功能的VB程序如下,請在劃線處填入合適的代碼。
(3)程序中加框處代碼有錯,請改正。
Dim bm(1 To 100)As Integer,k As Integer,xm(1 To 100)As String,n As Integer
Private Sub For m Load()
‘本過程從數據庫中讀入指定數據到數組bm、xm中,并在List1中顯示
‘獲取k,表示不同學校數;n表示報名記錄總數代碼略
End Sub
Private Sub Command1_Click()
Dim m As Integer
i=k:j=n
Do While i<=j
m= ①
If judge(m)< > 0 Then
j=m-1
ans=m: start=judge(m)
Else
i=m+1
End If
Loop
For i=1 To ans
List2. AddItem xm(i)
Next i
Labe11.Caption="共選出志愿者"+CStr(ans)+"人"
End Sub
Function judge(m As Integer)As Integer ‘judge函數用于返回區間起始位置
Dim f(1 To 11)As Integer'f(i)表示i學校是否包含在區間
Dim t As Integer
judge=0
For i=1To n-m+1’枚舉以i為起點的區間內是否包含各個學校
t=0
For j=i To i+m-1
If ② Thent=t+1
f(bm(j))=1
Next j
Ift=k Then ③ :Exit Function
For j=1 To k
f(j)=0
Next j
Next i
End Function
11、(2021溫州新力量聯盟模擬15)某單位招聘人員,根據應聘人員的筆試成績從高到低取一定比例的人員進入面試,若按比例計算出的人數為小數,則直接取整(不四舍五入),若進入面試的最后1名有多個同分人員,同分人員也進入面試。程序運行界面如下,請完成后面的小題:
(1)程序運行時自動清空文本框Text1中顯示的內容,應該在 事件處過程執行相關命令
A.For m load
B.Textl Change
C.Commandl Click
(2)實現上述功能的VB程序如下,
請在劃線處填入合適的代碼。
(3)程序中加框處代碼有錯,請改正
’人員編號和筆試成績分別存儲到
數組變量id和score中,應聘總人數存儲在變量n中面試比例在文本框Text1中輸入,所輸入比例值必須使面試人數大于1且小于n,代碼略。
Private Sub Command1_Click()
Dim i As Integer,j As Integer,st As String,t As Integer
For i=1To n-1’按筆試成績從高到低排序
k=i
For j=i+1 To n
If ① Thenk=j
Next j
If k< >i Then
st=id(k):id(k)=id(i):id(i)=st
t=score(k):score(k)=score(i):score(i)=t
End If
Next i
Num= ②
j=num+1
Do While j〈=n
If score(j)=score(j+1) Then Exit Do
j=j+1
Loop
For k= ③
List2.AddItem Str(k)+""+id(k)+""+Str(score(k))
Next k
End Sub
12、(2021湖州模擬15)某夏令營按兩門考試科目總分從高分到低分依次錄取學生。如果錄取學生的最后一名出現有總分并列的情況,則并列的學生全部錄取。編寫VB程序實現以上功能,程序運行時在列表框List1中顯示全部學生的信息,在文本框Text1中輸入計劃招生人數,點擊“錄取”按鈕Command1后,在列表框List2中輸出錄取的學生信息,并在標簽Label1上顯示最終錄取的人數。程序運行界面如第15題圖所示。
請回答下列問題:
(1)如第15題圖所示,按鈕Command1上顯示的“錄取”是該按鈕對象的(單選,填字母:A.對象名/B.屬性名/C.方法名/D.屬性值)
(2)實現上述功能的VB程序如下,請在劃線處填入合適的代碼。
(3)程序中加框處代碼有錯,請改正。
Const num=15
Dim xm(num)As String,kml(num)As Integer,km2(num)As Integer
Private Sub For m Load()
’讀取num個學生的姓名、科目1、科目2的成績,分別存儲到數組xm、kml、km2。
’在列表框List1中輸出所有學生的姓名與成績,代碼略。
End Sub
Private Sub Command1_Click()
Dim rs As Integer,count As Integer,flag As Boolean
Dim i As Integer,j As Integer,t As Integer,tmp As String
rs=Val(Text1.Text)
List2.AddItem"姓名科目1科目2"
count=0:i=1

Do While i〈=num And flag
For j=num-1 To i Step-1
If ② Then
tmp=xm(j):xm(j)=xm(j+1):xm(j+1)=tmp
t=kml(j):kml(j)=kml(j+1):kml(j+1)=t
t=km2(j):km2(j)=km2(j+1):km2(j+1)=t
End If
Next j
flag=False
If i<=num Or kml(i)+km2(i)=kml(i-1)+km2(i-1)Then
count=i:flag=True
End If
i=i+1
Loop
For i=1 To count
List2.AddItem xm(i)+""+Str(kml(i))+""+Str(km2(i))
Next i
Labe11.Caption="共錄取學生"+ ③ +"人"
End Sub
1

展開更多......

收起↑

資源預覽

<pre id="tfb94"><li id="tfb94"></li></pre>

<bdo id="tfb94"><rt id="tfb94"></rt></bdo>
  • <menu id="tfb94"><dl id="tfb94"></dl></menu><i id="tfb94"><acronym id="tfb94"><sub id="tfb94"></sub></acronym></i>

    1. 主站蜘蛛池模板: 凭祥市| 岱山县| 海晏县| 金坛市| 华亭县| 嘉峪关市| 贵德县| 九江市| 北京市| 武隆县| 孟村| 乌拉特前旗| 东台市| 佛坪县| 滦南县| 高清| 拜泉县| 新巴尔虎左旗| 加查县| 凯里市| 赤壁市| 江陵县| 淮南市| 闻喜县| 保定市| 股票| 营山县| 永福县| 新疆| 历史| 龙山县| 合作市| 福建省| 韩城市| 黎城县| 香河县| 新绛县| 仁布县| 湘潭县| 嫩江县| 商南县|