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

2019年高考一輪復習信息技術浙江專用 第八單元單元檢測(練習)

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

2019年高考一輪復習信息技術浙江專用 第八單元單元檢測(練習)

資源簡介

第八單元 算法及VB語言基礎
單元小結
知識系統構建
/
第八單元 算法及VB語言基礎
單元檢測題組
/時間:40分鐘  /分值:65分
一、選擇題(每題3分,共42分)
1.(2019浙江十二校高三第一次聯考,5,3分)某流程圖如圖所示:
/
若輸入k的值為9,最終i、s的值分別為(  )
A.11 0 B. 11 -11 C. 9 0 D. 9 -9
答案 B 本題考查循環結構流程圖。各變量在執行過程中變化如下:
變量
k
i
s
進循環前
9
1
0
第一次循環后
9
3
0+3
第二次循環后
9
5
0+3-5
第三次循環后
9
7
0+3-5-7
第四次循環后
9
9
0+3-5-7+9
第五次循環后
9
11
0+3-5-7+9-11
退出循環
2.(2019浙江名校新高考研究聯盟第一次聯考,6,3分)某算法的部分流程圖如圖所示。執行這部分流程后,輸出m的值是(  )
/
                    
A.0 B. 1 C.2 D.9
答案 D 本題考查循環結構流程圖。各變量變化如下:
變量
x
y
m
進循環前
192
0
0
第一次循環后
19
2
2
第二次循環后
1
9
9
第三次循環后
0
1
9
退出循環
本程序本質上是找出數值x的各位數中值最大的那位數。
3.在Visual Basic中,能表示整數x是完全平方數(如9=3*3,9是完全平方數)的表達式是(  )
A.x^2=x*x B.sqr(x)=x2
C.int(sqr(x))^2=x D.(x2)^2=x
答案 C 本題考查VB基本函數的應用。Sqr(x)是開平方函數,Int(x)是取不大于x的最大整數。根據題意可知選C。
4.有如下程序:
Private Sub Command1_Click()
  Dim a(5) as Integer
  Dim n as Integer, i as Integer
  n = Val(Text1.Text)
  i = 0
  a(1) = 1
  a(2) = 1
  For i = 3 To n
    a(i) = a(i-1) + a(i-2)
  Next i
  Label1.Caption = a(i)
End Sub
若在Text1中輸入5,則點擊按鈕后的運行結果為(  )
A.Label1中輸出5 B.Label1中輸出10
C.報“下標越界”錯誤 D.Label1中無內容
答案 C 本題考查對VB循環語句和數組的掌握。當輸入5時,首先初始化數組元素a(1)為1,a(2)為1,進入For循環,第一次循環i為3,計算出a(3)的值為a(1)+a(2)=2,i的值加1,第二次循環計算出a(4)的值為3,i的值加1,第三次循環計算出a(5)的值為5,i的值加1,最后跳出循環,i的值為6,a(5)的值為5。而程序要求輸出a(6),但是由定義語句Dim a(5) as Integer可知a數組的范圍是0~ 5,所以不存在下標為6的數組元素a(6),屬于數組下標越界錯誤。
5.用VB模擬設計某軟件的登錄界面,如圖所示,當鼠標單擊“<請輸入賬號>”所在的文本框Text1時,文字內容消失。則此事件處理的過程名應該是(  )
/
A.登錄窗口_Click B.Text1_KeyPress
C.Command1_Click D.Text1_Click
答案 D 本題考查對VB事件的掌握。點擊文本框Text1的事件名為Text1_Click,其中Text1為文本框的名稱,Click代表是點擊事件。
6.(2019浙江十二校高三第一次聯考,11,3分)有如下VB程序段:
Dim i As Integer, Sum As Integer
Dim a(l To 6) As Integer, b(l To 6) As Integer
Sum = 0
a(6) = 18: a(5) = 7: b(6) = 14: b(5) = 16
For i = 4 To 1 Step -1
 a(i) = a(i + 2)-a(i + 1)
 b(i) = b(i + 2)-a(i)
 If b(i) Mod 3 = 0 Then Sum = Sum + b(i)
