第一范文网 - 专业文章范例文档资料分享平台

vb程序设计教程龚沛曾版课后答案

来源:用户分享 时间:2025/6/28 12:40:42 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

Print \# 使用IIF函数 x = Val(InputBox(\y = Val(InputBox(\z = Val(InputBox(\Max = IIf(x > y, x, y) Max = IIf(z > Max, z, Max) Print \9. 计算循环次数 (1) 6 (2)19 (3)0

(4)死循环直至溢出

10. 40号语句执行 4次;第50 号语句执行12次; 执行第90号语句输出的结果是: 13,0,2

说明:该程序为嵌套循环,其中外循环由j值变化(1,4,7,10)控制执行4次,当j值为13时结束循环;内循环由k值变化(6,4,2)控制执行3次,当k值为0时结束循环。第40 行是外循环的循环体,故执行4次;第50 行是内循环的循环体,故执行4*3=12次。

11. 可以定一个较大的循环次数,在循环体中根据条件用Exit For退出。 但这种情况通常用Do While循环控制。 12. 编程(并非唯一正确答案) (1)

Dim i As Integer, s As Integer For i = 1 To 10

s = s + (i + 1) * (2 * i + 1) Next i Print \(2)

Dim i As Integer, n3 As Integer, n7 As Integer For i = 1 To 100

If i Mod 3 = 0 Then n3 = n3 + 1 If Int(i / 7) = i / 7 Then n7 = n7 + 1 Next i

Print \中3的倍数有\个\Print \中7的倍数有\个\(3)

