程序改错答案版.docx
- 文档编号:10461998
- 上传时间:2023-02-13
- 格式:DOCX
- 页数:16
- 大小:17.97KB
程序改错答案版.docx
《程序改错答案版.docx》由会员分享,可在线阅读,更多相关《程序改错答案版.docx(16页珍藏版)》请在冰豆网上搜索。
程序改错答案版
程序改错--答案版
12592'题目:
编程求一个十进制整数n的各位数字之和,设n为小于或等于5位的数。
'------------------------------------------------
OptionExplicit
PrivateSubForm_Click()
DimNAsInteger,SumAsInteger,S1AsString,S2AsString
DimiAsInteger,ChAsString
Sum=0
N=InputBox("输入整数n")
S1=Str(N)
S1=Trim(S1)
Fori=1ToLen(S1)
'**********ERROR**********
Ch=Mid(N,i,1)
'**********ERROR**********
Sum=Val(Ch)
Nexti
Print"该整数的各位数之和是:
";Sum
EndSub
答案:
Ch=Mid(S1,i,1)
Sum=Sum+Val(Ch)
12610'题目:
程序功能根据输入的学习成绩,分别显示优秀(90分以上),良好(75分以上),及格(60分以上)不及格四个等级.
'------------------------------------------------
OptionExplicit
PrivateSubForm_Click()
Cls
DimiAsInteger
i=InputBox("请输入学习成绩")
SelectCasei
'**********ERROR**********
Case0
MsgBox"成绩应该在0--100之间"""
'**********ERROR**********
Case90
Print"优秀"
Case75To89
Print"良好"
Case60To74
Print"及格"
'**********ERROR**********
Case
MsgBox"不及格",vbCritical
EndSelect
EndSub
答案:
Case100 Case90to100 CaseElse 12616.题目: 求s=1! +3! +5! +7! ,阶乘的计算用Function过程fact实现. '------------------------------------------------ OptionExplicit PrivateSubForm_Click() DimiAsInteger,sAsInteger '**********ERROR********** Fori=1To7 s=s+fact(i) Nexti Prints EndSub '**********ERROR********** PublicFunctionfact() DimtAsInteger,iAsInteger t=1 Fori=1Ton t=t*i Nexti '**********ERROR********** fact=i EndFunction 答案: Fori=1To7Step2 PublicFunctionfact%(n%) fact=t 12620题目: 编程实现从左到右的滚动字幕,滚动的速度由滚动条控件来控制。 '------------------------------------------------ OptionExplicit PrivateSubHScroll1_Scroll() '**********ERROR********** Timer1.Interval=HScroll1.Min-HScroll1.Value EndSub PrivateSubTimer1_Timer() '**********ERROR********** IfLabel1.Left<=Form1.WidthThen '**********ERROR********** Label1.Left=Label1.Width Else Label1.Left=Label1.Left+100 EndIf EndSub 答案1).Timer1.Interval=HScroll1.Value-HScroll1.Min 2).IfLabel1.Left>=Form1.WidthThen 3).Label1.Left=0 12624.题目: 程序功能: 求1+2+3……,直到其和超出3000为止,并输入结果。 '------------------------------------------------ OptionExplicit PrivateSubForm_Click() Cls DimiAsInteger DimsAsSingle i=1 '**********ERROR********** s=0 Do '**********ERROR********** i=i+2 s=s+i '**********ERROR********** Loops>3000 Print"从1到: ";i;"的和是";s EndSub 答案: s=1 i=i+1 LoopUntils>3000 12629.题目: 下面的程序段用于实现以下功能: 建立一顺序文件,存放10名同学的学号和三门功课成绩,显示该文件内所有记录,并同时显示其总分和平均分。 '------------------------------------------------ OptionExplicit PrivateSubForm_Click() Dimno%,c1%,c2%,c3%,iAsInteger '**********ERROR********** Open"c: \2.txt"ForInputAs#1 Fori=1To10 no=InputBox("请输入学号") c1=InputBox("请输入数学成绩") c2=InputBox("请输入语文成绩") c3=InputBox("请输入外语") Write#1,no,c1,c2,c2 Nexti Close#1 '**********ERROR********** Open"c: \2.txt"ForOutputAs#1 Fori=1To10 '**********ERROR********** Print#1,no,c1,c2,c3 Printno,c1,c2,c3,c1+c2+c3,(c1+c2+c3)/3 Nexti Close#1 EndSub 答案: 1)Open"c: \2.txt"ForOutputAs#1 2)Open"c: \2.txt"ForInputAs#1 3)Input#1,no,c1,c2,c3 12677.题目: 求s=72+102+132+……832的值。 '------------------------------------------------ OptionExplicit PrivateSubForm_Click() Cls DimsAsLong DimiAsInteger '**********ERROR********** s=1 '**********ERROR********** Fori=7To832 s=s+i '**********ERROR********** loop30 Prints EndSub 答案: s=0 Fori=7to832step30 Loopuntil30 12683.题目: 产生30个小于100的成绩随机数,并统计出优、良、中等、及格、不及格数的个数,并计算出成绩属于优秀段的成绩平均分。 '------------------------------------------------ OptionExplicit PrivateSubForm_Click() Dimk%,a%,bjg%,jg%,zd%,lh%,yxAsInteger DimpjfAsInteger Randomize pjf=0 Fork=1To30 '**********ERROR********** a=Int(Rnd()) SelectCasea Case0To59 bjg=bjg+1'不及格 Case60To69 jg=jg+1'及格 Case70To79 zd=zd+1'中等 Case80To89 lh=lh+1'良好 Case90To100 yx=yx+1'优秀 '**********ERROR********** pjf=pjf+1 EndSelect Nextk '**********ERROR********** Ifyx>0Thenpjf=pjf/30 Debug.Print"不及格"+Str$(bjg)+"人,及格"+Str$(jg)+"人,中等"+Str$(zd)+"人"; Debug.Print"良好"+Str$(lh)+"优秀"+Str$(yx)+"人" Debug.Print"优秀分数段成绩平均分"&pjf EndSub 答案: a=Int(Rnd()*100) pjf=pjf+a Ifyx>0Thenpjf=pjf/yx 12687.'题目: 使用顺序文件读写方式编写一个简单的记事本应用程序, '基本逻辑是: 假设在考生目录中有一个名为exam.txt的文本文件。 当点击"打开"按钮(Command1)时,程序将exam.Txt文件中的内容显示在文本框(Text1)中,当点击"新建"按钮(Command2)时,清空Text1中的内容;用户可以在Text1中进行编辑操作,当点击"保存"按钮(Command3)时,将Text1中的内容保存在exam.txt文件中。 当点击"退出"按钮(Command4)时关闭本窗体。 '------------------------------------------------ OptionExplicit PrivateSubCommand1_Click() DimAAsString Text1="" Open"exam.txt"ForInputAs#1 DoWhileNotEOF (1) '**********ERROR********** Input#0,A Text1=Text1+A Loop '**********ERROR********** Close#0 EndSub PrivateSubCommand2_Click() Text1="" EndSub PrivateSubCommand3_Click() Open"exam.Txt"ForOutputAs#1 '**********ERROR********** Input#1,Text1 Close#1 EndSub PrivateSubCommand4_Click() UnloadMe EndSub 答案: Input#1,A Close#1 Write#1,Text1 12697.'题目: 以下程序段用于打印如图1所示的九九乘法表: '------------------------------------------------ OptionExplicit PrivateSubForm_Click() DimiAsInteger,jAsInteger,kAsInteger PrintTab(30);"9*9table" Print: Print Print"*"; Fori=1To9 '**********ERROR********** PrintTab(i*6);i Nexti Print Forj=1To9 Printj;""; '**********ERROR********** Fork=1To9 '**********ERROR********** PrintTab(j*6);j*k;""; Nextk Print Nextj EndSub 答案: PrintTab(i*6);i; Fork=1Toj PrintTab(k*6);j*k;""; 12701.'题目: 用辗转相除法求两个整数的最大公约数。 '------------------------------------------------ OptionExplicit Functiongcd(ByValmAsInteger,ByValnAsInteger)AsInteger DimrAsInteger r=mModn DoWhiler<>0 '**********ERROR********** n=m n=r r=mModn Loop '**********ERROR********** gcd=r EndFunction PrivateSubForm_Click() DimaAsInteger,bAsInteger,cAsInteger a=InputBox("输入一个整数") b=InputBox("输入一个整数") a=Val(a) b=Val(b) '**********ERROR********** Callgcd(a,b) Printa,b,c EndSub 答案: m=n gcd=n c=gcd(a,b) 12710.'题目: 输出40以内能够被3整除的数,要求输出结果为5个数一行。 '------------------------------------------------ OptionExplicit PrivateSubForm_Click() Cls DimxAsInteger DimiAsInteger '**********ERROR********** i=1 Forx=1To40 If(x/3)=(x\3)Then '**********ERROR********** Printx i=i+1 EndIf IfiMod5=0Then Print EndIf '**********ERROR********** stepi EndSub 答案: i=0 PrintTab((iMod5)*8);x; Nextx 12720.题目: 请根据下列描述编写购物优惠程序。 某商场为了 '加速促成商品流通,采用购物打折的优惠办法,每 '位顾客一次购物 (1)在100元以上者,按九五折优惠; ' (2)在200元以上者,按九折优惠;(3)300元以上 '者,按八折优惠;(4)500元以上者按七折优惠。 '------------------------------------------------ OptionExplicit PrivateSubCommand1_Click() DimxAsSingle,yAsSingle x=Val(Text1.Text) Ifx<100Then '**********ERROR********** x=y Else Ifx<200Then y=0.95*x Else Ifx<300Then y=0.9*x Else Ifx<500Then y=0.8*x Else y=0.7*x'**********ERROR********** ElseIf EndIf EndIf EndIf '**********ERROR********** Text2.Text=x EndSub 答案: y=x Endif Text1.Text=y 12728.题目: 下面的程序段用于删除数组中指定位置的数字,如果位置错误给出提示,否则分别显示删除前后的数组元素 '------------------------------------------------ OptionExplicit PrivateSubForm_Click() Dima(10)AsInteger,xAsInteger,iAsInteger,kAsInteger Fori=1To10 a(i)=Int(Rnd*90)+10 Printa(i); Nexti Print x=InputBox("请输入要删除第几位数字") Ifx>0Andx<=10Then '**********ERROR********** Fork=xTo10 '**********ERROR********** a(k)=a(k-1) Nextk Print"删除后的数组: " Fori=1To9 Printa(i); Nexti Else Print"删除位置错误" '**********ERROR********** End EndSub 答案: Fork=xto9 a(k)=a(k+1) Endif 1、题目: 下面程序的作用是产生100以内的全部素数,并按每行5个数据输出。 PrivateFunctionprime(ByValnAsInteger) DimiAsInteger prime=1 Ifn<=1Thenprime=0 '**********ERROR********** Fori=2Ton-1 IfnModi=0Thenprime=0 Nexti EndFunction PrivateSubForm_Click() DimiAsInteger,kAsInteger k=0 Fori=1To100 Ifprime(i)=1Then '**********ERROR********** PrintTab((kMod5)*8);i; k=k+1 '**********ERROR********** IfkMod5=0ThenPrint; EndIf Nexti EndSub
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序 改错 答案