ImageVerifierCode 换一换
格式:DOCX , 页数:58 ,大小:31.71KB ,
资源ID:14637196      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-14637196.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(上机程序调试题题目及参考答案.docx)为本站会员(b****5)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

上机程序调试题题目及参考答案.docx

1、上机程序调试题题目及参考答案第二部分 VB上机考试模拟试题一、程序调试题(改错或填空)(二)程序调试题题1 Modify.bas模块中的getanswer过程是用于计算一元二次方程的根,并将结果输出来。Option ExplicitPublic Sub getanswer() 该过程是用于计算一元二次方程的根,并将结果输出来。 Dim dalt!, a#, b#, c# a = InputBox(输入系数a) b = InputBox(输入系数b) c = InputBox(输入系数c) dalt = b * b - 4 * a * c If -1- dalt 0 then dalt = Sq

2、r(dalt) MsgBox Format(-b + dalt) / 2 / a), 0.00 + Chr(13) + Chr(10) + Format(-b - dalt) / 2 / a, 0.00) Elseif -2- dalt =0 then MsgBox Format(-b / 2 / a, 0.00) + Chr(13) + Chr(10) + Format(-b / 2 / a, 0.00) Else dalt= -3- Sqr(-dalt) MsgBox Format(-b + dalt) / 2 / a, 0.00) + +i + Chr(13) + Chr(10) + F

3、ormat(-b - dalt) / 2 / a, 0.00) + -i End IfEnd Sub题2 打印输出一菱形图案。Public Sub prt() 打印由#组成的菱形图案 # # # # # # # # # Dim i As Integer, j As Integer Dim start As String 每行起始空格数 Dim count As Integer 每行#个数 For i = 1 To 9If i = 5 Then-1- start=space(21-i) count = 2 * i - 1 Else start = Space(11 + i) -2- count=

4、19-2*i End If -3- form1.print start; For j = 1 To count Form1.Print #; Next j -4- form1.print Next iEnd Sub题3 过程pyramid用以打印一个数字金字塔,请在横线上填入必要的内容(将横线删除掉后填入正确的内容),使其完整。Option ExplicitPublic Sub pyramid() 打印数字金字塔 1 222 33333 4444444 555555555 6666666 77777 888 9 Dim i As Integer Dim j As Integer Dim sta

