vb教科书答案(中国农业出版社)(2)

2019-03-28 08:07

习题五,参考答案

5.1~5.10略

5.11 编写程序,计算1~100内能被3整除的数的和。

【分析】本例对1~100内每一个数进行判断(用循环实现),符合条件的累加到和变量中,循环体内用条件结构进行判断。

【源程序代码】

Private Sub Form_Click() Dim s%,n% s = 0

For n=1 to 100

If n Mod 3 = 0 Then s=s+ n End If Next

Print \内3的倍数的和= \End Sub

5.12 世界现有人口为60亿,设年增长率为1.2%,编写程序,计算多少年后增加到70亿。

【分析】本题与教材中的例5.6相似,只是人口底数与增长率不同而已,可以参照例5.6完成,此处不再赘述。

5.13 一个球从100m高度自由下落,每次落地后反弹回原高度的一半,再落下。求它在第10次落地时,共经过多少米?落地10次反弹高度多少?

【分析】求在第10次落地时,共经过的高度实际是求10个高度的和,所以用循环实现。从第二次落地到第十次落地既有反弹的高度又有落下的高度,应该是2倍的高度;第一次只有落下的100米,所以循环10次之后的和减掉100即可。

【源程序代码】

Private Sub Form_Click() Dim s%,h%,n% s = 0 h=100

For n=1 to 10 s=s+ h h=h/2 Next

Print \第10次落地时共经过的高度= \ Print \落地10次反弹的高度= \End Sub

5.14 编写程序,打印如下图的“数字金字塔”: 1

1 2 1

1 2 3 2 1 1 2 3 4 3 2 1 ??

1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1

【分析】本题实际上是一个输出图形图案的问题,所以用二层循环即可实现。外层控制行从1到9,每一行分四部分:首先输出空格(用循环),其次输出左半部分数字,再次输出右半部分数字,最后换行。

【源程序代码】

Private Sub Command1_Click() Cls

For i = 1 To 9

For j = 1 To 27 - 3 * i Print \ Next j

For k = 1 To i Print k; Next k

For k = i - 1 To 1 Step -1 Print k; Next k Print Next i End Sub

5.15 猴子吃桃问题。有一群猴子吃桃,第一天吃了总数的一半又多吃了一颗,第二天吃了剩下的一半又多吃了一颗,第三天如此,??直到第九天,第十天还未吃却只有一个桃子,求原来有多少桃子?

【分析】本例倒着思考,因为第10天只剩1个(S=1),如果把第9天多吃的1个放到第10天(S+1)即第9天为2*(S+1),由此往前推,循环9次即得第1天的总数。主要代码如下所示:

s=1: n=10 Do while n>1 s=2*(s+1) n=n-1 Loop Print s

循环完以后s中即为所求的总数。

5.16 马克思曾经做过这样一道趣味数学题:有30个人在一家小饭馆用餐,其中有男人、女人和小孩。每个男人花了3先令,每个女人花了2先令,每个小孩花了1先令,一共花了50先令。问男人、女人、小孩各有几人?

【分析】本题与教材中的例5.10相似,可以参照例5.10完成,此处不再赘述。 5.17 从键盘上输入两个数,求出这两个数之间的“完全数”。如果一个数的因子之和等于这个数本身,就称这个数为“完全数”,如数28的因子为:1、2、4、7、14,其和1+2+4+7+14=28,因此28是一个“完全数”

【分析】判断一个数是否为完全数的方法为:循环从1 开始到该数的一半为止,如果除尽则累加到和变量中,循环完之后和变量与该数比较;依此为循环体,在输入的两个数之间循环判断即可。

【源程序代码】

Dim i As Integer, j As Integer, s As Integer m = Val(Text1.Text) n = Val(Text2.Text) If m > n Then

t = m: m = n: n = t End If

For i = m To n s = 0

For j = 1 To Int(i / 2)

If (i Mod j = 0) Then s = s + j Next j

If i = s Then Print i, Next i End Sub

习题六,参考答案

1. A 2. C 3.C 4. A 5. C 6. A 7. D 8. A 9.C 10. C

习题七,参考答案 一、选择题

1. D 2. B 3. C 4. B 5. D 二、编程题

1. 1)界面设计如图1所示

2)编写代码如下: Private Sub Form_Load() Text1.Text = \ Text2.Text = \ Text3.Text = \ Text4.Text = \ Text5.Text = \

图1“数据统计”

End Sub

Private Sub Form_click() Dim a(1 To 10) As Integer Dim I As Integer

Dim Pn As Integer, Psum As Integer Dim Fn As Integer, Fsum As Integer Pn = 0: Psum = 0: Fn = 0: Fsum = 0 For I = 1 To 10