Next i
Textl .Text = Str(Sum)
該程序段運行后,文本框text1中顯示的內容是(  )
A.39 B. 30 C. -9 D. 12
答案 B 本題考查數組的運算。當i=4時,計算得到a(4)=a(6)-a(5)=18-7=11,
b(4)=b(6)-a(4)=14-11=3,得到sum=3;當i=3時,計算得到a(3)=a(5)-a(4)=7-11=-4,
b(3)=b(5)-a(3)=16-(-4)=20,sum仍然是3;當i=2時,計算得到b(2)=b(4)-a(2)
=3-15=-12,得到sum=3-12=-9;當i=1時,計算得到a(1)=a(3)-a(2)=-4-15=-19,
b(1)=b(3)-a(1)=20-(-19)=39,得到sum=-9+39=30。
7.在Visual Basic中,有如下程序:
Private Sub Command1_Click()
 Dim a As Integer,b As Integer,c As Integer
 Dim d As Integer
 a=Val(Text1.Text):b=Val(Text2.Text):c=Val(Text3.Text)
 d=min(a,b)+min(b,c)
 Text4.Text=Str(d)
End Sub
Function min(x As Integer,y As Integer)As Integer
 If xEnd Function
運行該程序,在文本框Text1、文本框Text2、文本框Text3中分別輸入2、-5、6后,單擊命令按鈕Command1,文本框Text4中顯示的是(  )
A.-10 B.-5 C.2 D.6
答案 A 本題考查自定義函數。自定義函數min的功能是比較兩個參數的大小,返回小的值。輸入后a=2,b=-5,c=6,d=min(a,b)+min(b,c)=-5+(-5)=-10。
8.模擬剪刀石頭布的游戲,用1~3這3個數分別代表剪刀、石頭、布這三種情況,使用Rnd隨機函數可以表示為(  )
A.Int(Rnd(3)+1) B.Int(Rnd*2+1)
C.Int(Rnd(2)+1) D.Int(Rnd*3+1)
答案 D 本題考查隨機函數Rnd的使用。Rnd能產生一個大于或等于0且小于1的單精度隨機數。產生[a,b]區間的隨機整數,公式應該是:Int(Rnd*(b-a+1)+a)。
9.在Visual Basic程序中,設x=389,能得到其百位數字“3”的表達式是(  )
A.Int(x/10)*10 B.Int(x/100)*100
C.x-Int(x/10)*10 D.Int(x/100)
答案 D 本題考查基本的算術運算表達式。Int(x/10)*10表達式的值是380,Int(x/100)*100表達式的值是300,x-Int(x/10)*10表達式的值為9,Int(x/100)表達式的值是3。
10.已知字符串變量x的值是“H”,則VB表達式Chr(Asc(x)+1)的值是(已知字符“A”的ASCII碼是65)(  )
A.“I” B.“G” C.72 D. 74
答案 A 本題考查兩個字符轉換函數Chr(x) 及Asc(x)的功能。Chr(Asc(“H”)+1)可以理解為比“H”的ASCII值大1的字符。
11.以下程序運行后,s的值為(  )
Dim i As Integer, s As String
i = 0
Do While i < 5
  s = Str(i) + s
  i = i + 1
Loop
A.“01234” B.“12345” C.“54321” D.“43210”
答案 D 本題考查對VB循環結構和字符串操作的掌握。i的初值為0,s為空字符串,進入循環體,首先s和i連接,s的值為“0”,i的值加1,第二次進入循環,s的值為“01”(注意程序中連接的順序),i的值加1,最后當i等于5時跳出循環,字符串s連接到4為止,所以為“43210”。
12.數組元素值a(1)=2 : a(2)=8 : a(3)=3 : a(4)=4 : a(5)=5 :a(6)=6 : a(7)=1 : a(8)=7 : a(9)=9。m = 1: k = 1
For i = 2 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)
該程序段運行后,文本框Text1中顯示的內容是(  )
A.4 B.6 C.8 D.9
答案 A 該程序實現的功能是求最大連續遞增序列的個數。a(3)=3 : a(4)=4 : a(5)=5 :a(6)=6,這四個元素為最大連續遞增序列。也可采用代入法進行逐步計算。變量k的值在不斷變化,變量m用于記錄k的最大值。
13.如下VB程序段:
x=Text1.Text
p=0
For i=1 to Len(x)
 If Mid(x,i,1)=“a” Then p=p+1
Next i
Print p
若程序運行時,在文本框Text1中鍵入“Are you happy”,則運行結果是(  )
A.0 B.1 C.2 D.11
答案 B 本題主要考查For語句和字符串處理函數。Len()函數是求字符串的長度,Mid()函數是求字符串的子串。變量x=Text1.Text=“Are you happy”,For語句的作用是統計字符串x中字母“a”的個數,用變量p計數,最后輸出p。注意“A”不等于“a”。
14.有10個數據23、15、51、36、78、47、39、9、88、96依次存放在數組a(1 To 10)中,使用如下程序段找出最大值:
   max=a(1)
   For i=2 To 10
   If a(i) > max Then max=a(i)
   Next i
