秋VB.docx

上传人:b****7 文档编号:9417707 上传时间:2023-02-04 格式:DOCX 页数:49 大小:197.60KB
下载 相关 举报
秋VB.docx_第1页
第1页 / 共49页
秋VB.docx_第2页
第2页 / 共49页
秋VB.docx_第3页
第3页 / 共49页
秋VB.docx_第4页
第4页 / 共49页
秋VB.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

秋VB.docx

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

秋VB.docx

秋VB

VisualBasic程序设计(2008秋)

一、选择题(用答题卡答题,答案依次填在21~30答题号内)

21.窗体上有若干命令按钮和一个文本框,程序运行时焦点置于文本框中,为了在按下回车键时执行某个命令按钮的Click事件过程,需要将该按钮的21属性设置为True。

A.EnabledB.Default

C.CancelD.Visible

22.执行以下语句时,会出现错误提示的是22。

A.Print“2b3”+12.5B.Print“12.5”+12

C.Print“12.5”&12.5D.Print“2e3”+12

23.数学表达式

对应的VB表达式是23。

A.Abs(e^x+Sin(30)^3)/Sqr(x+y))

B.Abs(Exp(x)+Sin(30)^3)/(Sqr(x+y))

C.Abs(e^x+Sin(30*3.14159/180)^3)/(Sqr(x+y))

D.Abs((Exp(x)+Sin(30*3.14159/180)^3)/Sqr(x+y))

24.下面的表达式中,有24个能够对Single类型变量x的第3位小数,正确地进行四舍五入计算。

Format(x,"#.00")Int(100*(x+0.005))/100

CInt(100*(x+0.005))/100Fix(100*(x+0.005))/100

A.1个B.2个C.3个D.4个

25.下面有关数组处理的叙述中,正确的是25。

A.在过程中使用ReDim语句可以改变动态数组数据的类型

B.在过程中,可以使用Dim、Private和Static语句来定义数组

C.用ReDim语句重新定义动态数组时,可以改变数组的大小,但不能改变数组的维数

D.不可以用Public语句在窗体模块的通用处说明一个全局数组。

26.下列关于菜单的说法中,错误的是___26_____。

A.每一个菜单项就是一个对象,并且可设置自己的属性和事件

B.菜单项不可以响应DblClick事件

C.VB6.0允许创建超过四级的子菜单

D.程序执行时,如果要求菜单项是灰色,不能被用户选择,则应设置菜单项的Enabled属性为False

27.以下关于Function过程的说法中,错误的是___27____。

A.Function过程名可以有一个或多个返回值

B.在Function过程内部不得再定义Function过程

C.Function过程中可以包含多个ExitFunction语句

D.可以像调用Sub过程一样调用Function过程

28.以下Case语句中,错误的是___28_____。

A.Case0To10B.CaseIs>10

C.CaseIs>10AndIs<50D.Case3,5,Is>10

29.下面的表达式中,运算结果为True的是29。

A."abcrd"<="ABCRD"B.Int(134.69)<=CInt(134.69)

C.3>2>1D.Mid("Visual",1,4)=Right("lausiV",4)

30.设计界面时,要使一个文本框具有水平和垂直滚动条,应先将其30属性置为True,再将ScrollBar属性设置为3。

A.MultiLineB.AutoSizeC.AlignmentD.RightToLeft

二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行)

1.执行下面程序,单击Command1,则数组元素a(1,2)的数值是

(1),a(3,3)的数值是

(2),图片框中最后一行显示的是(3)。

OptionExplicit

PrivateSubCommand1_Click()

Dima(4,4)AsInteger,iAsInteger,jAsInteger

DimkAsInteger,numAsInteger

num=0

Fork=1To4

Fori=1Tok-1

num=num+1

a(i,k)=num

Nexti

Forj=kTo1Step-1

num=num+1

a(k,j)=num

Nextj

Nextk

Fori=1To4

Forj=1To4

Picture1.PrintRight(""&a(i,j),3);

Nextj

Picture1.Print

Nexti

EndSub

2.执行下面程序,单击Command1,窗体上显示的第一行是(4),第二行是(5),第四行是(6)。

