Dim n,s As Integer 'n为试题计数器,s为得分
Dim a, b As Integer 'a,b 为两个运算数
Dim c As String 'c为运算符:"+ "表示加法,"-"表示减法

Private Sub Form_Load()
n = 0:
s = 0
End Sub
Private Sub Command1_Click() ‘出题按钮
Randomize
n = n + 1
If n < 11 Then
Label1.Caption = "No:" + Str(n)
a = Int(Rnd * 100) 'a,b为运算数,且要求a不小于b
b = Int(Rnd * 100)
If Then t = a: a = b: b = t '(1)
If Rnd > 0.5 Then c = "+" Else '(2)
Label5.Caption = Str(a) + c + Str(b) + "="
Text1.Text = ""
Else
Command1.Caption = "完成测试"
End If
End Sub
Private Sub Command2_Click() ‘判断按钮
If c = "+" Then
If a + b = Val(Text1.Text) Then s = s + 10
Else
If Then s = s + 10 '(3)
End If
Label3.Caption = "得分:" + Str(s)
End Sub
实现上述功能的VB程序代码如下,但加框处代码有错,请改正。
Private Sub Command1_Click()
Dim s As String, ch As String
Dim ch2 As String, sum As Double
Dim n As Integer, i As Integer
s = Text1.Text
n = Len(s)
i = 1: sum = 0
Do While
'①
ch = Mid(s, i, 1)
If ch >= "0" And ch <= "9" Then
j = i
ch2 = Mid(s, j, 1)
Do While ch2 >= "0" And ch2 <= "9"
j = j + 1
ch2 = Mid(s, j, 1)
Loop
sum = sum + Val(
) '②
i = j
End If
i = i + 1
Loop
Label3.Caption = Str(sum)
End Sub
① ②

图a

图b
程序运行界面如图b所示,请回答以下问题。
Private Sub Command1_Click()
Dim a(1 To 4) As Integer, b(1 To 4) As Integer
'数组a存储骰子的点数,数组b存储对应的二进制数值
Dim s As Integer
Randomize
List1.Clear
c=0
For i=1 To 4
a=Int(Rnd*6)+1
Ifthen b=1 Else b=0
c=c+
List1.AddItem ″第″+Str(i)+″次:″+Str(a)+″点″
Next i
Text1.Text=Str(c)
End Sub
Dim a(10 to 20) as integer
则此数组中元素的个数为。
Private Sub jf click()
Dim s As String, d As string, i As Integer
Dim f1 As Single, f2 As Single, f3 As Single
s= Text1. Text
i=1
Do while
d= Mid(s,i,3)
If Mid(d,1,1)="1"Then
f1= f1+ Val(Mid(d.2.2))
Else lf mid(d,1.1)="2 Then
f2= f2+ Val(Mid(d,2,2)
Else
f3=f3+val(Mid(d. 2.2)
End If
Loop
Labell. Caption=”作品1平均分为:"+Str(/5)+”作品2平均分为:" Str(2/5)+″作品3平均分为:"+Str(f3/5)
‘以下省略“处理并列最高平均分,并在 Label2中输出选取的参赛作品”的代码End Sub
380/295/283/170/180/385/372/285/190/180/390/384/272/170/276,单击“计分”按钮,则Label1中显示的结果 (选填:会/不会)发生改变。
Private Sub Command1_Click()
Dim i As Integer, x As String, t As String
Dim n As Integer, m As Integer
x = Text1.Text
For i = 1 To
t =
If Asc(t) <= 127 And Asc(t) >= 0 Then
n = n + 1
Else
m = m + 1
End If
Next i
Label2.Caption = "共有ASCII字符" & n & "个,GB2312字符" & m & "个"
End Sub
1)若是运算符“+”或“-”保存该位置并结束查找。
2)若是第一次碰到“*”或“/”,保存该位置,若不是第一次碰到“*”或“/”,继续往左边查找。
3)若是“)”,调用函数找到和它对应的“(”位置,跳过该括号,继续往左查找。
4)若是非运算符,继续往左查找。
运行界面如下图:

实现上述功能的 VB 程序如下,但加框处代码有错,请改正。
Function find(y As String , x As Integer ) As Integer
’该函数的功能是:返回表达式 y 中和位于第 x 位置的“)”配对的“(”的位置,代码略
End Function
Private Sub Commandl _ Click ()
Dim s As String , t As Integer , temp As Integer , p As Integer
s = Text1. Text ‘输入表达式
t = Len (s):p = 0
Do While t>0
If Mid ( s, t , 1) =“*” Or Mid ( s, t , 1) =“-” Then ‘处理+、-
temp=t
Exit Do
End If
If
① Then 处理 *、/
temp = t
P=1 ‘用来标记乘号或除号已经出现了
End If
If Mid(s, t, 1)= ")" Then ‘处理括号
②
End If
t=t -1
Loop
Text 2.Text = Str (temp)
End Sub
① ②
为了实现这一目标,完善下列程序,使之能完成该功能。
Private Sub command1_click()
Const n=20
Dim i as integer,j as integer
Dim a(1 to n) as integer
For j=1 to n
a(j)=0
next j
for i=1 to n
for j=1 to n
if j mod i=0 then
End if
Next j
Next i
For j=1 to n
If then list1.additem str(j)
Next j
End Sub
Private Function bw(x As Integer, y As String) As String
'函数bw功能:若二进制位数不足,通过在前面添”0”使得位数为4的倍数
Dim rAs 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)
EndIf
bw=①
End Function
Private SubCommand 1 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=Text 1.Text
n=Len(m)
Text 2.Text=””
m=② ‘调整m的位数为4的倍数
For i=1Ton-3Step 4
s=0
For j=i To i+ 3
a=Val(Mid(m, j, 1) )
s=③
Next j
If s>= 10 Then
s 1=Chr(Asc(”A”) +s-10)
Else
s 1=CStr(s)'函数CStr类似于Str,但无前导空格
End If
Text 2.Text=Text 2.Text+s1
Next i
End Sub
① ② ③
判断车牌的单双号
【背景知识】
为了保障空气质量,减少雾霾,某市决定当空气污染严重时,实行汽车单双号限行,违反规定的车辆将予以处罚。
如何让高清摄像头自动判断车牌的单双号,交警犯了愁,他需要编程高手的你帮忙,完善下面的程序。(提示:(1)所有车牌号中都含有数字,并且车牌号的长度都是6;(2)以车牌中最后一位阿拉伯数字的奇、偶来决定单双号。)
|
⑴输入:AD2367 |
⑵输入:A8888A |
⑶输入:A8963C |
|
输出:单号 |
输出:双号 |
输出:单号 |
【算法描述】
⑴自然语言
第1步:输入车牌号
第2步:取车牌号的最后一位x;
第3步:判断x是否为数字,如果是,转第4步;如果不是,则依次取得倒数第二、三……位判断,直到找到数字为止;
第4步:判断x 是奇数还是偶数,然后输出相应的结果。
⑵流程图
请根据上述算法描述补全代码
Dim n As Integer
Dim s As String ‘定义s 为字符串类型
Dim x As String
s=InputBox(“s=”,s) ‘将输入的车牌号赋值给s
n=6 ‘车牌号的长度为6
x=Mid(s,n,1) ‘取车牌号s的第n位
Do While x<“0” Or x>“9” ‘x不是数字字符,则取x的前一位
①
x=Mid(s,n,1) ‘取车牌号s的第n位
Loop
If ② then
Print “双号”
Else
Print “单号”
End If
(提示:Mid(s,m,n)的功能:从字符串s的第m位开始,截取长度为n的子串。例如:Mid(“A8963C”,5,1)的返回值是“3”。)
假设银行的年存储利率为3%,如果现在存储10000元钱,问多少年后连本带利超过12000元。设定:连本带利=本金*(1+利率)∧年数。
假设n年后连本带息超过12000,根据题意得出数学关系式:10000*(1+3%)∧n>12000,求最小的n。
Dim s as single
Dim r as single
Dim n as integer
s=10000
r=0.03
n=0
Do while
n=n+1
s=s*(1+r)
Loop
Print n;”年后”:”连本带利超过”;s
根据上述回答下列问题
在程序设计课上,小明设计了一个程序用来计算离散型随机变量的数学期望,Text1中交替输入随机变量和相应概率,并以逗号“,”为分隔符,具体界面如下图所示。
Private Sub Cmd_Click()
Dim s As String, t As String, c As String,X As Single, p As Single, EX As Single
Dim n As Integer, k As Integer
s = Text1.Text
n = Len(s)
k = 0: EX = 0: t = ""
For i = 1 To n
c = Mid(s, i, 1)
If c = "," Then
k = k + 1
If Then
X = Val(t)
Else
p = Val(t)
EX =
End If
Else
t = t + c
End If
Next i
Text2.Text =
End Sub