a(I) = InputBox(\请输入第\个数据\ Text1.Text = Text1.Text & \ \ If a(I) > 0 Then Pn = Pn + 1

Psum = Psum + a(I) Else

Fn = Fn + 1

Fsum = Fsum + a(I) End If Next I

Text2.Text = Pn: Text4.Text = Psum Text3.Text = Fn: Text5.Text = Fsum End Sub

2.定义一个有11个元素的一维数组MarkTj(0 to 10),其中MarkTj(0)中存放0~9分的学生人数,MarkTj(1)中存放1~19分的学生人数,?,MarkTj(10)中存放100分的学生人数。 (1) 界面设计如图 图2 “统计分数段”

(2) 编写代码

Dim MarkTj(10) As Integer Private Sub CmdTj_Click() Dim x As Single

Dim I As Integer, n As Integer, k As Integer n = InputBox(\请输入学生人数\ For I = 1 To n

x = Val(InputBox(\请输入第\名学生的成绩\ If x >= 0 And x <= 100 Then LstMark.AddItem x k = Int(x / 10)

MarkTj(k) = MarkTj(k) + 1 Else

MsgBox \请输入正确分数\ I = I - 1 End If Next I

For k = 0 To 9

LstTj.AddItem k * 10 & \分的 _ 人数为:\ Next k

LstTj.AddItem \分的人数为:\

End Sub

习题八,参考答案 一、填空题

1 解析:A。事件过程是当用户对一个对象发出一个动作时所产生的事件,不能脱离控件而独立存在;通用过程时通用的,不与任何特定事件相联系,它完成特定的任务,只能由别的过程调用;Sub过程包括事件过程和通用过程,称之为子过程。有些Sub过程与对象有联系,有些Sub过程与对象没有联系;函数过程类似于内部函数,由用户定义的,完成一些特殊函数关系的计算,并且要返回函数值,函数过程不必与控件发生联系。

2 解析:B。在Visual Basic中有两类过程,一类是系统提供的内部函数和事件过程;另一类是用户根据自己的需要定义的,供事件过程的多次调用,而第二类过程中,涉及最多的是子过程。它们的共同点都是完成某种特定功能的一组程序代码;不同的是函数是带有返回值的特殊过程,所以函数过程定义时有返回值的类型说明。

3 解析:C。题目的意思是在调用过程后,返回两个结果,那么定义此过程时,应设两个参数,且参数传送应用传址方式,也就是引用,而\关键字加在形参前面,则表示形参与实参结合方式为传值。所以,4个选项中只有选项C符合题意。

4 解析:A。选项B中函数的返回值只有一个;选项C中当数组做为函数的形参时,只能以传址方式传送;选项D中如果不指明函数过程的参数类型,则该参数为变体类型。

5 解析:C。在Visual Basic中有两类过程,一类是系统提供的内部函数和事件过程;另一类是用户根据自己的需要定义的,供事件过程的多次调用的过程。它们的共同点都是完成某种特定功能的一组程序代码;不同的是函数是带有返回值的特殊过程。

6 解析:B。题目中Sub过程的形式参数都没有特别指明是传址方式还是传值方式,隐含的是传址。实际调用时,还要根据实参的形式,才能确定是传值还是传址的数据传送方式。若实参为常量或表达式,则为传值的传送方式;若实参是变量名或数组名,则为传值的传送方式。

7 解析:B。在Visual Basic中,定义变量的关键字为Dim、Static、Redim、Public或Private,Dim用于在标准模块、窗体模块或过程中定义变量或者数组;Static用于过程中定义静态变量或数组;Public用于在标准模块中定义全局变量或数组;Redim主要用于定义数组。

8 解析:A。变量的作用域指变量的作用范围,根据变量的定义位置和使用的变量定义语句的不同,变量可以分为3类,即局部变量、模块变量和全局变量。局部变量是在过程(事件过程或通用过程) 内定义的变量,其作用域是它所在的过程,通常用来存放中间结果或用作临时变量,可以默认声明;模块变量包括窗体变量和标准模块变量,窗体变量可用于该窗体内的所有过程,使用前必须先声明,也就是说,窗体层变量不能默认声明;全局变量,其作用域最大,可在工程的每个模块、每个过程中使用,和模块级变量类似,全局变量也在标准模块的声明部分声明,所不同的是全局变量必须用Public或Global语句声明,不能用Dim语句声明,更不能用Private声明;全局变量只能在标准模块中声明,不能在过程或窗体模块中声明。

9 解析:B。在传址的结合过程时,当调用一个过程时,它将实参的地址传给形参,因此在被调用的过程中,对形参的任何操作都变成了对相应实参的操作,因此实参的值会随形参的改变而改变。

传值的结合过程时,当调用一个过程时,系统将实参的值传送给形参并断开了联系,被调用过程中的操作是在形参自己的存储单元中进行的,当过程调用结束时,这些形参所占用


vb教科书答案(中国农业出版社)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2014应用化工技术人才培养方案2015.3.3 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: