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

2020年粵教版高中信息技術(shù)必修一4.4.3循環(huán)嵌套的應(yīng)用同步練習(xí)

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

2020年粵教版高中信息技術(shù)必修一4.4.3循環(huán)嵌套的應(yīng)用同步練習(xí)

資源簡介

中小學(xué)教育資源及組卷應(yīng)用平臺(tái)
4.4.3循環(huán)嵌套的應(yīng)用-粵教版(2019)高中信息技術(shù)必修一練習(xí)
學(xué)校:___________姓名:___________班級(jí):___________考號(hào):___________
一、選擇題
1.有10個(gè)數(shù)據(jù):
83、90、96、46、44、36、45、47、55、72依次存放在數(shù)組元素a(1)到a(10)中,部分VB程序段如下所示:
m
=
1:k
=
1
For
i=
1
To
9
If
a(i)
<
a(i+1)
Then
k
=
k
+
1
If
k
>
m
Then
m
=
k
Else
k
=
1
End
If
Next
i
Text1.
Text
=
Str
(m)
執(zhí)行該程序段,文本框Text1中顯示的是(

A.2
B.3
C.4
D.5
【答案】D
【解析】
【詳解】
本題考查循環(huán)語句。
i
1
2
3
4
5
6
7
8
9
k
2
3
1
1
1
2
3
4
5
最終m=5。故本題選D。
2.有如下VB程序段:
For
i
=
1
To
3
For
j
=
1
To
6-i
If
a(j)>a(j+1)
Then
t=a(j):a(j)=a(j+1):
a(j+1)=t【來源:21·世紀(jì)·教育·網(wǎng)】
Next
j
Next
i
數(shù)組元素
a(1)到
a(6)的數(shù)據(jù)依次為“55,31,19,42,37,23”,則此程序運(yùn)行完成后數(shù)組元素的數(shù)據(jù)依次是(
)2-1-c-n-j-y
A.55,42,37,31,23,19
B.19,23,31,55,37,42
C.19,23,31,37,42,55
D.19,31,23,37,42,55
【答案】D
【解析】
【詳解】
本題考查冒泡排序。根據(jù)外循環(huán)語句,該排序只執(zhí)行三趟,又根據(jù)內(nèi)循環(huán)和判斷條件If
a(j)>a(j+1)
Then
交換,可知將數(shù)值較大的數(shù)據(jù)往下交換。原始數(shù)據(jù)為55,31,19,42,37,23,經(jīng)過三趟排序后,最終結(jié)果為19,31,23,37,42,55。故本題D選項(xiàng)為正確選項(xiàng)。21cnjy.com
3.有如下VB程序段:
a(1)
=
1:
a(2)
=
1
b(1)
=
1:
b(2)
=
2
For
i
=
3
To
5
a(i)
=
a(i
-
1)
+
a(i
-
2)
b(i)
=
b(i
-
1)
+
a(i)
Next
i
執(zhí)行該程序段后,數(shù)組元素b(5)的值為(

A.12
B.8
C.5
D.4
【答案】A
【解析】
【詳解】
本題考查循環(huán)語句和賦值語句。根據(jù)初值,以及循環(huán),
a(i)
=
a(i
-
1)
+
a(i
-
2),b(i)
=
b(i
-
1)
+
a(i)得到結(jié)果。最后b(5)=12,故本題選A。
二、操作題
4.小王利用循環(huán)排序思想編寫了一個(gè)VB程序,用于計(jì)算下一輪比賽的出場順序。從數(shù)據(jù)庫中讀取本輪比賽的人員姓名存在數(shù)組xm中,成績存在數(shù)組cj中(成績均不重復(fù))。編程實(shí)現(xiàn)將這些成績進(jìn)行循環(huán)升序排列。要求最低成績的位置不變,然后依次進(jìn)行升序排序,即從最小值開始向下尾首相連形成升序數(shù)列。程序運(yùn)行界面如圖所示。點(diǎn)擊“排序”按鈕,完成循環(huán)升序排序。
(1)“排序”按鈕的對(duì)象名為_
(2)請(qǐng)?jiān)趧澗€處填入合適代碼。
(3)加框處代碼出錯(cuò),請(qǐng)改正。
Dim
xm(1
to
100)As
String
,cj(1
to
100)As
Integer
Dim
flag(1
to
100)As
Boolean
Private
Sub
Form_
Load(

'從數(shù)據(jù)庫中讀取數(shù)據(jù),存儲(chǔ)到相應(yīng)數(shù)組中,并輸出在列表框Listl。第i個(gè)人,姓名為xm(i),成績?yōu)閏j(i)。人員數(shù)量存儲(chǔ)到變量n中()。代碼略21教育名師原創(chuàng)作品
End
Sub
Private
Sub
Cmd__Click()
Dim
min
As
Integer,
pmin
As
Integer
min
=
cj(1):
pmin
=
1
For
i=2
To
n
If
cj(i)
<
min
Then
min
=
cj(i):__①__
Next
i
flag(pmin)
=
True
pmin=
pmin
+
1
If
pmin=n+1
Then
pmin=1
For
i=1
To
n-2
k
=
pmin
For
j=1
To
n
If

Then
k=
j
Next
j
If
k
<>
pmin
Then
t
=
cj(k):
cj(k)
=
cj(pmin):
cj(pmin)
=
t
C
=
xm(k):
xm(k)
=
xm(pmin):
xm(pmin)
=
c
End
If
flag(pmin)
=
True
pmin=pmin+1
Next
i
'將排序后的人員姓名和成績輸出到列表框List2中,代碼略。
End
Sub
【答案】(1)
Cmd
(2)①pmin=i
②cj(j)
<
cj(k)
And
flag(j)
=
False
(3)pmin
=
pmin
Mod
n+
1
【解析】
【詳解】
本題考查VB排序算法。(1)根據(jù)代碼,排序按鈕的對(duì)象名為Cmd。(2)將最小值的位置記錄在pmin,故填入pmin=i。(3)尋找最小值,并且要保證該值之前沒有挑選過,所以填入cj(j)And
flag(j)=False。(4)根據(jù)題干是循環(huán)排序,所以位置也要構(gòu)成循環(huán),根據(jù)約瑟夫環(huán)狀類似結(jié)構(gòu),填入pmin=pmin
Mod
n+1
5.均分紅包。當(dāng)前有n堆紅包,編號(hào)為1,2,
3,
。。
n,每堆有若干個(gè)紅包,紅包總數(shù)sum是n的倍數(shù)。可以在任一堆上取若干個(gè)紅包,然后移動(dòng),最終使每堆上的紅包個(gè)數(shù)相同。
移紅包規(guī)則:
①編號(hào)為1的堆上的紅包,只能移到編號(hào)為2的堆上;
②編號(hào)為n的堆上的紅包,只能移到編號(hào)為n-1的堆上;
③其它堆上的紅包,可以移到相鄰左邊或右邊的堆上。
現(xiàn)要求找出最少的移動(dòng)次數(shù)使每堆的紅包數(shù)-樣多。如圖所示,在文本框Text1中輸入紅包堆數(shù)n,在文本框Text2中依次輸入每堆紅包的紅包個(gè)數(shù)(以“,”為分隔符和結(jié)束符),單擊“移紅包次數(shù)統(tǒng)計(jì)”按鈕Command1后,在標(biāo)簽Labe13中顯示最少的移動(dòng)次數(shù)。
(1)代碼“Private
Sub
Command1_
Click()”中的Click是______(單選,填字母:
A.對(duì)象名B.事件名C.事件處理過程名D.方法名)
(2)實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)?jiān)趧澗€處填入合適的代碼。
Const
Sum
=
40
'紅包總個(gè)數(shù)
Private
Sub
Command1_
Click
()
Dim
n
As
Integer
'紅包的堆數(shù)
Dim
s
As
String,
k
As
Integer
Dim
avg
As
Integer
'最終每堆的紅包個(gè)數(shù)
Dim
ml
As
Integer,
m2
As
Integer
Dim
tmp
As
Integer,
count
As
Integer,
ans
As
Integer21
cnjy
com
n=
__________
s
=
Text2.
Text
avg=Sum/n
tmp=0:count=0:ans=0
For
k=1
To
Len(s)
c
=
Mid(s,
k,
1)
If
c
<>","Then
tmp
=_
_________
Else
count
=
count
+
1
If
count
=
1
Then
ml
=tmp
Else
m2
=
tmp
If
ml
<>
avg
Then
m2=m2-(avg-m1)
ans=ans+1
End
If
________
End
If
tmp=0
End
If
Next
k
Labe13.
Caption
=
Str
(ans)
End
Sub
【答案】B
①Val
(Textl.
text)
②tmp
10+Val(c)
③m1=m2
【解析】
【詳解】
本題考查VB綜合能力。(1)Click是事件名。(2)從text1中得到堆數(shù),填入Val
(Textl.text)。(3)If
c
<>“,”,如果c不是逗號(hào),則累加,將整個(gè)數(shù)字取出放入tmp,注意數(shù)據(jù)類型,填入tmp
10+Val(c)。(4)繼續(xù)運(yùn)算,m1重新賦值,故填入m1=m2。
6.某班級(jí)學(xué)生為畢業(yè)晚會(huì)的一個(gè)節(jié)目設(shè)計(jì)一個(gè)仿“V”字造型,先篩選出班級(jí)中n名學(xué)生的所有男生,然后將參演的男生按照身高,擺出中間低兩邊高(先右后左)的造型,如下圖1
所示。王林同學(xué)用VB編寫模擬“節(jié)目造型”程序,功能如下:從數(shù)據(jù)庫中導(dǎo)出所有學(xué)生編號(hào)、性別和身高數(shù)據(jù);單擊“篩選排序”按鈕Command2,根據(jù)身高仿“V”字和造型進(jìn)行有序排列,并將結(jié)果顯示在文本框Text2
中。程序運(yùn)行界面如圖2所示。舉例說明如下:
原1-7號(hào)男生身高
171
172
180
174
176
179
178
篩選排序后序列
171
172
174
176
178
179
180
“造型設(shè)計(jì)”后序列
180
178
174
171
172
176
179
圖1
身高順序:男3號(hào)〉男6號(hào)〉男7號(hào)〉男5號(hào)〉男4號(hào)〉男2號(hào)〉男1號(hào)
圖2
Dim
h
(1
To
n)
As
Integer
Dim
height1(1
To
n)
As
Integer
Dim
height2(1
To
n)
As
Integer
Dim
n
As
Integer,i
As
Integer,
j
As
Integer,
num
As
Integer
,tmp
As
Integer
Dim
sex(1
To
n)
As
String
Private
Sub
Form_Load()
'n名學(xué)生的身高和性別由數(shù)據(jù)庫導(dǎo)出,分別存儲(chǔ)在數(shù)組h
和sex中,代碼略!
End
Sub
Private
Sub
Command1_Click()
b
=
0
For
i
=
1
To
n
'n名學(xué)生中的男生
If
sex(i)
=
“男”
Then

