上机编程练习题选解.docx
- 文档编号:9035301
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:40
- 大小:65.22KB
上机编程练习题选解.docx
《上机编程练习题选解.docx》由会员分享,可在线阅读,更多相关《上机编程练习题选解.docx(40页珍藏版)》请在冰豆网上搜索。
上机编程练习题选解
上机编程练习题选解
3-4参考代码:
PrivateSubCommand1_Click()‘文本框往左
Text1.Left=0
EndSub
PrivateSubCommand2_Click()‘文本框往右
Text1.Left=Form1.ScaleWidth-Text1.Width
EndSub
PrivateSubCommand3_Click()‘文本框居中
Text1.Left=(Form1.ScaleWidth-Text1.Width)/2
EndSub
PrivateSubForm_Load()
Command1.Caption="往左"
Command1.Caption="往右"
Command1.Caption="居中"
EndSub
3-6参考代码:
PrivateSubForm_Click()
Cls
EndSub
PrivateSubForm_KeyPress(KeyAsciiAsInteger)
Print"输入的字符:
";Chr(KeyAscii);KeyAscii
EndSub
3-7参考代码:
PrivateSubForm_Load()
x=MsgBox("在这里显示提示信息",vbYesNo)
x=MsgBox("在这里显示"&Chr(13)&"提示信息",vbYesNoCancel)
x=MsgBox("在这里显示"&Chr(13)&"提示信息",vbAbortRetryIgnore+vbCritical)
EndSub
3-8参考代码:
PrivateSubForm_Load()
Frame1.Caption="请输入英文字母"
Command1.Caption="转大写"
Command2.Caption="转小写"
Command3.Caption="复原"
Text1.Text=""
EndSub
PrivateSubText1_KeyUp(KeyCodeAsInteger,ShiftAsInteger)
Text1.Tag=Text1.Text
EndSub
PrivateSubCommand1_Click()
Text1.Text=UCase(Text1.Tag)
EndSub
PrivateSubCommand2_Click()
Text1.Text=LCase(Text1.Tag)
EndSub
PrivateSubCommand3_Click()
Text1.Text=Text1.Tag
EndSub
3-9参考代码:
ConstpiAsSingle=3.1415926
DimrAsInteger
PrivateSubForm_Load()
Label1.Caption="用滚动条获取不同半径的圆周长和面积"
Label2.Caption="圆周长"
Label3.Caption="圆面积"
Label4.Caption="半径"
Label5.Caption=0
Label6.Caption=100
Text1.Text="":
Text1.Locked=True
Text2.Text="":
Text2.Locked=True
Text3.Text="":
Text3.Locked=True
HScroll1.Min=0:
HScroll1.Max=100
EndSub
PrivateSubHScroll1_Change()
r=HScroll1.Value:
Text3.Text=r
EndSub
PrivateSubHScroll1_Scroll()
r=HScroll1.Value:
Text3.Text=r
Text1.Text=2*pi*r:
Text2.Text=pi*r*r
EndSub
4-6参考代码:
PrivateSubForm_Load()
Label1.Caption=0
Label1.BorderStyle=1
Label1.FontName="黑体"
Label1.FontSize=60
Timer1.Interval=1000
EndSub
PrivateSubTimer1_Timer()
Label1.Caption=Label1.Caption+1
EndSub
4-7参考代码:
DimCheCAsInteger
PrivateSubText1_KeyPress(KeyAsciiAsInteger)
IfChr(KeyAscii)="("Then
CheC=CheC+1
ElseIfChr(KeyAscii)=")"Then
CheC=CheC-1
EndIf
SelectCaseCheC
CaseIs=0
Label1.Caption="左右括号配对"
CaseIs<0
Label1.Caption="右括号多于左括号"&-CheC&"个"
CaseIs>0
Label1.Caption="左括号多于右括号"&-CheC&"个"
EndSelect
EndSub
4-8建立应用程序用户界面如图附C-1所示,窗体上有一个框架,两个方本框(分别用于输入年号和月份),三个标签和一个命令按钮。
图附C-1判断闰年
参考代码:
PrivateSubCommand1_Click()
DimyAsInteger,mAsInteger,daysAsInteger
DimjiAsString
DimLeapYearAsBoolean
y=Val(Text1.Text)
m=Val(Text2.Text)
If(yMod4=0AndyMod100<>0)Or(yMod400=0)Then
LeapYear=True
Else
LeapYear=False
EndIf
SelectCasem
Case3To5
ji="春季(Spring)"
Case6To8
ji="复季(Summer)"
Case9To11
ji="秋季(Autumn)"
Case12,1,2
ji="冬季(Winter)"
EndSelect
SelectCasem
Case1,3,5,7,8,10,12
days=31
Case4,6,9,11
days=30
Case2
IfLeapYearThen
days=29
Else
days=28
EndIf
EndSelect
Label3.Caption=Str(y)&"年"&IIf(LeapYear,"是","不是")&"闰年"&Str(m)&"月有"&Str(days)&"天,在"&ji
Text1.SetFocus
EndSub
PrivateSubText1_GotFocus()
Text1.SelStart=0
Text1.SelLength=Len(Text1.Text)
EndSub
5-1参考代码:
PrivateSubForm_Load()
DimsAsSingle,iAsInteger
Show
Fori=1To100
s=s+1/(1+4*i)
Next
Prints
EndSub
5-2参考代码:
PrivateSubForm_Load()
DimpAsInteger,nAsInteger
Show
Forn=100To999
a=Int(n/100)
b=Int((n-a*100)/10)
c=n-a*100-b*10
p=a^3+b^3+c^3
Ifp=nThenPrintp
Next
EndSub
5-5参考代码如下:
PrivateSubForm_Load()
Command1.Caption="显示"
List1.Height=1770
List1.Width=1300
List1.FontName="黑体"
List1.FontSize=14
List1.AddItem"表项1"
List1.AddItem"表项2"
List1.AddItem"表项3"
List1.AddItem"表项4"
List1.AddItem"表项5"
EndSub
注:
列表框的MultiSelect属性在程序运行时是只读的,只能设计时在属性窗口中设置。
PrivateSubCommand1_Click()
DimiAsInteger
Fori=0ToList1.ListCount-1
IfList1.Selected(i)Then
PrintList1.List(i)
EndIf
Next
EndSub
5-6参考代码:
PrivateSubCommand1_Click()
DimsAsString,yAsString
s=Trim(Text1)
y=""
Fork=1ToLen(s)
x=Mid(s,k,1)
Ifx>="A"Andx<="Z"Orx>="a"Andx<="z"Then
y=y+x
EndIf
Next
Text2.Text=y
EndSub
5-7参考代码:
PrivateSubCommand1_Click()
DimxAsSingle,aAsSingle,tAsSingle
a=Val(InputBox("请输入一个正数"))
x=a
Do
t=x
x=(x+a/x)/2
LoopUntilAbs(x-t)<0.00001
PrintFormat(x,"0.00000")
EndSub
5-8参考代码:
PrivateSubForm_Click()
Cls
Forn=1To5
PrintTab(2*n);
Form=nTo10-n
PrintSpc
(1);"*";
Nextm
PrintSpc(4);
Form=1To2*n-1
PrintSpc
(1);"*";
Nextm
Nextn
EndSub
6-3在窗体上建立两个列表框List1(处理前数据)和List2(处理后数据),以及标签Label1。
程序代码如下:
PrivateSubForm_Load()
Dima(100)AsInteger,b(100)AsInteger
Randomize
n=100
Fori=1Ton'输入数组a的n个元素
x=Int(20*Rnd)
List1.AddItemx
a(i)=x
Nexti
k=0
Fori=1Ton'删除零元素
Ifa(i)<>0Then
k=k+1:
b(k)=a(i):
List2.AddItemb(k)
EndIf
Nexti
Label1.Caption="数组中零元素个数:
"+Str(n-k)
EndSub
6-4参考代码:
PrivateSubForm_Load()
Frame1.Caption=Space
(2)+"数据"+Space(3)+"出现次数"
Randomize
Dims(40),g(40)
n=40
Fork=1To1000
x=Int(11+40*Rnd)
g(x-10)=g(x-10)+1'统计各数出现的次数
Next
Fork=1Ton
s(k)=k+10'数组s
(1)s(40)存放11~50各数
Next
Fork=1Ton-1'对数组g(n)进行选择法排序
t=k'保存较大数的位置
Forj=k+1Ton
Ifg(t) t=j EndIf Next m=g(t): g(t)=g(k): g(k)=m m=s(t): s(t)=s(k): s(k)=m Next Fork=1Ton t=Space (2)&s(k)&Space(5)&g(k) List1.AddItemt Next EndSub 6-5在窗体上建立4行3列共12个元素的文本框控件数组Text1(0)~Text1(11),参考代码: PrivateSubForm_Load() Dimt(12)AsString Randomize Fork=1To12 t(k)="Empty"'初始安排12个位置均为"Empty" Next Forh=65To74'代表"A"至"J",每次随机安排一个字母 DoWhileTrue'随机查找一个空位 p=Int(1+12*Rnd)'产生1~12随机数 Ift(p)="Empty"Then t(p)=Chr(h) ExitDo EndIf Loop Next Fork=1To12 Text1(k-1).Text=t(k)'显示座位分配情况 Next EndSub 6-6参考代码: PrivateSubForm_Activate() Dims(9,9)AsInteger Forn=0To9 Form=0To9 Ifn=mOrn=10-mThen s(n,m)=1 Else s(n,m)=0 EndIf Next Next Forn=0To9 Form=0To9 Picture1.PrintTab(1+m*3);s(n,m); Next Print Next EndSub 6-7在窗体上添加两个图片框Picture1~Picture2(分别显示转置前、后的矩阵)和两个命令按钮Command1~Command2。 参考代码如下: Dima(6,4)AsInteger,b(4,6)AsInteger PrivateSubCommand1_Click()‘“重置” Forn=1To6 Form=1To4 x=Int(Rnd*90)+10 a(n,m)=x Next Next Picture1.Cls Picture2.Cls Picture1.CurrentX=80 Forn=1To6 Form=1To4 Picture1.Printa(n,m); Next Picture1.Print Picture1.Print Next EndSub PrivateSubCommand2_Click()‘“转置” Forn=1To6 Form=1To4 b(m,n)=a(n,m) Next Next Picture2.Cls Picture2.CurrentX=80 Forn=1To4 Form=1To6 Picture2.Printb(n,m); Next Picture2.Print Picture2.Print Next EndSub PrivateSubForm_Load() Command1.Caption="重置" Command2.Caption="转置" Picture1.BorderStyle=1 Picture2.BorderStyle=1 EndSub 6-8定义二维数组a(1,1),a(0,0)表示两个正面,a(1,1)表示两个反面,a(0,1)和a(1,0)表示一反一正和一正一反。 在窗体添加一个命令按钮Command1。 程序代码如下: PrivateSubCommand1_Click() Dima(1,1)AsInteger DimnAsInteger,n1AsInteger,n2AsInteger n=Val(InputBox("n=","请输入投币次数")) Label1.Caption="投币次数: "&n RandomizeTime Fori=1Ton n1=Int(Rnd*2) n2=Int(Rnd*2) a(n1,n2)=a(n1,n2)+1 Next Cls Print"两个正面的次数为: ";a(0,0) Print"两个反面的次数为: ";a(1,1) Print"一正一反次数为: ";a(0,1)+a(1,0) EndSub PrivateSubForm_Load() Command1.Caption="输入次数" Label1.Caption="" EndSub 7-3参考代码: PrivateSubCommand1_Click() DimsAsString s=Trim(Text1.Text) List1.Clear n=Getword(s) Text2.Text=n EndSub PublicFunctionGetword(sAsString)AsInteger n=0 DoWhilen<=Len(s) p=InStr(s,Space (1)) n=n+1 Ifp=0Then List1.AddItems s="" Else List1.AddItemLeft(s,p-1) s=Mid(s,p+1) EndIf Loop Getword=n EndFunction 7-4参考代码如下: PublicFunctionPwoer(xAsSingle,nAsInteger)AsDouble Ifn=0Then Pwoer=1 Else Pwoer=x*Pwoer(x,n-1) EndIf EndFunction PrivateSubForm_Click() DimxAsSingle,nAsInteger x=Val(InputBox("输入一个实数: ")) n=Val(InputBox("输入一个正整数: ")) PrintPwoer(x,n) EndSub 7-6把两个窗体上的命令按钮分别定义为控件数组。 窗体Form1的代码: PrivateSubForm_Load() Label1.Caption="随机数" Label2.Caption="最大值" Text1.Text="": Text1.Locked=True Text2.Text="": Text2.Locked=True Command1(0).Caption="生成随机数" Command1 (1).Caption="求最大数" Command1 (2).Caption="打开排序窗口" Command1(3).Caption="结束" EndSub PrivateSubCommand1_Click(IndexAsInteger) Randomize SelectCaseIndex Case0‘生成随机数 Fori=0To9 Do x=Int(Rnd*89+0.5)+11 yes=0 Forj=0Toi-1 Ifx=a(j)Thenyes=1: ExitFor Next LoopWhileyes=1 a(i)=x Text1.Text=Text1.Text&x&"," Next Text1.Text=Left(Text1.Text,Len(Text1)-1) Case1 Text2.Text=Max(a())‘求最大数 Case2‘打开排序窗体 Form1.Hide Form2.Show Case3‘结束 UnloadForm1 UnloadForm2 EndSelect EndSub 窗体Form2的代码: PrivateSubCommand1_Click(IndexAsInteger) SelectCaseIndex Case0‘排序 CallSort(a()) Fori=0To9 Text1.Text=Text1.Text&a(i)&"," Next Text1.Text=Left(Text1.Text,Len(Text1.Text)-1) Case1‘返回 Form2.Hide Form1.Show EndSelect EndSub PrivateSubForm_Load() Label1.Caption="结果" Command1(0).Caption="排序" Command1 (1).Caption="返回" T
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上机 编程 练习题
![提示](https://static.bdocx.com/images/bang_tan.gif)