第7章 程序题解答2015
更新时间:2023-09-16 15:12:01 阅读量: 高中教育 文档下载
第七章 ——程序题参考答案
※1)编写程序,求一元二次方程Ax2+Bx+C = 0的解,输入为系数A,B和C。 Public Sub P234_4_1() '求方根
Dim a, b, c As Integer
a = Val(InputBox(\输入系数a:\ b = Val(InputBox(\输入系数b:\ c = Val(InputBox(\输入系数c:\ d = b ^ 2 - 4 * a * c If d > 0 Then
x1 = (-b + Sqr(d)) / (2 * a) x2 = (-b - Sqr(d)) / (2 * a) MsgBox (\ MsgBox (\ ElseIf d = 0 Then x1 = -b / (2 * a) x2 = -b / (2 * a)
MsgBox (\ MsgBox (\ Else
MsgBox (\无解\ End If End Sub
※2)编写程序完成求和S=1+(1+2)+(1+2+3)+…+(1+2+…+10)。如果求S=1! + 2! + 3! + … + 10!,试编写程序并比较其同异。
方法1:Public Sub P234_4_2累加累加和()
Dim x, s, t, i As Integer s = 0 t = 0
For i = 1 To 10 s = s + i t = t + s Next
Debug.Print s Debug.Print t End Sub
4_2 、S=1! + 2! + 3! + … + 10!, Public Sub 求阶乘和() Dim i, j, p, s As Double s = 0
For i = 1 To 10 p = 1
For j = 1 To i
p = p * j '循环不变式,完成累乘。 Next j
Debug.Print Str(i) & \的阶乘是:\ s = s + p Next i
Debug.Print Str(i) & \的阶乘和是:\End Sub
※3)编程求100到200之间即能被3整除又能被5整除的正整数的个数,并显示这些数。
Public sub 整除() n=0
for i=100 to 200
if i mod 3=0 and i mod 5=0 then ‘或 i mod 15=0 n=n+1
Debug.print i endif Next
Debug.print n End sub
4)编程求2到100间的所有素数,并求它们的和。 Public Sub 求素数个数() Dim w, n, j, s As Double s = 0 j = 0
For w = 3 To 99 Step 2
For n = 2 To Int(Sqr(w)) '判断W是否为素数 If w Mod n = 0 Then
Exit For '能整除时说明不是素数结束内循环 End If Next
If n > Int(Sqr(w)) Then '说明是素数 Debug.Print w
s = s + w ' 累加素数
j = j + 1 '统计素数的个数 End If Next
Debug.Print \素数的个数\End Sub
5.使用循环嵌套语句编程求:在0至999的范围内,找出所有这样的数,其值等于该数中各位数字的立方和。如:153=13+53+33
求0~999之间水仙花数。
(水仙花数:指一个三位数,其各位数字立方之和等于该数本身。如:153=13+53+33)
算法思路:解此题的关键是要知道如何分离出一个三位数中的各位数字。本题采取将指定的数除10求余,所得余数就是数值最右边得一个数码。接着将除10后的数截尾取整,得到的就是去掉最右边一个数码后的数值,以此类推,每次都可以截得一个最右边的数码,将该三位数的各位数码分别截取出来并进行立方求和,如等于原数,则原数为水仙花数;否则原数不是水仙花数。
算法思路2:也可用三重循环分别控制百、十、个三位数中的各位数字(0~9)的变化,即:外循环为控制百位数码的变化,中循环为控制十位数码的变化,内循环为控制个位数码的变化和进行判断各三位数,其各位数字立方之和是否等于该数本身,是为水仙花数,否则原数不是水仙花数。
※或: Public Sub sxh()
Public Sub sxh() For N = 0 To 999
Dim m, g, s, b As Integer Dim A(3)
For b = 0 To 9 I = 1
For s = 0 To 9 M = N
For g = 0 To 9 Do While I <= 3
m = b * 100 + s * 10 + g A(I) = M Mod 10
If m = b ^ 3 + s ^ 3 + g ^ 3 Then M = Int(M / 10)
Debug.Print m I = I + 1
End If Loop
Next g If N = A(1) ^ 3 + A(2) ^ 3 + A(3) ^ 3 Then
Next s Debug.Print N
Next b End If
End Sub Next End Sub
6 .使用对话框输入十个评委的评分,要求去除最高分、最低分,求应试者的最后得分。 解:
Public Sub P234_4_6()
Dim mark!, aver!, i%, max1!, min1! aver = 0
For i = 1 To 10
mark = Val(InputBox(\请输入第\位评委的打分\If i = 1 Then
max1 = mark: min1 = mark Else
If mark < min1 Then min1 = mark
ElseIf mark > max1 Then Maxl = mark End If End If
aver = aver + mark Next i
aver = (aver - max1 - min1) / 8
MsgBox aver End Sub
※7)编程完成下列图形的打印。其中第一个*所在列为第10行,第20列。 * * ****** *** *** ****** ***** **** ****** ******* ***** ****** ****** ****** Public Sub三角形2() Public Sub 平行四边形输出() Public Sub 三角形1() Dim i, j As Integer Dim i, j As Integer For i = 10 To 13 For i = 1 To 9 For i = 10 To 14 Debug.Print Tab(20); \ Debug.Print Debug.Print Tab(30 - i); \ For j = 1 To 2 * (i - 9) - 2 Next For j = 1 To 5 Debug.Print \ Debug.Print Spc(19); \ Debug.Print \ Next j For i = 1 To 4 Next j Debug.Print Debug.Print Spc(18 - i); \Debug.Print Next i For j = 1 To i + 1 Next i End Sub Debug.Print \End Sub Next
Debug.Print
Next
End Sub
Public Sub P234_4_7倒等腰三角形() Dim i As Integer, j As Integer For i = 1 To 5 Debug.Print Spc(i); For j = 1 To 9 - (i * 2) Debug.Print \ Next j Debug.Print Next i
End Sub
8.输入两个正整数m和n,求其最大公约数和最小公倍数。
解题思路:
最大公约数 采用辗转相除法可以获得, 最小公倍数 就是 x*y/最大公约数 了 ....
用辗转相除法求两个数的最大公约数的步骤如下: 先用小的一个数除大的一个数,得第一个余数; 再用第一个余数除小的一个数,得第二个余数; 又用第二个余数除第一个余数,得第三个余数;
这样逐次用后一个数去除前一个余数,直到余数是0为止。那么,最后一个除数就是所求的最大公约数(如果最后的除数是1,那么原来的两个数是互质数)。
例如求1515和600的最大公约数, 第一次:用600除1515,商2余315; 第二次:用315除600,商1余285; 第三次:用285除315,商1余30; 第四次:用30除285,商9余15; 第五次:用15除30,商2余0。 1515和600的最大公约数是15。
Public Sub gys()
'求两个正整数的最大公约数和最小公倍数 Dim m, n, r, gb As Integer
m = Val(InputBox(\输入一个数\ n = Val(InputBox(\输入一个数\ x = m: y = n
Do While (n <> 0) '或者 while(n)求两个正整数的最大公约数 r = m Mod n m = n n = r Loop
gb = x * y / m '最小公倍数
Debug.Print \最大公约数 \ Debug.Print \最小公倍数为:\ End Sub
9.使用Select Case语句将一年中的12个月份,分成4个季度输出。
'解1:
Public Sub SelectCaseP234_4_9() Dim a As Integer Do While True
a = Val(InputBox(\请输入一个整数\ Select Case a Case 1 To 3
MsgBox (\第一季度\ Case 4 To 6
MsgBox (\第二季度\ Case 7 To 9
MsgBox (\第三季度\ Case 10 To 12
MsgBox (\第四季度\ Case -1 End Case Else
MsgBox (\输入数据错误\ End Select Loop
正在阅读:
第7章 程序题解答201509-16
毕业论文 基于PCA的人脸识别算法实现05-14
专升本生物化学历年真题10-04
学校工作简报模板01-05
个人绩效考核自评报告范文3篇08-22
01_1简要操作提示09-04
MLCC漏电失效分析10-22
有趣的“石头、剪刀、布”作文600字06-24
关于下发《保险欺诈举报奖励管理办法(2013年修订版)》的通知 - 附件112-18
雅思写作分类高分词汇与句型05-31
- 上海大众、一汽大众、东风日产车型与VIN代号对照表
- 第2章服装原型及原型制作
- 江苏省工商行政管理系统经济户口管理办法及四项制度
- 纪检监察业务知识试题2
- 传感器综合题答案
- 北京第二外国语学院翻硕招生人数及学费
- 初三新编英语教材下册
- 公司庆中秋、迎国庆联欢会客串词
- 向区委常委会汇报安全生产工作材料
- 2006年GCT英语模拟试题(三)及答案解析
- 经济法概念的早期使用
- 我爱做家务课堂教学设计
- 学校安全工作月报表、消防安全排查表、消防隐患排查台账
- 成本会计毕业论文
- 班级文化建设论文
- 2018年天津市高考文科试题与答案汇总(Word版) - 图文
- 铁路论文
- 2017年嵌入式系统设计师考试时间及地点
- 1.111--灾害与突发公共卫生事件应急预案
- 起爆点主图 注意买入 拉升 逃顶源码指标通达信指标公式源码
- 解答
- 程序
- 2015
- 马克思选择习题6
- 大学生创业基础期末考试
- 新建 第一单元大数的认识
- c 入门经典习题集
- 中考语文复习备考的几点建议
- 陕西科技大学过程装备与控制工程专业相关课程期末考试往年试题汇总
- C语言指针各种经典习题(应对笔试)
- “营改增”对建筑企业的影响及对策分析
- 答买手提问-关于SKC(SKU和SKC的区别)
- 武汉大学版无机化学课后习题答案(第三版)第17章 d区元素(1)
- 2018-2024年中国磷铵硼肥行业市场调查及“十三五”投资战略预测报告
- 中国人文社科学报核心期刊目录
- 2004年全国中学生英语能力竞赛初三组样题及参考答案-1
- 热敏电阻温度计的设计与标定
- 青建管质字〔2014〕112号《关于青岛市建筑市场主体信用考核运行管理的通知》
- WDT-IIC型电力系统及自动化综合实验指导书 - 图文
- 《公共政策》平时作业客观题(2017上半年)
- 人教版高中英语必修全套教案
- 环境工程微生物学期末考试试卷B卷 - 图文
- 5.PowerPoint知识题(大专)2011年作业