:height1(num)
=
h(i)
Next
i
For
i
=
1
To
num
-
1
For
j
=
num
To
i
+
1
Step
-1
If
height1(j)
<
height1(j
-
1)
Then
tmp
=
height1(j):
height1(j)
=
height1(j
-
1):
height1(j
-
1)
=
tmp
End
If
Next
j
Next
i
For
i
=
1
To
num
Text1.Text
=
Text1.Text
+
"
"
+
Str(height1(i))【版權(quán)所有:21教育】
Next
i
End
Sub
Private
Sub
Command2_Click()
Dim
left,
right
As
Integer,
i
As
Integer,
mid
As
Integer
mid
=
Int((1
+
num)
/
2)
left
=
0:
right
=
0
height2(mid)
=
height1(1)
For
i
=
1
To
(num
-
1)
\
2
right
=
right
+
1
height2(mid
+
right)
=
height1(2
i)
left
=
left
+
1

Next
i
If
num
Mod
2
=
0
Then

For
i
=
1
To
num
Text2.Text
=
Text2.Text
+
"
"
+
Str(height2(i))
Next
i
End
Sub
(1)若參演的8名男生身高為180、171、173、174、178、175、176、170,程序執(zhí)行結(jié)束后height1(5)的值是
。2·1·c·n·j·y
(2)在程序①、②、③畫線處填入適當(dāng)?shù)恼Z句或表達(dá)式。將程序補(bǔ)充完整:
程序中①畫線處應(yīng)填入

程序中②畫線處應(yīng)填入

程序中③畫線處應(yīng)填入

【答案】(1)175
(2)①
num=num+1
②height2(mid
-left)
=
height1(2
i+1)
③height2(num)
=
height1(num)21世紀(jì)教育網(wǎng)版權(quán)所有
【解析】
【詳解】
本題考查VB綜合能力。根據(jù)題干,擺出中間低兩邊高(先右后左)的造型height1(5)=175。(2)如果是男生,則男生數(shù)量+1,故填入num=num+1。(3)left表示網(wǎng)左邊排序,排序的是奇數(shù)位上的數(shù)值,故填入height2(mid
-left)=height1(2
i+1)。(4)如果整體數(shù)量是偶數(shù)個(gè),則需要把最后一個(gè)也添加到數(shù)組中,故填入height2(num)=height1(num)。
7.小龍同學(xué)設(shè)計(jì)了一個(gè)求四則混合運(yùn)算結(jié)果的程序,用于計(jì)算不帶括號(hào)的+、-、
、\的運(yùn)算,
\為整除運(yùn)算,且此處要求
和\的優(yōu)先級(jí)相同。在表達(dá)式中輸入待求解的表達(dá)式,以=結(jié)尾。按下
Command1“計(jì)算”按鈕后,在標(biāo)簽控件
Label1
中輸出運(yùn)算結(jié)果。程序界面如下圖所示:
(1)在表達(dá)式中輸入15-22\5
2+7=,則輸出的結(jié)果是

(2)實(shí)現(xiàn)上述功能的
VB
程序如下,請(qǐng)?jiān)趧澗€處填入合適代碼。
Function
calculate(x
As
Integer,
y
As
Integer,
op
As
String)
As
Integer
If
op
=
"+"
Then
calculate
=
x
+
y
If
op
=
"-"
Then
calculate
=
x
-
y
If
op
=
"
"
Then
calculate
=
x
y
If
op
=
"\"
Then
calculate
=
x
\
y
End
Function
Function
state(op
As
String)
As
Integer
If
op
=
"#"
Then
state
=
-1
If
op
=
"="
Then
state
=
1
If
op
=
"+"
Then
state
=
1
If
op
=
"-"
Then
state
=
1
'①
If
op
=
"
"
Then
state
=
3
End
Function
Private
Sub
Command1_Click()
Dim
s
As
String,
length
As
Integer,
t
As
String
Dim
k
As
Integer,
q
As
Integer21·世紀(jì)
教育網(wǎng)
Dim
opt(0
To
3)
As
String
Dim
i
As
Integer
Dim
s1
As
String
Dim
a(1
To
3)
As
Integer
s
=
Text1.Text
length
=
Len(s)
t
=
"":
k
=
0:
q
=
0:
opt(q)
=
"#"
For
i
=
1
To
length
s1
=
Mid(s,
i,
1)
If
s1
>=
"0"
And
s1
<=
"9"
Then
t
=
t
+
s1
Else
k
=
k
+
1
a(k)
=
Val(t)
t
=
""
Do
While
'②
a(k
-
1)
=
calculate(a(k
-
1),
a(k),
opt(q))
k
=
k
-
1
q=
q
-
1
Loop
q
=
q
+
1
'③
If
s1
=
"="
Then
Label1.Caption
=
Str(a(1))
End
If
Next
i
End
Sub
【答案】(1)14
(2)①Ifop=“\”Thenstate=3
②state(s1)<=state(opt(q))
③opt(q)=slwww-2-1-cnjy-com
【解析】
【分析】
【詳解】
本題考查VB綜合能力。(1)15-22\5
2+7結(jié)果為14。(2)如果運(yùn)算符是除號(hào),則state=3,故填入If
op=“\”Then
state=3。(3)根據(jù)優(yōu)先級(jí)進(jìn)行運(yùn)算,若前一個(gè)運(yùn)算符的優(yōu)先級(jí)比后一個(gè)運(yùn)算符高或者相等,則可進(jìn)行a(k
-
1)和a(k)的運(yùn)算,故填入state(s1)<=state(opt(q))。(4)將運(yùn)算符記錄在opt數(shù)組中。
8.若一個(gè)三位數(shù)abc滿足,則稱abc為水仙花數(shù)。如三位數(shù)153滿足,則153是水仙花數(shù)。以下是找出所有水仙花數(shù)的程序,請(qǐng)把程序補(bǔ)充完整。(a為百位數(shù)、b為十位數(shù)、c為個(gè)位數(shù))【來源:21cnj
y.co
m】
Dim
i
As
Integer,a
As
Integer,b
As
Integer,c
As
Integer
For
i=100
To
____________
a=i\100
b=______________
c=i-100
a-10
b
If_______________________
Then
Print
i
End
If
Next
i
【答案】999
(i-a
100)\10或(i
Mod
100)\10
i=a^3+b^3+c^3
【解析】
【詳解】
本題考查枚舉算法。本題考查枚舉算法。枚舉法的本質(zhì)就是從所有候選答案中去搜索正確的解,使用該算法需要滿足兩個(gè)條件:可預(yù)先確定候選答案的數(shù)量;候選答案的范圍在求解之前必須有一個(gè)確定的集合。(1)三位數(shù)的范圍是100-999,所以第一空為999。(2)b是三位數(shù)的中間那個(gè)數(shù)字,所以該空代碼為(i-a
100)\10或(i
Mod
100)\10。(3)如果符合水仙花數(shù)的條件,則打印,故該空為i=a^3+b^3+c^3。
9.小王基于選擇排序算法編寫了一個(gè)
VB
程序,功能如下:數(shù)組
a

n
n
個(gè)元素,按
n

n
列進(jìn)行排列,按列進(jìn)行升序排序。例如
6
6
的數(shù)組,第一列將
a(1),a(7),a(13),a(19),a(25),a(31)進(jìn)行排序。運(yùn)行程序,在列表框
List1
中顯示
n
n
個(gè)數(shù)列單擊“排序”按鈕
Command1,在列表框List2
中顯示排序后的結(jié)果,程序運(yùn)行界面如圖所示。請(qǐng)回答下列問題:
(1)n=6時(shí)運(yùn)行結(jié)果如圖所示,圖中1處“47”在數(shù)組
a中下標(biāo)是
_______
(填數(shù)字)。
(2)為了實(shí)現(xiàn)上述功能,請(qǐng)?jiān)趧澗€處填寫合適的代碼。
①_______________
②_______________
(3)程序中加框處代碼有錯(cuò),請(qǐng)改正。
_________________
Const
n
=6
Dim
a(1
To
n
n)
As
Integer
Private
Sub
Form_Load()
'產(chǎn)生n
n個(gè)數(shù)組元素,每行按n個(gè)數(shù)顯示在list1中
For
i
=
1
To
n
n
a(i)
=
Int(Rnd
90)
+
10
s
=
s
+
Str(a(i))
If①____________Then
List1.AddItem
s
s
=
""
End
If
Next
i
End
Sub
Private
Sub
Command1_Click()
Dim
i
As
Integer,
j
As
Integer,
w
As
Integer,
s
As
String
For
i
=
1
To
n
n
k
=
i
For
j
=
k
+
n
To
②___________
If
a(k)
>
a(j)
Then
k
=
j
Next
j
If
Then
t
=
a(k):
a(k)
=
a(i):
a(i)
=
t
Next
i
'將排序后數(shù)組a的元素,按每行n個(gè)數(shù)顯示在list2中,代碼略
End
Sub
【答案】12
i
Mod
n=0
n
n
Step
n
k<>i或a(k)<>
a(i)
【解析】
【詳解】
本題考查VB綜合能力,選擇排序算法等。(1)根據(jù)矩陣排列,每行每列都是n個(gè),可知圖中1處47在數(shù)組
a中下標(biāo)是12。(2)List1中是按每行輸出,所以當(dāng)一行數(shù)量達(dá)到n個(gè)時(shí),輸出。則第一空的代碼為i
Mod
n=0。(3)因?yàn)槭前凑樟信判颍栽趦?nèi)循環(huán)的終值將所有數(shù)組元素包括,限定步長為n,這樣就可以保證按列比較,故第二空代碼為n
n
Step
n。(4)根據(jù)選擇排序特性,當(dāng)a(k)<>a(i)時(shí),交換,故改為a(k)<>a(i)。
10.編寫VB程序,實(shí)現(xiàn)如下功能:在文本框Text1中輸入二進(jìn)制數(shù),單擊“轉(zhuǎn)換”命令按鈕Command1,在文本框Text2中輸出對(duì)應(yīng)的十六進(jìn)制數(shù)。程序運(yùn)行界面如圖所示,請(qǐng)回答下列問題:
(1)如果輸入的二進(jìn)制數(shù)為“1101010”,則得到的結(jié)果為____________