OptionExplicit

PrivateSubCommand1_Click()

DimaAsInteger,bAsInteger,iAsInteger

a=2:

b=5

Fori=aToa*bStepa

Callsub1(i,a,b)

Printa,b

Nexti

Printa,b,i

EndSub

PrivateSubsub1(iAsInteger,aAsInteger,bAsInteger)

i=i+1

a=a+1

b=b+1

EndSub

3.运行下面的程序,单击Command1,在窗体上显示的变量a的值为(7),变量b的值为

(8),变量c的值为(9)。

OptionExplicit

PrivateSubCommand1_Click()

DimaAsInteger,bAsInteger,cAsInteger

a=5:

b=10:

c=15

Printfun(a,b,c)+fun(a,b,c)

Printa,b,c

EndSub

PrivateFunctionfun(xAsInteger,yAsInteger,zAsInteger)AsInteger

z=x

x=x+y

y=y+z

fun=x+y

EndFunction

4.执行下面的程序,单击Command1,窗体上显示的第一行是(10),第二行是(11),第四行是(12)。

OptionExplicit

PrivateSubCommand1_Click()

DimaAsInteger,bAsInteger

a=1:

b=1

Callsub1(a,b)

Printa,b

EndSub

PrivateSubsub1(aAsInteger,bAsInteger)

a=a+b:

b=b+a

Printa,b

Ifa>10Then

a=a+b

b=b+a

Else

Callsub1(a,b)

EndIf

EndSub

5.运行下列程序,单击Command1,在窗体上显示的第一行内容是(13),第二行的内容是

(14),第三行的内容是(15)。

OptionExplicit

PrivateSubCommand1_Click()

DimsAsString

s="Basic"

Calltrans(s)

EndSub

PrivateSubtrans(sAsString)

DimjAsInteger,tAsString

DimkAsInteger

k=3

Do

j=InStr(s,"a")

t=LCase(Right(s,j))

s=Right(t,Len(s)-k)&Left(s,Len(t))

k=k-1

Prints

LoopUntilk=0

EndSub

6.下面程序的功能是计算

的值。

请完善如下程序:

OptionExplicit

PrivateSubCommand1_Click()

DimnAsInteger,stAsString,iAsInteger

DimkAsSingle,sAsSingle,jAsInteger

n=Text1

s=1

Fori=2Ton

(16)

Forj=1Toi

st=st&CStr(i)

Nextj

k=(17)

s=s+k

Nexti

Text2=s

EndSub

7.下面程序的功能是:

将输入的2位16进制数的每一位转换为一个四位的2进制数,再组合成为一个8位的2进制数。

OptionExplicit

PrivateSubCommand1_Click()

DimhAsString,h1AsString*1,h2AsString*1

h=Text1

h1=Left(h,1):

h2=Right(h,1)

Text2=h2b(h1)&h2b(h2)

EndSub

PrivateFunctionh2b(pAsString)AsString

DimstAsString,iAsInteger

st="0123456789ABCDEF"

Fori=1ToLen(st)

If(18)ThenExitFor

Nexti

i=i-1

Do

h2b=(19)

i=i\2

LoopUntili<=0

h2b=(20)

EndFunction

8.下面程序的功能是:

输入一个n位的整数(n≤10),求出由这n个数字组成的最大整数和最小整数。

OptionExplicit

OptionBase1

PrivateSubCommand1_Click()

DimnAsLong,a()AsInteger,iAsInteger

DimlargeAsString,smallAsString

n=Text1

Callchange(n,a)

Callsort(a)

Fori=1ToUBound(a)

large=a(i)&large

small=(21)

Nexti

Text2=large

Fori=1ToLen(small)

If(22)ThenExitFor

Nexti

Ifi<>1Then

small=Mid(small,i,1)&Left(small,i-1)&Right(small,Len(small)-i)

EndIf

Text3=small

EndSub

PrivateSubsort(a()AsInteger)‘冒泡法排序

DimiAsInteger,jAsInteger,tAsInteger

Fori=1ToUBound(a)-1

Forj=1ToUBound(a)-i

If(23)Then

