新填空题1新 5.docx

上传人:b****5 文档编号:8399659 上传时间:2023-01-31 格式:DOCX 页数:22 大小:59.38KB
下载 相关 举报
新填空题1新 5.docx_第1页
第1页 / 共22页
新填空题1新 5.docx_第2页
第2页 / 共22页
新填空题1新 5.docx_第3页
第3页 / 共22页
新填空题1新 5.docx_第4页
第4页 / 共22页
新填空题1新 5.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

新填空题1新 5.docx

《新填空题1新 5.docx》由会员分享,可在线阅读,更多相关《新填空题1新 5.docx(22页珍藏版)》请在冰豆网上搜索。

新填空题1新 5.docx

新填空题1新5

程序改错

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

2、题目:

列表框应用程序。

要求从文本框中输入课程名称,然后按"添加"按钮,把姓名添加到列表框中;当选择列表框中某一项后,按"删除"按钮,则从列表框中删除该项;当选择列表框中某一项后,按"修改"按钮,把列表框中选取的项送往文本框且"修改"按钮变为"修改确认"。

在文本框的内容修改好后,按"修改确认"按钮,再把文本框中修改后的信息送到列表框且"修改确认"按钮变为"修改"。

PrivateSubForm_Load()

List1.AddItem"北京-上海"

List1.AddItem"北京-广州"

List1.AddItem"北京-四川"

List1.AddItem"北京-西安"

List1.AddItem"北京-哈尔滨"

List1.AddItem"北京-沈阳"

List1.AddItem"北京-长春"

EndSub

PrivateSubCommand1_Click()

IfText1.Text<>""Then

List1.AddItemText1.Text'将文本框中的内容加到列表框中

Text1.Text=""

Else

MsgBox"请在文本框中输入信息!

"

EndIf

EndSub

PrivateSubCommand2_Click()

'**********ERROR**********

IfList1.ListIndex=0ThenExitSub

List1.RemoveItemList1.ListIndex'删除选定的项目

EndSub

PrivateSubCommand3_Click()

IfCommand3.Caption="修改"Then

Text1.Text=List1.Text

Text1.SetFocus

Command1.Enabled=False

Command2.Enabled=False

'**********ERROR**********

Command3.Caption="修改确认"

Else

List1.List(List1.ListIndex)=Text1.Text

Command1.Enabled=True

Command2.Enabled=True

Text1.Text=""

'**********ERROR**********

Command3.Caption="修改"

EndIf

EndSub

3、题目:

产生30个小于100的成绩随机数,并统计出优、良、中等、及格、不及格数的个数,并计算出成绩属于优秀段的成绩平均分。

PrivateSubForm_Click()

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

DimpjfAsInteger

Randomize

pjf=0

Fork=1To30

'**********ERROR**********

a=Int(Rnd()*100)

SelectCasea

Case0To59

bjg=bjg+1'不及格

Case60To69

jg=jg+1'及格

Case70To79

zd=zd+1'中等

Case80To89

lh=lh+1'良好

Case90To100

yx=yx+1'优秀

'**********ERROR**********

pjf=pjf+a

EndSelect

Nextk

'**********ERROR**********

Ifyx>0Thenpjf=pjf/yx

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

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

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

EndSub

4、题目:

使用顺序文件读写方式编写一个简单的记事本应用程序,基本逻辑是:

假设在考生目录中有一个名为exam.txt的文本文件。

当点击"打开"按(Command1)时,程序将exam.Txt文件中的内容显示在文本框(Text1)中,当点击"新建"按钮(Command2)时,清空Text1中的内容;用户可以在Text1中进行编辑操作,当点击"保存"按钮(Command3)时,将Text1中的内容保存在exam.txt文件中。

当点击"退出"按钮(Command4)时关闭本窗体。

PrivateSubCommand1_Click()

DimAAsString

Text1=""

Open"exam.txt"ForInputAs#1

DoWhileNotEOF

(1)

'**********ERROR**********

Input#1,A

Text1=Text1+A

Loop

'**********ERROR**********

Close#1

EndSub

PrivateSubCommand2_Click()

Text1=""

EndSub

PrivateSubCommand3_Click()

Open"exam.Txt"ForOutputAs#1

'**********ERROR**********

Write#1,Text1

Close#1

EndSub

PrivateSubCommand4_Click()

UnloadMe

EndSub

5、题目:

请修改程序中错误,保证程序最后输出效果如图1所示。