5、rt As String 每行起始空格数 Dim num As Integer 每行数字个数 For i = 1 To 9 If i = 5 Then start = Space(20 - i) num = 2 * i - 1 Else start= -1- Space(10 + i) num= -2- 2 * (10-i) - 1 End If Form1.Print start; For j = 1 To num -3- form1.print trim(str(i); Next j -4- form1.print Next iEnd Sub题4 改错。Option ExplicitPub

6、lic Sub prt() 打印由数字组成的如下所示金字塔图案 9 888 77777 6666666 555555555 44444444444 3333333333333 222222222222222 111111*11 Dim i As Integer, j As Integer * 错误1 * For i = 9 To 1 step -1 Form1.Print Space(i); * 错误2 * For j = 1 To 2 *(10- i) - 1 * 错误3 * Form1.Print trim(str(i); Next j Form1.Print Next iEnd Sub题

7、5 计算s=7+77+777+(n个7组成的数)。Public Sub total() 计算s=7+77+777+(n个7组成的数) Const n = 20 Dim s As Single Dim i As Integer For i = 1 To n s=s+ -1-number(i) Next i Form1.Print s=; sEnd SubPublic Function number(-2- n as integer ) As Single Dim i As Integer number = 0 For i = 1 To n -3-number=number*10+7 number

8、=value(number & 7) Next iEnd Function题6 Modify.bas模块中的过程eat用于计算猴子共摘了多少个桃子。Option ExplicitPublic Sub eat() 该过程是用于计算猴子共摘了多少个桃子。 (小猴在一天摘了若干个桃子,当天吃掉了一半多一个; 第二天吃了剩下的一半多一个; 以后每天都吃尚存的一半零一个,到第7天早上要吃时只剩下一个了), 并将结果输出来。 Dim n%, i%, x% x = 1 for i=6 to -1-1 step -2- -1 -3- x=2*(x+1) Next i Form1.Print 共有; x; 个桃

9、子End Sub题7 Modify.bas模块中的Prime过程是求出100到200之间所有的素数,并打印出来。Public Sub prime() 打印出100到200之间所有的素数,并统计素数的个数 Dim i As Integer Dim j As Integer Dim k As Integer Dim t As Integer 统计素数的个数 Dim b As Boolean For i = 100 To 200 b = True - 1 -k=2 j = Int(Sqr(i) Do While k = j And b If i Mod k = 0 Then - 2 - b=fals

10、e End If - 3 - k=k+1 Loop if - 4 - b b=true then t = t + 1 Form1.Print i End If Next iForm1.Print t=; tEnd sub 题8 过程even用以验证一个偶数可以分解为两个素数之和;Isprime用以判断x是否是素数。请在横线上填入必要的内容(将横线删除掉后填入正确的内容),使其完整。Public Sub even() 从键盘输入一个大于4的偶数,将它所有的不重复的分解式求出 Dim x As Integer Dim i As Integer -1- do while x4 or x mod 20

11、 do while x4 or x mod 2=1保证x是大于4的偶数 x = Val(InputBox(x=) Loop For i = 3 To x / 2 Step 2 在不大于x的奇数中找素数 -2- if isprime(i) and isprime(x-i) Form1.Print x; =; i; +; x - i End If Next iEnd SubPublic Function Isprime(x As Integer) As Boolean Dim i As Integer -3- isprime=true For i = 2 To x - 1 -4- if x mod

12、 i=0 then Isprime = False Exit For End If Next iEnd Function题9 Modify.bas模块中的find过程是用于找出被3、5、7除,余数为1的最小的5个整数,并将结果输出来。Option ExplicitPublic Sub find() 该过程是用于找出被3、5、7除,余数为1的最小的5个整数,并将结果输出来。 Dim countN%, n% countN = 0 n = 1 Do n=-1- n+1 if -2- n mod 3=1 and n mod 5=1 and n mod 7=1then Form1.Print n cou

13、ntN = countN + 1 End If Loop -3- until countN=5 while countN5End Sub题10 Modify.bas模块中的过程rn通过调用函数isLeapYear判断某年是否是闰年,若是,则打印今年是闰年,否则打印今年不是闰年。 闰年的判断方法是:凡是年份不能被4整除的都不是闰年,而且如果年份能被100整除但不能被400整除的也不是闰年。Option ExplicitPublic Sub rn() 该过程通过调用函数isLeapYear判断某年是否是闰年,若是,则打印今年是润年 否则,打印今年不是闰年。Const year = 2023 If

14、-1- Isleapyear(year) Then Form1.Print 今年是闰年 Else Form1.Print 今年不是闰年 End If End Sub Function isLeapYear(y As Integer) As Boolean If y Mod 4 0 Or (y Mod 100 = 0 And y Mod 400 0) Then isLeapYear = False Else isLeapYear = True End IfEnd Function题11 Modify.bas模块中的CountTo60过程是用于从一堆一分、二分、五分的硬币中取出20枚,使其总值为6

15、0分,要求输出取法的数量及每一种取法的一分、二分、五分的个数。请建立工程将Modify.bas模块加入工程中进行调试。注意:只要修改标出出错位置的下面那一条语句即可,其余代码不要改动。 从一堆一分、二分、五分的硬币中取出20枚,使其总值为60分 输出取法的数量及每一种取法的一分、二分、五分的个数 Dim one As Integer 一分硬币个数 Dim two As Integer 二分硬币个数 Dim five As Integer 五分硬币个数 Const n = 20 总数20枚 Dim k As Integer 取法数量 k = 0 For one = 1 To n * 错误1 *

16、For two = one + 1 To n for two=1 to n-one five = n - one - two * 错误2 * If one + two + five = 60 Then if one+two*2+five*5=60 then k = k + 1 Form1.Print one=; one; two=; two; five=; five End If * 错误3 * Next one next two * 错误4 * Next two next one Form1.Print k=; kEnd Sub题12 过程same用以找出1100之间所有的同构数。所谓同构数

17、是指一个数出现在它的平方数的右端,如25在25平方625的右端,则25为同构数。利用数字转字符再取出右端字符的方法进行判断。Public Sub same() Dim i As Integer Dim x As String, x2 As String For i = 1 To 1000 x1= -1- trim(str(i) 将i转字符型 x2= -2- trim(str(i2) 将i2转字符型 if -3- x1=right(x2,len(x1) Then Form1.Print i; 是同构数 End If Next iEnd Sub题13 Modify.bas模块中的Armstrong

18、Number过程是用于求出1999之间所有的Armstrong数,并打印出来。所谓Armstrong数是指一个数等于它每位上数字的立方和。Public Sub ArmstrongNumber() Dim armstrong As Integer Dim i As Integer Dim hundred As Integer 百位上的数字 Dim ten As Integer 十位上的数字 Dim one As Integer 个位上的数字 For i = 1 To 999 hundred = -1- i100 ten = -2-(i mod 100)10 i10 mod 10 one = -3

19、-(i mod 100) mod 10 i mod 10 If -4- i=hundred3+ten3+one3 Then Form1.Print i; is armstrong number End If Next iEnd Sub题14 过程cloze用以求11000中的所有完数。所谓完数是指一个数的所有因子之和等于其自身。请在横线上填入必要的内容(将横线删除掉后填入正确的内容),使其完整。Option ExplicitDim a(50) As Integer 存放每个数分解出来的因子Public Sub cloze() 求1-100中的所有完数 Dim i As Integer, j A

20、s Integer Dim n As Integer 因子个数 Dim s As Integer 因子和 For i = 1 To 1000 n = 0 s = 0 factor -1- i,n For j = 1 To n s = s + a(j) Next j -2- if i=s then Form1.Print i End If Next iEnd SubPublic Sub factor(ByVal x As Integer, ByRef k As Integer) Dim i As Integer a(1) = 1 k = 1 -3- for i=2 to x/2 for i=2

21、to x-1 If x Mod i = 0 Then k = k + 1 -4-a(k)=i End If Next iEnd Sub题15 Modify.bas模块中的Summary过程是用于计算并打印出s=1+2+22+23+,直至s超过1E+16。Option ExplicitPublic Sub summary()该过程是用于计算s=1+2+22+23+,直至s超过1E+16 Dim s As Single Dim i As Integer -1- s=1 i = 1 -2- do while s=1E+16 s = s + 2 i -3- i=i+1 Loop Form1.Print

22、 s=; sEnd Sub题16 Modify.bas模块中的qiuN过程是用于求出满足不等式1+2x+3x2+4x3+(n+1)xn1000的最大n值。其中x是大于等于1的实数,其值由键盘输入。Option ExplicitPublic Sub qiuN() 该过程是用于求出满足不等式1+2x+3x2+4x3+(n+1)xn1000的最大n值, 其中x是大于等于1的实数,其值由键盘输入。 Dim x As Single, s As Single, n As Integer, s1 As Single, p As Single x = Val(InputBox(x=) s = 1: n = 1

23、 p = x while -1- s1000 s1 = s s = s + (n + 1) * p p=p* -2- x n= -3-n+1 Wend n= -4- n-1 form1.Print The Maxism of n; n, s=; s1End Sub题17 sum过程用于计算f=1-1/(2*3)+1/(3*4)-1/(4*5)+1/(19*20),请在横线上填入必要的内容。Option ExplicitPublic Sub sum() Dim f As Single Dim i As Integer Dim sign As Integer -1- sign=-1 f = 1 -

24、2- for i=2 to 19 f = f + sign / (i * (i + 1) -3- sign=-sign Next i Form1.Print f=; fEnd Sub题18 Modify.bas模块中的JiSuan过程是用于计算1-(1/2)+(1/3)-+(1/99)-(1/100)的值并打印出来。Public Sub JiSuan() 计算1-(1/2)+(1/3)-.+(1/99)-(1/100)的值并打印出来 Dim i As Integer * 错误1 * Dim k As Integer dim k as single Dim s As Single s = 0 *

25、 错误2 * For i = 1 To 100 for i=1 to 100 step2 k = 1 / i s = s + k * 错误3 * k = 1 / i + 1 k=1/(i+1) s = s + k Next i Form1.Print s=; sEnd Sub题19 Modify.bas模块中的summary过程是用于计算1!+2!+20!,并打印出计算结果,但不完整,请在横线上填入必要的内容,使其完整。Modify.bas模块中的nFaction函数过程用于计算n!。Public Function nFactor(ByVal n As Integer) As Double D

26、im i As Integer Dim temp As Double -1- temp=1 For i = 1 To n temp = temp * i Next i nFactor = -2- tempEnd FunctionPublic Sub summary() Dim sum As Double Dim i As Integer Dim n As Integer n = 20 For i = 1 To n sum = sum + -3- nfactor(i) Next iForm1.Print sum= & -4- sumEnd Sub题20 Modify.bas模块中的find过程是

27、用于从1到10000中找出这样的数,该数各个位的数字的阶乘相加之和等于该数,并将结果输出。其中阶乘由fact函数计算。Option ExplicitPublic Sub find() 该过程是用于从1到10000中找出这样的数, 该数各个位的数字的阶乘相加之和等于该数,并将结果输出。 Dim k, a, n, i Dim p As Integer For k = 1 To 10000 a = LTrim(Str(k) n = 0 For i= -1- 1 to len(a) p = Val(Mid(a, i, 1) n= -2- n+fact(p) Next i If n = k Then form1.Print k Next kEnd Sub Function fact(x As Integer) As Long 该函数用于计算阶乘 Dim y As Long Dim i% y = 1 For i% = 1 To x y = y *

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2