(2)實(shí)現(xiàn)上述功能的
VB
程序如下,請(qǐng)?jiān)趧澗€處填入合適代碼。
Private
Function
bw(x
As
Integer,
y
As
String)
As
String
'函數(shù)bw功能:若二進(jìn)制位數(shù)不足,通過在前面添"0"使得位數(shù)為4的倍數(shù)
Dim
r
As
Integer,
i
As
Integer
r
=
x
Mod
4
If
r
<>
0
Then
For
i
=
1
To
4
-
r
y
=
"0"
+
y
Next
i
x
=
Len(y)
End
If
bw
=______________
End
Function
Private
Sub
Command1_Click()
Dim
m
As
String,
n
As
Integer,
i
As
Integer,
a
As
Integer
Dim
s
As
Integer,
s1
As
String,
j
As
Integer
m
=
Text1.Text
n
=
Len(m)
Text2.Text
=
""
m
=____________
'調(diào)整m的位數(shù)為4的倍數(shù)
For
i
=
1
To
n
-
3
Step
4
s
=
0
For
j
=
i
To
i
+
3
a
=
Val(Mid(m,
j,
1))
s
=_______________
Next
j
If
s
>=
10
Then
s1
=
Chr(Asc("A")
+
s
-
10)
Else
s1
=
CStr(s)
'函數(shù)CStr類似于Str,但無前導(dǎo)空格
End
If
Text2.Text
=
Text2.Text
+
s1
Next
i
End
Sub
【答案】6A
y
bw(n,m)
s
2+a
【解析】
【詳解】
本題考查VB綜合能力,進(jìn)制轉(zhuǎn)換等。(1)根據(jù)題意,將1101010轉(zhuǎn)為十六進(jìn)制,得到結(jié)果為6A。(2)在自定義函數(shù)內(nèi)部,需要有返回值,故代碼第一空填寫為y。(3)此處語句為調(diào)用自定義函數(shù),將n和m帶入自定義函數(shù),故此空語句為bw(n,m)。(4)此處語句為將二進(jìn)制轉(zhuǎn)換為十進(jìn)制,疊加語句可以是結(jié)果變量乘以進(jìn)制數(shù)然后加上當(dāng)前數(shù)值,故代碼為s
2+a。21
cnjy
com
11.某加密算法的明文和密鑰均由英文字母組成,且密鑰循環(huán)使用,其加密規(guī)則如下:
①明文字符與對(duì)應(yīng)密鑰的
ASCII
碼轉(zhuǎn)化為二進(jìn)制后求異或(對(duì)應(yīng)位相同時(shí)結(jié)果為
0,對(duì)應(yīng)位不同時(shí)結(jié)果為
1,如二進(jìn)制
1001
與二進(jìn)制
1100
的異或值為
0101),并將異或結(jié)果轉(zhuǎn)換為十進(jìn)制p;
②如果處在奇數(shù)位,則將明文字符循環(huán)后移
p
個(gè)位置,否則將明文前移
p
個(gè)位置。移動(dòng)過程中保持大小寫不變。
最后把所得到的字符連接起來就是密文。
例如,密鑰是“abc”,明
文“d”的加密過程是:字符“d”的
ASCII
碼表示為二進(jìn)制是
1100100,密鑰“a”的
ASCII
碼表示為二進(jìn)制是
1100001,兩數(shù)進(jìn)行異或結(jié)果是:0000101,轉(zhuǎn)化為十進(jìn)制為
5,因?yàn)槭堑?br/>1
個(gè)位置,所以把明文后移
5
個(gè)位置,則密文是“i”。
該加密過程使用
VB
來實(shí)現(xiàn)。具體功能設(shè)計(jì)如下:在
Text1
中輸入明文,Text2
中輸入密鑰,
單擊“開始加密”按鈕Command1
后將密文顯示在
Text3
中,界面設(shè)計(jì)如圖所示。
請(qǐng)回答以下問題:
(1)如果密鑰為“bc”,字符“d”加密后的密文為:_____(字母“a”的
ASCII
碼為
97)
(2)請(qǐng)完善以下程序代碼。
Private
Sub
Command1_Click()
Dim
s
As
String,
sn
As
String
Dim
i
As
Integer,
t
As
Integer,
u
As
Integer
Dim
p
As
Integer,
g
As
Integer
sn
=
""
For
i
=
1
To
Len(Text1.Text)
t
=
Asc(Mid(Text1.Text,
i,
1))
If
t
>=
Asc("a")
Then
g
=
Asc("a")
Else
g
=
Asc("A")
End
If
u
=
Asc(Mid(Text2.Text,
(i
-
1)
Mod
Len(Text2.Text)
+
1,
1))
p
=_________
t
=
t
-
g
If
i
Mod
2
=
1
Then
t
=
(t
+
p)
Mod
26
Else
t
=__________
End
If
sn
=
sn
+
Chr(t
+
g)
Next
i
Text3.Text
=
sn
End
Sub
Function
txor(x
As
Integer,
y
As
Integer)
As
Integer
'x、y
求異或并返回十進(jìn)制
Dim
a
As
Integer,
b
As
Integer,
r
As
Integer,
i
As
Integer
21教育網(wǎng)
a
=
x:
b
=
y
r
=
1
For
i
=
1
To
7
If
a
Mod
2
<>
b
Mod
2
Then________
a
=
a
\
2
b
=
b
\
2
r
=
r
2
Next
i
End
Function
【答案】j
①txor(t,u)Mod26或txor(u,t)Mod
26
②(t-p+26)Mod
26
③txor=txor+r
21·cn·jy·com
【解析】
【詳解】
本題考查VB綜合能力。(1)根據(jù)題干,如果密鑰為bc,字符d加密后的密文,字符“d”的
ASCII
碼表示為二進(jìn)制是
1100100,密鑰“b”的
ASCII
碼表示為二進(jìn)制是
1100010,兩數(shù)進(jìn)行異或結(jié)果是:0000110,轉(zhuǎn)化為十進(jìn)制為6,因?yàn)槭堑?個(gè)位置,所以把明文后移6個(gè)位置,則密文是“j”。(2)代入自定義函數(shù)txor求異或并返回十進(jìn)制,則填入txor(t,u)
Mod
26。(3)當(dāng)i是偶數(shù)時(shí),向前循環(huán)移動(dòng),故填入(t-p+26)Mod
26。(4)得到返回值結(jié)果,填入txor=txor+r。
【出處:21教育名師】
12.小李基于選擇排序算法編寫了一個(gè)
VB
程序,功能如下:在文本框
Text1
中顯示排序前的數(shù)據(jù),單擊
“排序”按鈕
Command1,在文本框
Text2
中顯示剔除重復(fù)數(shù)據(jù)后的升序排序結(jié)果。程序運(yùn)行界面如下圖所示。算法的思路:第
i
趟排序從
a(i)….a(bottom)中查找最小值并記錄其下標(biāo)
k,同時(shí)將后面的每個(gè)元素與
a(i)比較是否重復(fù),若發(fā)現(xiàn)重復(fù)數(shù)據(jù),進(jìn)行剔除處理;找到最小值與
a(i)交換。
實(shí)現(xiàn)上述功能的
VB
程序如下,在劃線處填入合適的代碼,并將答案寫在答題卡上。
Const
n
=
10
Dim
a(1
To
n)
As
Integer
Private
Sub
Command1_Click()
Dim
i
As
Integer,
j
As
Integer,
t
As
Integer
Dim
k
As
Integer,
bottom
As
Integer
'獲取排序前數(shù)據(jù),依次存儲(chǔ)在數(shù)組
a
中,并在文本框
Text1
中顯示。代碼略
bottom
=
n:
i
=
1
Do
While
i
<=
bottom
-
1
k
=
i:
j
=
bottom
Do
While
j
>
i
If
a(j)
<
a(k)
Then
k
=
j
ElseIf
a(j)
=
a(i)
Then
'若發(fā)現(xiàn)重復(fù)數(shù)據(jù),進(jìn)行剔除處理
a(j)
=
a(bottom)
If__________________Then
k
=
j
bottom
=
bottom
-
1
End
If
j
=
j
-
1
Loop
If
k
<>
i
Then
t
=
a(k):
a(k)
=
a(i):
a(i)
=
t
Else
______________________
EndIF
Loop
For
i
=
1
To
________________
Text2.Text
=
Text2.Text
+
Str(a(i))
Next
i
End
Sub
【答案】k=bottom
i=i+1
bottom
【解析】
【詳解】
本題考查VB綜合能力,選擇排序,循環(huán)語句等。(1)根據(jù)題干,需要進(jìn)行排序和去重。若此時(shí),標(biāo)記最小值的變量k=bottom,也就是k指在最后,而此時(shí)又發(fā)生重復(fù),即a(j)
=
a(i)
,那么需要剔除,將最后面的元素覆蓋到重復(fù)位置,即a(j)
=
a(bottom),于是,變量k需要跟著移動(dòng)到此時(shí)j的位置,否則當(dāng)執(zhí)行bottom
=
bottom
-
1的時(shí)候,k變量指向的位置就會(huì)丟掉。所以第一空填入k=bottom。(2)此時(shí)塊IF中Else是指
k=i,當(dāng)k=i時(shí),無需交換,也已經(jīng)將重復(fù)元素剔除,從而進(jìn)行下一個(gè)數(shù)據(jù)的判斷,將i往下移動(dòng),即i=i+1。(3)最后的輸出,從1到bottom,故第三空填入bottom。www.21-cn-jy.com
三、填空題
13.運(yùn)行以下VB程序,輸出結(jié)果是_____________。
Private
Sub
Command1_Click()
Dim
s
As
Integer,
x
As
Integer
s
=
0
x
=
20
For
x
=
20
To
1
Step
-3
s
=
s
+
x
Next
x
Print
x
End
Sub
【答案】77
【解析】
【詳解】
本題考查VB程序段。
x=20,s=20,
x=17,s=37,
x=14,s=51,
x=11,s=62,
x=8,s=70,
x=5,s=75,
x=2,s=77
x=1,循環(huán)結(jié)束,最后x=77。
21世紀(jì)教育網(wǎng)
www.21cnjy.com
精品試卷·第
2

