vb习题参考答案分析_第1页
vb习题参考答案分析_第2页
vb习题参考答案分析_第3页
vb习题参考答案分析_第4页
vb习题参考答案分析_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第1章习题参考答案、选择题1. C2. B第2章习题参考答案、判断题题号1234567891011答案XXVVXVXVVVV、填空题1. 窗体font2. 不能在代码中设置3. seistart4. Locked5. Tabindex、06. vbModal 或 17. Activate、 Deactivate8. PictureBox 禾廿Frame三、选择题题号12345678910答案DCDADBBBAB第三章习题参考答案、思考题1、double2、xyCabc, 15eyd, Is, #END X8P3、变量有 8,常量有2字符串型逻辑型5字符串型7字符串型9日期型10实型4、a5、(

2、1)26(2)3.75(3)36、写出以下Visual Basic表达式的值:(1) False (2) True (3) True (4) False (5) True(6) True (7) False (8) False7、将以下命题用 Visual Basic布尔表达式表示:8写出以下函数的值:(1) -4(2)换行符(3)-1(5) hello(6) ello16(8)-'459.65 (9) 5(1) z>x and z>y p mod q=0(5) x<z and y>z or x>z and y<z(2) abs(a)<=abs

3、(b+2) or a > b+2(4)x<-5 or x>-2 and x<2 or x>5 a<b and a mod 2=0、填空题双精度型1. 整型 、 长整型 、 双精度型2. (X mod 10)*10+X10.3. sin (1/4*3.14)+sqr(x+2*exp(y)/abs(x-y)4. (a+b)/(c*d_sqr(1_aA2).5. x mod 5=0 or x mod 9=0.6. False .7. -3、2、-2、2& CDEF9. x>0 and y>0 or x<0 and y<0或 x*y&

4、gt;010. s>="A and s<="Z or s>="a" and s<="z三、选择题题号12345答案CBBBD四、编程题1、Private Sub Form_Click()Dim x%. Ten%, hun dred%x = Val(Text1.Text)Ten = (x 10) Mod 10hun dred = x 100Print "百位数是:"& hundredPrint"十位数是:"& TenEnd Sub2Private Sub Form_C

5、lick()Dim char As Stri ng * 1Form1.CurrentX = Rnd * Form1.ScaleWidthForm1.CurrentY = Rnd * Form1.ScaleHeight char = Chr(I nt(R nd * 16) + 65)Print charEnd Sub第4章习题参考答案、判断题题号12345678答案XXXVVVVX、选择题题号12345答案ADBBB三、程序阅读写出以下各段程序执行后的输出结果.1 . 785786357864135786422. w=4、w=13、w=135、w=313. 此题有点错误,修改如下:是将语句“ I

6、f k < Asc(A)Then k = k + 26 改为:If k < Asc("A") Or k > Asc("Z") And k < Asc("a") The n k = k + 26 改后的答案:xyza12 uvw&4. ABBBCCCCCDDDDDDDEEEEEEEEE5. 此题的“ IF KeyAsci=13 Then 改为“ IF KeyAsci i =13 Then 答案是:129四、程序填空题1. (1) Sin g=-1 For i=2 to 19(3) Sin g=-S ing

7、2. (1) Len(oldsen)(2) Mid(oldsen ,i,1)(3) Ucase(char)(4) char3.(1) Len (str1)(2) Length-1(3) Mid(str1,i,2)(4) Sum=0 4(1) Trim(Str(i)(2) Trim(Str(i*i)(3) Right(x2,Len(x1)=x15.(1) last_one = last_two(2) last_two = this_one(3) i = i+1(4) i-1五、编程题1Private Sub Form_Click()Dim R1 As Double, R2 As Double&#

8、39;R1, R2 表示两电阻值Dim Rp As Double, Rs As DoubleR1 = Val(InputBox(" 输入电阻 R1=? ")R2 = Val(InputBox(" 输入电阻 R2=? ")Rp = R1 * R2 / (R1 + R2)Rs = R1 + R2Rp = Fix(Rp * 1000 + 0.5) / 1000'保存小数点后 3 位Rs = Fix(Rs * 1000 + 0.5) / 1000'保存小数点后 3 位MsgBox " 并联电阻是: " & Rp &am

9、p; vbCrLf & " 串联电阻是: " & Rs End Sub2Private Sub Form_Click()Dim N As LongN = Val(InputBox(" 请输入年份 ", " 提示框 ")'判断条件If (N Mod 400 = 0) Or (N Mod 4 = 0 And N Mod 100 <> 0) ThenPrint N & " 年是闰年 "ElsePrint N & " 年不是闰年 "End IfEnd

10、SubPrivate Sub Form_Click()3Dim a!, b!, c!, s!, x!a = Val(InputBox("Enter A=?")b = Val(InputBox("Enter B=?")c = Val(InputBox("Enter C=?")If a + b > c And b + c > a And a + c > b Then'如果能构成三角形x = (a + b + c) / 2s = Sqr(x * (x - a) * (x - b) * (x - c) Print &

11、quot;S=" sElsePrint " 数据有错 ,不能构成三角形 "End IfEnd Sub3. (此题不适合使用 Select语句)Private Sub Command1_Click()Dim x As Double, fx As Doublex = Val(InputBox(" 输入 x=?")If x < 0 And x <> -3 Thenfx = x * x + x - 6ElseIf x >= 0 And x < 10 And x <> 2 And x <> 3 The

12、n fx = x * x - 5 * x + 6Elsefx = x * x - x - 1End IfPrint "x= " x; "f(" & x & ")=" fxEnd Sub5.Dim i As IntegerDim s As Long, t As Longt = 1For i = 1 To 10 t = t * i s = s + tNext iPrint "S=" & sDim i%, s!, n!, t!, f%i = 1' 项数s = 0' 累加和n = 1

13、'阶乘t = 1' 通项f = 1' 系数Do While t > 0.000001s = s + f * ti = i + 1n = n * it = 1 / nf = -f'表示符号LoopPrint "S=" s7'方法一Private Sub Form_Click()Dim i As IntegerDim Hundred As Integer, Ten As Integer, One As Integer ' 定义百位,十位,个位数For i = 100 To 999 Hundred = i 100'求百

14、位数Ten = (i 10) - Hundred * 10' 求十位数One = i Mod 10'求个位数If i = Hun dred A 3 + Ten A 3 + One A 3 The n '判断是否为素数Print i & " 是水仙花数 "End IfNext iEnd Sub'方法Private Sub Form_Click()Dim i As IntegerDim Hundred As Integer, Ten As Integer, One As Integer ' 定义百位,十位,个位数For Hundr

15、ed = 1 To 9'百位数For Ten = 0 To 9'十位数For One = 0 To 9i = Hundred * 100 + Ten * 10 + OneIf i = Hun dred A 3 + Ten A 3 + One A 3 The n'判断是否为素数Print i & "是水仙花数"End IfNext OneNext TenNext Hu ndredEnd SubDim a As Double, x0 As Double, x1 As Double a = Val(lnputBox( 输入 a=?)x0 = a&#

16、39;初值x1 = 2 / 3 * x0 + a / (3 * x0 * x0)'第一次迭代后的值Do While Abs(x1 - x0) > 0.000001'限制精度x0 = x1'迭代x1 = 2 / 3 * x0 + a / (3 * x0 * x0)LoopPrint 立方根:;x1第5章习题参考答案、判断题题号123456答案VVXXVV、选择题题号123答案DAC三、程序填空1. Preserve a(n+1)a(i+1)=a(i)a(i+1)=mn+1 或 Ubound(a)2. PrintK-1t = a(k, j): a(k, j) = a(

17、j, k): a(j, k) = t3. Rnd*100P=10P = JP = 0四、编写程序1.Private Sub Command1_Click()Dim A() As Integer, N As IntegerDim i As Integer, M As Integer, t As Integer, k As IntegerN = Val(InputBox(" 请输入数组的大小 N=?")M = Val(InputBox(" 请输入移位次数 M=?")' 输入循环次数的大小If N <= 0 Then Exit SubReDim

18、A(N - 1)Print " 原始数组值 "For i = 0 To N - 1'给数组赋值A(i) = Int(Rnd * 100)Print A(i);Next iPrint'移位For i = 1 To M' 循环体完成右移一位,循环完成右移j位t = A(N - 1)For k = N - 1 To 1 Step -1'循环右移A(k) = A(k - 1)Next kA(0) = tNext i '打印右移后的数组值Print "循环右移 " & M & " 位后的数组值 &q

19、uot;For i = 0 To N - 1Print A(i);Next iPrintEnd Sub 2.Const NM = 100Private Sub Command1_Click()Dim a(1 To NM) As Single, b(1 To NM) As Integer, max As IntegerDim i As Integer, j As Integer, k As Integer, t As IntegerFor i = 1 To NM' 输入 100 个数值a(i) = Val(InputBox(" 请输入 a(" & i &

20、; ") 的值 ") If Int(a(i) = a(i) Then'判断是否为整数k = k + 1'整数个数加 1b(k) = a(i)'将这个整数存放到数组 BEnd IfNext i'选择排择For i = 1 To k - 1 max = iFor j = i + 1 To kIf b(max) < b(j) Then max = j Next jIf max <> i Thent = b(max): b(max) = b(i): b(i) = t End IfNext i '打印输出For i = 1 T

21、o kPrint b(i);If i Mod 5 = 0 Then PrintNext iEnd Sub 3.Private Sub Command1_Click()Dim a() As IntegerDim n%, i%, j%n = Val(InputBox(" 输入一个整数 n=?") ReDim a(n)Form1.ClsRandomizePrint "产生的 30 个随机整数 :"For i = 1 To na(i) = Int(Rnd * 21) - 10 Print a(i);If i Mod 10 = 0 Then PrintNext i

22、Print '删除数组的相同数据 j = 2Do While j < nFor i = 1 To j - 1 '查找相同的元素If a(j) = a(i) Then Exit ForNext iIf i < j Then '如果第 i 个数与前面的数据相同 ,删除第 i 个元素 For i = j To n - 1a(i) = a(i + 1)Next in = n - 1ReDim Preserve a(n)ElseEnd IfLoopPrint " 删除后的数据 :"For i = 1 To nPrint a(i);If i Mod

23、10 = 0 Then PrintNext iEnd Sub 4.Private Sub Command1_Click()Dim a(1 To 50) As Integer, i%, j%, t%, p%, n%, x%n = 0' 已经产生的元素个数RandomizeDo While n < 50x = Int(Rnd * 90) + 10 '产生 10100 之间的随机整数For i = 1 To nIf x = a(i) Then Exit ForNext iIf i > n Then n = n + 1 a(n) = xEnd IfLoopFor i = 1

24、 To 49 ' 使用选择法排序p = iFor j = i + 1 To 50If a(p) > a(j) Then p = jNext jt = a(p): a(p) = a(i): a(i) = tNext iFor i = 1 To 50 ' 打印输出Print a(i);If i Mod 10 = 0 Then PrintNext i End Sub习题与思考题、思考题略、判断题题号123456答案XVXVVX三、选择题题号12345答案DCADB四、程序填空题1. nsp=Truem Mod i=0p1 And p2=n sp(i)或=p22. (1)n um

25、ber(i,7)(2)(int n, int m)(3)n umber=n umber*10+m五、程序阅读1. a=9b=42. (1)3625169410(2) 01494103. 64. 144五、编写程序1.Public Function fact(x As Integer) As Single'求 x!Dim f As Sin gle, i As In tegerf = 1For i = 1 To xf = f * i'累积Next ifact = fEnd FunctionPrivate Sub Form_Click()Dim n%, m%, y!Dom% = Va

26、l(InputBox("m=") n% = Val(InputBox("n=")Loop Until m >= n And n >= 0 y = fact(m) / (fact(n) * fact(m - n) Print yEnd Sub2. Option ExplicitDim a() As Integer ' 定义窗体级动态数组 ' 插入过程 SortPrivate Sub Insertfun(a%(), y%)' y 为要插入的数Dim j As Integer, i As Integer, n As Inte

27、gerj = 1n = UBound(a)Do While y > a(j) And j < nj = j + 1LoopFor i% = n - 1 To j Step -1a(i + 1) = a(i)Next i求数组上界 查找插入的位置空出要插入的位置a(j) = y End Sub插入Private Sub Form_Load()End SubPrivate Sub Txtinput_KeyPress(KeyAscii As Integer)Dim x As Integer, i As IntegerIf KeyAscii = 13 ThenStatic n As Int

28、eger ' 定义静态变量 n = n + 1x = Val(Txtinput.Text) Picdata.Print x ReDim Preserve a(n) Insertfun a, xFor i = 1 To UBound(a) Picresult.Print a(i);Next i Picresult.Print Txtinput.Text = ""End IfEnd Sub 3.'判断是否为回文录函数插入后重定义数组的大小' 调用插入过程Private Function Judge(str As String) As Boolea nDi

29、m i As In tegerJudge = True'假设为回文For i = 1 To Len (str) 2'依次判断对应位置的两个字符,只要有一组不等即不是回文If Mid(str, i, 1) <> Mid(str, Le n(str) + 1 - i, 1) The nJudge = FalseExit FunctionEnd IfNext iEnd Function4.Private Sub Form_Click()Dim n %,x!n = Val(I nputBox(" n=")x = Val(I nputBox("x

30、=")Print fe(n, x)'调用求值函数过程End Sub'求值函数过程Public Function fe(n%, x!) As SingleDim i As In teger, t As Si nglefe = 1: t = 1For i = 1 To nt = t * x / i't为通项fe = fe + tNext iEnd Function第7章习题参考答案、判断题题号12345678910111213141516答案XXVVXXXVVVXXVVXV、填空题1. 一Multiline_2. _Value_3. Selected _、list

31、、0_、 Iist1 listCount-14. 下拉式列表框5. LargeChange、Value6. Shift+Ctrl7. KeyAscii=08. if KeyAscii>57 OR KeyAscii<48 the n KeyAscii=O三、程序填空1.Label1.Fo nt = Combo1.TextCombo2.TextLabel1.Fo ntBold =TrueLabel1.Fo ntItalic =TrueLabel1.Fo ntSize =:Val(Combo3.Text)2. List1.List(list1 .L istI ndex)list1.Rem

32、oveItem List1.ListI ndexList1.Addltem List2.List(List2.ListIndex)List2.Removeltem四、选择题题号12345678答案ADDBDDCD五、编程题1. '添加功能Private Sub cmdAdd_Click()Dim i%If Combo1.Text = "" Then Exit SubFor i = 0 To Combo1.ListCount - 1 '逐个判断是否有与输入内容相同的工程If Combo1.Text = Combo1 .L ist(i) The n Exit S

33、ub '找到相同工程那么退出 Next iCombo1.AddItem Combo1.Text'未找到那么添加End Sub删除功能Private Sub cmdDelete_Click()If Combo1.ListI ndex >= 0 The n'是否选中某一工程Combo1.RemoveItem Combo1.ListIndex '删除选中工程Else删除与输入内容相同的工程For i = 0 To Combo1. ListCou nt - 1If Combo1 .L ist(i) = Combo1.Text The nCombo1.RemoveI

34、tem iEnd IfNext iEnd IfEnd Sub'去除Private Sub Command3_Click()Combo1.ClearEnd Sub2Private Sub Command1_Click() 产生随机数Dim i%RandomizeFor i = 1 To 10List1.AddItem Str(Int(Rnd * 90) + 10) Next iList2.ClearEnd SubPrivate Sub Command2_Click() 迁移偶数Dim i%i = 0Do While i <= List1.ListCount - 1If Val(Li

35、st1.List(i) Mod 2 = 0 ThenList2.AddItem List1.List(i)List1.RemoveItem iElsei = i + 1End If LoopEnd Sub 3Private Sub List1_DblClick()Dim i As IntegerFor i = 0 To List2.ListCount - 1 '预防重复点歌If List2.List(i) = List1.Text ThenExit SubEnd IfNext iList2.AddItem List1.TextEnd SubPrivate Sub List2_DblCl

36、ick()List2.RemoveItem List2.ListIndexEnd Sub第8章习题参考答案、判断题题号123456答案XVXVXX、选择题题号1234567答案CBABCAA三、程序填空1. Open “ cstud1.txt For Output As #1UCase(Text1)= END'Pri nt #1,Text12.For In putFor Output As #2Not Eof(1)Line In put #1,str1Close #1,#2KILL "c:old.dat"3.For Appe nd As #1For In put A

37、s #2四、程序设计1.Private Sub Form_Click()Dim strIn As Stri ng * 1, Cou nt As In teger '翻开文件进行统计Ope n "D:data.txt" For In put As #1Cou nt = 0 '计数器清零Do While Not EOF(1)strIn = Input(1, #1)' 一次读出一个字符 If strIn = "$" Then Count = Count + 1LoopClose #1'将结果写入到文本文件C: Mydirres.

38、txt中Ope n "D:Mydirres.txt" For Output As #1 Print #1, Cou ntClose #1End Sub2.Private Sub Form_Click()Dim k%, n%Dim num() As Single, sum As Single, ave As Single '翻开文件进行统计Open "D:abc.txt" For Input As #1Do While Not EOF(1)n = n + 1ReDim Preserve num(n) Input #1, num(n) sum = s

39、um + num(n)Loopave = sum / nFor k = 1 To nIf num(k) > ave Then Print num(k);Next kClose #1End Sub3Private Sub Form_Click()Dim strIn As String * 1, k%, n%Dim Nm(1 To 26) As Integer'翻开文件进行统计Open "D:Lcs.txt" For Input As #1Open "D:Res.dat" For Output As #2Do While Not EOF(1)s

40、trIn = Input(1, #1)'一次读出一个字符strIn = UCase(strIn) ' 转换为大写字母 If strIn >= "A" And strIn <= "Z" Then n = Asc(strIn) - Asc("A") + 1 Nm(n) = Nm(n) + 1End IfLoopClose #1Print " 文件中各字符出现的次数是: "For k = 1 To 26" & Nm(k)Print#2,"字符"& Chr(64 + k) & 的个数是:Next kClose #2End Sub4.Private Sub Form_Click()Dim strIn As Byte, k%, n%'翻开文件进行统计Ope n "D:A.txt" For Bi nary As #1Open "D:a1.txt" For Binary As #2Open "D:a2.txt" For Binary As #3 n = LOF(1)For k = 1 To n / 2Get #1, , strInPut

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论