當虛線框內的語句剛好執行完第6次后(此時循環變量i的值為7),變量max的值是(  )
A.23 B.39 C.78 D.96
答案 C 本題中代碼用于尋找數組中的最大值。它的思想方法是先假設數組的第一項是最大的,并賦值給變量max,然后把從第二項開始的所有數組元素跟變量max進行比較,如果比max大,則把該元素賦值給max。這樣循環結束后,變量max中存儲的就是該數組中的最大值。而本題不是循環結束后,而是循環6次以后,也就是比較了6次,max中存儲的應該是前7個數中的最大值,即為78。
二、非選擇題(共23分)
15.(2016浙江高中聯盟第二學期開學考試,16,4分)任意一個大于或等于4的偶數,都可以用兩個素數之和表示,這就是哥德巴赫猜想。如:4=2+2,6=3+3,8=3+5, 10=5+5,12=5+7,
98=19+79。
編寫一個驗證哥德巴赫猜想的VB程序:程序運行時,在文本框Text1中輸入一個大于或等于4的偶數,單擊“驗證”按鈕Command1后,如果哥德巴赫猜想驗證成功,則在文本框Text2中顯示“Yes”,并在列表框List1中顯示用兩個素數表示該偶數的等式,否則顯示“No”。程序運行效果如圖所示。
/
實現上述功能的VB代碼如下,但加框處代碼有錯,請改正。
Function judge(x As Integer)As Boolean
’函數judge的功能是判斷整數x是不是素數,若是素數則返回True,否則返回False
 Dim j As Integer
 judge=True
 j=2
 Do While j<=x-1 And judge=True
If x Mod j=0 Then
judge=False
Else
j=j+1
End If
 Loop
End Function
Private Sub Command1_Click()
 Dim n As Integer,p As Integer,q As Integer,flag As Boolean
 n=Val(Text1.Text)
 p=1
 flag=False
 Do While flag=True And pp=p+1
q=q+1 ’②
If judge(p)And judge(q)Then
Text2.Text=“Yes”
flag=True
List1.AddItem Str(n)+“=”+Str(p)+“+”+Str(q)
  End If
 Loop
 If flag=False Then
