上海海事大学VB程序改错40题.docx

上传人:b****6 文档编号:7867997 上传时间:2023-01-26 格式:DOCX 页数:59 大小:27.88KB
下载 相关 举报
上海海事大学VB程序改错40题.docx_第1页
第1页 / 共59页
上海海事大学VB程序改错40题.docx_第2页
第2页 / 共59页
上海海事大学VB程序改错40题.docx_第3页
第3页 / 共59页
上海海事大学VB程序改错40题.docx_第4页
第4页 / 共59页
上海海事大学VB程序改错40题.docx_第5页
第5页 / 共59页
点击查看更多>>
下载资源
资源描述

上海海事大学VB程序改错40题.docx

《上海海事大学VB程序改错40题.docx》由会员分享,可在线阅读,更多相关《上海海事大学VB程序改错40题.docx(59页珍藏版)》请在冰豆网上搜索。

上海海事大学VB程序改错40题.docx

上海海事大学VB程序改错40题

第2题(1.0分)题号:

129

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:

该程序实现将输入的0-255之间的正整数转

'换成二进制数

'------------------------------------------------

OptionExplicit

PrivateSubForm_Click()

Constn=8

Dima(n)AsInteger,sAsString,mAsInteger,xAsInteger

x=Val(InputBox("请输入一个0-255之间的正整数:

"))

Printx

'**********FOUND**********

Form=1Ton

a(m)=xMod2

'**********FOUND**********

x=x/2

Nextm

s=""

Form=nTo0Step-1

'**********FOUND**********

s=Str(a(m))

Nextm

Prints

EndSub

 

答案:

=======(答案1)=======

Form=0Ton

=======(答案2)=======

x=x\2

=========或=========

x=int(x/2)

=======(答案3)=======

s=s+Str(a(m))

第3题(1.0分)题号:

463

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:

以下程序功能是输入三个数,由大到小排序。

'------------------------------------------------

OptionExplicit

DimAAsInteger

DimBAsInteger

DimCAsInteger

PrivateSubForm_Click()

DimnTempAsInteger

A=Val(InputBox("Pleaseinputfirstinteger","输入正整数"))

B=Val(InputBox("Pleaseinputsecondinteger","输入正整数"))

C=Val(InputBox("Pleaseinputthirdinteger","输入正整数"))

'**********FOUND**********

IfA<=CThen

nTemp=A

A=B

B=nTemp

EndIf

'**********FOUND**********

IfB<=CThen

nTemp=A

A=C

C=nTemp

EndIf

'**********FOUND**********

IfA<=BThen

nTemp=B

B=C

C=nTemp

EndIf

Print"Theintegersinorderis";A;B;C

EndSub

 

答案:

=======(答案1)=======

IfA<=BThen

=========或=========

IfB>=AThen

=======(答案2)=======

IfA<=CThen

=========或=========

IfC>=AThen

=======(答案3)=======

IfB<=CThen

=========或=========

IfC>=BThen

第4题(1.0分)题号:

127

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:

下面程序可输出如下图形:

'*

'***

'*****

'*******

'*********

'------------------------------------------------

OptionExplicit

PrivateSubForm_Click()

DimmAsInteger,nAsInteger,sAsString,iAsInteger,jAsInteger

n=4

m=1

s="*"

Fori=5To1Step-1

'**********FOUND**********

PrintSpc(n)

Forj=1To2*m-1

Prints;

Nextj

Print

'**********FOUND**********

n=n+1

'**********FOUND**********

m=m-1

Nexti

EndSub

 

答案:

=======(答案1)=======

PrintSpc(n);

=========或=========

PrintSpc(i);

=========或=========

?

Spc(n);

=========或=========

?

Spc(i);

=======(答案2)=======

n=n-1

=========或=========

n=-1+n

=======(答案3)=======

m=m+1

第5题(1.0分)题号:

469

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:

已知一个函数f(x)=1000*sin(x),利用绘图方法

'在图片框中显示其图形。

结果如图1

'------------------------------------------------

OptionExplicit

PrivateConstpi=3.14159

PrivateSubCommand1_Click()

'**********FOUND**********

DimxAsInteger

Picture1.Scale(-pi,-1200)-(pi,1200)

'**********FOUND**********

Forx=-piTopiSteppi

'**********FOUND**********

Picture1.PSet(x,1000*pi*Sin(x)),vbRed

Nextx

EndSub

 

答案:

=======(答案1)=======

DimxAsSingle

=========或=========

Dimx!

=======(答案2)=======

Forx=-piTopiSteppi/180

=======(答案3)=======

Picture1.PSet(x,1000*Sin(x)),vbRed

=========或=========

Picture1.PSet(x,Sin(x)*1000),vbRed

第6题(1.0分)题号:

497

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:

编程求一个十进制整数n的各位数字之和,设n为小于或等于5位的数。

'------------------------------------------------

OptionExplicit

PrivateSubForm_Click()

DimNAsInteger,SumAsInteger,S1AsString,S2AsString

DimiAsInteger,ChAsString

Sum=0

N=InputBox("输入整数n")

S1=Str(N)

'**********FOUND**********

S1=RTrim(S1)

Fori=1ToLen(S1)

'**********FOUND**********

Ch=Mid(N,i,1)

'**********FOUND**********

Sum=Val(Ch)

Nexti

Print"该整数的各位数之和是:

";Sum

EndSub

 

答案:

=======(答案1)=======

S1=Trim(S1)

=========或=========

S1=lTrim(S1)

=======(答案2)=======

Ch=Mid(S1,i,1)

=======(答案3)=======

Sum=Sum+Val(Ch)

=========或=========

Sum=Sum+Val(Ch)

第7题(1.0分)题号:

454

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:

本程序的功能是随机产生的10个两位正整数,并进行递减排序。

'------------------------------------------------

OptionExplicit

PrivateSubCreateRND()

DimTempAsInteger

DimIAsInteger

DimNAsInteger

DimX(10)AsInteger

DimJAsInteger

N=10

Print"数据:

"

ForI=1ToN

'**********FOUND**********

X(I)=Int(Rnd()*90)

PrintX(I);

NextI

Print

Print"排序:

"

ForI=0ToN-1

ForJ=I+1ToN

'**********FOUND**********

IfX(I)>X(J)Then

'**********FOUND**********

Temp=X(I)

X(J)=X(I)

X(I)=Temp

EndIf

NextJ

PrintX(I);

NextI

Print

EndSub

PrivateSubCommand1_Click()

CreateRND

EndSub

 

答案:

=======(答案1)=======

X(I)=Int(10+Rnd()*90)

=========或=========

X(I)=Int(10+Rnd()*90)

=======(答案2)=======

IfX(I)

=========或=========

IfX(I)<=X(J)Then

=========或=========

IfX(J)>X(I)Then

=========或=========

IfX(J)>=X(I)Then

=======(答案3)=======

temp=X(J)

第9题(1.0分)题号:

130

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:

以下程序段用于计算5的N次方。

'------------------------------------------------

OptionExplicit

PrivateSubForm_Click()

DimnAsInteger,kAsInteger,sAsLong

n=InputBox("Inputn")

'**********FOUND**********

k=0

'**********FOUND**********

s=0

DoWhilek<=n

s=s*5

k=k+1

'**********FOUND**********

Next

Print"5的";"n次方是";s

EndSub

 

答案:

=======(答案1)=======

k=1

=======(答案2)=======

s=1

=======(答案3)=======

Loop

 

第11题(1.0分)题号:

452

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:

用自定义函数的方法求sum(x),求当-1≤x≤1时,

'sum(x)=x/2!

+x^2/3!

+x^3/4!

+……+x^n/(n+1)!

'当x〉1或x〈-1时,函数值为0。

当n〈=0时,输入数

'据错误。

X、N都是由用户输入。

'------------------------------------------------

OptionExplicit

PrivateSubCommand1_Click()

DimsAsSingle

DimnAsInteger,xAsSingle,kAsInteger

n=Val(InputBox("Pleaseinputaintegervalue:

"))

x=Val(InputBox("Pleaseinputasinglevalue:

"))

Ifn<=0Then

k=MsgBox("数据输入错误!

",vbRetryCancel+vbExclamation,"数据输入")

ExitSub

EndIf

s=Sum(x,n)

Prints

EndSub

FunctionSum(xAsSingle,nAsInteger)

DimiAsInteger,ssAsLong

ss=1

Sum=0

Ifx>1Orx<-1Then

'**********FOUND**********

ExitDo

Else

'**********FOUND**********

Fori=2Ton

ss=ss*i

'**********FOUND**********

Sum=x^(i-1)/ss

Nexti

EndIf

EndFunction

 

答案:

=======(答案1)=======

exitFunction

=======(答案2)=======

Fori=2Ton+1

=========或=========

Fori=2To1+n

=======(答案3)=======

sum=sum+x^(i-1)/ss

第14题(1.0分)题号:

136

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:

程序功能为打印下列图形:

'*

'**

'***

'****

'*****

'------------------------------------------------

OptionExplicit

PrivateSubForm_Click()

Cls

DimiAsInteger

DimjAsInteger

'**********FOUND**********

Fori=1To7

'**********FOUND**********

Forj=1To5

Print"*";

'**********FOUND**********

Loop

Print

Nexti

EndSub

 

答案:

=======(答案1)=======

Fori=1To5

=======(答案2)=======

Forj=1Toi

=======(答案3)=======

Nextj

=========或=========

Next

第16题(1.0分)题号:

461

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:

产生30个小于100的成绩随机数,并统计出优、良

'、中等、及格、不及格数的个数,并计算出成绩属

'于优秀段的成绩平均分。

'------------------------------------------------

OptionExplicit

PrivateSubForm_Click()

Dimk%,a%,bjg%,jg%,zd%,lh%,yxAsInteger

DimpjfAsInteger

Randomize

pjf=0

Fork=1To30

'**********FOUND**********

a=Int(Rnd())

SelectCasea

Case0To59

bjg=bjg+1'不及格

Case60To69

jg=jg+1'及格

Case70To79

zd=zd+1'中等

Case80To89

lh=lh+1'良好

Case90To100

yx=yx+1'优秀

'**********FOUND**********

pjf=pjf+1

EndSelect

Nextk

'**********FOUND**********

Ifyx>0Thenpjf=pjf/30

Debug.Print"不及格"+Str$(bjg)+"人,及格"+Str$(jg)+"人,中等"+Str$(zd)+"人";

Debug.Print"良好"+Str$(lh)+"优秀"+Str$(yx)+"人"

Debug.Print"优秀分数段成绩平均分"&pjf

EndSub

 

答案:

=======(答案1)=======

a=Int(Rnd()*100)

=========或=========

a=Int(Rnd*100)

=======(答案2)=======

pjf=pjf+a

=======(答案3)=======

Ifyx>0Thenpjf=pjf/yx

第17题(1.0分)题号:

456

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:

挑选单数并排序程序:

程序启动后由计算机自动产

'生20个属于[100,300]之间的随机整数,单击"显

'示全体"按钮时,在Form1上显示这20个随机数;

'单击"显示奇数"按钮时,在Form1上显示其中的奇数;

'单击"排序"按钮时,在Form1上将这些奇数从小到大显示。

'要求显示格式为每行显示5个数据。

'------------------------------------------------

OptionExplicit

Privatea(20)AsInteger,b(20)AsInteger

PrivatekAsInteger

PrivateSubcmdodd_Click()

DimIAsInteger

k=0

ForI=1To20

'**********FOUND**********

Ifa(I)/2=Int(a(I)/2)Then

k=k+1

b(k)=a(I)

EndIf

NextI

ForI=1Tok

Printb(I);

'**********FOUND**********

IfInt(I/5)<>I/5ThenPrint

NextI

Print

EndSub

PrivateSubcmdAll_Click()

Randomize

DimIAsInteger

ForI=1To20

'**********FOUND**********

a(I)=Int(Rnd()*20+100)

Printa(I),

IfInt(I/5)=I/5ThenPrint

NextI

Print

EndSub

PrivateSubcmdsort_Click()

DimIAsInteger

DimJAsInteger

DimTempAsInteger

ForI=1Tok-1

ForJ=ITok

Ifb(I)>b(J)ThenTemp=b(I):

b(I)=b(J):

b(J)=Temp

NextJ

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1