t=a(j)

a(j)=a(j+1)

a(j+1)=t

EndIf

Nextj

Nexti

EndSub

PrivateSubchange((24))

DimkAsInteger

Do

k=k+1

ReDimPreservea(k)

a(k)=nMod10

n=(25)

LoopUntiln=0

EndSub

9.下面程序的功能是:

在文本框1中输入若干以空格分隔的整数(末尾无空格),程序自动将输入的数据分解并存储到一个一维数组,再把数组中所有重复的元素删除(只保留一个),并输出到文本框2。

OptionExplicit

OptionBase1

PrivateSubCommand1_Click()

Dima()AsInteger,iAsInteger,stAsString

DimkAsInteger,pAsInteger

st=Text1

Do

p=InStr(st,"")

Ifp<>0Then

(26)

ReDimPreservea(k)

a(k)=Val(Left(st,p-1))

st=Right(st,Len(st)-p)

Else

(27)

a(k+1)=Val(st)

EndIf

LoopUntil(28)

Calldel(a)

Fori=1ToUBound(a)

Text2=Text2&Str(a(i))

Nexti

Text2=LTrim(Text2)

EndSub

PrivateSubdel(a()AsInteger)

DimiAsInteger,jAsInteger,kAsInteger

Do

i=i+1

j=i+1

DoWhilej<=UBound(a)

If(29)Then

Fork=jToUBound(a)-1

a(k)=a(k+1)

Nextk

ReDimPreservea(UBound(a)-1)

Else

(30)

EndIf

Loop

LoopUntili>UBound(a)

EndSub

2008秋上机VB01

【考试须知】

1.改错题的界面不作要求,主要用来调试程序,若题目中有参考界面,则仅作参考;

2.考试结束后,文件必须存放在指定位置,否则适当扣分;考试盘中若无指定文件,则不予评分;

3.程序代码书写应呈锯齿形。

一、改错题(14分)

【题目】本程序的功能是:

随机生成一个有n个元素的数组(n由InputBox函数输入),找出其中的最大元素并将它删除,再输出删除后的数组。

OptionExplicit

OptionBase1

Dima()AsInteger,nAsInteger

PrivateSubCommand1_Click()

DimiAsInteger

n=InputBox("请输入数组个数",,10)

ReDima(n)

Fori=1Ton

a(i)=Int(Rnd*100)+1

Text1=Text1&Str(a(i))

Nexti

CallLookup(a)

Fori=1Ton

Text2=Text2&Str(a(i))

Nexti

EndSub

PrivateSubLookup(a()AsInteger)

DimMaxvAsInteger,maxpAsInteger,iAsInteger

Maxv=a

(1):

maxp=1

Fori=2Ton

Ifa(i)>MaxvThen

Maxv=a(i):

maxp=i

EndIf

Nexti

Callmove_f(a,maxp)

EndSub

PrivateSubmove_f(a()AsInteger,kAsInteger)

DimiAsInteger

Fori=k+1ToUBound(a)

a(i)=a(i+1)

Nexti

ReDima(UBound(a)-1)

EndSub

【要求】

1.新建工程,输入上述代码,改正程序中的错误;

2.改错时,不得增加或删除语句,但可适当调整语句位置;

3.将窗体文件和工程文件分别命名为F1和P1,并保存到T盘的根目录下。

二、编程题(26分)

【题目】编写程序,找出指定范围[a,b]之间所有能构成幻影素数的数。

所谓幻影素数是指自身为素数,其反序数也是素数的数。

例如107与701都是素数,所以107是幻影素数。

【编程要求】

1.程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见;

2.

运行程序,在文本框A和文本框B中输入指定数据范围,再按“运行”按钮,将找出的幻影素数存放在列表框中(若指定区间无幻影素数,则输出“本区间无幻影素数”)。

按“清除”按钮,将文本框和列表框清空,焦点置于文本框A上;

3.程序中应定义一个名为prime的函数过程,用于判断一个整数是否为素数;再定义一个求一个整数的反序数的通用过程。

【要求】

将窗体文件和工程文件分别命名为F2和P2,并保存到T盘的根目录下。

VB02

