高中信息技术VB专项题 学考.docx
《高中信息技术VB专项题 学考.docx》由会员分享,可在线阅读,更多相关《高中信息技术VB专项题 学考.docx(12页珍藏版)》请在冰豆网上搜索。
高中信息技术VB专项题学考
1.“四叶玫瑰数”是指一个四位自然数各位上数字的四次方之和等于该四位数本身的数。
如自然数8208=84+24+84”,那它就是一个“四叶玫瑰数”。
现用VB编写一个程序,实现如下功能:
单击“查找”按钮Command1,在列表框List1中显示所有“四叶玫瑰数”,并在标签Label2中显示找到的个数,运行界面如下图所示:
(1)为实现上述功能,请在画线处填入正确的代码。
PrivateSubCommand1_Click( )
DimiAsInteger,sAsInteger
DimaAsInteger,bAsInteger,cAsInteger,dAsInteger
s=0
Fori=1000To9999
① '取出个位数字?
b=(iMod100)\10'取出十位数字
c=i\100Mod10'取出百位数字
d=i\1000'取出千位数字
Ifa^4+b^4+c^4+d^4=iThen
i
s= ② ?
EndIf
Next
=″四叶玫瑰数共有″+Str(s)+″个″
EndSub
(2)程序中的语句“b=(iMod100)\10”和下列哪些项功能相同 (多选)。
?
=i\10Mod10=int(i/10)Mod10
=iMod100\10=Mid(i,3,1)
2、用VB设计一个奇数迁移的程序,具体要求是:
单击“产生”按钮Command1,清空两个列表框中的内容,并产生10个3位自然数放入左边列表框List1中,如图1所示。
单击“奇数迁移”按钮Command2,将列表框List1中的所有奇数迁移到列表框List2中,如图2所示。
图1图2
在以下VisualBasic程序的画线①②处填入合适的语句,实现上述功能。
Dima(1To10)AsInteger
PrivateSubCommand1_Click()
Randomize
Fori=1To10
a(i)=Int(Rnd()*900+100)
① ?
Nexti
EndSub
PrivateSubCommand2_Click()
Fori= ② ?
Ifa(i)Mod2=1Then
a(i)
Else
a(i)
EndIf
Nexti
EndSub
3、小贝用VB6语言编写了一个拼手气红包程序,实现的功能是:
在文本框Text1中输入发放红包的总金额s,在文本框Text2中输入发放红包的个数n,单击“发放红包”按钮Command1,为n个红包随机分配金额,并在列表框List1中显示分配后的这些金额。
界面如图1所示。
图1
图2
(1)在设计应用程序界面时,应使用图2所示“控件工具箱”中的 (填写相应编号)添加列表框List1。
?
(2)为实现上述功能,请在横线①②③处填入合适代码。
PrivateSubCommand1_Click()
DimsAsSingle,xAsSingle,nAsInteger,iAsInteger
Randomize
s= ① ?
n=Val
Fori=1To ② '通过循环语句产生n-1个红包的随机值?
x=Int((Rnd()*s/(n-i)+*100)/100
Str(x)
s= ③ ?
Next i
x=Int((s+*100)/100 '产生最后一个红包
Str(x)
End Sub
4、利用VisualBasic设计一个小写转大写的程序:
在文本框Text1中输入一串字符,单击“转换”按钮Command1,将其中的小写英文字母转换为大写英文字母后,在文本框Text2中显示转换后的字符串。
程序运行界面如图所示。
(1)实现上述功能的VB代码如下,在画线处应填入正确的语句以实现以上功能。
PrivateSubCommand1_Click()
DimaAsString,bAsString
DimiAsInteger,cAsString
a= ① ?
Fori=1ToLen(a)
c=Mid(a,i,1)
If ② Then?
c=Chr(Asc(c)-32)
EndIf
b=b&c
Nexti
=b
EndSub
(2)由程序可知,小写字母比大写字母的ASCII编码值大 。
5、多数高次方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。
由于数轴上的点是有序的,因此我们可以用对分查找法找出高次方程在某一区间的实根。
即:
不断地将区间对分,使得区间中点的值不断逼近方程的根。
当区间小于精度的时候,我们就停止对分,并用此时区间的中点值作为方程的根。
如求三次方程y=5x3-55x2+170x-130的实根,其函数图像如图1所示:
图1图2
观察该函数图像发现函数有一实根在区域(1,2)之间,因此我们取两者的中点m=(1+2)/2代入方程进行检测,发现f=5x3-55x2+170x-130=,因为f>0,因此区间应该往左移动,得下一个区间(1,,然后继续进行检测,如果区间差值≤误差率,则认为该中点是方程的根。
根据上述方法描述,设计一个VB求解程序的根。
程序运行界面如图3所示,单击求解按钮Command1,在文本框Text1中显示方程的根。
图3
(1)为显示函数的图像,应在窗体中放置的控件是 。
(填图2中编号)?
(2)程序代码如下,请在画线处填写正确的VB代码。
PrivateSubCommand1_Click()
DimiAsDouble,jAsDouble,mAsDouble
DimrAsDouble,yAsDouble
i=1:
j=2:
y=1:
r=j-i
DoWhiley<>0Andr>
m=(i+j)/2
y=5*m^3-55?
?
m^2+170?
?
m-130
Ify>0Then
① ?
ElseIfy<0Then
i=m
EndIf
r= ② ?
Loop
=m
EndSub
6、现要用VB编写一个“剪刀石头布”的游戏,游戏界面如图1所示:
图1
图2
点击单选框选择剪刀或石头或布,程序立即显示相应的图像,同时电脑随机出示一个剪刀或石头或布,并显示输赢的结果在列表框List1中。
(1)为显示输赢的结果,应在窗体中加入一个列表框,应使用图2所示的控件工具箱中的 (填写相应的编号)。
?
(2)请根据题意将下列程序补充完整
PrivateSubOption1_Click(IndexAsInteger)
'index表示所选的编号,剪刀为0 石头为1 布为2,图片文件名与此编号对应
Randomize
x= '产生[0,2]的随机整数?
=LoadPicture(x&″.jpg″)
=LoadPicture(Index&″.jpg″)
IfIndex=0Andx=0Thens=″平局″
IfIndex=0Andx=1Thens=″输了″
IfIndex=0Andx=2Thens=″胜了″
IfIndex=1Andx=0Thens=″胜了″
IfIndex=1Andx=1Thens=″平局″
IfIndex=1Andx=2Thens=″输了″
IfIndex=2Andx=0Thens=″输了″
IfIndex=2Andx=1Thens=″胜了″
IfIndex=2Andx=2Thens=″平局″
End Sub
7、生活中,许多女士喜欢穿高跟鞋,那穿高跟鞋会使人感到美吗?
黄金分割能解释这个问题。
人体躯干与身高比例的黄金分割点是肚脐。
换句话说,这一比值越接近,愈给人美之感。
现按要求编写“高跟鞋的最佳之选”的VB程序(界面如右图所示),实现如下功能:
首先,设某女躯干a米和身高b米比为g,分别从文本框Text1和Text2中输入。
鞋跟高度s(单位与a、b一致)从Text3中输入,那么新比值g=(a+s)/(b+s),如果g=,那么鞋跟高度S的值就是最佳高度。
(1)应用程序界面设计时,为显示新比值,需在窗体中添加 控件,并将它的 属性值设置为空。
?
(2)请根据题意将下列程序补充完整。
PrivateSubCommand1_Click( )
DimaAsSingle,bAsSingle,sAsSingle,gAsSingle
a=Val
b=Val
s=Val
= ① ?
EndSub
8、身体质量指数BMI是目前国际上常用的衡量人体胖瘦程序以及是否健康的标准之一。
科学家通过大量的统计、分析,推导出BMI值与体重(w,单位kg)成正比,与身高(h,单位m)的平方成反比。
BMI=w/h2
成人的BMI数值参考:
偏瘦:
低于20
正常:
20~25
偏胖:
高于25
最理想的体重指数是:
22
下面VB程序的功能用于计算身体指数并判断体型。
在文本框Text1和Text2中输入体重(w)和身高(h)的值,单击“测试”按钮,在文本框Text3中显示指数的值(结果取整),并根据此值在Label5中显示相应的体型参考和最理想体重(ok)。
程序运行界面如图所示:
VB程序如下:
PrivateSubCommand1_Click()
DimhAsSingle,wAsSingle,BMIAsSingle,okAsSingle
h=Val
w=Val
BMI= ① ?
ok=Int(22?
?
h^2)
=Str(BMI)
If ② Then?
=″偏瘦。
″
ElseIfBMI<=25Then
=″正常。
″
Else
=″偏胖。
″
EndIf
=+″最佳体重是″+Str(ok)+″kg″
EndSub
(1)程序中画线①处应填入的语句是 。
?
(2)程序中画线②处应填入的语句是 。
?
(3)程序中用到的算法是_______________________(填写:
解析算法或枚举算法)
9、(2016·4浙江学考)编写VB程序,实现如下功能:
在文本框Text1中输入某一年份,单击“天干地支与生肖”按钮Command1,在列表框List1中输出该年份开始的12个年份及对应的“天干地支”与“生肖”,运行界面如图所示,程序代码如下。
(1)代码“PrivateSubCommand1_Click()”中的Click是 。
(单选,填字母:
A.对象名/B.属性名/C.事件名)?
(2)为实现上述功能,请在画线处填入合适的代码。
PrivateSubCommand1_Click()
DimaAsInteger,bAsInteger
DimiAsInteger,nAsInteger
Dimc1AsString,s1AsString
Dimc2AsString,s2AsString
Dimc3AsString,s3AsString
s1=″甲乙丙丁戊己庚辛壬癸″
s2=″子丑寅卯辰巳午未申酉戌亥″
s3=″鼠牛虎兔龙蛇马羊猴鸡狗猪″
n=Val
Fori=nTo ① ?
a=(i+6)Mod10
b=(i+8)Mod12
c1=Mid(s1,a+1,1)
c2=Mid(s2,b+1,1)
c3=Mid(s3,b+1,1)
② +″年″+c1+c2+″″+c3?
Nexti
EndSub
(3)由上述算法可知,2024年对应的“天干地支”为 。
?
10、某“掷骰子游戏”的VB程序界面如下图示,单击按钮Command1,在标签Label1上显示点数(点数是1到6之间的整数,含数字1和6),按钮上文字由“甲方”变为“乙方”,再次单击按钮上文字由“乙方”变为“甲方”。
(1)窗体标题“掷骰子游戏”是通过设置窗体的 属性值得到。
?
(2)Command1对象的单击事件处理过程如下:
PrivateSubCommand1_Click()
Randomize
x= ① ?
=Str(x)
If ② Then?
=″乙方″
Else
=″甲方″
EndIf
EndSub
为实现上述功能,在程序画线处填入适当的语句和代码,把程序补充完整。
程序①处的语句为 。
?
程序②处的语句为 。
?
答案
1、
(1)①a=iMod10 ②s+1
(2)AB
2、①str(a(i)) ②1To10Step1或1to10
解析:
①处是把产生的随机3位自然数a(i)显示在列表框List1中,所以该处填“a(i)”;
②处循环依次判断数组a中元素的奇偶性,所以该填“1To10”或“1To10Step1”。
3、
(1)4
(2)①Val ②n-1 ③s-x
解析:
(1)工具箱中1是标签,2是文本框,3是复选框,4是列表框。
(2)①变量s存放发放红包的总金额,该数据来自文本框Text1的Text属性;②由提示可知,循环次数是n-1;③每发放一个红包x后,总金额s须减去x。
4、
(1)① ②c>=″a″Andc<=″z″
(2)32
解析:
(1)①变量a存储文本框Text1中输入的字符,所以①处填。
②处判断c中的字符是否为小写字母,可用表达式c>=″a″Andc<=″z″进行判断。
(2)程序中的语句c=Chr(Asc(c)-32)就将小写字母转换为大写字母,由此可知,小写字母比大写字母的ASCII编码值大32。
5、
(1)3
(2)①j=m ②j-i
解析:
(1)显示图像的控件是image。
(2)程序中,变量i表示根区间起始点,j表示根区间结束点,m为中点,r为误差率,r=j-i。
循环中,首先算出中点值m,再计算方程的值y,如果y>0,则区间应该往左移动,结束点j=m,如果y<0,则区间应该往右移动,起始点i=m。
6、
(1)4
(2)Int(Rnd*3)(3)s
解析:
程序通过9个If语句判断胜负情况,结果存放在变量s中,最后把结果显示在List1中。
在列表框中添加一行数据,可使用Additem方法。
7、
(1)标签或Label Caption
(2)str((a+s)/(b+s))
8、答案:
(1)Int(w/h^2)
(2)BMI<20 (3)解析算法
解析:
本题根据体重与身高求解体质指数BMI,两者之间的关系为BMI=w/h^2,所以①处应填入Int(w/h^2)。
根据成人的BMI数值参考,低于20属于偏瘦,所以②处应填入BMI<20。
程序采用的算法是解析算法。
9、答案:
(1)C
(2)①n+11 ②str(i) (3)甲辰
解析:
(1)代码“PrivateSubCommand1_Click()”中的Command1是对象名,Click是事件名,Command1_Click则是事件处理过程的名称。
(2)程序通过循环列举12个年份对应的“天干地支”与“生肖”信息,年份i的值从n到n+11,因此1处填n+11。
根据运行界面图中显示的形式可知,变量C1表示天干,C2表示地支,C3表示生肖,所以2处填str(i)。
(3)通过程序a=(i+6)Mod10和c1=Mid(s1,a+1,1)可知天干,a=(2024+6)Mod10=0,c1=Mid(s1,a+1,1)=“甲”。
通过程序b=(i+8)Mod12和c2=Mid(s2,b+1,1)可知地支,b=(2024+8)Mod12=4,c2=Mid(s2,b+1,1)=“辰”。
10、答案:
(1)caption
(2)①Int(Rnd*6)+1 ②=″甲方″