VB课程复习题.docx

上传人:b****6 文档编号:7922379 上传时间:2023-01-27 格式:DOCX 页数:27 大小:82.87KB
下载 相关 举报
VB课程复习题.docx_第1页
第1页 / 共27页
VB课程复习题.docx_第2页
第2页 / 共27页
VB课程复习题.docx_第3页
第3页 / 共27页
VB课程复习题.docx_第4页
第4页 / 共27页
VB课程复习题.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

VB课程复习题.docx

《VB课程复习题.docx》由会员分享,可在线阅读,更多相关《VB课程复习题.docx(27页珍藏版)》请在冰豆网上搜索。

VB课程复习题.docx

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

100

125

0.55

0.70

0.85

150

175

x>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(Sum

i=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

Ifmaxs

maxs=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%

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

当前位置:首页 > 高等教育 > 工学

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

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