7.要使循环体至少执行一次,应使用(D)循环。
A、For…NextB、While…Wend
C、Do…Loop[While/Until]D、Do[While/Until]…Loop(先做在判断,所以会执行一次的)
8.下面程序段求两个数中的大数,不正确的语句是(D)。
A、Max=Iif(x>y,x,y)B、ifx>yThenMax=xElseMax=y
C、Max=xD、ify>=xThenMax=y(Else)
Ify>=xThenMax=yMax=x
9.以下条件语句错误的是(A)。
A、IfXThenY=Y+1B、IfX=0ThenY=0
C、IfX>0ThenY=1:
PrintYD、IfX>YThenPrintYEndIf
10.若要求从文本框中输入密码时在文本框中只显示*号,则应用在此文本框的属性窗口中设置(D)。
A、Text属性值为* B、Caption属性值为*
C、Password属性值为空 D、PasswordChar属性值为*
11.设置标签Label1的属性使它不可见的语句是(D)。
A、=-1B、=1
C、=trueD、=False
12.修改控件属性,既可以使用属性窗口,也可以通过(D)为控件属性赋值。
A、属性B、事件C、方法D、代码
13.在程序代码中引用一个控件时,应使用控件的(B)属性。
A)CaptionB)NameC)TextD)Index
14.若要获得列表框中被选中的列表框的内容,可以通过访问(B)属性来实现。
A)NameB)ListIndexC)ListCountD)Text
15.以下叙述中正确的是(B)。
16.A.一个Sub过程至少要一个ExitSub语句(×)
17. B.一个Sub过程必须有一个EndSub语句
18. C.可以在Sub过程中定义一个Function过程,但不能定义Sub过程
19. D.调用一个Function过程可以获得多个返回值
二、填空题(共8空,每空2分,共16分)
1.InputBox函数返回值的类型为string。
2.与事件相关的一段程序代码称为事件过程代码。
3.循环语句FORk=2TO30STEP5使循环体执行的次数是6。
4.可表示[50,100]之间的随机数的语句是int(rnd*51+50)。
5.Print方法分区输出时,用逗号分隔多个表达式。
当输出多个表达式或字符串时,各表达式用分隔符(逗号、分号或空格)隔开。
如果输出的各表达式之间用逗号分隔,则按标准输出格式(分区输出格式)显示数据项。
6.强制性退出For…Next循环的语句是exitfor。
7.当程序运行时,要求窗体中的文本框呈现空白,则在设计时,应当在此文本框的属性窗口中,把此文本框的caption属性设置成空白。
8.为了把焦点移到某个指定的控件,所使用的方法是setfocus。
三、基本操作题(共2小题,每小题10分,共20分)
1.打开工程文件,完成以下操作,并以原文件名保存。
P65
[1]设置窗体运行后出现在屏幕中心;(2分)
[2]设置口令的长度小于等于6;(3分)
[3]设置输入的口令以“*”显示;(3分)
[4]设置“确定”按钮为缺省按钮。
(2分)
2.打开工程文件,完成以下操作,并以原文件名保存。
P111
[1]在文本框中输入课程名称,单击“添加”按钮,将该课程添加到列表框中,并清文本框的内容;(3分)
[2]选中列表框某课程,单击“删除”按钮,将选中的课程从列表框中删除;(4分)
[3]单击“清除”按钮,清除列表框中的所有课程。
(3分)
四、程序填空(共4小题,每小题2空,每空3分,共24分)
说明:
打开已有的工程文件,根据要求实现的功能,在“”处用相应的代码代替(不得删除原有的代码,必须在处填写),使程序能正常运行。
1.打开考试目录下的“”,完善程序并保存。
要求:
(1)圆的半径r利用InputBox函数从键盘输入(r>0)。
(2)圆周率定义为符号常量。
(3)求圆的周长lenth和面积area。
(4)用Print方法输出圆的周长和面积。
原程序:
PrivateSubCommand1_Click()
DimrAsSingle
DimlenthAsSingle,areaAsSingle
ConstPI=
r=Val(InputBox(“圆的半径”,0)
lenth=2*PI*r
area=PI*r*r
Print"半径=";r,"周长=";lenth,"面积=";area
EndSub
2.打开考试目录下的“”,完善程序并保存。
要求实现功能:
利用DoWhile…Loop语句求s=12+22+…+1002。
(运行效果如下图所示)。
原程序:
PrivateSubCommand1_Click()
DimnAsInteger,sAsLong
n=1:
s=0
DoWhilen<101
s=s+n*n
n=n+1
Loop
Print"s=";s
EndSub
3.打开考试目录下的“”,完善程序并保存。
已知计算机等级考试的百分制成绩mark,要求用SelectCase语句将百分制成绩mark转换成对应五级制的评定grade。
评定条件如下:
mark≥85,优
60≤mark<85,合格
mark<60,不合格
要求实现功能:
用文本框输入成绩mark,在图片框中用print方法输出评定结果grade的值。
当单击清除按钮时,会清除文本框及图片框显示的内容(运行效果如下图所示)。
原程序:
PrivateSubCommand1_Click()
DimaAsInteger
a=Val(Text1)
SelectCasea
CaseIs>=85
grade="优"
Case60To84
grade="合格"
CaseIs<=59
grade="不合格"
EndSelect
"成绩评定为:
";grade
EndSub
PrivateSubCommand2_Click()
Text1=""
Picture1.Cls
EndSub
4.打开考试目录下的“”,完善程序并保存。
要求实现的功能是:
从键盘上输入若干个学生的考试分数,当输入负数时结束输入,然后输出其中的最高分数和最低分数。
(运行效果如下图所示)。
原程序:
PrivateSubCommand1_Click()
DimxAsSingle,amaxAsSingle,aminAsSingle
x=InputBox("Enterascore")
amax=x
amin=x
DoWhilex>0
Ifx>amaxThen
amax=x
EndIf
Ifx<=aminThen
amin=x
EndIf
x=InputBox("Enterascore")
Loop
Print"最高分=";amax,"最低分=";amin
EndSub
五、程序设计题(10分)
编写程序实现以下功能:
随机生成10个两位整数,求数组元素之和sum及平均值aver,然后先按原顺序输出数组各元素,再按相反的顺序输出数组各元素,并输出元素之和sum及平均值aver。
工程文件命名为,窗体文件命名为,程序运行界面如图5-1所示。
(10分)
图5-1程序运行界面
1.求随机10个整数的最大值、最小值、平均值以及和;
Dima(1To10)
PrivateSubCommand1_Click()
Randomize
"产生的随机数为:
"
Fori=1To10
a(i)=Int(Rnd*99+1)
a(i);
Nexti
EndSub
PrivateSubCommand2_Click()
Dimmax,min,ave
max=a
(1)
min=a
(1)
ave=*a
(1)
Fori=2To10
Ifa(i)>maxThenmax=a(i)
Ifa(i)ave=ave+*a(i)
Nexti
"最大数为:
";max
"最小数为:
";min
"平均数为:
";ave
EndSub
2.求水仙花数
PrivateSubForm_Click()
Dima,b,cAsInteger'a(个)b(十)c(百)
Fora=0To9
Forb=0To9
Forc=1To9
Ifa^3+b^3+c^3=a+10*b+100*cThen
MsgBox100*c+10*b+a
EndIf
Nextc
Nextb
Nexta
EndSub
3.百元买百鸡问题;
OptionExplicit
Consta=5,b=3,c=1
PrivateSubForm_Activate()
DimiAsInteger,jAsInteger,kAsInteger,nAsInteger
Fori=1To100
Forj=1To100
Fork=1To100
Ifi*a+j*b+k*c=100Then
n=n+1
"公鸡:
"&i&"母鸡:
"&j&"小鸡:
"&k
EndIf
Next:
Next:
Next
MsgBox"共有组合:
"&n
EndSub
求1000以内的所有完数
一个按钮里调用的过程
PrivateSubCommand1_Click()
OutputWanNumber1000
EndSub
4.'求完数的过程
PrivateSubForm_Click()
Dimi,jAsInteger
Fori=4To100
temp=1
Forj=2Toi/2
IfiModj=0Then
temp=temp+j
EndIf
Nextj
Iftemp=iThen
Printi
EndIf
Nexti
EndSub
5.求各位数字之和
inputa:
'输入任意数
do
b=amod10:
'取a的末位数
sum=sum+b:
'求和
a=a\10:
'去掉末位数
loopuntila=0
print"sum=";sum:
'输出
end
(dimnasstring
inputn
fori=1tolen(n)
sum=sum+val(mid(n,i,1))
nexti
printsum)
6.求最小公倍数
PrivateSubForm_Load()
=True
Dimn1%,m1%,m%,n%,r%
n1=InputBox("输入n1")
m1=InputBox("输入m1")
Ifm1>n1Then'为了求最小公倍数,增加m,n变量
m=m1:
n=n1
Else
m=n1:
n=m1
EndIf
Do
r=mModn
Ifr=0ThenExitDo
m=n
n=r
Loop
Printn1;",";m1;"的最大公约数为";n
Print"最小公倍数=",m1*n1/n
EndSub
7.求逆序数(感觉题目类型太多)
8.级数有限项求和问题(题目类型太多)
9.求质因子问题
PrivateSubCommand1_Click()
DimNAsInteger,IAsInteger
N=Val(InputBox("请输入2的整数:
"))
I=2
Do
IfNModI=0Then
PrintI;
N=N\I
Else
I=I1
EndIf
LoopWhileN1
EndSub
10.字符统计
OptionBase1
OptionExplicit
PrivateSubCommand1_Click()
Dimiasinteger,A(26)asinteger,nasinteger
DimSasstring*1,Strlasstring
Strl=Text1
n=Len(Strl)
Fori=1Ton
S=Mid(Strl,i,1)
IfUCase(S)>=”A”AndUCase(S)<=”Z”Then
A(Asc(UCase(S))-64)+1
EndIf
Nexti
Fori=1To26
Chr(64+i)&“:
”&A(i)
Netxi
EndSub
PrivateSubCommand_Click()
End
EndSub
第二大题
1.判定素数过程
Functionisprime(NumAsLong)AsBoolean
IfNum<2Thenisprime=False:
ExitFunction
DimiAsLong
Fori=2ToSqr(Num)
If(NumModi)=0Then
isprime=False
ExitFunction
EndIf
Nexti
isprime=True
EndFunction
PrivateSubCommand1_Click()
DimiAsLong
Fori=1To1000
Ifisprime(i)Then
Printi
EndIf
Nexti
EndSub
2.求最大公约数过程;
FunctionMax公约数(AAsLong,BAsLong)'求出两个数的最大公约数
DimXAsLong,YAsLong,KAsLong
X=IIf(A>=B,A,B)'x存入最大值
Y=IIf(A<=B,A,B)'y存入最小值
Do'辗转相除法
K=XModY:
IfK=0ThenExitDo
X=Y:
Y=K
Loop
Max公约数=Y
EndFunction
3.冒泡排序过程
PrivateSubCommand1_Click()
Dima(9)AsInteger
DimiAsInteger
Fori=0To9
a(i)=InputBox("输入整数")
Next
Sorta
Fori=0To9
Printa(i)
Next
EndSub
PrivateSubSort(ByRefa()AsInteger)
DimiAsInteger
DimjAsInteger
DimtAsInteger
Fori=LBound(a)+1ToUBound(a)
Forj=UBound(a)ToiStep-1
Ifa(j-1)>a(j)Then
t=a(j-1)
a(j-1)=a(j)
a(j)=t
EndIf
Next
Next
EndSub
4顺序查找过程
PrivateSubCommand1_Click()
Dimi,j,t,a(1To10)
Randomize
Print"原数组:
"
Fori=1To10
a(i)=Rnd*10
Print"a("&i&")="&a(i)&Space
(2),
IfiMod2=0ThenPrint
Nexti
Print
Fori=1To9
Forj=i+1To10
Ifa(j)t=a(i)
a(i