Private Sub Command1_Click( )
Dim ch As String
Dim n As Integer, x As Integer
Dim ans As String
ch="0123456789ABCDEF"
n= ①
Do While n>0
x=n Mod 16
②
ans= ③
Loop
Label2.Caption="16进制:"+ans
End Sub
画线处应填入的代码为:①;②;③。
已知a、b、c分别为三角形的三条边长,利用海伦公式求三角形面积
,其中
编程实现:输入边长a,b,c,如果能构成三角形,输出面积,否则输出“No Answer !”
def cal():
a=int(txtl.get())
b=int(txt2.get())
c=int(txt3.get())
if: :
p= (atb+c)/2
s=math. sqrt (p*(p-a)*(p-b)*(p-c))
txt4.insert (0,str(s))
else:
txt4.insert (0."No Answer!")
Private Sub Form_Click()
Dim y, s, n As Integer
n = InputBox("输入n")
y = 0:
Do While n \ 10 <> 0
y = n Mod 10
s = s + y
n = n \ 10
Loop
Print s
End Sub
①处应填写:;②处应填写:。
Private Sub Command1_Click()
Dim i, k As Integer
Dim x1, y1, x2, y2 As Single
Dim v As Single, maxd As Single
Dim s As String, pos zb As String
List1.Clear
s=Text1.Text
x1=1:y1=1
t="": k=1: j=1
List1.AddItem"坐标点"&"距离"
For i=1 To Len(s)
If Mid(s,i,1)="," Then
v=Val(Mid(s, j, i-j))
j=
If k Mod 2=1 Then
x2=v
Else
y2=v
d=Sqr((x2-x1)^2+(y2-y1)^2)
If Then
maxd=d
pos="(" & Str(x2)& "," & Str(y2)& ")"
End If
List1.AddItem"(" & Str(x2)& "," & Str(y2)& ")" & Str(d)
End If
k=k+1
End If
Next i
Label1.Caption="距离(1, 1)最远的点为"& pos &"距离为"& Str(maxd)
End Sub
已知a、b、c分别为三角形的三条边长,利用海伦公式求三角形面积
, 其中
编程实现:输入边长a,b,c,如果能构成三角形,输出面积,否则输出“No Answer !”

def cal( ):
a=int(txtl.get())
b=int(txt2.get())
c=int(txt3.get())
if: :
p= (atb+c)/2
s=math. sqrt (p*(p-a)*(p-b)*(p-c))
txt4.insert (0,str(s))
else:
txt4.insert (0."No Answer!")
我国古代数学家张丘建在“算经”里提出一个数学史上有名的百鸡问题。题曰:鸡翁一,他钱五;鸡母一,值钱三;鸡雏三,值钱一:百钱买百鸡,问鸡翁、母、雏各几何?
请把以下算法选项填入到程序语句相对应的位置:
设i,j,k分别代表鸡翁、鸡母、鸡雏的只数。首先确定i,j,k的取值范围:
A 、若100个钱全买鸡母,则最多可买33只,即j的取值范围是0~33。
B 、若100个钱全买鸡翁,则最多可买20只,即i的取值范围是0~20。
C 、当i,j在各自的取值范围内确定某个值后,则鸡雏的只数,k=100-i-j也确定了。
D 、让i从0变化到20,当i取某值时再让j从0变化到33,当j取某个值时,k的值也定了。如果i*5+j*3+k/3=100成立则i,j,k当前的值就是答案。
先在窗体上绘制一个命令按钮,名称为Command1,编写命令按钮的单击事件。实现以上算法的程序如下:
Private Sub Command1_Click( )
For i = 0 To 20
For j= 0 To 33
k=100-i-j()
If i*5+j*3 + k/ 3 = 100 Then
Print “鸡翁、鸡母、鸡雏分别为"& i & " " & j & " " & k & "只"
End if
Next j,
Next i
End Sub
请计算出任意一种答案。鸡翁、鸡母、鸡雏分别有只。