![2.5模块化程序设计同步练习沪科版信息技术选修101](http://img-preview.51jiaoxi.com/3/14/13989562/0/0.jpg?x-oss-process=image/resize,w_794,m_lfit,g_center/sharpen,100)
![2.5模块化程序设计同步练习沪科版信息技术选修102](http://img-preview.51jiaoxi.com/3/14/13989562/0/1.jpg?x-oss-process=image/resize,w_794,m_lfit,g_center/sharpen,100)
![2.5模块化程序设计同步练习沪科版信息技术选修103](http://img-preview.51jiaoxi.com/3/14/13989562/0/2.jpg?x-oss-process=image/resize,w_794,m_lfit,g_center/sharpen,100)
2.5模块化程序设计同步练习沪科版信息技术选修1
展开一、选择题
1.下列VB表达式的值等于数值2020的是( )
A.Abs(Int(-2020.34))
B.Len(“2019”)+1
C.Str(2010)+”10”
D.Mid(“19-3-2020”,6,4)
2.在Visual Basic程序中,设x为一个大于“0”的三位正整数,能得到x百位上数字的表达式是( )
A.Int(x / 10)*10B.Int(x / 100)*100
C.x-Int(x/10)*10D.Int(x / 100)
3.某VB程序段如下:
s="Abc"
i=Len(s)
D While i>=1
ch=Mid(s, i, 1)
t=(Asc(ch) Md 32+4) Md 26
s1=s1+Chr(t+65)
i=i-1
Lp
Text1.Text=s1
该程序段执行后,在文本框Text1中显示的内容是( )
A.HGFB.HgfC.FGHD.Fgh
4.返回指定日期“日”部分的函数是( )。
A.Date()B.Day()C.Year()D.Mnth()
5.有以下VB程序段:
a(1)=2
Fr i= 2 T 3
a(i)=a(i-1)-Int(Rnd( )* 2)
If i Md 2=1 Then
a(i)=a(i)+1
Else
a(i)=a(i)-1
End If
Next i
执行程序后,a(2)和a(3)的值不可能的是( )
A.1,1B.1,0C.0,1D.0,0
6.下列VB表达式的值最大的是( )。
A.Len("36")+3
B.Sqr(36)+Int(3.6)
C.Asc("a")- Asc("A")
D.Val(mid("236",1,2))
7.有如下VB程序段:
a(1)=3:a(2)= 4:a(3)=1:a(4)=2:a(5)=5
k = Int(Rnd * 4)+1
Fr i=1 T 5
If I <> k Then
If a(i)End If
Next i
执行该程序段后,数组元素a(1)到a(5)中的值依次不可能为( )
A.5 4 3 2 1
B.3 4 1 2 5
C.3 4 2 1 5
D.1 4 3 2 5
8.下列Visual Basic表达式的值等于34的是( )
A.Mid("1234567",3,2)B.Abs(﹣33)+1
C.Sqr(34)D.Len("34")+1
9.已知字符型变量ch存放了一个大写字母,下列表达式能正确求得该字母在26个英文字母中序号的是( )
A.Asc(ch)-Asc("A")+1B.Asc(ch)-Asc("A")-1
C.Asc(ch-"A")+1D.Asc(ch-"A")-1
10.有如下VB程序段:
n=8
Fr i =1 T n
d(i)= Int(Rnd * 10)+1
Next i
Fr i= 2 T n-1
k= 1
Fr j= 1 T n-i
If d(j)*k > d(j+2)* k Then
temp = d(j):d(j)= d(j+2):d(j+2)= temp
End If
k = -k
Next j
Next i
执行该程序段后,d数组各元素可能是( )
A.3,10,3,5,4,4,10,1
B.0,3,4,5,6,6,7,8
C.2,1,3,4,5,6,8,7
D.6,4,5,6,5,7,1,10
二、填空题
11.表达式Abs(-5)的值是__________。
12.产生【-6,6】随机整数
13.为分析数组a中各元素依次变化的情况,进行如下定义:
变化段:数组中相邻两个元素构成一个变化段。变化段有上升段(a(i)>a(i-1))、下降段(a(i) 波峰:从上升段转到下降段形成一个波峰。波峰的起点是峰顶前所有连续上升段中的第1个,终点是峰顶后所有连续下降段中的最后1个。
对称波峰:上升段与下降段个数相同的波峰称为对称波峰。
下图为一组数据的变化段及波峰示意图。
现要求统计数组a各元素依次变化过程中“对称波峰”的个数。小李依据上述描述设计如下VB程序。请回答下列问题:
(1)数组元素“1,4,3,3,2,6,8,7,9,3,4,7,9,6,3,1”依次变化过程中“对称波峰”的个数为_____。
(2)请在划线处填入合适的代码。
Cnst n = 20
Dim a(1 T n) As Integer
Private Sub Frm_Lad()
'读取数据,并存储到数组a中,代码略
End Sub
Private Sub Cmmand1_Click()
Dim flag As Integer '存储变化段的状态:1表示升,-1表示降,0表示平
Dim cunt As Integer '存储对称波峰段的个数
Dim steps As Integer
Dim i As Integer
flag = 0: steps = 0: cunt = 0
Fr i = ________ T n
If a(i) > a(i - 1) Then
If IsSymPeak(flag, steps) Then cunt = cunt + 1
If flag = 0 Or flag = -1 Then
_________
Else
steps = steps + 1
End If
flag = 1
ElseIf a(i) = a(i - 1) Then
If IsSymPeak(flag, steps) Then cunt = cunt + 1
steps = 0
flag = 0
Else
steps = steps - 1
flag = -1
End If
Next i
If IsSymPeak(flag, steps) Then cunt = cunt + 1
Text1.Text = Str(cunt)
End Sub
Functin IsSymPeak(flag As Integer, steps As Integer) As Blean
If __________________ Then
IsSymPeak = True
Else
IsSymPeak = False
End If
End Functin
14.产生【4 ,86】的随机整数
15.显示系统当前日期和时间
三、操作题
16.小龙同学设计了一个求四则混合运算结果的程序,用于计算不带括号的+、-、*、\的运算, \为整除运算,且此处要求*和\的优先级相同。在表达式中输入待求解的表达式,以=结尾。按下 Cmmand1“计算”按钮后,在标签控件 Label1 中输出运算结果。程序界面如下图所示:
(1)在表达式中输入15-22\5*2+7=,则输出的结果是 。
(2)实现上述功能的 VB 程序如下,请在划线处填入合适代码。
Functin calculate(x As Integer, y As Integer, p As String) As Integer If p = "+" Then calculate = x + y
If p = "-" Then calculate = x - y If p = "*" Then calculate = x * y If p = "\" Then calculate = x \ y
End Functin
Functin state(p As String) As Integer If p = "#" Then state = -1
If p = "=" Then state = 1
If p = "+" Then state = 1
If p = "-" Then state = 1
'①
If p = "*" Then state = 3
End Functin
Private Sub Cmmand1_Click()
Dim s As String, length As Integer, t As String Dim k As Integer, q As Integer
Dim pt(0 T 3) As String Dim i As Integer
Dim s1 As String
Dim a(1 T 3) As Integer s = Text1.Text
length = Len(s)
t = "": k = 0: q = 0: pt(q) = "#"
Fr i = 1 T 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 = ""
D While '②
a(k - 1) = calculate(a(k - 1), a(k), pt(q))
k = k - 1
q= q - 1
Lp
q = q + 1
'③
If s1 = "=" Then Label1.Captin = Str(a(1))
End If
Next i
End Sub
四、简答题
17.定义函数的基本格式是: ______。
18.在“抗击疫情,‘宅’出精彩”征文活动中,每位选手可以提交一篇作品。活动以互评的形式展开:每位选手对m篇作品进行打分(本人作品回避),方法如下:
① 用1-n数字代表n个作品,打乱顺序后分配给n个选手。分配方案保存在数组a中,如图a存储了两组分配方案(n=5)。在第一个分配方案中把4号作品分配给1号参赛者,1号作品分配给2号参赛者(选手编号与序号错开)……。
↑第i列中的作品拿给i号参赛者打分图a
②分配方案的形成方法: 将1~n之间的随机数字依次放到第1个位置、第2个位置……,随机数不能与位置号相同,并且要防止分配冲突,如前三个分配序号是“2 3 4”,那么在第4位上只能放“5”(如放“1”会导致第5个位置没有符合要求的数字,因此位置n-1需要判断数“n”是否已经分配,如果未分配,位置n-1放置数“n”),最终方案“2 3 4 5 1”。
③评m个作品需要m个分配方案。方案间要避免同一个人拿到重复的作品。如第16题图a第3行上的数据“5 1 2 3 4”不符合要求,因为会使第2号选手重复拿到1号作品。
小明依据上述方法设计了VB程序,功能如下:在文本框Text1和Text2分别输入参赛人数和每人打分的作品数量,单击“分配”按钮Cmmand1,在列表框List1中输出结果。程序运行效果如图b所示。
请回答下列问题:
(1)n=5,m=3,a(1)~a(10)中的数据如图a所示,a(11)~a(15)的数据可能是 (单选,填字母:A.5 4 3 1 2/B.5 4 1 3 2/C.3 4 5 1 2)
(2)请在划线处填入合适的代码。
Dim n As Integer '总人数/总作品数
Dim m As Integer '每人分配篇数
Dim a(1 T 500) As Integer '数组a大小满足处理要求
Dim c(1 T 100) As Integer '数组c大小满足处理要求
Private Sub Cmmand1_Click()
Dim i As Integer, j As Integer, k As Integer
n = Val(Text1.Text): m = Val(Text2.Text)
Randmize
i = 1
D While i <= m
Fr j = 1 T n
c(j) = 0 '本轮分配方案中还没有数字j, c(j)=0,否则c(j)=1
Next j
Fr j = 1 T n
If j = n - 1 And c(n) = 0 Then
①
Else
k = r(n, j)
End If
a((i - 1) * n + j) = k '分配数字k到当前方案的第j个位置上
c(k) = 1
Next j
If ② Then i = i + 1
Lp
s = ""
Fr i = 1 T n
s = "参赛者" & i & ":"
Fr j = 1 T m
s = s + Str(a((j - 1) * n + i))+ ","
Next j
List1.AddItem s
s = ""
Next i
End Sub
Functin r(x As Integer, y As Integer) As Integer
'生成一个取值在[1,x]之间,可以放在y位置上的随机数,满足条件r<>y andc(r)=0
End Functin
Functin check(c As Integer) As Blean
'本轮方案和前面几次的分配方案比较,如果有人分到了重复作品,返回FALSE
Dim p As Integer,f As Blean
f = True
p = 1
Fr i = 1 T c * n
If ③ Then
f = False: Exit Fr
End If
p = p md n +1
Next i
check = f
End Functin
4
1
5
2
3
a(1)~a(n)中存储第一个分配方案
2
3
4
5
1
a(n+1)~a(2*n)中存储第二个分配方案
参考答案:
1.D
2.D
3.C
4.B
5.B
6.C
7.A
8.B
9.A
10.A
11.5
12.INT(RND*13)-6
13. 3 2 steps=1 flag=-1 And steps=0或其他等价表达式
14.INT(RND *83)+4
15.PRINT DATE( ),TIME( )
16.(1)14
(2)①Ifp=“\”Thenstate=3 ②state(s1)<=state(pt(q)) ③pt(q)=sl
17.def 函数名(参数):
#函数说明
语句或语句组
return 返回值
18.(1)B
(2)①k= n ②check(i - 1) ③a(i) = a(c * n + p)
2.5程序设计的基本方法同步练习人教版信息技术选修1: 这是一份中图版 (2019)必修2 信息系统与社会本册综合一课一练,共8页。试卷主要包含了选择题,填空题,操作题等内容,欢迎下载使用。
2.2vb语言概述同步练习沪科版信息技术选修1: 这是一份高中信息技术教科版 (2019)选修4 人工智能初步本册综合同步练习题,共5页。试卷主要包含了选择题,填空题,操作题等内容,欢迎下载使用。
2.3选择结构同步练习沪科版信息技术选修1: 这是一份高中信息技术教科版 (2019)选修4 人工智能初步本册综合当堂达标检测题,共9页。试卷主要包含了选择题,填空题,操作题等内容,欢迎下载使用。