![2.3循环结构程序同步练习人教版信息技术选修101](http://m.enxinlong.com/img-preview/3/14/13988983/0/0.jpg?x-oss-process=image/resize,w_794,m_lfit,g_center/sharpen,100)
![2.3循环结构程序同步练习人教版信息技术选修102](http://m.enxinlong.com/img-preview/3/14/13988983/0/1.jpg?x-oss-process=image/resize,w_794,m_lfit,g_center/sharpen,100)
![2.3循环结构程序同步练习人教版信息技术选修103](http://m.enxinlong.com/img-preview/3/14/13988983/0/2.jpg?x-oss-process=image/resize,w_794,m_lfit,g_center/sharpen,100)
2.3循环结构程序同步练习人教版信息技术选修1
展开2.3循环结构程序同步练习人教版信息技术选修1
学校:___________姓名:___________班级:___________考号:___________
一、选择题
1.有如下VB程序段:
s = 1
a(1) = 1
For i = 2 To 6
a(i) = 2 * i + a(i - 1)
If i Mod 2 = 0 Then
a(i) = a(i) + 1
End If
s = s + a(i)
Next i
Text1.Text = Str(s)
程序运行时,单击按钮Command1后,文本框Text1中显示的内容是( )
A.72 B.41 C.106 D.115
2.数组元素a(1)到a(n*2)为互不相等的正整数(n≥1),要在其中找到最大值和次大值,并分别存储到变量m1和m2中。实现该功能的VB程序段如下:
m1=0:m2=0
For i=1 To n * 2 Step 2
If a(i)>a(i+1)Then
t1=a(i):t2=a(i+1)
Else
t1=a(i+1):t2=a(i)
End If
If Then
m1=t1:m2=t2
ElseIf Then
m2=m1:m1=t1
ElseIf Then
m2=t1
End If
Next i
上述程序段中方框处可选代码为:①t1>m1 ②t1>m2 ③t2>m1则(1)(2)(3)处代码依次为( )
A.①②③ B.②③① C.③①② D.③②①
3.有如下VB程序段:
c = Text1.Text
s1 = "jiayou!" s2 = s1 + s1
For i =1 to len(s1)
If c = Mid(s2, i, Len(s1)) Then Exit For
Next i
Label1.Caption = Str(i)
程序执行完后,Label1中显示的内容是4,则Text1中输入的内容是( )
A."jiayou!" B."you!jia" C."ayou!ji" D."jayou!j"
4.如下VB程序段:
k=0:n=Len(s)
For i = 1 To n\2
k = k+Abs(Asc(Mid(s,i,1)) - Asc(Mid(s,n-i+1,1)))
Next i
If k=0 Then flag=True
运行后该程序段后,变量flag的值为True,s的值可能的是( )
A."appyappy" B."12321" C."Appa" D."2021-2021"
5.对一组正整数进行处理,要求处理后偶数在前,奇数在后,并保持相对顺序不变。
Const n = 10
Dim a(1 To 10) As Integer, b(1 To 10) As Integer
‘数组a赋初值,代码略
num = 0
k = 1
Do While k <= n
If ① Then
num = num + 1
b(num) = a(k)
Else
②
End If
k = k + 1
Loop
For j = ③
a(j) = b(j - n + num)
Next j
将划线处的代码补充完整,正确的是( )
A.①a(k) Mod 2=0 ②a(k-num)=a(k) ③n-num To n
B.①a(k) Mod 2=1 ②b(k-num)=a(k) ③n-num+1 To n
C.①a(k) Mod 2=1 ②a(k-num)=a(k) ③n-num+1 To n
D.①a(k) Mod 2=0 ②b(k-num)=a(k) ③n-num To n
6.有如下VB程序:
n = 4
For i = 1 To 25
j = 1: a(j) = a(j) + 1
Do While a(j) = 4
a(j) = 0
j = j + 1
a(j) = a(j) + 1
Loop
Next i
For i = 1 To n
s = Str(a((i + 1) Mod 4 + 1)) + s
Next i
数组a(1)至a(4)初值均是 0,执行该程序后,s的值是( )
A."1012" B."2101" C."0121" D."1210"
7.有如下VB程序
以下说法正确的是( )
i=1:j=10:key=Val(Text1.Text) Do While i <= jm = (i + j + 1) \ 2 If a(m) >= key Then j = m - 1 Else i = m + 1 End If Loop (程序 a) | i=1:j=10: key=Val(Text1.Text) Do While i <= jm = (i + j + 1) \ 2 If a(m) > key Then j = m - 1 Else i = m + 1 End If Loop (程序b) |
A.若要使用程序a或程序 b查找某个数据,数组a中的数据可以是降序排序
B.无论key的值是多少,执行程序a和程序b后一定有i = j + 1成立
C.无论key的值是多少,执行程序a和程序b后i的值一定相同
D..无论key的值是多少,执行程序a和程序b后j的值一定相同
8.随机生成正整数数组a,并将数组中各元素以金字塔显示,要求对金字塔每层中的数据排序处理, 奇数行升序排列,偶数行降序排列,效果见下图。请为划线处选择合适的代码。( )
Dim a(1 To 15) As Integer, num As Integer, s As String
‘生成数组a,a(1)=73,a(2)=58,a(3)=62,a(4)=36…代码略
Private Sub Command1_Click()’对数组进行排序
num = 5: k = 1: f = 1
For i = 1 To num
k = k + i
For m = k - i To ①
For n = k - i To 2 * k - 2 - i - m
If ② Then t = a(n): a(n) = a(n + 1): a(n + 1) = t
Next n
Next m
f = f * (-1)
Next i
’将处理后的数组,以金字塔形显示,代码略
End Sub
A.k-1 f * a(n) < f * a(n + 1) B.k-1 f * a(n) > f * a(n + 1)
C.k-2 f * a(n) > f * a(n + 1) D.k-2 f * a(n) < f * a(n + 1)
9.有如下 VB 程序段:
s="Cloud Computing" : s1=""
For i=1 to len(s) step 2
c=mid(s,i,1)
If c>="a" and c<="g" then
s1=chr((asc(c) - 95) mod 7 + 97) + s1
End If
Next i
小写字母“a”的 ASCII码是97,执行程序后,s1的值是( )
A.efeb B.bf C.fb D.CdCg
10.有如下VB程序段:
s = "python": b = 0
For i = 1 To Len(s) - 1
a = Abs(Asc(Mid(s, i, 1)) - Asc(Mid(s, i + 1, 1)))
If a > b Then b = a
Next i
Label1.Caption = Str(b)
执行该程序段后,标签Label1上显示的内容是( )
A.1 B.7 C.9 D.12
二、填空题
11.袜子颜色配对问题。现有不同颜色的袜子若干(袜子的颜色用数字编号1~15表示),颜色相同的袜子才能组成一双,其中有几只袜子是落单的,现要求找出落单袜子的颜色以及能够配对的袜子数量。编写程序解决该问题,程序运行时,在文本框Text1中依次输入袜子的颜色编号(数据都用逗号分隔并以逗号结尾),单击“查找”按钮,在列表框List1中输出落单袜子的颜色编号,在标签label1中现实能配对的袜子数量。运行界面如图所示,实现上述功能的VB程序如下。
请回答下列问题:
(1)写出VB代码中的方法名____________(只需填一个方法名);
(2)根据题意,请在划线处填入合适代码;
(3)加框处程序代码有错,请改正。
Const n = 15
Private Sub Command1_Click()
Dim a(1 To n) As Integer '数组a存放不同颜色袜子的数量,默认值为0
Dim s As String, ch As String
Dim c As Integer, i As Integer, t As Integer
List1.Clear
s = Text1.Text
t = 0 :c = 0 : i = 1
Do While i <= Len(s)
ch = Mid(s, i, 1)
If ch >= "0" And ch <= "9" Then
t = t * 10 + Val(ch)
Else
a(t) = _____________
t = 0
End If
i = i + 1
Loop
For i = 1 To n
If __________ Then List1.AddItem "落单袜子的颜色为" + Str(i)
c = _______________
Next i
Label1.Caption = "能配对的袜子有" + Str(c) + "双"
End Sub
12.某学校要对班主任进行满意度调查,有20个评分项(为方便程序处理,评分项具体的名称本题中不显示,仅以序号代替),每个评分项学生可以打A、B、C 三个等级中的一个,现在已经收集所有学生对班主任的评价,为了保证隐私,不显示学生姓名,只显示班级,并存储在数据库的表中,点击command2(读取数据),读取原始数据显示在左侧list1中,左侧列表显示的原始评价数据第一条表示高二(01)班有1位同学在第9项给班主任打A,依次类推,点击command1(统计),统计出各项目的评价统计(A+B所占的百分比)。
(1)根据以下代码可知,本程序访问的数据库名称是___________
(2)完成划线处的代码填空:
Dim classname(1 To 8000) As String'存储原始数据中的班级名称
Dim selectabc(1 To 8000) As String'存储原始数据选项的值
Dim xiangmu(1 To 8000) As String'存储原始数据选项的序号
Dim n As Integer
Private Sub Command2_Click()' 从数据库读取数据,并且按班级名称排序
Dim conn As New ADODB.Connection
conn.ConnectionString = "provider=microsoft.ace.oledb.12.0;data source="&App.Path&"\pingjia.accdb"
conn.Open
Dim rs As New ADODB.Recordset
Set rs.ActiveConnection = conn
rs.Open "select * from data"
n = 0' 记录评价的总条数
'读取数据,并按班级排序,代码略
End Sub
Private Sub Command1_Click()
Dim cstart(1 To 50) As Integer '存储每个班级在数组classname中的起始位置
Dim cend(1 To 50) As Integer '存储每个班级在数组classname中的末尾位置
Dim k As Integer '存储班级数量
Dim testall(1 To 20) As Integer '存储每一项总选择人数,例如testall(1)里存储这评价项目1里的总人数,testc(1)里存储评价项目1里选C的人数
Dim testc(1 To 20) As Integer '存储每一题(项)选c的人数
' 确定每个班级的起止位置,存储到cstart数组和cend数组
cstart(1) = 1
temp = classname(1)
k = 1
For i = 1 To n
If classname(i) <> temp Then
________________
k = k + 1
cstart(k) = i
temp = classname(i)
End If
Next i
cend(k) = n
For i = 1 To k '每个班级分别统计评价项目
_________________
For q = 1 To 20 '对testall和testc数组初始化,
testall(q) = 0
testc(q) = 0
Next q
For j = cstart(i) To cend(i) '对第i个班级进行统计
testall(xiangmu(j)) = testall(xiangmu(j)) + 1
If selectabc(j) = "C" Then _________________
Next j
For p = 1 To 20 '统计完成后输出这个班级的20个项目的 A+B所占百分比
s = s &""&Str(Round((testall(p) - testc(p)) / testall(p) * 100, 1))
Next p
List2.AddItem s
Next i
End Sub
13.分析完善程序
2005年10月9日,国家测绘局正式宣布珠穆朗玛蜂的高度是8844. 43米,并停用之前的数据。
现有一张白纸,其厚度是0. 08毫米,对折一次,厚度变为0. 16毫米,再对折一次,厚度变为0. 32毫米,…,每对折一次,其厚度均变为对折前的两倍。
假设这张纸足够大,可对折任意次,那么这张纸至少对折多少次后,其厚度将超过珠穆朗玛峰的高度?
以下是求解该问题的VB程序片段。请你补全代码:
14.运行下列程序,正确的结果是_________________
s=0
for i in range (1 5):
s=s+i
print("i=",i,"s=",s)
15.如图所示,这是打印九九乘法表的程序,请你完善程序。
Private Sub Form_click()
Dim i As Integer, j As Integer
For i = 1 To ①________
For j = 1 To ②_________
Print j; "*"; i; "="; i * j;
Next j
Print ‘换行
Next i
End Sub
三、操作题
16.在一个整数序列中找第 k小的字母,若有相同的字母,则位置靠前的字母名次靠前,如有字母序列为“A,B,A,D,C”则第1小的字母为A在第1个位置,第2小的字母为A在第3个位置,第3小的字母是 B,在第 2 个位置,第 4 小的字母是 C,在第 5 个位置,第 5 小的字母是 D,在第 4 个位置。编写一个VB程序实现如下功能,程序启动时随机产生 n个A-G之间的随机大写字母,在文本框Text2 中输入整数 k(k<=n), 单击“查找第k小的字母”按钮Commandl后,在文本框Text3上显示第k小的字母位置。程序运行界面如下图所示 。
(1)若要清空文本框 Text1 中的内容,能实现该功能的语句是_______(单选,填字母:A.Text1.Caption=""/B.Text1.Text=""/C.Text1.Clear)
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
(3)程序中加框处有错,请改正。
Const n = 20
Dim i As Integer
Dim a(1 To n) As String
Private Sub Form_Load()
Randomize
For i = 1 To n
a(i) =____①
Text1.Text = Text1.Text + " " + a(i)
Next i
End Sub
Private Sub Command1_Click()
Dim k As Integer, count As Integer
Dim b(0 To 7) As Integer
k = Val(Text2.Text)
For i = 1 To n
__________
Next i
i = 1
Do While i < 7 And b(i) < k
②__________
i = i + 1
Loop
Key = i
count = 0
For i = 1 To n
If a(i) = Chr(Key + 64) Then count = count + 1
If count = ③ __________Then Exit For
Next i
Text3.Text = "第" + Str(k) + "小的字母是:" + Chr(Key + 64) + ";位置是:" + Str(i) End Sub
参考答案:
1.D
2.C
3.B
4.B
5.C
6.B
7.B
8.C
9.B
10.D
11. Clear 或 AddItem a(t) + 1 a(i) Mod 2 = 1 c + a(i) \ 2
12. pingjia.accdb cend(k)=i-1 s=classname(cstart(i))或s=classname(cend(i)) testc(xiangmu(j))= testc(xiangmu(j))+1
13.0,h*2或2*h或h+h
14.i=4 s=10
15. 9 i
16. B ①Chr(Int(Rnd*7+65)); b(Asc(a(i)-64)=b(Asc(a(i)-64)+1 ②b(i+1)=b(i+1)+b(i); ③k-b(Key-1)
2.4调试程序同步练习人教版信息技术选修1: 这是一份高中中图版 (2019)本册综合复习练习题,共11页。试卷主要包含了选择题,填空题,操作题等内容,欢迎下载使用。
2.5程序设计的基本方法同步练习人教版信息技术选修1: 这是一份中图版 (2019)必修2 信息系统与社会本册综合一课一练,共8页。试卷主要包含了选择题,填空题,操作题等内容,欢迎下载使用。
1.1程序设计与程序语言同步练习人教版信息技术选修1: 这是一份高中信息技术中图版 (2019)必修2 信息系统与社会本册综合随堂练习题,共5页。试卷主要包含了选择题,填空题,判断题,操作题等内容,欢迎下载使用。