(共
2
頁)
21世紀(jì)教育網(wǎng)(www.21cnjy.com)中小學(xué)教育資源及組卷應(yīng)用平臺(tái)
4.4.3循環(huán)嵌套的應(yīng)用-粵教版(2019)高中信息技術(shù)必修一練習(xí)
學(xué)校:___________姓名:___________班級(jí):___________考號(hào):___________
一、選擇題
1.有10個(gè)數(shù)據(jù):
83、90、96、46、44、36、45、47、55、72依次存放在數(shù)組元素a(1)到a(10)中,部分VB程序段如下所示:www.21-cn-jy.com
m
=
1:k
=
1
For
i=
1
To
9
If
a(i)
<
a(i+1)
Then
k
=
k
+
1
If
k
>
m
Then
m
=
k
Else
k
=
1
End
If
Next
i
Text1.
Text
=
Str
(m)
執(zhí)行該程序段,文本框Text1中顯示的是(

A.2
B.3
C.4
D.5
2.有如下VB程序段:
For
i
=
1
To
3
For
j
=
1
To
6-i
If
a(j)>a(j+1)
Then
t=a(j):a(j)=a(j+1):
a(j+1)=t2-1-c-n-j-y
Next
j
Next
i
數(shù)組元素
a(1)到
a(6)的數(shù)據(jù)依次為“55,31,19,42,37,23”,則此程序運(yùn)行完成后數(shù)組元素的數(shù)據(jù)依次是(
)21
cnjy
com
A.55,42,37,31,23,19
B.19,23,31,55,37,42
C.19,23,31,37,42,55
D.19,31,23,37,42,55
3.有如下VB程序段:
a(1)
=
1:
a(2)
=
1
b(1)
=
1:
b(2)
=
2
For
i
=
3
To
5
a(i)
=
a(i
-
1)
+
a(i
-
2)
b(i)
=
b(i
-
1)
+
a(i)
Next
i
執(zhí)行該程序段后,數(shù)組元素b(5)的值為(

A.12
B.8
C.5
D.4
二、操作題
4.小王利用循環(huán)排序思想編寫了一個(gè)VB程序,用于計(jì)算下一輪比賽的出場順序。從數(shù)據(jù)庫中讀取本輪比賽的人員姓名存在數(shù)組xm中,成績存在數(shù)組cj中(成績均不重復(fù))。編程實(shí)現(xiàn)將這些成績進(jìn)行循環(huán)升序排列。要求最低成績的位置不變,然后依次進(jìn)行升序排序,即從最小值開始向下尾首相連形成升序數(shù)列。程序運(yùn)行界面如圖所示。點(diǎn)擊“排序”按鈕,完成循環(huán)升序排序。
(1)“排序”按鈕的對(duì)象名為_
(2)請(qǐng)?jiān)趧澗€處填入合適代碼。
(3)加框處代碼出錯(cuò),請(qǐng)改正。
Dim
xm(1
to
100)As
String
,cj(1
to
100)As
Integer
Dim
flag(1
to
100)As
Boolean
Private
Sub
Form_
Load(

'從數(shù)據(jù)庫中讀取數(shù)據(jù),存儲(chǔ)到相應(yīng)數(shù)組中,并輸出在列表框Listl。第i個(gè)人,姓名為xm(i),成績?yōu)閏j(i)。人員數(shù)量存儲(chǔ)到變量n中()。代碼略21·世紀(jì)
教育網(wǎng)
End
Sub
Private
Sub
Cmd__Click()
Dim
min
As
Integer,
pmin
As
Integer
min
=
cj(1):
pmin
=
1
For
i=2
To
n
If
cj(i)
<
min
Then
min
=
cj(i):__①__
Next
i
flag(pmin)
=
True
pmin=
pmin
+
1
If
pmin=n+1
Then
pmin=1
For
i=1
To
n-2
k
=
pmin
For
j=1
To
n
If

Then
k=
j
Next
j
If
k
<>
pmin
Then
t
=
cj(k):
cj(k)
=
cj(pmin):
cj(pmin)
=
t
C
=
xm(k):
xm(k)
=
xm(pmin):
xm(pmin)
=
c
End
If
flag(pmin)
=
True
pmin=pmin+1
Next
i
'將排序后的人員姓名和成績輸出到列表框List2中,代碼略。
End
Sub
5.均分紅包。當(dāng)前有n堆紅包,編號(hào)為1,2,
3,
。。
n,每堆有若干個(gè)紅包,紅包總數(shù)sum是n的倍數(shù)。可以在任一堆上取若干個(gè)紅包,然后移動(dòng),最終使每堆上的紅包個(gè)數(shù)相同。【來源:21cnj
y.co
m】
移紅包規(guī)則:
①編號(hào)為1的堆上的紅包,只能移到編號(hào)為2的堆上;
②編號(hào)為n的堆上的紅包,只能移到編號(hào)為n-1的堆上;
③其它堆上的紅包,可以移到相鄰左邊或右邊的堆上。
現(xiàn)要求找出最少的移動(dòng)次數(shù)使每堆的紅包數(shù)-樣多。如圖所示,在文本框Text1中輸入紅包堆數(shù)n,在文本框Text2中依次輸入每堆紅包的紅包個(gè)數(shù)(以“,”為分隔符和結(jié)束符),單擊“移紅包次數(shù)統(tǒng)計(jì)”按鈕Command1后,在標(biāo)簽Labe13中顯示最少的移動(dòng)次數(shù)。21世紀(jì)教育網(wǎng)版權(quán)所有
(1)代碼“Private
Sub
Command1_
Click()”中的Click是______(單選,填字母:
A.對(duì)象名B.事件名C.事件處理過程名D.方法名)
(2)實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)?jiān)趧澗€處填入合適的代碼。
Const
Sum
=
40
'紅包總個(gè)數(shù)
Private
Sub
Command1_
Click
()
Dim
n
As
Integer
'紅包的堆數(shù)
Dim
s
As
String,
k
As
Integer
Dim
avg
As
Integer
'最終每堆的紅包個(gè)數(shù)
Dim
ml
As
Integer,
m2
As
Integer
Dim
tmp
As
Integer,
count
As
Integer,
ans
As
Integer【版權(quán)所有:21教育】
n=
__________
s
=
Text2.
Text
avg=Sum/n
tmp=0:count=0:ans=0
For
k=1
To
Len(s)
c
=
Mid(s,
k,
1)
If
c
<>","Then
tmp
=_
_________
Else
count
=
count
+
1
If
count
=
1
Then
ml
=tmp
Else
m2
=
tmp
If
ml
<>
avg
Then
m2=m2-(avg-m1)
ans=ans+1
End
If
________
End
If
tmp=0
End
If
Next
k
Labe13.
Caption
=
Str
(ans)
End
Sub
6.某班級(jí)學(xué)生為畢業(yè)晚會(huì)的一個(gè)節(jié)目設(shè)計(jì)一個(gè)仿“V”字造型,先篩選出班級(jí)中n名學(xué)生的所有男生,然后將參演的男生按照身高,擺出中間低兩邊高(先右后左)的造型,如下圖1
所示。王林同學(xué)用VB編寫模擬“節(jié)目造型”程序,功能如下:從數(shù)據(jù)庫中導(dǎo)出所有學(xué)生編號(hào)、性別和身高數(shù)據(jù);單擊“篩選排序”按鈕Command2,根據(jù)身高仿“V”字和造型進(jìn)行有序排列,并將結(jié)果顯示在文本框Text2
中。程序運(yùn)行界面如圖2所示。舉例說明如下:
原1-7號(hào)男生身高
171
172
180
174
176
179
178
篩選排序后序列
171
172
174
176
178
179
180
“造型設(shè)計(jì)”后序列
180
178
174
171
172
176
179
圖1
身高順序:男3號(hào)〉男6號(hào)〉男7號(hào)〉男5號(hào)〉男4號(hào)〉男2號(hào)〉男1號(hào)
圖2
Dim
h
(1
To
n)
As
Integer
Dim
height1(1
To
n)
As
Integer
Dim
height2(1
To
n)
As
Integer
Dim
n
As
Integer,i
As
Integer,
j
As
Integer,
num
As
Integer
,tmp
As
Integer
Dim
sex(1
To
n)
As
String
Private
Sub
Form_Load()
'n名學(xué)生的身高和性別由數(shù)據(jù)庫導(dǎo)出,分別存儲(chǔ)在數(shù)組h
和sex中,代碼略!
End
Sub
Private
Sub
Command1_Click()
b
=
0
For
i
=
1
To
n
'n名學(xué)生中的男生
If
sex(i)
=
“男”
Then

