《VB课本习题答案第三章.pdf》由会员分享,可在线阅读,更多相关《VB课本习题答案第三章.pdf(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章 程序流程控制 31 填空题 1设变量r 表示圆的半径,则计算圆的面积并赋给变量s使用的赋值语句为(s=3.14159*rr ).2 给命令按钮Command2的Caption属性赋予字符串“退出使用的赋值语句为(Command2。Caption=退出 ).3为了求n的阶乘,要求用户输入n的值。程序使用InputBox函数输入,要求对话框提示信息为“请输入一个求阶乘的数:”,标题为“求数的阶乘”,并且正确地把输入的信息转换为数值存放到变量n中,则使用的赋值语句为(n=val(InputBox(请输入一个求阶乘的数:,求数的阶乘)。如果使用MsgBox对话框显示提示信息“退出本系统?,并显
2、示“是(Yes)”和“否(No)”两个按钮,显示图标“?”号,指定第一个按钮为默认值以及标题为“提示信息”,则调用MsgBox函数的形式为(MsgBox(退出本系统?,4+32+0,提示信息)。如果使用MsgBox对话框显示提示信息“文件未找到!”,并显示“确定”按钮、图标“!”号和标题“文件查找”,则使用的MsgBox语句为(MsgBox文件未找到,0+48+0,文件查找 ).要在当前窗体Form和立即窗口输出字符串“Visual BASIC 6。0”使用的Print方法分别是(Print“Visual BASIC 6。0 )和(Debug。Print“Visual BASIC 6。0”)。
3、使用Print方法时,若用逗号分隔,则按(标准)格式输出各表达式的值,若用分号分隔,则按(紧凑)格式输出各表达式的值。注释语句是一个(非执行 )语句,VB不对它们进行编译,对程序的执行结果没有任何影响。判别变量i是否为偶数,若为偶数就把它显示出来。使用单行结构条件语句为(If i Mod 2=0 Then print x )。10判别变量x是否大于0,若大于0,则累加到变量s1中,否则,累加到变量s2中,使用的单行结构条件语句为(If x0 Then s1=s1+x Else s2=s2+x )。11给定分段函数00012012xxxxxy,求y的值,使用的单行结构条件语句为(If x0 Th
4、en y=2x+1 Else If x=0 Then y=0 Else y=2x-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 Asc(ch)=97 And Asc(ch)y”b)If x Then t=t x c)If x Mod 3=2 Then?x d)If xb Then max=a Else max=b End If b)If ab Th
5、en max=a Else max=b End If c)If ab Then max=a Else max=b d)If ab Then max=a Else max=b End If 9.下列Case语句中正确的是(c)。a)Select Case x Case 1 Or 3 Or 5 y=x*x1 Case Is 10 y=x+1 End Select b)Select Case x Case 1,3,5 y=2x1 Case Is x=1 Y=2*x+1 End Select c)Select Case x Case Is 0 y=Sqr(x)+1 End Select d)Selec
6、t Case x Case x=1 And x=5 y=x-1 Case Is 10 y=x*x+1 End Select10执行下列程序段后屏幕上(c ).i=10:Sum=0 While i 1 Sum=Sum+i i=i 1 Wend Print Sum a)无显示 b)显示10 c)显示54 d)显示55 11执行下列程序段输出结果是(c ).x%=2 Do while x8 Print“*”;x=x+2 Loop a)b)*c)*d)*12设有程序段 Dim k k=5 Do until k=0 k=k1 Loop 则下面对循环语句描述正确的是(c)。a)循环体1次也不执行 b)循环
7、体执行1次 c)循环体执行5次 d)循环体执行无限次 13下面描述中错误的是(a,c)。a)执行Do until 条件loop语句中,当循环条件为false时,结束循环体的执行。b)执行While 条件Wend语句时,循环体可能一次也不执行.c)Do loop While 条件语句的循环体可能一次也不执行。d)执行Do loop Until 3;0。75 x=12。34 Print“x=”;Print x End Sub 答案:-3 Visual BASIC False 。75 3 Visual BASICFalse 。75 x=12。34 2 Private Sub Form_Click P
8、rint Tab(10);-100;Tab(20);200;Tab(30);300 Print Spc(10);-100;Spc(10);200;Spc(10);-300 End Sub 答案:-100 200 -300 100 200 -300 3 Private Sub Form_Click x=12。35 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,”+#
9、。#”)Print Format(x,00。00E+00)End Sub 答案:1235 1235 01235 124 123500 12。35 +12.35 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 10 y=x*x+1 End Select Print x=;x,”y=”;y End Sub (x 的输入值为2.5、8、4和15)答案:x=2 y=4 x=8 y=9 x=4 y=8 x=15 y=22
10、6 6 Private Sub Command1_Click()Dim i,t!t=1:i=1 While i 8 If i Mod 2=1 Then x=x*i Else y=y i End If i=i+1 Loop Print”x=;x,”y=;y End Sub 答案:x=105 y=384 8 Private Sub Command1_Click()Dim p%,s p=1:s=1 Do p=p+2:s=s+p Loop While p10 Print”s=”;s End Sub 答案:s=36 9 Private Sub Command1_Click()Dim m,n For m=
11、1 to 3 n=0 While n=85 Then Text2。Text=Very good!ElseIf score=60 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事件过程,结束程序
12、的执行。图3.3.1 第1题的执行结果 2。求一元二次方程ax2+bx+c=0的根。解答:(1)界面设计和属性设置 在窗体上建立两个命令按钮.窗体和命令按钮的主要属性设置如表332所示。表332 第2题的属性设置 控件名称 属性名 属性值 Form1 Caption 求一元二次方程的根 Command1 Caption 开始 Command2 Caption 结束(2)程序代码 由中学数学知识知道,求一元二次方程的根的公式为:aacbbx2422,1,编程时要考虑如下各种情况:当a=0 时,方程不是二次方程;当 b24ac=0 时,有两个相同的实根:abx22,1;当 b2-4ac0 时,有两
13、个不同的实根:aacbbx2422,1;当 b24ac0 时,有两个共轭复根:iabacabx24222,1。Private Sub Command1_Click()Cls 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.000001 Then Print Tab(15);”
14、方程不是一个二次方程!Else disc=b 2 4 a*c If Abs(disc)=0。000001 Then Print Tab(10);方程有两个相同的实根:”;x1=x2=;b/(2*a)ElseIf disc 0.000001 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。000001 Then realpart=-b/(2*a):imagpart=Sqr(disc)/(2
15、a)Print Tab(5);方程有两个虚根:;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.000001”和“fabs(disc)=0.000001”分别用来判断a和disc的值是否为0。因为实数在计算机计算和存储时会有微小的误差,若用“a=0”和“disc=0”来判断a和disc是否为0,则会由于误差导致条
16、件不成立,无法得到正确的运行结果.(3)运行情况 运行程序后,单击“开始命令按钮,执行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)3。给定函数y=其它54541421cos2215322xxxxxxxx ,从键盘上输入x的值,求y的值。(要求使用Case语句)解答:(1)界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表33-3所示。表33-3 第3题的
17、属性设置 控件名称 属性名 属性值 Form1 Caption 求给定分段函数的值 Command1 Caption 开始 Command2 Caption 结束(2)程序代码 Private Sub Command1_Click()Cls Dim x!,y!x=InputBox(请输入x的值:)If x=1 And x=5 Then Select Case x Case Is 2 y=3 x 5 Case Is 4 y=2 Cos(x)+1 Case Is 1000的最小n值。(要求使用WhileWEnd语句)解答:(1)界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性
18、设置如表33-5所示。表33-5 第5题的属性设置 控件名称 属性名 属性值 Form1 Caption 求满足12+22+n21000的最小n值 Command1 Caption 开始 Command2 Caption 结束(2)程序代码 Private Sub Command1_Click()Dim n%,s&n=0:s=0 While s 1000的最小n值为:;n End Sub Private Sub Command2_Click()End End Sub 6输入若干个正实数,个数预先不能确定,求这些正实数之和.(要求分别使用Do WhileLoop语句和Do Until Loop语
19、句)解答:(1)界面设计和属性设置 在窗体上建立三个命令按钮。窗体和命令按钮的主要属性设置如表33-6所示。表3-3-6 第6题的属性设置 控件名称 属性名 属性值 Form1 Caption 求正实数之和 Command1 Caption Do WhileLoop Command2 Caption Do UntilLoop Command3 Caption 结束(2)程序代码 Private Sub Command1_Click()Cls Dim a!,s!a=InputBox(”输入一个实数:”)Do While a=0 s=s+a a=InputBox(”输入一个实数:”)Loop Pr
20、int:Print Print Tab(15);输入的正实数之和为:”;s End Sub Private Sub Command2_Click()Cls Dim a!,s!a=InputBox(”输入一个实数:”)Do Until a 0 s=s+a a=InputBox(”输入一个实数:”)Loop Print:Print:Print Print Tab(15);”输入的正实数之和为:”;s End Sub Private Sub Command3_Click()End End Sub(3)运行情况 运行程序后,屏幕出现用户界面如图3.3.6所示.单击标题为“Do WhileLoop或标题
21、为“Do WhileLoop的命令按钮,系统执行相应的Click事件过程。用户可以输入一系列数据,以输入1作结束。窗体显示运算结果。单击“结束”按钮,结束程序执行.图3。3。6 第6题的执行结果 7 使用公式 22221116 来求的近似值,直到最后一项的值小于10-8为止。(要求使用DoLoop While语句)解答:(1)界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表3-37所示。表3-3-7 第7题的属性设置 控件名称 属性名 属性值 Form1 Caption 求圆周率的近似值 Command1 Caption 开始 Command2 Caption 结
22、束(2)程序代码 Private Sub Command1_Click()Dim i&,s#,term i=1 s=0 Do term=1/(i i)s=s+term i=i+1 Loop While term=0。00000001 Print:Print:Print Print Tab(8);圆周率的近似值为:”;Sqr(6 s)End Sub Private Sub Command2_Click()End End Sub(3)运行情况 运行程序后,单击标题为“开始”的命令按钮,执行Command1_Click事件过程。计算结果在窗体上显示。8。由数值计算方法可知,用牛顿迭代法解方程f(x)
23、=0的迭代公式为:),2,1,0n()x(f/)x(fxxnnn1n 试用牛顿迭代法求解方程x53x2 2x1=0 在x0=0附近的根。(要求使用DoLoop Until语句)解答:(1)界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表3-3-8所示。表338 第8题的属性设置 控件名称 属性名 属性值 Form1 Caption 用牛顿法求方程的根 Command1 Caption 开始 Command2 Caption 结束(2)程序代码 根据迭代公式,牛顿迭代法的计算过程为:令n=0,由迭代公式得)(/)(0001xfxfxx ,然后判别x1x0是否小于(给
24、定精度)。若是,则迭代结束,x1作为方程的近似根;否则,进行下一步。令n=1,由迭代公式得)(/)(1112xfxfxx ,然后判别 x2x1是否小。若是,则迭代结束,x2 作为方程的近似根;否则,由x2求x3的值,判断x3x2。按这样迭代下去,一直到xi1xi(i=0,1,2,)为止。根据上述计算过程可以编写程序为:Private Sub Command1_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);方程
25、的根为:”;x1 End Sub Private Sub Command2_Click()End End Sub(3)运行情况 运行程序后,单击标题为“开始”的命令按钮,执行Command1_Click事件过程。在窗体上显示计算结果。9求S=10019914131211 的值.解答:(1)界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表33-9所示。表339 第9题的属性设置 控件名称 属性名 属性值 Form1 Caption 求s=1-1/2+1/3-1/4+1/99-1/100的值 Command1 Caption 开始 Command2 Caption 结
26、束(2)程序代码 Private Sub Command1_Click()Dim i%,s!,sign%sign=1:s=0 For i=1 To 100 s=s+sign 1/i sign=-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中的水仙花数。所谓水仙花数是指一个三位数,它的各位数字的立方之和等于
27、该数。例如,因为153=13+53+33,所以153是水仙花数。解答:(1)界面设计和属性设置 在窗体上建立两个命令按钮.窗体和命令按钮的主要属性设置如表3-3-10所示.表3-310 第10题的属性设置 控件名称 属性名 属性值 Form1 Caption 求水仙花数 Command1 Caption 开始 Command2 Caption 结束(2)程序代码 Private Sub Command1_Click()Dim i,a%,b%,c Print Print Tab(5);”100-999之间的水仙花数为:”For i=100 To 999 a=i 100 b=(i a*100)10
28、 c=i a*100 b 10 If i=a 3+b 3+c 3 Then Print Tab(10);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)界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表3311所示.表3-311 第11题的属性设置 控件名称 属性名 属性值 Form1
29、 Caption 求完数 Command1 Caption 开始 Command2 Caption 结束(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 j If i=s Then Print Tab(5);i Next i End Sub Private Sub Command2_Click()End End Sub(3)运行情况 程序执行结果如图3.3.8所
30、示.图3。3.8 第11题的执行结果 12.在窗体上输出形如以下图形,其中第一行的起始字母和终止字母由用户从键盘上输入.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)界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表33-12所示。表3-3-12 第12题的属性设置 控件名称 属性名 属性值 Form1 Caption 输出由字母构成的图形 Command1 Caption 开始 Command2 Caption 结束(2)程序代码 Private Sub Command1_Click()Cls Di
31、m starg As String*1,endg 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 stargc Print Tab(24);For j=stargc+i To endgc Print Chr(j);Next j For k=stargc To stargc+i-1 Print Chr(k)
32、;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)界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表3313所示。表3-313 第13题的属性设置 控件名称 属性名 属性值 Form1
33、Caption 求算式中的数字 Command1 Caption 开始 Command2 Caption 结束(2)程序代码 Private Sub Command1_Click()Dim x,y,z,i%Print Print Tab(23);”x”;y;z Print Tab(22);+;y;”z”;”z”Print Tab(21);”-”Print Tab(23);5;3;2 For x=1 To 9 For y=1 To 9 For z=0 To 9 i=100*x+10 y+z+100*y+10 z+z If i=532 Then Print:Print Tab(10);算式中的数字为:;_ ”x=”;x;”y=;y;”z=”;z;即:GoTo l Next z Next y Next x l:Print Print Tab(23);x;y;z Print Tab(22);+”;y;z;z Print Tab(21);”-Print Tab(23);5;3;2 End Sub Private Sub Command2_Click()End End Sub(3)运行情况 执行结果如图3.3.9所示。图3。3.9 第13题的执行结果
限制150内