Dim s1 As String, s2 As String, i As Integer s1 = InputBox(\s2 = \

For i = 1 To Len(s1) s2 = Mid(s1, i, 1) + s2 Next i

Print \原序:\Print \反序:\

For i = Len(s1) To 1 Step -1 s2 = s2 + Mid(s1, i, 1) Next i

13. 输出字符串“10100”。该程序功能是将十进制数转化为二进制。 14. 运行时输出 22 484

该程序功能是求x和y最大公约数和最小公倍数。

说明:此算法称为“辗转相减法”。可对照例4.17的辗转相除(辗转求余)法。 15.[50,100]间的20个随机数,求最大值、最小值、平均值。 Dim x As Integer, sum As Integer, aver As Single Dim n%, i%, max%, min% Randomize

max = 50: min = 100: n = 20 For i = 1 To n

x = Int(Rnd * 51 + 50) List1.AddItem x sum = sum + x

If x > max Then max = x If x < min Then min = x Next i aver = sum / n

Print \最大值:\最小值:\平均值:\习题五 1. 指定数组的默认下界 Option Base 1 2.合理的数组声明

(1)错。定义数组不可用变量(教材99页)。 (2)正确。该数组下标为0-11。 (3)错。VB中数组下标用圆括号。

(4)正确。三维数组三个下标分别为0-1,0-1,0-2,共12个元素。 (5)错误。非动态数组,不可重定义。

(6)错误。动态数组重定义时不可改变数据类型。

(7)正确。二维数组两个下标分别为0-2,0-3,共12个元素。

(8)语法错误,二维数组定义中漏写逗号——可能是印刷错误,加上此逗号则正确。

3.当引用数组元素时下标值小于定义的最小下标,或大于最大下标时,会发生“下标越界”错误。 4.数组名:a ;数组类型:Single(单精度浮点型);维数:二维; 各维的上下界:第一维下界(最小下标)为 -1,上界(最大下标)为2, 第二维下界(最小下标)为 0,上界(最大下标)为3; 数组的大小:4行4列共16个元素 以矩阵的格式输出二维数组: For i = -1 To 2 For j = 0 To 3 Print a(i, j); Next j Print Next i

或写成更加通用的代码形式: For i = LBound(a, 1) To UBound(a, 1) For j = LBound(a, 2) To UBound(a, 2) Print Tab(j * 8); a(i, j); Next j Print Next i

6.一维字符数组 Dim a(1 To 20) As String

Private Sub Command1_Click() '(1)随机产生字符串 Dim i As Integer, j As Integer, n As Integer, c As String * 1 Randomize For i = 1 To 20

a(i) = \ '将第i个元素清空 n = Int(Rnd * 10 + 1) '产生[1,10]的随机数 For j = 1 To n 'a(i)中有n个字符

c = Chr(Int(Rnd * 26 + 97)) '随机产生字母97是字母a的ASCII码 a(i) = a(i) + c Next j Next i End Sub

Private Sub Command2_Click() '(2)输出字符串 Dim i As Integer For i = 1 To 20

Print Tab(((i - 1) Mod 5) * 11); a(i); If i Mod 5 = 0 Then Print Next i End Sub

Private Sub Command3_Click() '(3)最长的字符串 Dim i As Integer, imax As Integer imax = 1 For i = 2 To 20

If Len(a(i)) > Len(a(imax)) Then imax = i End If Next i

Print \最长的字符串:\End Sub

第7,8题答案在教材中找。

第9题“自定义变量”含义不明,暂时无法回答。 第5,10 题 [暂略] 习题六

第1,2,6-8题答案可在教材中找到。 3.指出过程说明中的错误

(1)Sub子过程不应该定义类型 (2)函数与形式参数不应该同名

(3)数组作为形式参数时,应使用传地址方式,不可使用传值(ByVal) (4)形式参数应该是变量或数组名,不可以是一个数组元素 4.指出调用过程语句的错误

(1)无语法错误,但因形参sum所对应的实参是常量3,故计算结果无法传递给主调程序。 (2)实参变量c与形参sum的类型不一致。

(3)类似于(1),形参sum所对应的实参是表达式a+b,故计算结果无法传递给主调程序。

(4)类似于(1)和(2),形参sum所对应的实参是表达式Sqr(c),故计算结果无法传递给主调程序。另外srq(a)存在语法错误(拼写错)。

(5)与(2)相同,实参c与形参sum的类型不一致。 5.迭代法求平方根

(1)自定义函数的定义及调用 Function FSqr1(a As Single) As Single Dim x0 As Single, x As Single x = a Do x0 = x

x = (x0 + a / x0) / 2

Loop While Abs(x - x0) > 0.00001 FSqr1 = x End Function

Private Sub Command1_Click() Dim x!, y!

x = Val(InputBox(\ If x >= 0 Then y = FSqr1(x) Print y End If End Sub

(2)自定义子过程的定义及调用 Sub FSqr2(a As Single, x As Single) Dim x0 As Single x = a Do x0 = x

x = (x0 + a / x0) / 2

Loop While Abs(x - x0) > 0.00001 End Sub

Private Sub Command2_Click() Dim x!, y!

x = Val(InputBox(\ If x >= 0 Then Call FSqr2(x, y)

Print y End If End Sub

(3)递归函数及调用 [略]习题七

第1-9题,答案在教材上找;第10,12-14题,略。 11.检测Ctrl和F3同时按下的代码:

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) If Shift = 2 And KeyCode = 114 Then MsgBox \End Sub 习题八

第1,2,6,7,9题答案可阅读教材找到。 3.写Open语句

(1) Open \ '重写 或 Open \ '添加 (2)Open \

(3)Open \.编程,将文件Text.dat 读入变量strTest。 Dim strTest As String

Open \ Do While Not EOF(2)

strTest = strTest + Input(1, #2)

Loop8.本课程不涉及二进制文件。故此处以顺序文件读写方式编程。另外合并的结果可以是合并到其中某一个文件,也可以是合并到一个新的文件,此处代码是合并到其中一个文件F1.txt。 '方法一,在2号文件一次读一个字符并写入1号文件 Dim strTemp As String * 1 Open \ Open \ Do While Not EOF(2) strTemp = Input(1, #2)

Print #1, strTemp; '注意结尾有分号,否则每个字符一行 Loop Close

'方法二,在2号文件一次读一个字符并累加,最后将累加结果写入1号文件 Dim strTemp As String '注意方法一变量定义的区别 Open \ Open \ strTemp = \ Do While Not EOF(2)

strTemp = strTemp + Input(1, #2) Loop

Print #1, strTemp Close 习题九

答案在教材上找。 习题十

答案在教材上找

搜索更多关于: vb程序设计教程龚沛曾版课后答案 的文档
vb程序设计教程龚沛曾版课后答案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9lwx76mf2t1lh1d7s0l19lpyv23wwc008kn_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top