2022年程序设计基础VB期中考试卷 .pdf
程序设计基础VB 期中考试卷一、选择题每小题1 分,共计 40 分 ;1.以下变量名中合法的是【1】。A. x2-1 B. print C. str_n D. 2x 分析:标识符命名规则答案: C 2.在Visual Basic中,所有的窗体和控件都必定具有的一个属性是【2】。AName BFont C)Caption D)FillColor 分析:名称属性是每个对象必须具备的,VB 为每一个对象设置了一个默认的名称,用户可以不更改,对象的默认名称是由对象的类名+序号构成的。答案: A 3.以下所列的 7个控件中,具有Caption 属性的有【3】个。CheckBox(复选框)、ComboBox (组合框)、HscrollBar(水平滚动条) 、Image(图像框)、Frame(框架)、Label (标签)、Line (线条)A5 B 4 C3 D2 分析:常用控件中,TextBox 、PictureBox、Image、ListBox 、 ComboBox 、Timer 、Line 、Shape、HScrollBar、VScrollBar没有Caption 属性;Label 、CommandButton、OptionButton、CheckBox、 Frame具有 Caption 属性;另外,窗体也有Caption 属性。答案: C 4.用来设置文字字体是否斜体的属性是【4】。AFontUnderline BFontBold CFontSlope DFontItalic 分析:也可以写成Font.Italic 答案: D 5.若需要在同一窗口内安排两组相互独立的单选按钮( OptionButton ) ,可使用【 5】控件将它们分隔开。 TextBox Picture Image Frame 分析:将单选按钮分组的方法是放置在不同的容器中,VB 中可以做容器的控件有:PictureBox、Frame 答案: C 6.Timer 控件的【6】属性决定该控件是否对时间的推移做出响应。将该属性设置为False 会关闭 Timer 控件,设置为 True 则打开它。AEnabled BVisible CTime D Capable 分析:除了 Enabled 属性外,还可以通过设置Timer 控件的 Interval属性来控制 Timer 控件是否开始响应。 Interval属性值为 0时不响应,非0时响应。答案: A 7.使用【7】方法可将新的列表项添加到一个列表框中。APrint BAddItem CClear DRemoveItem 分析:常用的列表框方法有:AddItem( 添加) 、RemoveItem(删除)、Clear (全部清除),还要注意每个方法的调用格式。只有窗体、PictureBox和Debug对象才有 Print方法。答案: B 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 12 页 - - - - - - - - - 8.要想在一个文本框中显示多行内容,应对下列哪一个属性进行设置【8】。AText B Font CMultiline D Alignment 分析:文本框中换行要使用换行字符vbCrLf 或Chr(10) & Chr(13)。Alignment 是对齐属性。答案: C 9.通过文本框的【9】事件过程可以获取文本框中键入字符的ASCII码值。AChange BGotFocus CLostFocus DKeyPress 分析: KeyPress 事件有一个 KeyAscii 参数,是系统传递过来的按下键的ASCII 码值。答案: D 10.若看到程序中有以下事件过程,则可以肯定的是,当程序运行时【10】。 Private Sub Click_MouseDown(Button As Integer,_ Shift As Integer,X As Single,Y As Single) Print “VB Program” End Sub A 用鼠标左键单击名称为“Commandl ”的命令按钮时,执行此过程; B 用鼠标左键单击名称为“MouseDown ”的命令按钮时,执行此过程;C用鼠标右键单击名称为“MouseDown ”的控件时,执行此过程; D 用鼠标左键或右键单击名称为“Click ”的控件时,执行此过程。分析:控件的事件过程名组成:控件名+下划线 +过程名, MouseDown 是鼠标事件,记住各个参数的含义。答案: D 11.DrawStyle 属性用于设置图形方法输出的线型,它受【11】属性的限制。AFillStyle BFillColor CBorderStyle DDrawWidth 答案: D 12.窗体上放置了三个文本框,若在Text1 中输入 456,在 Text2 中输入 78,在程序中执行了语句 Text3=Text1+Text2后,则在 Text3 中显示【12】。A.434 B.45678 C.溢出 D.语法错误分析:当“ +”的左右两边操作数都是字符串型数据时,“+”是字符串连接符;当“ +”的左右两边操作数都是数值型数据时,“+”是算术运算符;当“ +”的左右两边操作数不能转换成统一的数值型数据或字符串型数据时,出错。答案: B 13.设a=4,b=3, c=2,d=1,下列表达式的值是【13】。ab+1 Or c关系运算符 逻辑运算符;逻辑运算符的优先级:NotAndOr,本题结果也可以为False 。答案: D 14.可以产生 3050( 含30和50) 之间的随机整数的表达式是【14】。 A Int(Rnd*21+30) BInt(Rnd*20+30) C Int(Rnd*50-Rnd*30) DInt(Rnd*30+50) 分析:随机数产生公式答案: A 15.设控件使用默认名称,以下使用方法的语句中,正确的是【15】。AList1.Clear BForm1.Clear CCombo1.Cls DPicture1.Clear 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 12 页 - - - - - - - - - 分析:窗体、PictureBox、 Debug对象的清除方法是Cls , 列表框、组合框的清除方法是Clear 。答案: A 16.运行时,要在图片框P1中打印字符串”How Are You ” , 应使用语句【16】。AP1.Print= ”How Are You” BP1.Picture=LoadPicture(”How Are You”)CP1.Print ”How Are You” DPrint ”How Are You”分析:设置图片框中图片用LoadPicture函数给图片框的Picture属性赋值,在图片框中输出文字或画线(圆)用Print 方法。答案: C 17.设窗体上有 1个水平滚动条, 已经通过属性窗口把它的Max属性设置为 1,Min属性设置为100。下面叙述中正确的是【17】。 A 程序运行时,若使滚动块向左移动,滚动条的Value 属性值就增加 B 程序运行时,若使滚动块向左移动,滚动条的Value 属性值就减少 C 由于滚动条的Max 属性值小于 Min属性值,程序会出错 D 由于滚动条的Max 属性值小于 Min属性值,程序运行时滚动条的长度会缩为一点,滚动块无法移动分析: MinMax是一个数值范围,没有规定Min必须小于 Max;若 MinMax时,滑块向右滑动时Value 属性值减小。答案: A 18.在窗体上画一个名称为Text1 的文本框,然后画一个名称为H1的滚动条,其Min和Max属性分别为 0和100。程序运行后,如果移动滚动框,则在文本框中显示滚动条的当前值,如图所示:以下能实现上述操作的程序段是【18】。A Private Sub H1_Change() BPrivate Sub H1_Click() Text1.Text=H1.Value Text1.Text=H1.Value End Sub End Sub C Private Sub H1_Change() DPrivate Sub H1_Click() Text1.Text= H1.Caption Text1.Text=H1.Caption End Sub End Sub 分析 : 从文字“如果移动滚动框”可以确定应该选择H1的Change事件,“滚动条的当前值”表示为: H1.Value 答案: A 19.设A=12345678 ,则表达式 Val(Left(A,4)+Mid(A ,4,2) 的值为【19】。A123456 B123445 C 8 D6 20.可以把变化长字符串S中的第一个 ABC子串,替换成“1234 的语句是【20】。A. S=Left(s, InStr(S,ABC)&1234 & Right(S,Len(S)-InStr(S,ABC)-2) B. Mid(S,InStr(S,ABC),3)=1234 C. Mid(S,InStr(S,ABC),4)=1234 D. S=Left(s, InStr(S,ABC)-1)&1234& Right(S,Len(S)-InStr(S,ABC)-2) 分析:若 S=“ERABCTYABCUIABC” ,那么 : A项的结果 S为“ ERA1234TYABCUIABC”B项的结果 S为“ ER123TYABCUIABC”C项的结果 S为“ ER1234YABCUIABC”D项的结果 S为“ ER1234TYABCUIABC”名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 12 页 - - - - - - - - - 答案: D 21.在 Select Case X 结构中, 描述判断条件 3 X 7 的测试项应该写成【21】。ACase 3 = X = 7 BCase 3 = X , X= 7 CCase Is = 3 DCase 3 To 7 分析: Case条件表达式中,使用Is 关键字和关系运算符配合使用,不能使用逻辑运算符。Case 3=X,X= 10, Is = -10 y = x y = -x End Select End Sub 程序运行后, 在文本框中输入3, 然后单击命令按钮, 则以下叙述中正确的是【33】。A执行 y=x*x B执行 y=-x C先执行 y=x*x ,再执行 y=-x D程序出错分析: 测试表达式的值符合一个Case条件时, 执行对应分支语句块后结束Select Case语句。答案: A 34.以下循环语句中在任何情况下都至少执行一次循环体的是【34】。ADo While BWhile 循环体循环体 Loop Wend CDo DDo Until 循环体循环体 Loop Until Loop 分析: Do,Loop语句特点。答案: C 35.执行以下语句后,a的值为【35】。 Dim a As Integer a = 1 Do Until a = 100 a = a + 2 Loop A99 B 100 C溢出D101 分析: Until a=100,此循环的结束条件是a=100,但 a的初值是 1,步长是 2,不可能得到值100,因此,循环一直进行下去,到达32767后继续循环,超过Integer型数据表示范围而溢出。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 12 页 - - - - - - - - - 答案: C 36.在窗体上画 1个命令按钮,并编写如下事件过程: Private Sub Commandl_Click() For i=5 To 1 Step -0.8 Print Int(i); Next i End Sub 运行程序,单击命令按钮,窗体上显示的内容为【36】。 A 5 4 3 2 1 l B5 4 3 2 l C4 3 2 1 1 D4 4 3 2 1 分析: i 的值在各次循环体中依次为(5,4.2 ,3.4 ,2.6 ,1.8 ,1) ,对应的 Int(i)为(5,4,3,2,1,1)答案: A 37.假定有如下事件过程: Private Sub Form_Click() Dim x As Integer, n As Integer x = 1 n = 0 Do While x 9 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 12 页 - - - - - - - - - Print t End Sub 此程序计算并输出一个表达式的值,该表达式是【39】。A9! B 10! C1!+2!+,+9! D1! +2!+,+10!分析:从 t=t+b 看出是一个累加求和的代码,从b=b*n 看出是求阶乘的递推公式,从n=n+1语句的位置看, n=10时为计算阶乘。答案: C 40.下面程序在调试时出现了死循环 Private Sub Command1_Click() n=InputBox(“请输入一个整数”) Do If n Mod 2=0 Then n=n+1 Else n=n+2 Else If Loop Until n=1000 End Sub 下面关于死循环的叙述中正确的是【40】。A只有输入的n 是偶数时才会出现死循环,否则不会;B只有输入的n 是奇数时才会出现死循环,否则不会;C只有输入的n 是大于 1000 的整数时才会出现死循环,否则不会;D输入任何整数都会出现死循环。分析:只有一直不符合n=1000才会出现死循环。当输入的n是偶数时,在第1次循环后 n变为奇数, 以后就一直是奇数,无法满足 n=1000;当输入的 n是奇数时, 在循环中 n按步长 2变化,无法满足 n=1000,故不管 n是偶数还是奇数,都会出现死循环。答案: D 二、填空题每空 2 分,共计 30 分 ;1.将命令按钮的Default属性设置为 True,运行时按下【Enter 】键可以激发该按钮的Click 事件。2.xxcos2e对应的 Visual Basic 表达式是Exp(x2+cos(x)。正确表示命题“A是一个带小数的正数,B是一个带小数的负数”的逻辑表达式是(A0 and AInt(A) and(B0 and BInt(B)。3.a6,则执行 xIIf(a5, 1,0)后, x的值为-1。4.设置计时器控件时间间隔应使用其Interval属性,其计数单位为ms(毫秒 )。5.写 出 能 从 字 符 串 “ VisualBasic” 中 取 出 子 字 符 串 “ Basic” 的 语 句Right( “VisualBasic”,5)。6.将D盘 根 目 录 下 的 图 形 文 件down.jpg装 入 图 片 框P1的 语 句 是P1.picture=loadpicture(“D:down.jpg” ) 。7.下面程序运行后,单击Command1 ,输出结果为 16 。 Private Sub Command1_click() a = 1: b = 2: c = 3 a= a + b: b = b + a: c = b + a If a 3 Or b 3 Then a = b - a: b = c - a: c = b + a End If Print a + b + c End Sub 8.运行如下程序后,输出结果为 16 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 12 页 - - - - - - - - - a = 0 For j = 1 To 20 Step 2 a = a + j 5 Next j Print a 9.下面程序段共循环0次。 a = 100 b = 100 While a b a = a + 1 b = b + 1 Wend 10.下面程序运行后,单击窗体,输出结果为BCABFG 。 Private Sub Form_Click() a = ABCDEFG For i = 6 To 2 Step -2 x = Mid(a, i, i) y = Left(a, i) z = Right(a, i) z = x & y & z Next i Print z End Sub 11.下面程序运行后,单击窗体,输出结果为 12 。 Private Sub Form_Click() Dim i As Integer, sum As Integer sum = 0 For i = 2 To 10 If i Mod 2 0 And i Mod 3 = 0 Then sum = sum + i End If Next i Print sum End Sub 12.下面程序运行后,单击窗体,输出结果为10 False 。 Private Sub Form_Click() Dim Check, Counter Check = True : Counter = 0 Do Do While Counter = 0 Then List1.RemoveItem List1.listIndexLabel1.Caption = List1.listcountElse MsgBox 请选择要删除的项目 End If End Sub 3.设有整型变量 s,取值范围为 0100,表示学生的成绩。有如下程序段: If s=90 Then Level=A ElseIf s=75 Then Level=B ElseIf s=60 Then Level=C Else Level=D End If 下面用 Select Case结构改写上述程序,使两段程序所实现的功能完全相同。请填空。 Select Case s Case Is =90 Level= ”A” Case 75 To 89 Level= ”B” Case 60 To 74 Level= ”C” Case Else Level= ”D” End Select( 4)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 12 页 - - - - - - - - - 4.以下程序实现将字符将字符串倒置,例如:输入”ABCD ”变换成” DCBA ”。Private Sub Cmd_Click() Dim s1 As string,s2 As string Dim i As integer s1=inputbox( “输入字符串”) For i= Len(s1) To 1 Step 1 s2=s2 & mid(s1,i,1) Next i Print s2 End Sub 5.求满足不等式 1+4+9+16,n2m 的最大的 n。请填空 Private Sub Command1_Click() Dim s ,m,n AS Integer m=Val(InputBox(“请输入一个大于100的整数” ) n= 0 s=0 Do While sm n=n+1 s=s+ n*n Loop Print 满足不等式的最大n是; n-1 End Sub 四、附加题每题 10分,共计 10分 ;1.编写程序求三位偶数中,个位数字与十位数字之和除以10所得的余数是百位数字的数及个数。在窗体上放置一个命令按钮,名称为C1,点击按钮后将结果显示在窗体上。法一:Private Sub C1_Click() Dim x As Integer, a As Integer, b As Integer, c As Integer, n As Integer For x = 100 To 999 Step 2 a = x Mod 10 个位b = (x Mod 100) 10 十位c = x 100 百位If (a + b) Mod 10 = c Then Print x; n = n + 1 If n Mod 5 = 0 Then Print End If Next x End Sub 法二:Private Sub C1_Click() Dim a As Integer, b As Integer, c As Integer, n As Integer For c = 1 To 9 百位For b = 0 To 9 十位For a = 0 To 9 Step 2 个位名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 12 页 - - - - - - - - - If (a + b) Mod 10 = c Then Print c * 100 + b * 10 + a; n = n + 1 If n Mod 5 = 0 Then Print End If Next a Next b Next c End Sub 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 12 页 - - - - - - - - -