Text2.Text=“No”
End Sub
答案 ①flag=False 或not flag 或flag<>True ②q=n-p
解析 本題驗證哥德巴赫猜想:在文本框Text1中輸入任意一個大于或等于4的偶數,輸出以兩個素數和的形式顯示在列表框List1中,并在文本框Text2中顯示驗證結果。變量flag用于標識是否找到方案,初始值為false,表示未找到,枚舉過程中若找到則變為True,故Do while語句的條件是:方案未找到(flag=False)且(And)仍在查找范圍內(p16.有一個數組data存放了n個數據,現從中刪除了一個元素,其余的元素依次向前遞補(假設刪除的是第3個元素,則要將第4個元素移到第3個元素處,第5個元素移到第4個元素處,以此類推),然后輸出數組內容。程序輸入要刪除數的位置,點擊“刪除”按鈕后刪除指定數,并把剩余的數字依次輸出到List2中,程序如圖所示。
/
Dim data(10) As Integer ’①
Dim n As Integer ’n表示總元素個數
Private Sub Command1_Click()
 Dim t As Integer
 t = Val(Text1.Text)
 For i = t To n-1
?、?br/> Next i
 n = n - 1
 For i = 1 To n
?、?br/> Next i
End Sub
Private Sub Form_Load()
Dim i As Integer
n = 10
For i = 1 To n
  data(i) = i * 2
  List1.AddItem Str(data(i))
Next i
End Sub
(1)與①處語句功能一樣的是(填字母)    (A.Dim data(0 To 10) As Integer/B.Dim data(1 To 10) As Integer)。?
(2)為實現程序功能,請在劃線處填入合適的代碼。
②處的代碼為 ?! ?
③處的代碼為 。  ?
答案 (1)A
(2)data(i) = data(i + 1);List2.AddItem Str(data(i))
解析 (1)本題考查數組元素的定義方法。
(2)②將當前數data(i)填充為后面的數data(i+1),相當于后面的數往前移動一位,數字總數n=n-1,指定位置的數已刪除。③利用Listbox的AddItem方法添加數據。
17.(2016浙江高中聯盟第二學期開學考試,17,5分)競選班長。編號分別為1、2、3、4、5的五位候選人參加班長競選,現要設計一個計票程序,根據回收的選票信息統計各位候選人的得票數,得票數最多的被選為班長,并輸出班長的編號。選票信息為一個數字序列,由每張選票的投票結果構成,如某選票序列為101233303,其含義見如下表所示。
選票
序列
1
0
1
2
3
3
3
0
3
含義
第1張選票投給1號
第2張
選票
棄權
第3張選票投給1號
第4張選票投給2號
第5張選票投給3號
第6張選票投給3號
第7張選票投給3號
第8張
選票
棄權
第9張
選票投
給3號
備注:選票序列101233303,序列中的數字i,表示投票給編號為i的人,即編號為i的人得1票,其中數字0表示不投給任何人,即為棄權。表中選票序列的投票結果為:1號得2票,2號得1票,3號4得票,4號、5號均為0票(沒人投),所以3號得票數最高,被選為班長。
程序運行時,在文本框Text1中輸入選票信息,單擊“計算”按鈕Command1后,被選為班長的編號顯示在文本框Text2中。程序運行效果如圖所示。
/
實現上述功能的VB程序如下,請在劃線處填入合適的代碼。
Private Sub Command1_Click()
Dim a(1 To 5)As Integer
’數組元素a(1)~a(5)依次存放編號為1~5的五位候選人的得票數
Dim st As String,i As Integer,j As Integer,n As Integer
Dim ans As Integer ’變量ans存放被選為班長的人的編號
Dim max As Integer ’變量max存放最多的得票數
st=Text1.Text
  ?、佟 ?
For i=1 To 5
a(i)=0
Next i
For i=1 To 5
For j=1 To n
If ?、凇 hen ?
a(i)=a(i)+1
Next j
Next i
max=0
For i=1 To 5
If a(i)>max Then
max=a(i):ans=i
Next i
  ?、邸  ?
End Sub
答案?、賜=Len(st)?、赩al(Mid(st,j,1))=i
③Text2.Text=Str(ans)
解析 算法主要思想:將輸入的字符串,利用Mid函數逐位提取,并將判斷結果存入到相應數組變量中,然后通過比較求出數組元素的最大值及對應編號。代碼實現:將Text1中的選票序列讀入字符串變量st,使用Len函數計算字符串長度存入變量n,使用For j=1 To n依次提取每一位,通過Val函數轉換為數值類型,并與編號進行比較,統計到相應候選人對應的數組元素中。變量max用于存儲最大票數,變量ans用于存儲最大票數的候選人編號。題目要求在Text2中輸出最大票數候選人的編號,故輸出值為ans。
18.小明編寫了一個數據插入程序。程序輸入一個數字,將該數字插入一列有序數據:-5,3,4,12,20,45,70,并使數據序列保持有序。設計的算法是從前往后找位置插入。
/
Private Sub Command1_Click()
 Dim a(1 To 8) As Integer
 Dim n, i, j, x As Integer
 List1.Clear
 List2.Clear
 a(1) = -5: a(2) = 3: a(3) = 4: a(4) = 12: a(5) = 20: a(6) = 45: a(7) = 70
 For j = 1 To 7
  List1.AddItem Str(a(j))
 Next j
 x = Val(Text1.Text)
 i = 1
 Do While x > a(i) And i < 8 ’找x的插入位置

 Loop
 For j = 8 To i + 1 Step -1 ’移動數據

 Next j
 a(i) = x
 For j = 1 To 8
  List2.AddItem Str(a(j))
 Next j
 Label1.Caption = “插入的位置是” &Str(i)
End Sub
(1)代碼“List1.Clear”中的Clear是    。(單選,填字母:A.屬性名/B.事件名/C.方法名)?
(2)為實現程序功能,請在劃線處填入合適的代碼。
①處填入的代碼為 ?! ?
②處填入的代碼為 。  ?
答案 (1)C
(2)i = i + 1;a(j) = a(j - 1)
解析 (1)略。
(2)本題在一個遞增序列中插入一個新數。①i表示新數的位置,新數若比當前數大,則位置往后移動。②從后往前依次將元素后移一位。

展開更多......

收起↑

資源列表

<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. 主站蜘蛛池模板: 乌兰察布市| 长岭县| 右玉县| 扶沟县| 嫩江县| 富源县| 杭州市| 松滋市| 星子县| 台前县| 诸暨市| 万荣县| 太白县| 云安县| 稷山县| 昌吉市| 青阳县| 宝兴县| 乾安县| 英山县| 红河县| 阿克陶县| 屯留县| 花莲市| 清苑县| 太仆寺旗| 昂仁县| 灌阳县| 鸡西市| 成武县| 合肥市| 曲阜市| 南川市| 广水市| 垣曲县| 漯河市| 阳西县| 绥德县| 山阳县| 陕西省| 聂拉木县|