《VB作业第三章习题答案.doc》由会员分享,可在线阅读,更多相关《VB作业第三章习题答案.doc(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、本文由goodlak贡献 亲亲资料网第3章程序流程控制31 填空题 1设变量r 表示圆的半径,则计算圆的面积并赋给变量s使用的赋值语句为 ( s=3.14159*r*r ) 。 2 给 命 令 按 钮 Command2 的 Caption 属 性 赋 予 字 符 串 “ 退 出 ” 使 用 的 赋 值 语 句 为 ( Command2.Caption=退出 ) 。 3为了求n的阶乘,要求用户输入n的值。程序使用InputBox函数输入,要求对话框提 示信息为“请输入一个求阶乘的数:”,标题为“求数的阶乘”,并且正确地把输入的信息转换 为数值存放到变量n中,则使用的赋值语句为( n=val(In
2、putBox(请输入一个求阶乘的 数:,求数的阶乘) ) 。 如果使用MsgBox对话框显示提示信息“退出本系统?”, 并显示“是 (Yes) ”和“否 (No) ” 两个按钮, 显示图标“?”号, 指定第一个按钮为默认值以及标题为“提示信息”, 则调用MsgBox 函数的形式为( MsgBox(退出本系统? ,4+32+0,提示信息) ) 。 如果使用MsgBox对话框显示提示信息“文件未找到!”,并显示“确定”按钮、图标“!” 号和标题“文件查找”,则使用的MsgBox语句为( MsgBox文件未找到,0+48+0,文件 查找 ) 。 要在当前窗体Form和立即窗口输出字符串“Visual
3、 BASIC 6.0”使用的Print方法分 别是( Print “Visual BASIC 6.0” )和( Debug.Print “Visual BASIC 6.0” )。 使用Print方法时,若用逗号分隔, 则按( 标准 )格式输出各表达式的值,若用分 号分隔,则按( 紧凑 )格式输出各表达式的值。 注释语句是一个( 非执行 )语句,VB不对它们进行编译,对程序的执行结果没 有任何影响。 判别变量i是否为偶数, 若为偶数就把它显示出来。 使用单行结构条件语句为 ( If i Mod 2=0 Then print x ) 。 10判别变量x是否大于0,若大于0,则累加到变量s1中,否则
4、,累加到变量s2中,使 用的单行结构条件语句为( If x0 Then s1=s1+x Else s2=s2+x ) 。2x + 1 x 0 y = 0 x = 0 2x 1 x 0 Then y=2*x+1 Else If x=0 Then y=0 Else y=2*x-1 ) 。 12判别a是否等于b,若a=b,则输出字符串 “a is equal to b”的块结构条件语句为 ( ) 。 答案:If a=b Then Print “a is equal to b” End(13判别ch是否为小写字母,若是,输出“yes”;否则,输出“No”的块结构条件语句为 ( ) 。 答案:If As
5、c(ch)=97 And Asc(ch)=122 Then Print “Yes” ElsePrint “No” End If14若一个case子句中的表达式表由逗号分隔的若干个常数组成,则它的含义是:当测 试表达式的值等于( 这些常数中的某一个 )时,执行该case子句相应的程序块。 15若case子句中的表达式表列具有形式: To ,则它的含义是: 当测试表达式的值等于( 这个范围内的值 )时,执行该case子句相应的程序块。 16 若case子句中的表达式表列具有形式: , Is 则它的含义是: 当测试表达式的值满足( Is后的关系 )时,执行该case子句相应的程序块。 17 在循环语
6、句中, 反复执行的程序段称为 ( 循环体 ) 进入循环体的条件称为 ; ( 循 环条件 ) ;中止循环体执行的条件称为( 结束循环条件 ) 。 32 选择题 下列赋值语句中,( d )是正确的。)x!abc a) t=b : b=a : a=t c) t=a : a=b : b=t b)a10e c)x d)s1002下列选项中,( d )不能交换变量a和b的值。b) a=a+b : b=a-b : a=a-b d) a=b : b=a3若在消息框MsgBox中显示“确定(Ok)”和“取消(Cancel)”两个按钮,则buttons参数的 设置值是( b )。a) 0 a)0 a)1 a) c
7、) b) 1 b)256 b)2 c)3 b) d) c) 2 c)512 d)4 If x Then t = t * x If xy Then Print “xy” If x Mod 3=2 Then ? x7给定程序段Dim a As Integer, b As Integer, c As Integer a=1:b=2:c=3 If a=c-b Then Print # Else Print * b) 有语法错 d) 输出* Then max=a Then max=b max=a Else max=b End If以上程序( c ) 。a) 没有输出 c) 输出# a) b) If If
8、 ab ab8把a, b之中的最大值存放于max,下面语句书写正确的是( d ) 。Else End If c) If ab max=a Else max=b d) If abThenThenmax=a Else max=b End If9. 下列Case语句中正确的是( c ) 。a) Select Case x Case 1 Or 3 Or 5 y=x*x-1 Case Is 10 y=x+1 End Select b) Select Case x Case 1, 3, 5 y=2*x-1 Case Is x =1 Y=2*x+1 End Select c) Select Case x C
9、ase Is 0 y=Sqr(x)+1 End Select d) Select Case x Case x=1 And x10 y=x*x+1 End Select10执行下列程序段后屏幕上(c ) 。i% = 10 : Sum = 0 While i 1 Sum = Sum + i i = i - 1 Wend Print Suma) 无显示 b) 显示10 c) 显示54 d) 显示5511执行下列程序段输出结果是( c ) 。 x%=2 Do while x8 Print “*”; x=x+2 Loopa) * b) * c) * d) *12设有程序段Dim k% k=5 Do un
10、til k=0 k=k-1 Loop 则下面对循环语句描述正确的是( c ) 。 a) 循环体1次也不执行 b) 循环体执行1次 c) 循环体执行5次 d) 循环体执行无限次 13下面描述中错误的是( a, c ) 。 a) 执行Do until loop语句中,当循环为false时,结束循环体的执 行。 b) 执行While Wend语句时,循环体可能一次也不执行。 c) Do loop While 语句的循环体可能一次也不执行。 d) 执行Do loop Until 语句中, 当循环条件为true时, 结束循环体的执行。 14下面程序段中循环语句的循环次数是( b ) 。 For x=10
11、 To 1 Step -3 Print x Next xa) 0 b) 4 b) 4 c) 5 c) 5 d) 1015执行语句Fora) 3i=1 to 3: i=i+1 :Next i后变量i的值是( cd) 6) 。16下面程序段执行后输出结果是( b ) 。 For i=1 To 2 s=1 For j=0 To i-1 s=s+s*j Next j Print s, Next ia) 1 1 b) 1 2 c) 2 1 d) 2 233 阅读下列程序,写出执行结果1. Private Sub Form_Click Print 2*3/2 , “Visual ” & “BASIC”,
12、Not 53, 0.75 Print 2*3/2 ; “Visual ” & “BASIC”; x=12.34 Print “x=”; Print x End Sub Not 53; 0.75答案:-3 -3 x=12.34Visual BASIC Visual BASICFalse .75False.752Private Sub Form_Click Print Tab(10); -100;Tab(20); 200;Tab(30); -300 Print Spc(10); -100;Spc(10); 200;Spc(10); -300End Sub答案:-100-100 3 x=12.352
13、00 200-300 -300Private Sub Form_Click Print Format ( x,”#.#” ) Print Format ( x,”#.#” ) Print Format ( x,”000.00” ) Print Format ( x,”00.0”) Print Format ( x,”0.00%” ) Print Format ( x,”$#.#” ) Print Format ( x,”+#.#” ) Print Format ( x,”00.00E+00” ) End Sub答案:12351235 01235 124 123500% $12.35 +12.3
14、5 12.35e+00 4 Private Sub Command1_Click() Dim a%, b%, c%, s%, w%, t% a = -1: b = 3: c = 3 s = 0: w = 0: t = 0 If c 0 Then s = a + b If a = 0 Then If c 0 Then w = a - b Else t = c End If c = a + b Print a, b, c Print s, w, t End Sub答案:5-1 23 02 0Private Sub Command1_Click() Dim x%, y% x = InputBox(请
15、输入x的值:) Select Case xCase 1, 3, 5 y = x - 1 Case 6 To 10 y = x + 1 Case 2, 4 y = 2 * x Case Is 10 y = x * x + 1 End Select Print x=; x, y=; y End Sub (x 的输入值为2.5、8、4和15)答案:x=2 x=8 x=4 x=15y=4 y=9 y=8 y=2266Private Sub Command1_Click() Dim i%, t! t = 1: i = 1 While i 8 If i Mod 2 = 1 Then x = x * i E
16、lse y = y * i End If i = i + 1 Loop Print x=; x, y=; y End Sub答案:x=105Dim p%, s% p = 1: s = 1 Doy=3848 Private Sub Command1_Click()p=p+2:s=s+p Loop While p10 Print s=; s End Sub答案:s=369 Private Sub Command1_Click() Dim m%, n% For m=1 to 3 n=0 While n= 85 Then Text2.Text = Very good! ElseIf score = 6
17、0 Then Text2.Text = Good! Else Text2.Text = No good! End If End Sub Private Sub Command2_Click() End End Sub(3) 运行情况 运行程序后,屏幕出现用户界面。把鼠标移到Text1文本框并单击,输入分数。然后, 单击“开始”命令按钮,系统执行Command1_Click事件过程。执行结果如图3.3.1所示。单击 标题为“结束”的命令按钮,执行Command2_Click事件过程,结束程序的执行。图3.3.12第1题的执行结果2. 求一元二次方程ax +bx+c=0的根。 解答: (1) 界面
18、设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表3-3-2所示。表3-3-2控件名称 Form1 Command1 Command2第2题的属性设置属性值 求一元二次方程的根 开始 结束属性名 Caption Caption Caption(2) 程序代码由中学数学知识知道,求一元二次方程的根的公式为: 编程时要考虑如下各种情况: 当a=0 时,方程不是二次方程;x1, 2 = b b 2 4ac 2a , 当 b -4ac=0 时,有两个相同的实根:2x 1, 2 = b 2a ;b 2 4 ac 2a ; 当 b -4ac0 时,有两个不同的实根:2x 1, 2
19、=b 当 b -4ac0 时,有两个共轭复根:Private Sub Command1_Click() Cls2x 1, 2 = b 2a4 ac b 2 i 2a 。Dim a!, b!, c!, disc!, x1!, x2!, realpart!, imagpart! a = InputBox(请输入方程的系数a:) b = InputBox(请输入方程的系数b:) c = InputBox(请输入方程的系数c:) Print: Print Print Tab(10); 输入方程的系数为:; a=; a; b=; b; c=; c Print If Abs(a) = 0. Then Pr
20、int Tab(15); 方程不是一个二次方程! Else disc = b 2 - 4 * a * c If Abs(disc) 0. Then x1 = (-b + Sqr(disc) / (2 * a) x2 = (-b - Sqr(disc) / (2 * a) Print Tab(5); 方程有两个实根: Print Tab(18); x1=; x1 Print Tab(18); x2=; x2 ElseIf disc 0. Then realpart = -b / (2 * a): imagpart = Sqr(-disc) / (2 * a) Print Tab(5); 方程有两
21、个虚根:; Print Tab(18); x1=; realpart; +; imagpart; i Print Tab(18); x2=; realpart; -; imagpart; i End If End If End Sub Private Sub Command2_Click() End End Sub注意, 程序中的条件“fabs(a)=0.”和“fabs(disc)=0.”分别用来判断a和 disc的值是否为0。因为实数在计算机计算和存储时会有微小的误差,若用“a=0”和“disc=0” 来判断a和disc是否为0,则会由于误差导致条件不成立,无法得到正确的运行结果。 (3)运
22、行情况运行程序后, 单击“开始”命令按钮, 执行Command1_Click事件过程。 执行时, 在InputBox 框中输入 a、b和c三个系数。图3.3.2图3.3.5显示了不同系数输入的执行结果。图3.3.2执行结果(a)图3.3.3执行结果(b)图3.3.4执行结果(c)图3.3.5执行结果(d) 3x 5 2 cos x + 1 1+ x2 2 3. 给定函数y = x 4 x + 51 = x 2 2 = x 4 4 = x = 1 And x = 5 Then Select Case x Case Is 2y = 3 * x - 5 Case Is 4 y = 2 * Cos(x
23、) + 1 Case Is = 0 Then f = UCase(InputBox(输入运算标志: + Chr(13) & _ C_(计算周长) + Chr(13) & _ A_(计算面积) + Chr(13) & _B_(两者都计算) Select Case f Case C提示信息分多行显示Print Tab(10); 半径r=; r; 圆周长=; r * 2 * pi Case A Print Tab(10); 半径r=; r; 圆面积=; r 2 * pi Case B Print Tab(10); 半径r=; r; 圆周长=; r * 2 * pi Print Tab(10); 半径
24、r=; r; 圆面积=; r 2 * pi Case Else Print Tab(18); 输入的运算标志错! End Select Else Print Tab(18); 半径不能是负数! End If End Sub Private Sub Command2_Click() End End Sub(3)运行情况 运行程序后, 单击标题为“开始”的命令按钮, 执行Command1_Click事件过程。 按InputBox 对话框的提示输入半径r和运算标志。计算结果在窗体上显示。 2 2 2 5. 求满足1 +2 +n 1000的最小n值。(要求使用WhileWEnd语句) 解答: (1)界
25、面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表3-3-5所示。表3-3-5控件名称 Form1第5题的属性设置属性值 求满足12+22+n21000 的最小n值属性名 CaptionCommand1 Command2Caption Caption开始 结束(2)程序代码Private Sub Command1_Click() Dim n%, s& n = 0: s = 0 While s 1000的最小n值为:; nEnd Sub Private Sub Command2_Click() End End Sub6输入若干个正实数,个数预先不能确定,求这些正实数之和
26、。(要求分别使用Do WhileLoop语句和Do Until Loop语句) 解答: (1)界面设计和属性设置 在窗体上建立三个命令按钮。窗体和命令按钮的主要属性设置如表3-3-6所示。表3-3-6控件名称 Form1 Command1 Command2 Command3第6题的属性设置属性值 求正实数之和 Do WhileLoop Do UntilLoop 结束属性名 Caption Caption Caption Caption(2)程序代码Private Sub Command1_Click() Cls Dim a!, s! a = InputBox(输入一个实数:) Do While
27、 a = 0 s = s + a a = InputBox(输入一个实数:) Loop Print: Print Print Tab(15); 输入的正实数之和为:; s End Sub Private Sub Command2_Click() Cls Dim a!, s! a = InputBox(输入一个实数:) Do Until a = 0. Print: Print: Print Print Tab(8); 圆周率的近似值为:; Sqr(6 * s) End Sub Private Sub Command2_Click() End End Sub(3)运行情况 运行程序后,单击标题为“
28、开始”的命令按钮,执行Command1_Click事件过程。计算结果 在窗体上显示。8. 由数值计算方法可知,用牛顿迭代法解方程f(x)=0的迭代公式为:x n +1 = x n f ( x n ) / f ( x n )5 2( n = 0, 1, 2, )试用牛顿迭代法求解方程x 3x 2x1=0 在x0=0附近的根。(要求使用DoLoop Until语 句) 解答: (1)界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表3-3-8所示。表3-3-8控件名称 Form1 Command1 Command2第8题的属性设置属性值 用牛顿法求方程的根 开始 结束属
29、性名 Caption Caption Caption(2)程序代码 根据迭代公式,牛顿迭代法的计算过程为: 令n=0 ,由迭代公式得x1 = x0 f ( x0 ) / f ( x0 ),然后判别x1x0是否小于(给定精度)。若是,则迭代结束,x1作为方程的近似根;否则,进行下一步。 令n=1 , 由迭代公式得 x 2 = x1 f ( x1 ) / f ( x1 ),然后判别 x2x1是否小。若是,则迭代结束,x2 作为方程的近似根;否则,由x2求x3的值,判断x3x2。 按这样迭代下去,一直到xi1xi (i=0,1,2,)为止。 根据上述计算过程可以编写程序为:Private Sub C
30、ommand1_Click() Dim x0!, x1! x1 = 0 Do x0 = x1 x1 = x0 - (x0 5 - 3 * x0 2 + 2 * x0 + 1) / (5 * x0 4 - 6 * x0 + 2) Loop Until Abs(x1 - x0) 0.00001 Print Tab(10); 方程的根为:; x1 End Sub Private Sub Command2_Click() End End Sub(3)运行情况 运行程序后,单击标题为“开始”的命令按钮,执行Command1_Click事件过程。在窗体上 显示计算结果。 9求S = 解答:1 1 2 +
31、1 3 1 4 + + 1 99 1 100的值。(1)界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表3-3-9所示。表3-3-9控件名称 Form1 Command1 Command2 属性名 Caption Caption Caption第9题的属性设置属性值 求s=1-1/2+1/3-1/4+1/99-1/100的值 开始 结束(2)程序代码Private Sub Command1_Click() Dim i%, s!, sign% sign = 1: s = 0 For i = 1 To 100 s = s + sign * 1 / i sign = -
32、sign Next i Print: Print: Print Print Tab(18); s的值为:; s End Sub Private Sub Command2_Click() End End Sub(3)运行情况 运行程序后,单击标题为“开始”的命令按钮,执行Command1_Click事件过程。窗体显示 计算结果。 10求100到999中的水仙花数。所谓水仙花数是指一个三位数,它的各位数字的立方之 3 3 3 和等于该数。例如,因为153 = 1 + 5 + 3 ,所以153是水仙花数。 解答: (1)界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表3
33、-3-10所示。表3-3-10控件名称 Form1 Command1 Command2第10题的属性设置属性值 求水仙花数 开始 结束属性名 Caption Caption Caption(2)程序代码Private Sub Command1_Click() Dim i%, a%, b%, c% Print Print Tab(5); 100-999之间的水仙花数为: For i = 100 To 999a = i 100 b = (i - a * 100) 10 c = i - a * 100 - b * 10 If i = a 3 + b 3 + c 3 Then Print Tab(10
34、); i End If Next i End Sub Private Sub Command2_Click() End End Sub(3)运行情况 执行结果如图3.3.7所示。图3.3.7第10题的执行结果11. 求1000之内的所有完数。所谓完数是指一个数恰好等于它的所有因子之和。例如, 因为6=1+2+3,所以6为完数。 解答: (1)界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表3-3-11所示。表3-3-11控件名称 Form1 Command1 Command2第11题的属性设置属性值 求完数 开始 结束属性名 Caption Caption Cap
35、tion(2)程序代码Private Sub Command1_Click() Dim i%, j%, s% Print Print Tab(5); 1-1000之内的完数为: For i = 1 To 1000 s = 0 For j = 1 To i - 1 If i Mod j = 0 Then s = s + j Next jIf i = s Then Print Tab(5); i Next i End Sub Private Sub Command2_Click() End End Sub(3) 运行情况 程序执行结果如图3.3.8所示。图3.3.8第11题的执行结果12. 在窗体
36、上输出形如以下图形, 其中第一行的起始字母和终止字母由用户从键盘上输 入。 A B C D E B C D E A C D E A B D E A B C E A B C D 解答: (1)界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表3-3-12所示。表3-3-12控件名称 Form1 Command1 Command2第12题的属性设置属性值 输出由字母构成的图形 开始 结束属性名 Caption Caption Caption(2)程序代码Private Sub Command1_Click() Cls Dim starg As String * 1, e
37、ndg As String * 1, stargc%, endgc%, i%, j%, k% starg = UCase(InputBox(请输入起始字母:) endg = UCase(InputBox(请输入终止字母:) stargc = Asc(starg)endgc = Asc(endg)Print If stargc = endgc Then For i = 0 To endgc - stargcPrint Tab(24); For j = stargc + i To endgc Print Chr(j); Next j For k = stargc To stargc + i - 1 Print Chr(k); Next k Print Next i Else Print Tab(15); 起始字母必须先于终止字母! End If End Sub Private Sub Command2_Click() End End Sub(3)运行情况 运行程序后,需在InputBox对话框输入起始字母和终止字母。执行结果在窗体上显示。 13 已知XYZ + YZZ = 532,其中X,Y和Z为09的数字,编程求出X、Y和Z,并在窗体 上把算式显示出来。 解答: (1)界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表3-3-13所示。表3-3-13
限制150内