【考试须知】

1.改错题的界面不作要求,主要用来调试程序,若题目中有参考界面,则仅作参考;

2.考试结束后,文件必须存放在指定位置,否则适当扣分;考试盘中若无指定文件,则不予评分;

3.

程序代码书写应呈锯齿形。

一、改错题(14分)

【题目】本程序的功能是查找80~150范围内的特殊十进制数据,其特点是该十进制数对应的8进制数为回文数(指从左向右读与从右向左读是一样的数)。

例如十进制数据105对应八进制数为151,151属于回文数,所以105就是符合要求的数。

OptionExplicit

PrivateSubCommand1_Click()

DimiAsInteger,hwAsString,fgAsBoolean

DimstAsString

Fori=80To150

fg=False

Callhw8(i,hw,fg)

IffgThen

st=CStr(i)&"==>"&hw&"&O"

List1.AddItemst

EndIf

Nexti

EndSub

PrivateSubhw8(nAsInteger,hwAsString,fAsBoolean)

DimkAsInteger,st()AsString*1,iAsInteger

hw=""

Do

k=k+1

ReDimPreservest(k)

st(k)=nMod8

hw=st(k)&hw

n=n\8

LoopUntiln<0

Fori=1ToUBound(st)/2

Ifst(i)<>st(UBound(st)-i+1)ThenExitFor

Nexti

f=True

EndSub

【要求】

1.新建工程,输入上述代码,改正程序中的错误;

2.改错时,不得增加或删除语句,但可适当调整语句位置;

3.将窗体文件和工程文件分别命名为F1和P1,并保存到T盘的根目录下。

二、编程题(26分)

【题目】编写程序,验证任意一个不超过9位的自然数,经过下述的反复变换最终得到123。

变换方法是:

统计该数的偶数(0算偶数)个数记为a,奇数个数记为b,该数位数记为c;以a为百位数、b为十位数、c为个位数,得到一个新数(若a=0,则以b为百位数、a为十位数),若这个新数不是123,再按上述步骤进行变换,直到出现123为止。

123被称为陷阱数。

【编程要求】

1.程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见;

2.

运行程序,在文本框1中任意输入一个不超过9位的自然数后,按“验证”按钮,则根据变换规则生成新数,将其输出到列表框,重复变换操作,直到得到123为止,最后输出“验证成功”信息;按“清除”按钮,将文本框和列表框清空,焦点置于文本框上;按“结束”按钮,结束程序运行;

3.程序中应定义一个名为Validate的通用过程,用于对数据进行变换操作。

【要求】

将窗体文件和工程文件分别命名为F2和P2,并保存到T盘的根目录下。

 

VB03

【考试须知】

1.改错题的界面不作要求,主要用来调试程序,若题目中有参考界面,则仅作参考;

2.考试结束后,文件必须存放在指定位置,否则适当扣分;考试盘中若无指定文件,则不予评分;

3.程序代码书写应呈锯齿形。

一、改错题(14分)

【题目】本程序的功能是将密文解密。

密文中被非数字字符分隔的连续的数字是5进制数,每个5进制数对应一个明文字符的ASCII代码。

例如5进制数242对应的ASCII代码值是72,也就是字母“H”,密文末尾以非数字字符结束。

OptionExplicit

OptionBase1

PrivateSubCommand1_Click()

DimmwAsString,stAsString,iAsInteger

DimpAsString,t()AsString,kAsInteger

mw=Text1

Fori=1ToLen(mw)

p=Mid(mw,i,1)

st=""

Ifp>="0"Andp<="4"Then

st=st&p

ElseIfLen(st)<>0Then

k=k+1

ReDimt(k)

t(k)=st

EndIf

Nexti

Fori=1ToUBound(t)

k=convert(t(i))

st=st&Chr(k)

Nexti

Text2=st

EndSub

PrivateFunctionconvert(pAsString)AsInteger

DimiAsInteger,kAsInteger,nAsInteger

Fori=Len(p)To1

n=n+Val(Mid(p,i,1))*5^k

k=k+1

Nexti

convert=

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

当前位置:首页 > 成人教育 > 自考

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

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