程序填空.docx
- 文档编号:26838361
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:19
- 大小:58.04KB
程序填空.docx
《程序填空.docx》由会员分享,可在线阅读,更多相关《程序填空.docx(19页珍藏版)》请在冰豆网上搜索。
程序填空
三、程序填空
1、检查在文本框中输入的圆括号是否配对。
输入回车符表示输入结束,显示有关信息。
Dimcount1%
SubTextBox1_KeyPress(ByValsenderAsObject,ByValeAs_
System.Windows.Forms.KeyPressEventArgs)HandlesTextBox1.KeyPress
If
(1)Then‘从e获得键入的字符
count1=count1+1
ElseIf
(2)=")"Then
count1=(3)
EndIf
IfAsc(e.KeyChar)=13Then
If(4)Then
MsgBox("左右括号配对")
ElseIfcount1>0Then
MsgBox("左括号多于右括号"&(5)&"个")
Else
MsgBox("右括号多于左括号"&-count1&"个")
EndIf
ExitSub
EndIf
EndSub
2、在文本框中输入若干字符,统计元音字母和其他字母的个数,不区分大小写。
输入回车符结束,显示有关信息。
DimcountY%,countC%
PrivateSubTextBox1_KeyPress(ByValsenderAsObject,ByValeAs_
System.Windows.Forms.KeyPressEventArgs)HandlesTextBox1.KeyPress
DimcAsChar
c=(6)
If"A"<=cAndc<="Z"Then
SelectCase(7)
Case(8)‘元音字母
countY=countY+1
CaseElse
countC=countC+1
EndSelect
EndIf
If(9)Then‘判断是否按回车键
MsgBox("元音字母有"&countY&"个")
MsgBox("其他字母有"&countC&"个")
EndIf
EndSub
3、输入额外难以长度的字符串,要求将字符顺序倒置。
例如,输入“ABCDEFG”,输出“GFEDCBA”。
PrivateSubForm1_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMyBase.Click
Dima$,i%,c$,d$,n%
a=InputBox$("请输入:
")
n=(10)
Fori=1To(11)
c=Mid(a,i,1)
Mid(a,i,1)=(12)
(13)=c
Next
MsgBox(a)
EndSub
4、找出被3、5、7除,余数为1的最小的5个正整数。
PrivateSubForm1_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMyBase.Click
DimcountN%,n%
countN=0
n=1
Do
n=n+1
If(14)Then
MsgBox(n)
countN=countN+1
EndIf
Loop(15)
EndSub
5、有7个评委对一参赛者打分,去掉一个最高分、去掉一个最低分,求出的平均分即是该参赛者的得分。
PrivateSubForm1_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMyBase.Click
Dimmark!
aver!
i%,max1!
min1!
aver=0
Fori=1To7
mark=InputBox("请输入第"&i&"位评委的打分")
Ifi=1Then
max1=mark
(16)
Else
Ifmark (17) ElseIfmark>max1Then (18) EndIf EndIf (19) Next aver=(20) MsgBox(aver) EndSub 6、删除数组a中指定的元素。 PrivateSubForm1_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMyBase.Click Dima()AsInteger={1,6,8,3,5,9,10,2,7,4},key%,i%,j% key=InputBox("请输入要删除的值") Fori=0ToUBound(a) If(21)Then Forj=i+1ToUBound(a) (22) Next ReDim(23) MsgBox("删除完成") ExitSub EndIf Next MsgBox("找不到要删除的元素") EndSub 7、将输入的一个数插入到按递减的有序数列中,插入后该序列仍有序并显示在标签框Label1上。 PrivateSubForm1_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMyBase.Click Dimi%,n%,m% Dima()AsInteger={19,17,15,13,11,9,7,5,3,1} Label1.Text="" n=UBound(a) ReDim(24) m=InputBox("请输入需插入的数") Fori=UBound(a)-1To0Step-1 Ifm>=a(i)Then (25) Ifi=0Thena(i)=m Else (26) ExitFor EndIf Next Fori=0To(27) label1.text&=a(i)&"" Next EndSub 8、随机产生15个不重复的A--Z大写英文字母,存放在字符数组中并显示在标签框Label1上。 。 PrivateSubForm1_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMyBase.Click Dims(14)AsChar,cAsChar,n%,j% Label1.Text="" s(0)=Chr(Int(Rnd()*26+65)) Forn=1To14 re: c=(28) Forj=0To(29)‘若找到有重复字母,重新产生 Ifs(j)=cThen(30) Next s(n)=(31)‘没有重复的则加到数组中 Next Forj=0To14 Label1.Text&=s(j)&"" Next EndSub 9、两质数的差为2,则此对质数为质数对。 下列程序找出100以内的质数对,并在标签框上成对显示。 函数IsP判断参数m是否为质数。 PublicFunctionIsP(ByValm)AsBoolean Dimi% (32) Fori=2ToInt(Math.Sqrt(m)) If(33)ThenIsP=False Next EndFunction PrivateSubForm1_Click…… DimiAsInteger,p1,p2AsBoolean Label1.Text="" p1=IsP(3) Fori=5To100Step2 p2=IsP(i) If(34)ThenLabel1.Text&=i-2&""&i&"," p1=(35) Next EndSub 10、子过程MoveStr()是把字符数组移动m个位置。 当Tag为True,左移,则前m个字符移到字符数组尾,例如,“abcdefghij”左移三个位置后,结果为“defghijabc”;当Tag为False,右移,则后m个字符移到字符数组前,如“abcdefghij”右移三个位置后,结果为“hijabcdefg”。 SubMoveStr(ByRefa$(),ByValm%,ByValTagAsBoolean) Dimi%,j%,t$ If(36)Then Fori=1Tom (37) Forj=0To(38) a(j)=a(j+1) Next (39) Next Else Fori=1Tom (40) Forj=UBound(a)(41) a(j)=a(j-1) Next (42) Next EndIf EndSub 11、子过程Mysplit(s,sArray(),n)用于实现函数Split()的功能(字符分离到数组),即将数字字符串s按分隔符“,”分离到sArray数组中,分离的个数为n。 主调程序将文本框输入的数字字符串进行分离,结果在TextBox2控件中显示。 PrivateSubForm1_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMyBase.Click Dimstr1AsString,num(100)AsInteger,n%,i% str1=Trim(TextBox1.Text) CallMySplit(str1,num,n) TextBox2.Text="" Fori=0Ton TextBox2.Text&=num(i)&vbCrLf Next EndSub SubMySplit(ByValstr1AsString,ByRefsn()AsInteger,ByRefnAsInteger) Dimi%,j%,ch$ i=0 j=InStr(str1,",") DoWhilej>0 sn(i)=Val((43)) str1=Mid(str1,j+1) i=i+1 j=(44) Loop sn(i)=Val(str1) n=(45) EndSub 12、以下过程将一个有序数组中重复出现的数删除,删到只剩一个。 运行后结果如图。 PrivateSubForm1_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMyBase.Click Dimb()AsInteger={23,45,45,60,70,70,70,90},i%,n% label1.text="" Callp(b,n)'n是删除后数组上界 Fori=0Ton label1.text&=b(i)&"" Next EndSub Subp((46)) Dimm%,k% n=UBound(a) m=n DoWhile(47)'从右往左比较 Ifa(m)=a(m-1)Then Fork=(48) a(k-1)=a(k) Next n=(49) EndIf m=(50) Loop ReDimPreservea(n) EndSub 13、以下是一个学生成绩录入程序,功能有: (1)文本框中能输入数字。 (2)当焦点离开文本框时,能检查录入的成绩是否有效: 若成绩不在0——100之间,则清除原输入的数据,并要求重新输入。 (3)若文本框左边的复选框未被选定,则文本框不能输入成绩且不参加计算总分和平均成绩。 PrivateSubForm1_Load(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMyBase.Load Me.KeyPreview=(51) EndSub PrivateSubForm1_KeyPress(ByValsenderAsObject,ByValeAs_ System.Windows.Forms.KeyPressEventArgs)HandlesMyBase.KeyPress Ife.KeyChar<"0"Ore.KeyChar>"9"Then (52) EndIf EndSub PrivateSubCheckBox1_CheckedChanged…… TextBox1.Enabled=(53) EndSub PrivateSubCheckBox2_CheckedChanged…… TextBox2.Enabled=(54) EndSub PrivateSubCheckBox3_CheckedChanged…… TextBox3.Enabled=(55) EndSub PrivateSubTextBox1_Leave…… IfVal(TextBox1.Text)<0OrVal(TextBox1.Text)>100Then TextBox1.Text="" (56) EndIf EndSub PrivateSubTextBox2_Leave…… IfVal(TextBox2.Text)<0OrVal(TextBox2.Text)>100Then TextBox2.Text="" (57) EndIf EndSub PrivateSubTextBox3_Leave…… IfVal(TextBox3.Text)<0OrVal(TextBox3.Text)>100Then TextBox3.Text="" (58) EndIf EndSub PrivateSubButton1_Click…… DimTotalAsInteger=0,CountAsInteger=0 IfCheckBox1.CheckedThen Total=Total+Val(TextBox1.Text) Count=Count+1 EndIf IfCheckBox2.CheckedThen Total=Total+Val(TextBox2.Text) Count=Count+1 EndIf IfCheckBox3.CheckedThen Total=Total+Val(TextBox3.Text) Count=Count+1 EndIf (59) TextBox5.Text=Total/Count EndSub 14、多窗体操作、菜单操作、定时器、对话框 1)在主窗体上放置一个图像框;在主窗体上单击右键,弹出快捷菜单如下图左; 2)选择“开始移动”,图像反复从左到右移动,并弹出“统计结果”窗体(下图右); 3)选择“停止移动”,图像停止移动并关闭“统计结果”窗体; 4)选择“更换图像”,弹出“打开文件”对话框,选择新的图像; 5)在“统计结果”窗体上设置控件如图: 2个文本框、4个标签框; 6)添加模块。 ModuleModule1 Publicf2AsNewform2() EndModule PrivateSubMenuItem1_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)Handles_ MenuItem1.Click Timer1.Enabled=True (60) EndSub PrivateSubMenuItem2_Click…… Timer1.Enabled=False f2.Close() EndSub PrivateSubMenuItem3_Click…… OpenFileDialog1.(61) PictureBox1.Image=Image.FromFile((62)) EndSub PrivateSubTimer1_Tick(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesTimer1.Tick Statics,tAsInteger PictureBox1.Left=PictureBox1.Left+10 s=s+10 f2.textbox1.text=s If(63)Then PictureBox1.Left=-PictureBox1.Left t=t+1 (64) EndIf EndSub 15、建立顺序文件c: \stud.txt,文件内容来自文本框,每按一次回车键写入一条记录并清除文本框的内容。 当文本框内输入“END”时结束。 PrivateSubForm1_Load(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMyBase.Load (65) TextBox1.Text="" EndSub PrivateSubTextBox1_KeyDown…… If(66)Then‘检测是否按下回车键 IfTextBox1.Text="END"Then FileClose (1) End Else (67)‘文本框内容写入文件 TextBox1.Text="" EndIf EndIf EndSub 16、将文本文件c: \stud复制成新文件c: \new.txt。 PrivateSubForm1_Click…… DimstrasString FileOpen(1,"c: \stud.txt",(68)) FileOpen(2,"c: \new.txt",(69)) DoWhile(70)'文件没有结束 (71)'按行读入到变量str中 PrintLine(2,str) Loop (72)'关闭所有打开的文件 EndSub 17、将文本文件c: \stud合并到文件c: \new.txt中。 PrivateSubForm1_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMyBase.Click DimstrAsString FileOpen(1,"c: \stud.txt",(73)) FileOpen(2,"c: \new.txt",(74)) DoWhileNotEOF (1) (75) PrintLine(2,Str) Loop FileClose() EndSub 18、若已建立随机文件c: \stud.dat,其记录类为: ModuleModule1 StructureStud DimnoAsInteger DimmarkAsSingle EndStructure EndModule 以下程序代码是读出5号记录,用Msgbox显示记录内容,将课程成绩加5分,写入原来的位置,再读出并显示。 PrivateSubForm1_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMyBase.Click DimsAsStud FileOpen(1,"c: \stud.dat",(76),,,Len(s)) (77)'读入记录号为5的记录 MsgBox(s.no&s.name&s.mark) (78) (79) FileGet(1,s,5) MsgBox(s.no&s.name&s.mark) FileClose (1) EndSub 19、统计并显示文本文件中各个字母(不区分大小写)出现的次数。 要求: 用对话框打开文件,文件内容显示在左边的文本框中;统计结果显示在右边的框中。 PrivateSubButton1_Click…… DimstrAsString TextBox1.Text="" If(OpenFileDialog1.ShowDialog=DialogResult.OK)Then FileOpen(1,(80),OpenMode.Input) DoWhileNotEOF (1) TextBox1.Text=TextBox1.Text&LineInput (1)&vbCrLf Loop FileClose (1) EndIf EndSub '统计 PrivateSubButton2_Click…… Dimi,j,s(26)AsInteger,cAsChar Fori=1To(81) c=UCase(Mid(TextBox1.Text,i,1)) Ifc>="A"Andc<="Z"Then j=(82) s(j)=s(j)+1 EndIf Next
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序 填空