:height1(num)
=
h(i)
Next
i
For
i
=
1
To
num
-
1
For
j
=
num
To
i
+
1
Step
-1
If
height1(j)
<
height1(j
-
1)
Then
tmp
=
height1(j):
height1(j)
=
height1(j
-
1):
height1(j
-
1)
=
tmp
End
If
Next
j
Next
i
For
i
=
1
To
num
Text1.Text
=
Text1.Text
+
"
"
+
Str(height1(i))21教育網(wǎng)
Next
i
End
Sub
Private
Sub
Command2_Click()
Dim
left,
right
As
Integer,
i
As
Integer,
mid
As
Integer2·1·c·n·j·y
mid
=
Int((1
+
num)
/
2)
left
=
0:
right
=
0
height2(mid)
=
height1(1)
For
i
=
1
To
(num
-
1)
\
2
right
=
right
+
1
height2(mid
+
right)
=
height1(2
i)
left
=
left
+
1

Next
i
If
num
Mod
2
=
0
Then

For
i
=
1
To
num
Text2.Text
=
Text2.Text
+
"
"
+
Str(height2(i))【來源:21·世紀(jì)·教育·網(wǎng)】
Next
i
End
Sub
(1)若參演的8名男生身高為180、171、173、174、178、175、176、170,程序執(zhí)行結(jié)束后height1(5)的值是
。www-2-1-cnjy-com
(2)在程序①、②、③畫線處填入適當(dāng)?shù)恼Z句或表達(dá)式。將程序補(bǔ)充完整:
程序中①畫線處應(yīng)填入

