资源描述
VB综合(学考部分非选择题)
1. [2017年4月学考题]奇偶校验是一种校验数据传输正确性的方法。其中奇校验方法:统计二进制数据的数位中“1”的个数,若个数为奇数,则校验位值为0,否则校验位值为1。小李编写了一个计算奇校验位值得VB程序,功能如下:在文本框Text1中输入1~255十进制待校验数,单击“计算”按钮Command1后,在文本框Text2中显示该数对应的二进制值,并在标签Label3中显示该数的校验位值。程序运行界面如图所示。
(1)在设计程序界面时,要清空文本框中的显示内容,应修改该文本框中的 Text 属性。
(2)实现上述功能的VB程序如下,请在划线处填入合适代码。
Private Sub Command1_Click()
Dim a As Integer, s As String
Dim n As Integer, t As Integer, v As Integer
n = Val(Text1.Text)
t = 0
s = ""
Do While n > 0
a = n Mod 2
n = n \ 2
t = ① t+a
s = Str(a) + s
Loop
v = t Mod 2
Text2.Text = s
Label3.Caption = "校验位值:" + ② str(1-v)
End Sub
(3)运行该程序,在文本框Text1中输入22,单击“计算”按钮,则显示的校验位值是 0 。
2. [2016年10月学考题]编写“加法练习题生成器”程序,实现如下功能:在文本框Text1中输入题数n,单击“生成”按钮Commandl,在列表框Listl中显示n个两数之和小于100的加法练习题。程序运行界面如图a所示。
图a 图b
(1)在设计程序界面时,使应使用图b所示“控件工具箱”中的 3 (填写相应编号)添加“生成”按钮。
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim n As Integer, i As Integer, a As Integer, b As Integer
Randomize
n = Val(Text1.Text)
i = 1
Do While i<= n
a = Int(Rnd * 100)
b = Int(Rnd * 100)
If ② a+b<100 Then
List1.AddItem "(" + Str(i) + ")" + Str(a) + "+" + Str(b) + "="
i = i + 1
End If
Loop
End Sub
(3)运行该程序,在文本框中输入5,单击“生成”按钮后,对语句a = Int(Rnd * 100)执行次数的描述,最合理的是 B (单选,填字母:A.执行次数等于5 B.执行次数大于等于5 C.执行次数小于等于5)
3. 下面程序的功能是:统计输入信息有多少个英文大写字母、小写字母、数字字符。程序运行时,在文本框Text1中输入信息,单击“确定”按钮后,分别在文本框Text2、Text3、Text4中显示大写字母、小写字母和数字字符的个数。程序运行效果如图所示。
Private Sub Command1_Click()
Dim getStr As String
Dim a As String
Dim i As Integer,s As Integer
第3题图
Dim q As Integer,l As Integer
s=0:q=0:l=0
getStr=Text1.Text
For i = 1 To ① ’对字符串中所有字符逐一判断
a = ②
If a >= "a" And a <= "z" Then s = s + 1
If a >= "A" And a <= "Z" Then q = q + 1
If a >= "0" And a <= "9" Then l = l + 1
Next i
Text2.Text = Str(s)
Text3.Text = Str(q)
Text4.Text = Str(l)
End Sub
(1)虚线框中的代码属于_________________(选填:枚举/解析)算法
(2)划线①处应填入的语句为: Len(getstr) 或者 Len(Text1.text) ;
划线②处应填入的语句为: Mid(getstr,i,1) 或者 Mid(Text1.text,i,1) 。
(3)运行该程序时,如果在文本框Text1中输入的字符串中包含其他符号,如“?”、“*”,
则 (选填 会/不会)影响输出结果。
4. 编写VB程序,实现如下功能:在文本框Text1中输入十六进制数,单击“转换”按钮Command1,在列表框List1中输出对应的十进制数,运行界面如图所示,程序代码如下。
(1)要调整Label1中的字体大小,可选择在属性面板中设置Label1的 。(单选,填字母:A.Caption / B.Font / C.Height)
(2)为实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim s As String, c As String, t As String
Dim i As Integer, b As Integer, ans As Long
Dim flag As Boolean
s = ① Text1.text
b = Len(s)
flag = True
ans = 0
For i = 1 To b
c = Mid(s, i, 1)
If c >= "0" And c <= "9" Then
ans = ans * 16 + Asc(c) - Asc("0")
ElseIf c >= "A" And c <= "F" Then
ans = ans * 16 + ② 10+Asc(c) - Asc("A") 或 10+Asc(c) - 65
Else
③ flag=False '输入情况有误
Exit For
End If
Next i
If flag Then t = Str(ans) Else t ="输入有误!"
List1.AddItem s + "-->" + t
End Sub
(3)由上述算法可知,运行时在Text1框中输入“d8”,列表框List1中添加的条目为 。(单选,填字母:A. d8-->216/ B. d8-->输入有误!)
5. 编写VB趣味程序“计算厚道指数”,实现如下功能:在文本框Text1中输入姓名,单击“试一试”按钮Command1,在列表框List1依次求解并显示姓名中的每一个字符的ASCII码,并按程序中给定方式进行运算,得出厚道指数。运行界面如图所示,程序代码如下。
(1)为实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim s As String,c As String
Dim n As Integer,k As Integer
s = Text1.Text
List1.Clear
List1.AddItem ("开始分解姓名" + s + " ,计算内码:")
For i = 1 To ① Len(s)
c=mid(s , i , 1 )
k = Asc(c)
List1.AddItem (c + " 十进制ASCII值:" + Str(k))
n = (n + k) Mod 50
② Next i
n = n + 50 -i
Label2.Caption = Str(n)
End Sub
(2)程序中的代码“list1.clear ”的“clear”是 。
(单选,填字母:A.对象名/B.属性名/C.事件名/ D. 方法名)
(3)若在文本框中输入姓名是“jam”这3个字符,点击“试一试”按钮,在label2上显示的“厚道指数”值为 。68
6. 查找ASCII 码值最小的字符。程序功能如下:在文本框Text1中输入一个字符串,单击命令按钮Command1,在文本框Text2中输出该字符串中ASCII码值最小的字符,运行界面如下图所示。
解决该问题的VB 程序如下:
Private Sub Command1_Click()
Dim str1 As String '存储输入的字符串
Dim n As Integer '存储输入字符串的长度
Dim i As Integer, j As Integer
str1 = ① Text1.Text
n = Len(str1)
s = ② Mid(str1, 1, 1)
For i = 2 To n
If Mid(str1, i, 1) < s Then s = Mid(str1, i, 1)
Next i
Text2.Text = s
End Sub
(1)将命令按钮Command1中显示的文本“Command1”修改为“查找”,可在其属性窗口中将 Caption 属性的属性值改“查找”。
(2)为实现上述功能,请在划线处填入合适的代码。
程序中划线处①应填入 程序中划线处②应填入
(3)如上图所示, 在文本框Text2中输出的字符“M”是输入字符串中的第 1 个“M”。
7. 用物理天平测量物体的质量。待测得物体的质量为x克(x为小于1000的整数),下列程序为计算天平砝码盘中所需的砝码。已知天平可用砝码为:500克1个,200克1个,100克2个,50克1个,20克1个,10克2个,5克1个,2克2个,1克1个。程序界面如下图。
Private Sub Command1_Click()
Dim a(1 To 12) As Integer, i As Integer, x As Integer
a(1) = 500: a(2) = 200: a(3) = 100: a(4) = 100: a(5) = 50: a(6) = 20
a(7) = 10: a(8) = 10: a(9) = 5: a(10) = 2: a(11) = 2: a(12) = 1
i = 1
x = Val(Text1.Text)
List1.Clear
Do While x<>0
If x >= a(i) Then
List1.AddItem Str(a(i))
①
End If
i = i + 1
Loop
End Sub
(1)如要将程序窗口标题“Form1”修改为“天平测质量”,则应该修改窗体的属性 (选填: Name / Caption / Text / Font)。
(2)为实现上述功能,划线①处应填入的代码为 x=x-a(i) 。
(3)程序正确运行后,在文本框Text1中输入701,并单击“计算”按钮。程序运行结果应为下图中的 (单选,填:A/B/C)。
A
B
C
8. 日期判断
从文本框Text1输入一个8位数字表示的日期,其中第1到4位表示年(第1位确定不为零),第5到6位表示月,第7到8位表示日。单击“判断”按钮,判断该日期是否合法,将结果依次输出到列表框List1。程序界面如下图所示:
提示:年份值符合下列两种情况之一的是闰年。
1.年份是4的倍数,但不是100的倍数;
2.年份是400的倍数。
(1)观察程序代码,可知“判断”按钮的对象名为 。(单选,填字母:A.Text1/B.List1/C.Command1/D.Judge/E.判断)
(2)为实现上述功能,请在划线处填入合适的代码。
Private Sub Judge_Click()
Dim riqi As String, st As String
Dim year As Integer, month As Integer, day As Integer
Dim rn As Boolean, hefa As Boolean
riqi = Text1.Text
year = Val(Mid(riqi, 1, 4))
month = Val(Mid(riqi, 5, 2))
day = ① Val(mid(riqi,7,2)) 或 Val(mid(riqi,7)) ‘第①处
st = Str(year) + "年" + Str(month) + "月" + Str(day) + "日"
rn = False ‘用于判断是否为闰年
If ② year mod 400 =0 Then rn = True ‘第②处
If year Mod 4 = 0 And year Mod 100 <> 0 Then rn = True
hefa = True ‘用于判断是否为合法日期
If month = 0 Or month > 12 Then hefa = False
If day = 0 Then hefa = False
If (month = 1 Or month = 3 Or month = 5 Or month = 7 Or ’与下一行语句同行
month = 8 Or month = 10 Or month = 12) And day > 31 Then hefa = False
If (month = 4 Or month = 6 Or month = 9 Or month = 11) ’与下一行语句同行
And day > 30 Then hefa = False
If ③ month=2 And rn=true And day>29 Then hefa = False
’第③处,判断闰年2月的天数是否合法
If month = 2 And Rn = False And day > 28 Then hefa = False
If hefa = True Then st = st + " 合法日期" Else st = st + " 非法日期"
List1.AddItem st
End Sub
第①处代码为
第②处代码为
第③处代码为
9. 编写VB程序代码,实现如下功能:在文本框Text1中输入金额(整数)后,点击“转换”按钮Command1,则在文本框Text2中显示该金额的大写,程序运行界面如下图所示:
(1)要使窗体标题上显示的文本改为“人民币大小写”,可在其属性窗口中将 Caption 属性的属性值改为“人民币大小写”。
(2)为了实现以上程序功能,使程序正常运行,请完善以下两处代码。
Private Sub Command1_Click()
Dim dx As String, dw As String
Dim s As String, c As String
Dim ch As String
Dim i As Integer
dx = "零壹贰叁肆伍陆柒捌玖拾"
dw = "亿仟佰拾萬仟佰拾元"
s = Text1.Text
If Len(s) > 9 ① Then
Text2.Text = "输入的数据超出所能转换的范围"
Else
For i = 1 To Len(s)
ch = ② Mid(s, i, 1)
c = c + Mid(dx, Val(ch) + 1, 1) + Mid(dw, 9 - Len(s) + i, 1)
Next i
Text2.Text = c + "整"
End If
End Sub
(3)由上述算法可知,若在文本框Text1中输入“20”,则文本框Text3显示的结果为 贰拾零元整。
1
10. 现要求编写VB程序,界面如第10题-1图所示,程序功能如下:单击开始暂时按钮Command1,图像控件Image1中的图片每隔5秒更换一张,再次单击Command1按钮,停止展示。
3
2
4
第10题-1图 第10题-2图
(1)为达到每隔5秒更换一张图片的效果,应使用第10题-2图所示的空间工具箱中的 3 (填写相应的编号),并将其Interval属性值设置为 5000 。
(2)请根据题意讲下列程序补充完整
Private Sub Command1_Click ()
Dim i As Integer
If Command1.Caption = "开始展示" Then
Command1.Caption = "停止展示"
Timer1.Enabled = Ture
Else
Command1.Caption = "开始展示"
Timer1.Enabled = False
End If
End Sub
Private Sub Timer1_Timer()
i = i + 1
If i > 5 Then i = 1
Image1.Picture = LoadPicture(i & “.jpg”)
End Sub
展开阅读全文