'

PrivateSubForm_Click()

DimiAsInteger

Fori=1To7

'**********ERROR**********

PrintSpc(7-i);

'**********ERROR**********

Ifi=1Then

Print"*"

Else

'**********ERROR**********

Print"*";Spc(2*(i-1)-1);"*"

EndIf

Nexti

EndSub

6、题目:

求s=1!

+3!

+5!

+7!

,阶乘的计算用Function过程fact实现.

PrivateSubForm_Click()

DimiAsInteger,sAsInteger

'**********ERROR**********

Fori=1To7Step2

s=s+fact(i)

Nexti

Prints

EndSub

'**********ERROR**********

PublicFunctionfact%(n%)

DimtAsInteger,iAsInteger

t=1

Fori=1Ton

t=t*i

Nexti

'**********ERROR**********

fact=t

EndFunction

7、题目:

以下程序段用于输出100-300的所有素数

PrivateSubForm_Click()

DimnAsInteger,kAsInteger,iAsInteger,switAsInteger

Forn=101To300Step2

k=Int(Sqr(n))

i=2

'**********ERROR**********

swit=0

'**********ERROR**********

Whilei<=kswit=0

IfnModi=0Then

swit=1

Else

'**********ERROR**********

i=i+1

EndIf

Wend

Ifswit=0Then

Printn;

EndIf

Nextn

EndSub

8、题目:

移动数组元素,将数组中某个位置的元素移动到指定位置.

FunctionfMove(a%(),L1%,L2%)

DimNAsInteger,iAsInteger,TAsInteger

'**********ERROR**********

N=UBound(a)

IfL2=N+1Then

'**********ERROR**********

a(N)=a(L2)

Fori=L1ToN

a(i)=a(i+1)

Nexti

Else

T=a(L1)

a(L1)=a(L2)

'**********ERROR**********

a(L2)=T

EndIf

EndFunction

PrivateSubForm_Click()

Dima%(1To5)

DimiAsInteger

Fori=1To5

a(i)=i

Next

fMovea,1,5

Fori=1To5

Printa(i)

Next

EndSub

9、题目:

用辗转相除法求两个整数的最大公约数。

Functiongcd(ByValmAsInteger,ByValnAsInteger)AsInteger

DimrAsInteger

r=mModn

DoWhiler<>0

'**********ERROR**********

m=n

n=r

r=mModn

Loop

'**********ERROR**********

gcd=n

EndFunction

PrivateSubForm_Click()

DimaAsInteger,bAsInteger,cAsInteger

a=InputBox("输入一个整数")

b=InputBox("输入一个整数")

a=Val(a)

b=Val(b)

'**********ERROR**********

c=gcd(a,b)

Printa,b,c

EndSub

10、题目:

以下程序段用于打印如图1所示的九九乘法表:

'

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=1Toj

'**********ERROR**********

PrintTab(k*6);j*k;"";

Nextk

Print

Nextj

EndSub

11、题目:

下面的程序段用于删除数组中指定位置的数字,如果位置错误给出提示,否则分别显示删除前后的数组元素

PrivateSubForm_Click()

Dima(10)AsInteger,xAsInteger

DimiAsInteger,kAsInteger

Fori=1To10

a(i)=Int(Rnd*90)+10

Printa(i);

Nexti

Print

x=InputBox("请输入要删除第几位数字")

'**********ERROR**********

Ifx>0Andx<=10Then

'**********ERROR**********

Fork=xTo9

'**********ERROR**********

a(k)=a(k+1)

Nextk

Print"删除后的数组:

"

Fori=1To9

Printa(i);

Nexti

Else

Print"删除位置错误"

EndIf

EndSub

12、题目:

输入两个正整数m和n,求其最大公约数。

PrivateSubForm_Click()

DimmAsInteger,nAsInteger,rAsInteger

