罗朝盛主编VISUAL-BASIC60程序设计教程(人民邮电出版社第三版)课后习题答案
- 格式:docx
- 大小:35.03 KB
- 文档页数:17
VisualBasic程序设计教程第三版课后习题答案-图文第一章ViualBaic程序设计概述一、填空题1、ViualBaic是一种面向__________的可视化程序设计语言,采取了__________的编程机制。
2、在VB中工程文件的扩展名是____________,窗体文件的扩展名是____________,标准模块文件的扩展名是____________。
3、执行“工程”菜单下的__________命令,可选择并添加Active某控件。
4、ViualBaic6.0用于开发__________环境下的应用程序。
二、选择题1、下面不是VB工作模式的是()A.设计模式B.运行模式C.汇编模式D.中断模式2、可视化编程的最大优点是()A.具有标准工具箱B.一个工程文件由若干个窗体文件组成C.不需要编写大量代码来描述图形对象D.所见即所得3、下列不能打开属性窗口的操作是()A.执行“视图”菜单中的“属性窗口”命令B.按F4键C.按Ctrl+TD.单击工具栏上的“属性窗口”按钮4、下列可以打开立即窗口的操作是()A.Ctrl+DB.Ctrl+EC.Ctrl+FD.Ctrl+G5、ViualBaic的编程机制是()A.可视化B.面向对象C.面向图形D.事件驱动三、简答题1、代码窗口主要包括哪几部分?2、在工程资源管理器窗口中,主要列出了哪三类文件?3、窗体布局窗口的主要用途是什么?4、VB的基本特点是什么?5、怎样理解可视化设计?6、怎要理解事件驱动编程?第二章简单的VB程序设计一、填空题1、设置是否可以用Tab键来选取命令按钮,应该用______________属性。
2、一个控件在窗体的位置由_______和________属性决定,其大小由__________和_________属性决定。
3、利用对象的属性etfocu可获得焦点,对于一个对象,只有其viible属性和____________属性为true,才能接受焦点。
《visual basic 6.0程序设计》教学大纲《Visual Basic 6.0程序设计》课程教学大纲适用:非计算机专业学分:3 学时:54〔上课〕+18〔实验〕一、课程的性质和任务《Visual Basic 6.0程序设计》是一门具有较强实践性的计算机程序设计语言入门根底课,是进一步学习其他计算机技术根底课和专业课的必备根底。
本课程的任务是使校非计算机专业学生掌握计算机技术应用根本能力,包括 1. 熟悉Visual Basic 6.0集成开发环境;2. 了解类、对象的概念和事件驱动程序的根本特性;3. 掌握Visual Basic 6.0控件及其常用的属性、事件和方法;4. 掌握根本数据类型、常量、变量、常用函数、表达式运算;5. 掌握Visual Basic6.0的根本语句、三种结构、数组、子程序的调用和常用算法; 6. 掌握文件的翻开、关闭、读、写,文件系统控件及其对象模型FSO;7. 能够编写和调试Visual Basic 6.0一般应用程序;8. 具有综合运用Visual Basic 6.0的知识分析问题和解决问题的初步能力。
二、课程的教学内容1.Visual Basic 6.0程序开发环境〔1学时〕〔1〕Visual Basic 6.0的功能和特点;〔2〕主窗口、属性窗口、工具箱窗口和代码窗口;〔3〕工程管理器;〔4〕环境设置。
2.对象及其操作〔2学时〕〔1〕类、对象及其对象的属性、事件和方法的概念;〔2〕建立用户界面对象;〔3〕标准控件的画法和根本操作;〔4〕对象属性的设置;〔5〕对象的事件、事件过程和事件驱动。
3.数据类型及其运算〔4学时〕〔1〕常用数据类型:数值型、字符型、日期型、逻辑型、对象型、可变型;〔2〕存储类型:常量、变量声明,运算符及表达式运算;〔3〕常用内部函数:数学函数Abs(x)、Sqr(x)、Exp(x)、Int(x)、Fix(x)、Round(x)、Sgn(x)、Rnd(x); 字符串函数Len、Left、Right、Mid、Instr、 String、Ltrim、Rtrim、Trim; 日期/时间函数Date、Time、Year、Weekday、Hour; 类型转换函数Val、Str、Asc、Chr; 格式输出函数Format。
VB 课后习题答案二、选择题1. C2. B第2章 习题参考答案一、判断题二、填空题1. 窗体font2. 不能在代码中设置 3.selstart 4.Locked5. TabIndex 、0 6.vbModal 或 17. Activate 、 Deactivate8. PictureBox 和Frame -三、选择题第3章 习题参考答案一、思考题1、double2、 xyC@abc , 15eyd , Is , #ENDX8[P]3、变量有 (1) (4) (6) (8),常量有 (2)字符串型 (3)逻辑型 (5)字符串型 (7)字符串型 (9)日期型 (10)实型 4、 fd cb a++5、 (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 布尔表达式表示:(1) z>x and z>y(2) abs(a)<=abs(b+2) or a>b+2(3) p mod q=0 (4) x<-5 or x>-2 and x<2 or x>5(5) x<z and y>z or x>z and y<z (6) a<b and a mod 2=08、写出下列函数的值:(1) -4 (2) 换行符(3) –3 (4) -1 (5) hello(6) ello (7) 16 (8) “-459.65”(9) 5二、填空题1.整型、长整型、双精度型、双精度型2.(X mod 10)*10+X\103.sin(1/4*3.14)+sqr(x+2*exp(y))/abs(x-y)4.(a+b)/(c*d-sqr(1-a^2))5.x mod 5=0 or x mod 9=06.False7.-3 、 2 、-2 、 28.CDEF9.x>0 and y>0 or x<0 and y<0 或x*y>010.s>=”A” and s<=”Z” or s>=”a” and s<=”z”三、选择题四、编程题1、Private Sub Form_Click()Dim x%, Ten%, hundred%x = Val(Text1.Text)Ten = (x \ 10) Mod 10hundred = x \ 100Print "百位数是: " & hundredPrint "十位数是: " & TenEnd Sub2Private Sub Form_Click()Dim char As String * 1Form1.CurrentX = Rnd * Form1.ScaleWidthForm1.CurrentY = Rnd * Form1.ScaleHeightchar = Chr(Int(Rnd * 16) + 65)Print charEnd Sub第4章习题参考答案一、判断题二、选择题三、程序阅读写出下列各段程序执行后的输出结果。
1.785786357864135786422.w=4、w=13、w=135、w=313.此题有点错误,修改如下:是将语句“If k < Asc("A") Then k = k + 26”改为:If k < Asc("A") Or k > Asc("Z") And k < Asc("a") Then k = k + 26 改后的答案:xyza12 uvw&4.ABBBCCCCCDDDDDDDEEEEEEEEE5.此题的“IF KeyAsci=13 Then”改为“IF KeyAsci i=13 Then”答案是:129四、程序填空题1. (1) Sing=-1(2) For i=2 to 19(3) Sing=-Sing2.(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=04.(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五、编程题1.Private Sub Form_Click()Dim R1 As Double, R2 As Double '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 & vbCrLf & "串联电阻是:" & Rs End Sub2.Private Sub Form_Click()Dim N As LongN = Val(InputBox("请输入年份", "提示框"))If (N Mod 400 = 0) Or (N Mod 4 = 0 And N Mod 100 <> 0) Then '判断条件Print N & "年是闰年"ElsePrint N & "年不是闰年"End IfEnd Sub3.Private Sub Form_Click()Dim 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 "S="; sElsePrint "数据有错,不能构成三角形"End IfEnd Sub4.(此题不适合使用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 Thenfx = 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 10t = t * is = s + tNext iPrint " S=" & s6.Dim i%, s!, n!, t!, f%i = 1 '项数s = 0 '累加和n = 1 '阶乘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 999Hundred = i \ 100 '求百位数Ten = (i \ 10) - Hundred * 10 '求十位数One = i Mod 10 '求个位数If i = Hundred ^ 3 + Ten ^ 3 + One ^ 3 Then '判断是否为素数Print i & "是水仙花数"End IfNext iEnd Sub'方法二Private Sub Form_Click()Dim i As IntegerDim Hundred As Integer, Ten As Integer, One As Integer '定义百位,十位,个位数For Hundred = 1 To 9 '百位数For Ten = 0 To 9 '十位数For One = 0 To 9i = Hundred * 100 + Ten * 10 + OneIf i = Hundred ^ 3 + Ten ^ 3 + One ^ 3 Then '判断是否为素数Print i & "是水仙花数"End IfNext OneNext TenNext HundredEnd Sub8.Dim a As Double, x0 As Double, x1 As Doublea = Val(InputBox(“输入a=?”)x0 = a ' 初值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章习题参考答案一、判断题二、选择题三、程序填空1. Preserve a(n+1)a(i+1)=a(i)a(i+1)=m n+1或Ubound(a)2. PrintK-1t = a(k, j): a(k, j) = a(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 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 & "位后的数组值"For i = 0 To N - 1Print A(i);Next iPrintEnd Sub2.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 & ") 的值"))If Int(a(i)) = a(i) Then '判断是否为整数k = k + 1 '整数个数加1b(k) = a(i) '将这个整数存放到数组BEnd IfNext i'选择排择For i = 1 To k - 1max = iFor j = i + 1 To kIf b(max) < b(j) Then max = jNext jIf max <> i Thent = b(max): b(max) = b(i): b(i) = tEnd IfNext i'打印输出For i = 1 To kPrint b(i);If i Mod 5 = 0 Then PrintNext iEnd Sub3.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) - 10Print a(i);If i Mod 10 = 0 Then PrintNext iPrint'删除数组的相同数据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)Elsej = j + 1End IfLoopPrint "删除后的数据:"For i = 1 To nPrint a(i);If i Mod 10 = 0 Then PrintNext iEnd Sub4.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 '产生10~100之间的随机整数 For i = 1 To nIf x = a(i) Then Exit ForNext iIf i > n Thenn = n + 1a(n) = xEnd IfLoopFor i = 1 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 iEnd Sub第6章习题参考答案一、判断题二、选择题三、程序填空题1.(1)nsp=true(2) m mod i=0(3) p1 and p2(4)p1=nsp(i)2.(1)number(i,7)(2) (int n, int m)(3) number=number*10+m四、程序阅读1. a=9 b=42.(1) 362516941(2)1499413.64. 1 4 6五、编写程序1.Public Function fact(x As Integer) As Single '求x!Dim f As Single, i As Integerf = 1For i = 1 To xf = f * i '累积Next ifact = fEnd FunctionPrivate Sub Form_Click()Dim n%, m%, y!Dom% = Val(InputBox("m="))n% = Val(InputBox("n="))Loop Until m >= n And n >= 0y = fact(m) / (fact(n) * fact(m - n))Print yEnd Sub2private sub Insertfun(a%(), y%)Dim i as integer,n as integern=ubound(a)Redim preserve a(n+1)For i=ubound(a)-1 to 0 step -1If y <a(i) thena(i+1)=a(i)If i=0 then a(i)=yElsea(i+1)=yexit forend ifnext i3. '判断是否为回文函数Private Function Judge(str As String) As BooleanDim i As IntegerJudge = True '假设为回文For i = 1 To Len(str) \ 2 '依次判断对应位置的两个字符,只要有一组不等即不是回文If Mid(str, i, 1) <> Mid(str, Len(str) + 1 - i, 1) ThenJudge = FalseExit FunctionEnd IfNext iEnd Function4.Private Sub Form_Click()Dim n%,x!n = Val(InputBox("n="))x = Val(InputBox("x="))Print fe(n, x) '调用求值函数过程End Sub'求值函数过程Public Function fe(n%, x!) As SingleDim i As Integer, t As Singlefe = 1: t = 1For i = 1 To nt = t * x / i 't为通项fe = fe + tNext iEnd Function5.。