VISUAL BASICVB习题答案1.3答案
1.3控件语句与程序调试
一.选择题
1.C
2.(1)B(2)C(3)B
3.(1)A(2)B(3)B
4.B
5.C
6.A
7.D
8.A
二.1.600.3 2.55 3.Boolean False 4.Boolaen Asc(Char)>=Asc(“a”)And
Asc(Char)<=Asc(“z”)Flag或Flag=True 5.sgn 三.简答与编辑
1.程序有三种基本结构:顺序、选择与循环。举例略。
2.参考教材
3.1.1小节中的“
4.If语句嵌套”中的说明。
3.程序的错误类型分为三种:语法错误、运行错误和逻辑错误。举例略。
4.不是
5.参考程序
Private Sub Form_Click()
Dim X As Integer
Prompt=“输入一个正整数”
X=InputBox(prompt,”输入”)
If X Mod2<>0Then
Print“奇数”
Else
Print”偶数”
End If
End Sub
6.参考程序
Private Sub Form_Click()
Dim X As Integer,Y As Long
X=InputBox(“请输入X的值”,”输入”)
Select Case X
Case Is<7
Y=X^2+1
Case7To12
Y=10
Case Is>12
Y=X^3–1
End Select
Print“Y=”&Y
End Sub
7.参考程序
Private Sub Form_Click()
Dim I As Integer,X%,A%,B%,C%
For I=1To10
X=InputBox(“请输入数据”,”输入”)
If X>0Then
A=A+1
ElseIf X<0Then
B=B+1
Else
C=C+1
End If
Next I
Print“正数有”;A;”个”;”负数有”;B;”个”;”零有”;C;”个”End Sub
8.参考程序
Private Sub Form_Click()
Dim C%,B%,A%,intTemp%
Randomize(Timer)
A=(200*Rnd)
B=(200*Rnd)
C=(200*Rnd)
If A>B Then‘找出A和B中较小的一个数intTemp=A
A=B
B=intTemp
End If
If A>C Then‘找出A和C中的较小的一个数intTemp=A
A=C
C=intTemp
End If
If B>C Then
intTemp=B
B=C
C=intTemp
End If
Print A,B,C
End Sub
9.参考程序
Private Sub Form_Click
Dim r n%,min%,n%,i%
Randomize(Timer)
i=1
min=90*Rnd+10‘假设第一个数最小
Print i,min
For i=2To20
r n=90*Rnd+10
Print i,r n
If r n min=r n n=1 Next i Print“最小数是”;min;”位置在”;n End Sub 10.参考程序 Private Sub Form_Click Dim a As Double,b As Double,c As Double a=1 b=2 Print1,a Print2,b For i=3To10 c=b^2–a^2‘数列从第三项起是前两项的平方差a=b b=c Print i,c Next i End Sub 11.参考程序 Private Sub Command_Click() For i=100To500 ge=i Mod10'求出个位 shi=(i\10)mod10'求出十位 bai=i\100'求出百位 If(ge+shi+bai)=5Then Print i Next i print End Sub 12.参考程序 Private Sub Form_Click() Print"一万以内的同构数有:" For i=1To10000 If i=Val(Right(i^2,Len(i)))Then Print i End If Next i End Sub 13.参考程序 Private Sub Form_Click() Const N=500 'Const N=1000 'Const N=2000 Dim I As Integer,t As Double,Pi As Double For I=1To N Pi=Pi+t Next I Pi=Sqr(Pi*6) Print Pi End Sub 14.参考程序 Option Explicit Private Sub Form_Click() Dim I As Integer,N As Integer,F As Integer,t As Double Dim X As Single,term As Single,sinx As single X=20*3.14159/180“角度转换成弧度 term=X F=1 N=1 Do While term>=0.000001 sinx=sinx+term*F F=-1*F N=N+2 t=1 For I=1To N“本循环计算N! t=t*I Next I term=X^N/t Loop print"Sin(20)=";sinx End Sub 四.实验题 1.(1)Randomize(2)40+60(3)x Mod6(4)Counter+1(5)End If 2.(1)Len(word)(2)n(3)i(4)Exit For 3. Private Sub Command1_Click() Weight=InputBox("请输入行李重量","支付托运费") If Weight<=30Then price=0 If Weight>30And Weight<=50Then price=(Weight-30)*10 If Weight>50Then price=(WEight-50)*20+200 MsgBox"支付托运费"&price&"元",,"计算托运费" End Sub 4.参考解答 Private Sub Command1_Click()'倒三角 Cls Print For i=1To8 Print Tab(10); For j=8To i Step-1 Print"*"; Next j Print Next i End Sub Private Sub Command2_Click()'平行四边形Cls Print For i=1To8 Print Tab(10-i); For j=1To10 Print"*"; Next j Print Next i End Sub Private Sub Command3_Click()'数字菱形Cls Print For i=1To5 Print Tab(10-i); For j=1To2*i-1 Print Right(i,1); Next i For i=4To1Step-1 Print Right(i,1); Next j Print Next i End Sub 5.参考解答 Private Sub Form_Click() For i=0To9‘打印列标题 Print Tab(6*(i+1));i; Next i Print For i=0To9 Print i;‘打印行标题 For j=0To9‘打印平方根 data=(10*i+j)^0.5 Print Tab((j+1)*6);Format(data,"0.00") Next j Print Next i End Sub 6.参考解答 Private Sub Form_Click() Const N=6‘假设有六位裁判Dim Data As Integer Data=InputBox(“第1名裁判打分为”,”得分”) Print Data; Max=Data Min=Data Sum=Data For I=2To N Prompt=“第”&I&“裁判打分为” Data=InputBox(prompt,“得分”) Print Data; Sum=Sum+Data If Max If Min>Data Then Min=Data If I Mod10=0Then Print Next I Sum=Sum–Max–Min Score=Sum/(N-2) Print Print”得分为”&score End Sub