VB课程复习题.docx
《VB课程复习题.docx》由会员分享,可在线阅读,更多相关《VB课程复习题.docx(27页珍藏版)》请在冰豆网上搜索。
![VB课程复习题.docx](https://file1.bdocx.com/fileroot1/2023-1/26/edcdf2b3-e6cb-4e16-9da5-9ce3ad365a76/edcdf2b3-e6cb-4e16-9da5-9ce3ad365a761.gif)
VB课程复习题
1.设a=2,b=5,c=8,计算下列表达式的值:
(1)Not(a>b)1
(2)a+b=cAnda*b>c0
(3)a<>bOrc<>b1
(4)a+c>a+bXorc>b0
(5)3+4\5*6/7Mod8>=90
2.把下列数学表达式写成VB中的表达式:
(1)
(2)2x3+sin450
2、答案:
1、((-b)+sqr(b*b-4*a*c))/(2*a)
2、2*x*x*x+sin45
3.用Rnd产生:
(1)0~100之间的随机数,包括0和100。
(2)15~35之间的随机数,包括15和35。
3、答案:
产生随机数的公式:
INT(Rnd*(M-N+1))+N,产生的随机数范围为:
[N,M]
(1)、Int(Rnd*101)
(2)、Int(Rnd*21)+15
4.利用Format()函数显示有关的日期和时间。
PrivateSubForm_Click()
T1=#8:
30:
25AM#
D1=#8/25/2005#
PrintFormat(D1,"m/d/yy")
PrintFormat(D1,"mmmm-dddd-yyyy")
PrintFormat(T1,"h-m-sAM/PM")
PrintFormat(T1,"hh:
mm:
-ssA/P")
PrintFormat(D1,"dddddd")
PrintFormatDateTime(Now)
EndSub
4、答案显示结果:
8-25-05
August-Thursday-2005
8-30-25-AM
08:
30:
-25A
2005年8月25日星期四
2010-12-2916:
14:
30
5.用Print方法在窗体中输出数据。
PrivateSubForm_Click()
Dima%,b%
a=3:
b=6
Printa;b;a+b
Printa,b,a+b
Print"a=";a,"b=";b,"a+b=";a+b
PrintTab(5);a;Tab(15);b;Tab(25);a+b
PrintSpc(5);a;Spc(5);b;Spc(5);a+b
EndSub
5、输出结果:
3、6、9
3、6、9
a=3b=6a+b=9
3、6、9
369
6.已知三角形的三条边a,b,c的长度,求三角形的面积。
分析:
已知三角形的三条边a,b,c的长度,则可用海伦公式求三角形的面积。
即:
s=
其中:
p=
(a+b+c)
运行界面如图3.8所示。
6、答案源程序:
PrivateSubCommand1_Click()
a=Val(Text1.Text())
b=Val(Text2.Text())
c=Val(Text3.Text())
p=(a+b+c)/2
s=Sqr(p*(p-a)*(p-b)*(p-c))
Text4.Text()=s
EndSub
7.利用随机函数Rnd产生一个三位整数,输出该数的颠倒数。
例如产生的随机数为123,应输出321。
7、答案源程序:
PrivateSubCommand1_Click()
a=Int(Rnd*1012)+100'保证输出的是三位数的随机数'
Print"输出的随机数为:
";a
'颠倒顺序'
b=a\100
c=(a\10)Mod10
d=aMod10
e=d*100+c*10+b
Print"该随机数的颠倒顺序为:
";e
EndSub
8.编写一个程序,判断某一年是否为闰年。
闰年的条件是:
①能被4整除,但不能被100整除的年份。
②或能被400整除的年份。
8、答案源程序:
PrivateSubCommand1_Click()
n=Val(InputBox("输入"))
IfnMod4=0AndnMod100<>0Then
Printn;"是闰年"
ElseIfnMod400=0Then
Printn;"是闰年"
Else
Printn;"不是闰年"
EndIf
EndSub
9.为了节约用电,制定如下随用电量增加而逐级提高电费的收费办法,根据用电量的大小分段计费,标准如表3.3所示。
表3.3用电量与收费标准
用电量X(度)
每度电收费(元)
用电量X(度)
每度电收费(元)
x≤100
1001250.55
0.70
0.85
150175x>200
1.00
1.15
1.30
请设计一个程序,输入一个用户的用电量后即计算出应交的电费。
9、答案源程序:
PrivateSubCommand1_Click()
DimcountAsInteger
count=Val(Text1.Text())
SelectCasecount
Case0To100
Sum=0.55*count
Case101To125
Sum=0.7*count
Case126To150
Sum=0.85*count
Case151To175
Sum=1*count
Case176To200
Sum=1.15*count
CaseElse
Sum=1.3*count
EndSelect
Text2.Text()=Str(Sum)
EndSub
10.编写一个小学生进行四则运算的检验程序。
要求:
每次随机产生两个1~100之间的整数和随机产生一种运算符(+、-、×、÷),由学生进行计算作答,然后计算机对学生的作答结果进行判断,如果正确,在题后打“√”,否则打“×”,并可在程序运行结束前统计答对与答错的题数。
10、答案源代码:
DimResult!
Ntrue%,Nfalse%
PrivateSubForm_Click()‘产生随机数并生成表达式
Dimn1%,n2%,n%,ch$
Randomize
n1=Int(Rnd*100+1)
n2=Int(Rnd*100+1)
n=_____Int(Rnd*4+1)________________‘产生1~4之间的整数(运算符代码)
Select____Casen____________
Case1
ch=”+”:
Result=n1+n2
Case2
ch=”-”:
Result=n1-n2
Case3
ch=”×”:
Result=n1*n2
Case4
ch=”÷”:
Result=n1/n2
End_________Select____________
Picture1.Printn1&ch&n2&“=”;
EndSub
PrivateSubCommand1_Click()‘判断运算结果并输出相应的符号
If___ch=Val(Text1.Text())_________Then
Picture1.PrintText1;Tab(20);”√”
Ntrue=Ntrue+1
Else
Picture1.PrintText1;Tab(20);”×”
Nfalse=Nfalse+1
EndIf
Text1=“”
_____IfNfalse<>0OrNtrue<>0Then__________
Form_Click
EndIf
EndSub
PrivateSubCommand2_Click()‘统计答题情况
Picture1.Print
Picture1.Print“------------------------------------------”
Picture1.Print“答对了”&n1&“道题;”;“答错了”&n2&“道题”
EndSub
11.统计并显示1~100之间所有能够被7整除的数。
每行显示5个数。
11、答案源代码:
PrivateSubCommand1_Click()
Constm=100
Dima(m)AsInteger
x=0
Fori=7To100
IfiMod7=0Then
a(x)=i
Printa(x);
x=x+1
IfxMod5=0ThenPrint
j=j+1
EndIf
Nexti
Print
Print"能被7整除的个数是:
";j
EndSub
12.求n!
,n的值由用户确定。
12、答案源程序:
PrivateFunctionf(nAsInteger)AsInteger
Ifn=1Then
f=1
Else
f=n*f(n-1)
EndIf
EndFunction
PrivateSubCommand1_Click()
DimmAsInteger
m=Val(Text1.Text())
Text2.Text()=Str(f(m))
EndSub
13.打印Fibonacci数列的前20项。
这个数列有如下特点:
第1,2两项为1,1。
从第三项开始,该项是其前面两项之和。
即:
F1=1(n=1)
F2=1(n=2)
Fn=Fn-1+Fn-2(n≥3)
13、答案源代码:
PrivateFunctionFibonacci(a()AsLong)AsInteger
DimiAsInteger,nAsInteger
n=UBound(a)
a
(1)=1
a
(2)=1
Fori=3Ton
a(i)=a(i-1)+a(i-2)
Printa(i-1);a(i-2)
Nexti
EndFunction
PrivateSubCommand1_Click()
Dima()AsLong,nAsInteger
n=InputBox("请输入n的值:
")
ReDima(1Ton)
Fibonaccia()
EndSub
14.求12+22+32+…+n2+…,当其和恰好大于或等于某一整数m时的和及此时的n值。
运行界面如图。
从文本框Text1输入m值,用Command1实现计算,在Picture1中显示结果。
14、答案源程序:
PrivateSubCommand1_Click()
Sum=0
i=0
m=Val(Text1.Text())
DoWhile(Sumi=i+1
Sum=i*i+Sum
Loop
Picture1.Print"1*1+2*2+3*3+...+n*n=";Sum
Picture1.Print"n=",i
EndSub
15.编写一个程序,打印如图所示的图形。
15、答案源代码:
PrivateSubcommand1_click()
Fori=1To5
PrintTab(11-i);
Forj=1To2*i-1
Print"*";
Nextj
Print
Nexti
EndSub
16.编写一程序,输入50名同学的成绩,求最高分、最低分和平均分。
16、答案源代码:
PrivateSubCommand1_Click()
Constn=50
Dima(n)AsInteger
Fori=1Ton
a(i)=Val(InputBox(""))
Sum=Sum+a(i)
Nexti
Avg=Sum/50'算出平均分'
PrintAvg
Max=a
(1)
Fori=2Ton
Ifa(i)>MaxThenMax=a(i)
Nexti
PrintMax'算最高分'
Min=a
(1)
Fori=2Ton
Ifa(i)Nexti
PrintMin'最低分'
EndSub
17.输入某学生的某科目考试成绩(100分制),输出该生的成绩等级。
90分以上为“优秀”,80~89分为“良好”,70~79分为中等,60~69分为“及格”,60分以下为“不及格”。
17、答案源程序:
PrivateSubCommand1_Click()
grade=Val(InputBox(""))
SelectCasegrade
Case90To100
Print"优秀"
Case80To89
Print"良好"
Case70To79
Print"中等"
Case60To69
Print"及格"
CaseElse
Print"不及格"
EndSelect
EndSub
18.编写一程序,输入一段英文文本,统计各字母出现的次数(大小写字母不区分)并显示其结果。
18、答案源程序:
PrivateSubCommand1_Click()
DimnwAsInteger,iAsInteger,nAsString
DimstAsString,charAsString,lastAsString
st=Text1.Text():
last="":
n=Len(st)
Fori=1Ton
char=Mid(st,i,1)
IfUCase(char)>="A"AndUCase(char)<="Z"Then
nw=nw+1
SelectCaselast
Case"",",",";",".",Chr(13),Chr(10)’碰到空格就减去空格’
nw=nw-1
EndSelect
EndIf
last=char
Nexti
Label1.Caption="共有词数:
"&nw
EndSub
19.输入10名同学的成绩,分别用选择法和起泡法对其按升序(由小到大)排序。
19、答案源代码:
1、选择法排序:
PrivateSubCommand1_Click()
Constn=10
Dima(n)AsInteger
ForI=1To10
a(I)=Val(InputBox(""))
NextI
Forj=1Ton-1
p=j
Fork=j+1Ton
Ifa(p)>a(k)Thenp=k
Nextk
temp=a(j):
a(j)=a(p):
a(p)=temp
Nextj
ForI=1To10
Printa(I);
NextI
EndSub
2、起泡法排序:
PrivateSubCommand1_Click()
Constn=10
Dima(n)AsInteger
ForI=1To10
a(I)=Val(InputBox(""))
NextI
Forj=1Ton-1
Fork=1Ton-j
Ifa(k)>a(k+1)Then
temp=a(k):
a(k)=a(k+1):
a(k+1)=temp
EndIf
Nextk
Nextj
ForI=1To10
Printa(I);
NextI
EndSub
20.随机生成10个两位数的随机整数,存于数组a中,然后向数组中的指定位置插入一个指定的两位整数,如果指定位置小于或等于零,则将指定的数插在数组的第一个位置,如果指定位置大于现有数据的个数,则将指定的数插在数组的最后一个位置。
20、答案源代码:
PrivateSubCommand1_Click()
Constn=10
Dima(n)AsInteger
Fori=1To10
a(i)=Int(Rnd*52+10)
Nexti
Fori=1To10
Form1.Printa(i);
Nexti
p=Val(InputBox("输入插入二位数的位置",p))
q=Val(InputBox("输入二位数",q))
Ifp<=0Then
a
(1)=q
ElseIfp>=10Then
a(10)=q
EndIf
Print
Fori=1To10
Printa(i);
Nexti
EndSub
21.有5个班(假设每班学生均为8人)参加某科目的考试,编写一个程序求出考试成绩最高分的学生,即要求找出该学生所在的班号以及在班中的学号。
21、答案源程序:
PrivateTypeStu
clnoAsInteger'班级号'
stnoAsInteger''
scoreAsInteger''
EndType
PrivateSubCommand1_Click()
Dima(40)AsStu'四十个人的信息'
DimxAsInteger
DimzAsInteger
DimmaxsAsInteger
x=1
z=2001
Fori=1To40
a(i).clno=x'5个班级'
x=x+1
IfxMod5=0Then
x=1
EndIf
a(i).score=Int(Rnd*78+10)'成绩随机'
a(i).stno=z+Int(Rnd*25+1)'学号按顺序生产'
Nexti
maxs=a
(1).score
Forj=1To40
Ifmaxsmaxs=a(j).score
EndIf
Nextj
Fork=1To40
Ifmaxs=a(k).scoreThen
p=k
EndIf
Nextk
Print"本科最高分的学生的班级是"&a(p).clno;"班;";"学号是:
"&a(p).stno;"成绩是:
"&a(p).score
EndSub
22.某班级学生的某科目成绩存放在一个自定义数据类型数组A中,A中的每一个元素的类型为自定义数据类型Student,其中的成员有学号(num)、姓名(name)、成绩(Score)。
试编写一个程序,用数组A模拟学生成绩库,建立成绩库的过程就是输入数据成员的过程。
数据的输入通过文本框实现。
此外,要求程序具有插入数据和求学生成绩平均分的功能。
界面设计如图所示.
22、答案源代码:
Dima()AsStudent
PrivateTypeStudent
NumAsLong
NamAsString
ScoreAsSingle
EndType
PrivateSubCommand1_Click()
Do
DimnoAsLong,nmAsString,scAsSingle
no=Val(InputBox("请输入学号"))
Ifno=0ThenExitDo
nm=InputBox("请输入姓名")
IfLen(nm)=0ThenExitDo
sc=Val(InputBox("请输入成绩"))
Ifsc=0ThenExitDo
ReDimPreservea(UBound(a)+1)
Witha(UBound(a))
.Nam=nm
.Num=no
.Score=sc
Picture1.Print.Num,.Nam,.Score
EndWith
Loop
EndSub
PrivateSubCommand2_Click()
DimiAsLong,sAsSingle
Fori=1ToUBound(a)
s=s+a(i).Score
Next
Picture1.Print"学生成绩平均分为"&s/(i-1)
EndSub
PrivateSubCommand3_Click()
p=Val(InputBox("输入追加学生的学号",p))
Fork=1ToUBound(a)
Ifp<>a(k).NumThen
MsgBox"您所要追加的学生的学号有误"
ExitFor
Else
q=Val(InputBox("请输入追加的成绩",q))
a(k).Score=q
EndIf
Nextk
EndSub
PrivateSubForm_Load()
ReDima(0)
Command1.Caption="插入数据"
Command2.Caption="求平均分"
Command3.Caption="追加"
EndSub
23.为输入的文本加密。
基本原理:
将英文字符的ASCII码加上某个值,使其变成另外一个字符,实现加密。
解密的过程则是加密的逆操作。
完成以下填空,使各过程函数实现加密解密操作。
PublicFunctionff(chAsString)‘加密函数
DimaAsString,bAsString,cAsString
Dimn%
n=Len(ch)
Fork=1Ton
b=Mid$(ch,k,1)
c=Chr$(Asc(b)+3)
a=a&c
Nextk
ff=a
EndFunction
PublicFunctionffff(chAsString)AsString‘解密函数
DimaAsString,bAsString,cAsString
Dimn%