m=InputBox("输入m的值:

")

n=InputBox("输入n的值:

")

DoWhilen<>0

'**********ERROR**********

r=mModn

m=n

'**********ERROR**********

n=r

Loop

'**********ERROR**********

Print"两数的最大公因子为:

"&n

EndSub

 

13、题目:

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

'换成二进制数

OptionExplicit

PrivateSubForm_Click()

Constn=8

Dima(n)AsInteger,sAsString,mAsInteger,xAsInteger

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

"))

Printx

'**********ERROR**********

Form=0Ton

a(m)=xMod2

'**********ERROR**********

x=x\2

Nextm

s=""

Form=nTo0Step-1

'**********ERROR**********

s=s+Str(a(m))

Nextm

Prints

EndSub

15、题目:

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

PrivateSubCreateRND()

DimTempAsInteger

DimIAsInteger

DimNAsInteger

DimX(10)AsInteger

DimJAsInteger

N=10

Print"数据:

"

ForI=1ToN

'**********ERROR**********

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

PrintX(I);

NextI

Print

Print"排序:

"

ForI=0ToN-1

ForJ=I+1ToN

'**********ERROR**********

IfX(I)

Temp=X(J)

X(J)=X(I)

X(I)=Temp

EndIf

NextJ

PrintX(I);

NextI

Print

EndSub

PrivateSubCommand1_Click()

CreateRND

EndSub

16、题目:

以下程序段用于计算货物运费。

设货物运费每吨单价p元与运输距离s公里之间关系如图1

OptionExplicit

PrivateSubForm_Click()

Dimw!

s!

DimpAsCurrency,tAsCurrency

w=InputBox("请输入货物重量")

s=InputBox("请输入托运距离")

SelectCases

CaseIs<100

p=30

'**********ERROR**********

CaseIs<200andIs>=100

p=27.5

CaseIs<300

p=25

CaseIs<400

p=32.5

'**********ERROR**********

CaseELse

p=20

'**********ERROR**********

EndSelect

t=p*w*s

Print"总运费:

";t;"元"

EndSub

17、题目:

下面程序用于将十个数字从小到大排序

OptionExplicit

OptionBase1

PrivateSubForm_Click()

Cls

Dima(10)AsInteger

DimiAsInteger,jAsInteger,tempAsInteger

'**********ERROR**********

Fori=1To10

IfiMod2=0Thena(i)=iElsea(i)=-i

Printa(i);

Next

Print

Fori=1To10

Forj=1To10-i

'**********ERROR**********

Ifa(j)>a(j+1)Then

temp=a(j):

a(j)=a(j+1):

a(j+1)=temp

EndIf

'**********ERROR**********

Nextj,i

Fori=1To10

Printa(i);

Next

EndSub

18、题目:

输入一个字符串,将所有的小写字母都转换为大写字母。

PrivateSubForm_Click()

Dims1AsString,s2AsString,iAsInteger,tAsString

s1=InputBox("输入字符串,#号结束")

i=1

'**********ERROR**********

t=Mid(s1,i,1)

Whilet<>"#"

'**********ERROR**********

Ift>="a"Andt<="z"Thent=Chr(Asc(t)-32)

s2=s2+t

i=i+1

t=Mid(s1,i,1)

Wend

'**********ERROR**********

Print"新字符串为:

";s2

EndSub

 

19、题目:

单击"开始"命令按钮,秒表开始计时,单击"结束"命令按钮,秒表结束计时,并在标签框显示运行时间,如"运行了0小时2分10秒"。

DimxAsLong

DimhAsInteger,mAsInteger,sAsInteger

PrivateSubForm_Load()

Form1.Caption="动态秒表(小时:

分:

秒)"

Command1.Caption="开始[&S]"

Command2.Caption="结束[&E]"

Label1.Alignment=2

Label1.Caption="0:

0:

0"

Timer1.Interval=1000

Timer1.Enabled=False

x=0

EndSub

PrivateSubCommand1_Click()

'**********ERROR**********

Timer1.Enabled=Ture

EndSub

PrivateSubCommand2_Click()

'**********ERROR**********

Timer1.Enabled=False

x=0

Label1.Caption="运行了"+Str(h)+"小时"+Str(m)+"分"+Str(s)+"秒"

EndSub

PrivateSubTimer1_Timer()

x=x+1

h=x\3600

m=(xMod3600)\60

'**********ERROR**********

s=(xMod3600)\3600

Label1.Caption=Str(h)+":

"+Str(m)+":

"+Str(s)

EndSub

20、题目:

下面的程序用"冒泡"法完成数组a中的10个整数按升序排列,请修正程序中错误。

PrivateSubCommand1_Click()

Dima

DimiAsInteger,jAsInteger,a1AsInteger

a=Array(-2,5,24,58,43,-10,87,75,27,83)

Fori=1To9

'**********ERROR**********

Forj=i+1To9

'**********ERROR**********

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

当前位置:首页 > 初中教育

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

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