程序中②畫線處應(yīng)填入

程序中③畫線處應(yīng)填入

7.小龍同學(xué)設(shè)計(jì)了一個(gè)求四則混合運(yùn)算結(jié)果的程序,用于計(jì)算不帶括號(hào)的+、-、
、\的運(yùn)算,
\為整除運(yùn)算,且此處要求
和\的優(yōu)先級(jí)相同。在表達(dá)式中輸入待求解的表達(dá)式,以=結(jié)尾。按下
Command1“計(jì)算”按鈕后,在標(biāo)簽控件
Label1
中輸出運(yùn)算結(jié)果。程序界面如下圖所示:【出處:21教育名師】
(1)在表達(dá)式中輸入15-22\5
2+7=,則輸出的結(jié)果是

(2)實(shí)現(xiàn)上述功能的
VB
程序如下,請(qǐng)?jiān)趧澗€處填入合適代碼。
Function
calculate(x
As
Integer,
y
As
Integer,
op
As
String)
As
Integer
If
op
=
"+"
Then
calculate
=
x
+
y21
cnjy
com
If
op
=
"-"
Then
calculate
=
x
-
y
If
op
=
"
"
Then
calculate
=
x
y
If
op
=
"\"
Then
calculate
=
x
\
y
End
Function
Function
state(op
As
String)
As
Integer
If
op
=
"#"
Then
state
=
-1
If
op
=
"="
Then
state
=
1
If
op
=
"+"
Then
state
=
1
If
op
=
"-"
Then
state
=
1
'①
If
op
=
"
"
Then
state
=
3
End
Function
Private
Sub
Command1_Click()
Dim
s
As
String,
length
As
Integer,
t
As
String
Dim
k
As
Integer,
q
As
Integer
Dim
opt(0
To
3)
As
String
Dim
i
As
Integer
Dim
s1
As
String
Dim
a(1
To
3)
As
Integer
s
=
Text1.Text
length
=
Len(s)
t
=
"":
k
=
0:
q
=
0:
opt(q)
=
"#"
For
i
=
1
To
length
s1
=
Mid(s,
i,
1)
If
s1
>=
"0"
And
s1
<=
"9"
Then
t
=
t
+
s1
Else
k
=
k
+
1
a(k)
=
Val(t)
t
=
""
Do
While
'②
a(k
-
1)
=
calculate(a(k
-
1),
a(k),
opt(q))
k
=
k
-
1
q=
q
-
1
Loop
q
=
q
+
1
'③
If
s1
=
"="
Then
Label1.Caption
=
Str(a(1))
End
If
Next
i
End
Sub
8.若一個(gè)三位數(shù)abc滿足,則稱abc為水仙花數(shù)。如三位數(shù)153滿足,則153是水仙花數(shù)。以下是找出所有水仙花數(shù)的程序,請(qǐng)把程序補(bǔ)充完整。(a為百位數(shù)、b為十位數(shù)、c為個(gè)位數(shù))21·cn·jy·com
Dim
i
As
Integer,a
As
Integer,b
As
Integer,c
As
Integer
For
i=100
To
____________
a=i\100
b=______________
c=i-100
a-10
b
If_______________________
Then
Print
i
End
If
Next
i
9.小王基于選擇排序算法編寫了一個(gè)
VB
程序,功能如下:數(shù)組
a

n
n
個(gè)元素,按
n

n
列進(jìn)行排列,按列進(jìn)行升序排序。例如
6
6
的數(shù)組,第一列將
a(1),a(7),a(13),a(19),a(25),a(31)進(jìn)行排序。運(yùn)行程序,在列表框
List1
中顯示
n
n
個(gè)數(shù)列單擊“排序”按鈕
Command1,在列表框List2
中顯示排序后的結(jié)果,程序運(yùn)行界面如圖所示。請(qǐng)回答下列問題:
(1)n=6時(shí)運(yùn)行結(jié)果如圖所示,圖中1處“47”在數(shù)組
a中下標(biāo)是
_______
(填數(shù)字)。
(2)為了實(shí)現(xiàn)上述功能,請(qǐng)?jiān)趧澗€處填寫合適的代碼。
①_______________
②_______________
(3)程序中加框處代碼有錯(cuò),請(qǐng)改正。
_________________
Const
n
=6
Dim
a(1
To
n
n)
As
Integer
Private
Sub
Form_Load()
'產(chǎn)生n
n個(gè)數(shù)組元素,每行按n個(gè)數(shù)顯示在list1中
For
i
=
1
To
n
n
a(i)
=
Int(Rnd
90)
+
10
s
=
s
+
Str(a(i))
If①____________Then
List1.AddItem
s
s
=
""
End
If
Next
i
End
Sub
Private
Sub
Command1_Click()
Dim
i
As
Integer,
j
As
Integer,
w
As
Integer,
s
As
String
For
i
=
1
To
n
n
k
=
i
For
j
=
k
+
n
To
②___________
If
a(k)
>
a(j)
Then
k
=
j
Next
j
If
Then
t
=
a(k):
a(k)
=
a(i):
a(i)
=
t
Next
i
'將排序后數(shù)組a的元素,按每行n個(gè)數(shù)顯示在list2中,代碼略
End
Sub
10.編寫VB程序,實(shí)現(xiàn)如下功能:在文本框Text1中輸入二進(jìn)制數(shù),單擊“轉(zhuǎn)換”命令按鈕Command1,在文本框Text2中輸出對(duì)應(yīng)的十六進(jìn)制數(shù)。程序運(yùn)行界面如圖所示,請(qǐng)回答下列問題:
(1)如果輸入的二進(jìn)制數(shù)為“1101010”,則得到的結(jié)果為____________

