新填空题1新 5.docx
《新填空题1新 5.docx》由会员分享,可在线阅读,更多相关《新填空题1新 5.docx(22页珍藏版)》请在冰豆网上搜索。
![新填空题1新 5.docx](https://file1.bdocx.com/fileroot1/2023-1/30/b45e7b6b-0b25-43ab-9a2e-8ba4eee872ad/b45e7b6b-0b25-43ab-9a2e-8ba4eee872ad1.gif)
新填空题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**********