(2)實(shí)現(xiàn)上述功能的
VB
程序如下,請(qǐng)?jiān)趧澗€處填入合適代碼。
Private
Function
bw(x
As
Integer,
y
As
String)
As
String
'函數(shù)bw功能:若二進(jìn)制位數(shù)不足,通過在前面添"0"使得位數(shù)為4的倍數(shù)
Dim
r
As
Integer,
i
As
Integer
r
=
x
Mod
4
If
r
<>
0
Then
For
i
=
1
To
4
-
r
y
=
"0"
+
y
Next
i
x
=
Len(y)
End
If
bw
=______________
End
Function
Private
Sub
Command1_Click()
Dim
m
As
String,
n
As
Integer,
i
As
Integer,
a
As
Integer
Dim
s
As
Integer,
s1
As
String,
j
As
Integer
m
=
Text1.Text
n
=
Len(m)
Text2.Text
=
""
m
=____________
'調(diào)整m的位數(shù)為4的倍數(shù)
For
i
=
1
To
n
-
3
Step
4
s
=
0
For
j
=
i
To
i
+
3
a
=
Val(Mid(m,
j,
1))
s
=_______________
Next
j
If
s
>=
10
Then
s1
=
Chr(Asc("A")
+
s
-
10)
Else
s1
=
CStr(s)
'函數(shù)CStr類似于Str,但無前導(dǎo)空格
End
If
Text2.Text
=
Text2.Text
+
s1
Next
i
End
Sub
11.某加密算法的明文和密鑰均由英文字母組成,且密鑰循環(huán)使用,其加密規(guī)則如下:
①明文字符與對(duì)應(yīng)密鑰的
ASCII
碼轉(zhuǎn)化為二進(jìn)制后求異或(對(duì)應(yīng)位相同時(shí)結(jié)果為
0,對(duì)應(yīng)位不同時(shí)結(jié)果為
1,如二進(jìn)制
1001
與二進(jìn)制
1100
的異或值為
0101),并將異或結(jié)果轉(zhuǎn)換為十進(jìn)制p;
21cnjy.com
②如果處在奇數(shù)位,則將明文字符循環(huán)后移
p
個(gè)位置,否則將明文前移
p
個(gè)位置。移動(dòng)過程中保持大小寫不變。
最后把所得到的字符連接起來就是密文。
例如,密鑰是“abc”,明
文“d”的加密過程是:字符“d”的
ASCII
碼表示為二進(jìn)制是
1100100,密鑰“a”的
ASCII
碼表示為二進(jìn)制是
1100001,兩數(shù)進(jìn)行異或結(jié)果是:0000101,轉(zhuǎn)化為十進(jìn)制為
5,因?yàn)槭堑?br/>1
個(gè)位置,所以把明文后移
5
個(gè)位置,則密文是“i”。
該加密過程使用
VB
來實(shí)現(xiàn)。具體功能設(shè)計(jì)如下:在
Text1
中輸入明文,Text2
中輸入密鑰,
單擊“開始加密”按鈕Command1
后將密文顯示在
Text3
中,界面設(shè)計(jì)如圖所示。
請(qǐng)回答以下問題:
(1)如果密鑰為“bc”,字符“d”加密后的密文為:_____(字母“a”的
ASCII
碼為
97)
(2)請(qǐng)完善以下程序代碼。
Private
Sub
Command1_Click()
Dim
s
As
String,
sn
As
String
Dim
i
As
Integer,
t
As
Integer,
u
As
Integer
Dim
p
As
Integer,
g
As
Integer
sn
=
""
For
i
=
1
To
Len(Text1.Text)
t
=
Asc(Mid(Text1.Text,
i,
1))
If
t
>=
Asc("a")
Then
g
=
Asc("a")
Else
g
=
Asc("A")
End
If
u
=
Asc(Mid(Text2.Text,
(i
-
1)
Mod
Len(Text2.Text)
+
1,
1))
p
=_________
t
=
t
-
g
If
i
Mod
2
=
1
Then
t
=
(t
+
p)
Mod
26
Else
t
=__________
End
If
sn
=
sn
+
Chr(t
+
g)
Next
i
Text3.Text
=
sn
End
Sub
Function
txor(x
As
Integer,
y
As
Integer)
As
Integer
'x、y
求異或并返回十進(jìn)制
Dim
a
As
Integer,
b
As
Integer,
r
As
Integer,
i
As
Integer
21教育名師原創(chuàng)作品
a
=
x:
b
=
y
r
=
1
For
i
=
1
To
7
If
a
Mod
2
<>
b
Mod
2
Then________
a
=
a
\
2
b
=
b
\
2
r
=
r
2
Next
i
End
Function
12.小李基于選擇排序算法編寫了一個(gè)
VB
程序,功能如下:在文本框
Text1
中顯示排序前的數(shù)據(jù),單擊
“排序”按鈕
Command1,在文本框
Text2
中顯示剔除重復(fù)數(shù)據(jù)后的升序排序結(jié)果。程序運(yùn)行界面如下圖所示。算法的思路:第
i
趟排序從
a(i)….a(bottom)中查找最小值并記錄其下標(biāo)
k,同時(shí)將后面的每個(gè)元素與
a(i)比較是否重復(fù),若發(fā)現(xiàn)重復(fù)數(shù)據(jù),進(jìn)行剔除處理;找到最小值與
a(i)交換。
實(shí)現(xiàn)上述功能的
VB
程序如下,在劃線處填入合適的代碼,并將答案寫在答題卡上。
Const
n
=
10
Dim
a(1
To
n)
As
Integer
Private
Sub
Command1_Click()
Dim
i
As
Integer,
j
As
Integer,
t
As
Integer
Dim
k
As
Integer,
bottom
As
Integer
'獲取排序前數(shù)據(jù),依次存儲(chǔ)在數(shù)組
a
中,并在文本框
Text1
中顯示。代碼略
bottom
=
n:
i
=
1
Do
While
i
<=
bottom
-
1
k
=
i:
j
=
bottom
Do
While
j
>
i
If
a(j)
<
a(k)
Then
k
=
j
ElseIf
a(j)
=
a(i)
Then
'若發(fā)現(xiàn)重復(fù)數(shù)據(jù),進(jìn)行剔除處理
a(j)
=
a(bottom)
If__________________Then
k
=
j
bottom
=
bottom
-
1
End
If
j
=
j
-
1
Loop
If
k
<>
i
Then
t
=
a(k):
a(k)
=
a(i):
a(i)
=
t
Else
______________________
EndIF
Loop
For
i
=
1
To
________________
Text2.Text
=
Text2.Text
+
Str(a(i))
Next
i
End
Sub
三、填空題
13.運(yùn)行以下VB程序,輸出結(jié)果是_____________。
Private
Sub
Command1_Click()
Dim
s
As
Integer,
x
As
Integer
s
=
0
x
=
20
For
x
=
20
To
1
Step
-3
s
=
s
+
x
Next
x
Print
x
End
Sub
21世紀(jì)教育網(wǎng)
www.21cnjy.com
精品試卷·第
2

(共
2
頁)
21世紀(jì)教育網(wǎng)(www.21cnjy.com)

展開更多......

收起↑

資源列表

<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. 主站蜘蛛池模板: 石嘴山市| 甘孜县| 贺兰县| 奎屯市| 庄河市| 上杭县| 西丰县| 绥江县| 开原市| 重庆市| 平泉县| 台安县| 舟山市| 深泽县| 涿州市| 阿图什市| 司法| 嵊泗县| 海城市| 绍兴县| 商丘市| 朝阳区| 许昌市| 峨边| 新邵县| 绩溪县| 古丈县| 和林格尔县| 宿松县| 布拖县| 尤溪县| 金湖县| 绥芬河市| 胶州市| 北辰区| 大理市| 东安县| 汽车| 梅河口市| 尖扎县| 固安县|