就业数据资源平台
当前位置:首页 > Visual Basic
2011年计算机等级考试二级VB综合练习题(3)

 第三章 VB基本语言

  一、填空题


  1、一般可以使用__________关键字声明常量。


  2、______类型也称变体类型,是一种通用的、可变的数据类型,它可表示或存储任何一种数据类型。


  3、变量的声明分为两种方法:__________和____________。


  4、在VB中,用___________________语句设定数组的下界,用_____________和__________________语句分别返回数组的上、下界。


  5、在代码模块中加入Option Explicit的目的是_____________________。


  6、function aa (a1 as date,optional a2 as boolean) as single,写出optional命令的作用__________________。


  7、在VB中,我们用一个简单的______语句就能实现退出程序。


  8、生成消息框的命令是____________,生成输入框的命令是____________。


  9、通用对话框(commondialog)属activex控件,它可以显示多个标准对话框,包括打开/另存为、字体、打印等对话框,若要显示所有文件,则应设置其属性filter=____________,若要使它显示为打印对话框,则应使用什么方法____________。


  10、从字符串中任意位置截取字符的函数是__________。


  11、语句For j = 3 To 20 Step 3 使循环体执行了______次。


  12、对于正在使用的动态数组Arraya(),要增加一个单元,但不能破坏数组内的数据,则应使用语句__________________________________。


  13、在Visual Basic中声明静态变量的关键字是_________________。


  14、表达式10 Mod 6 \ 4的值为______。


  15、表达式chr(Asc("a") + 5)的值为_________。


  16、VB中使用注释有2种方法,即________和________。


  17、VB中的数据以四种形式存储:常量、_________、_________和记录。


  18、为了在VB中存储一个4行5列的二维矩阵,需要定义一个整型的数组,请把数组定义语句补充完整:Dim Juzhen(_ _) as Integer。


  19、控件数组由一组相同类型的控件组成,这些控件共用一个相同的控件名,但是每个控件都有一个唯一的下标来区分,我们使用属性__ __来设置下标。


  20、在过程调用中,实现调用过程的实参和被调用过程的形参之间的数据传递有两种方式:按值传递和__ __。


  21、为了保证程序中必须对变量的强制性定义,需要在代码模块的声明部分加入______________语句。


  22、分析For……Next循环结构的实例:For i = 5 To 30 Step 2 中,循环体一共执行了______次。


  23、表达式Mid("UniversityOfPetroleum", 8, 4) 的值为_________。


  24、常量分为普通常量和__________常量。


  25、要将大写字母转换为小写字母,可使用____________函数。


  26、不管焦点在哪个控件上,按__________键相当于按了取消按钮。


  27、执行“工程”菜单下的__________命令,可选择并添加ActiveX控件。


  28、__________是程序中VB停止执行的地方。


  29、逻辑常量为True或__________。


  30、使用了__________________的声明后,当程序中使用未经声明的变量时,程序运行时会报错。


  31、要将小写字母转换为大写字母,可使用____________函数。


  32、自字符串N1位开始向右取N2个字符,要使用_________________函数。


  33、日期常量表示时,用符号__________将日期型数据括起来。


  34、局部变量只能在__________中声明和使用。


  35、模块级变量的声明关键字是Dim或__________。


  36、函数Abs(x)的功能是__________。


  37、表达式3/6*5的值是__________。


  二、选择题


  1、以下哪个是合法的变量( )


  A.right B.abc@123 C.123_abc D.ab123c


  2、下列说法错误的是( )


  A.在同一模块不同过程中的变量可以同名


  B.不同模块中定义的全局变量不可以同名


  C.引用另一模块中的全局变量时,必须在变量名前加模块名


  D.同一模块中不同级的变量可以同名


  3、把MsgBox的返回值转换为数值应该使用的函数是( )


  A.Log B.Str C.Len D.Val


  4、语句DIM AA(3,4,5)中定义的数组有( )个元素


  A.12 B.60 C.120 D.345


  5、下面程序运行后输出的结果是( )


  A$="CHINA"


  B$=STRING$(3,A$)


  PRINT B$


  END


  A.CHI B.CCC C.INA D.AAA


  6、以下语句的输出结果是( )


  Print Format$(32548.5, "000,000.00")


  A.32548.5 B.325,485.00 C.032,548,50 D.32,548,50


  7、以下叙述中错误的是( )


  A.如果过程被定义为Static类型,则该过程中的局部变量都是Static类型


  B.Sub过程中不能嵌套定义Sub过程


  C.Sub过程中可以嵌套调用Sub过程


  D.事件过程可以像通用过程一样由用户定义过程名


  8、Visual Basic提供的On Error Resume next错误陷阱语句表示( )


  A.当发生错误时,使程序转跳到语句标号为0的程序块


  B.当发生错误时,不使用错误处理程序块


  C.当发生错误时,忽略错误行,继续执行下一语句


  D.当发生错误时,终止本过程执行,继续执行下一过程


  9、在Visual Basic中,若要将控制权交给操作系统则通过( )的语句。


  A.End B.Exit Do C.Exit Sub D.DoEvents


  10、在Visual Basic 中语句的续行号采用( )


  A.空格与下划线 B.下划线与空格 C.空格与短线 D.短线与空格


  11、假定有以下程序段:


  For i=1 to 3


  For j=5 to 1 Step –1


  Print i*j


  Next j,i


  则语句Print i*j的执行次数是( )


  A.15 B..16 C.17 D.18


  12、从键盘上输入两个字符串,分别保存在变量str1、str2中。确定第二个字符串在第一个字符串中起始位置的函数是( )


  A.Left B.Mid C.String D.Instr


  13、如果将布尔常量值TRUE赋值给一个整型变量,则整型变量的值为( )


  A.0 B.-1 C.TRUE D.FALSE


  14、下列叙述不正确的是( )


  A.注释语句是非执行语句,仅对程序的内容起注释作用,它不被解释和编译


  B.注释语句可以放在代码中的任何位置


  C.注释语句不能放在续行符的后面


  D.代码中加入注释语句的目的是提高程序的可读性


  15、语句PRINT “INT(-13.2)”;INT(-13.2)的输出结果为( )


  A.INT(-13.2)= -13.2 B.INT(-13.2)= 13.2


  C.INT(-13.2)= -13 D.INT(-13.2)= -14


  16、如果TAB函数的参数小于1,则打印位置在第( )列


  A.0 B.1 C.2 D.3


  17、变量未赋值时,数值型变量的值为( )


  A、0 B.空 C.1 D.无任何值


  18、下列语句中正确的是( )


  A.txt1.text+txt2.text=txt3.text B.command1.name=cmdok


  C.12label.caption=1234 D.a=inputbox(“hello”)


  19、假设变量BOOLVAR是一个布尔型变量,则下面正确的赋值语句是( )


  A.BOOLVAR=‘TRUE’ B.BOOLVAR=.TRUE


  C.BOOLVAR=#TRUE# D.BOOLVAR=3<4


  20、以下( )程序段可以实施X、Y变量值的变换( )


  A.Y=X:X=Y B.Z=X:Y=Z:X=Y


  C.Z=X:X=Y:Y=Z D.Z=X:W=Y:Y=Z:X=Y


 21、语句PRINT “SGN(-26)=”;SGN(-26)的输出结果为( )

  A.SGN(-26)=26 B.SGN(-26)= -26


  C.SGN(-26)= +1 D.SGN(-26)= -1


  22、读下面程序段,判断变量Str2的取值是( )


  Dim Str1, Str2 as String


  Str1="University"


  Str2=STRING$(3,Str1)


  A.Uni B.UUU


  C.ity D.yyy


  23、VB支持自定义数据类型,在某程序中我们定义了如下类型:


  Type Student


  number As string


  name As String


  age As Integer


  End Type


  针对上述定义,如下几项用法正确的是( )


  A.Student.name="张三" B.Dim s As Student


  s.name="张红"


  C.Dim s As Type Student D.Dim s As Type


  s.name="张三" s.name="张三"


  24、一个工程中包含两个名称分别为Form1、Form2的窗体,一个名称为mdlFunc的标准模块。假定在Form1、Form2和mdlFunc中分别建立了自定义过程,其定义格式为:


  Form1中定义的过程:


  Private Sub frmfunction1()


  End Sub


  Form2中定义的过程:


  Public Sub frmfunction2()


  End Sub


  mdlFunc中定义的过程:


  Public Sub mdlFunction()


  End Sub


  在调用上述过程的程序中,如果不指明窗体或模块的名称,则以下叙述中正确的是( )


  A.上述三个过程都可以在工程中的任何窗体或模块中直接被调用


  B.只有mdlFunction过程能够被工程中各个窗体或模块直接被调用


  C.frmfunction1只能在form1中调用,而frmfunction2 则可以在所有模块或窗体中被直接调用


  D.上述三个过程都只能在各自被定义的模块中直接调用


  25、VB中Do……Loop结构既可以构成当型循环,也可以构成直到型循环,根据下面的代码:


  Dim i,n as Integer


  n = 20


  i = 1


  Do


  Print i;


  i = i + 2


  Loop Until i >20


  判断循环结构的类型和循环体的执行次数,正确的选项是( )


  A.当型循环,20次 B.直到型循环,10次


  C.当型循环,10次 D.直到型循环,20次


  26、在程序中,使用InputBox函数可以接受用户的输入,如果要把它的返回值转换为数值型的数据,应该使用的函数是( )


  A.Val B.Len


  C.Str D.Log


  27、动态数组因为在程序运行前无法确定数组的大小,所以经常根据程序的运行情况,对数组进行重新定义,以下关于VB中动态数组的叙述中不正确的是( )


  A.可以用ReDim语句重新定义动态数组,并且可以进行多次重定义


  B.首次用Dim进行动态数组声明的时候,必须指明它的类型和上下界


  C.Preserve为ReDim语句的可选参数,用于保留动态数组原来的内容


  D.当对动态数组使用Erase语句进行释放操作时,将释放其内存


  28、VB中的控件也叫做部件或组件,主要包括三类,以下哪一项不属于VB控件的分类( )


  A.控件 B.可插入对象


  C.ADO控件 D.ActiveX控件


  29、表达式4+5 \ 6 * 7 / 8 Mod 9 的值是( )


  A.4 B.5 C.6 D.7


  30、可以同时删除字符串前导和尾部空白的函数是( )


  A.Ltrim B.Rtrim C.Trim D.Mid


 三、简答题

  1、全局变量声明有哪些限制?


  2、字符串是否可以自动转换为数字类型?


  3、用Format函数格式化后的字符格式在不同区域环境下的输出是否相同?为什么?


  4、在InputBox函数中,哪一个参数是必需的?


  5、在MsgBox函数中哪一个参数是必须的?


  6、在什么情况下使用过程?


  7、为什么要进行程序调试?


  8、调试程序有哪些手段?


  9、用语句Dim A(-3 To 5) As Integer定义的数组的元素个数是多少?


  10、设有如下的Visual Basic表达式:5*x^2-3*x-2*Sin(a)/3,与它对应的数学式是什么?


  11、数学式


  对应的VB表达式是什么?


  12、表达式2>3 And 4<=5 Or 4>4的值是什么?


  13、怎样在程序中设置断点?


  14、在什么情况下可以设置断点?


  15、程序出错的类型有哪几种?


  16、在同一模块、不同过程中声明的相同变量名,两者是否表示同一个变量?为什么?


  17、什么情况下会出现“数组下标越界错误”?


  18、逐语句和逐过程有什么区别?


  19、表达式2.75 * 2 \ 3.45的值是什么?


  20、在程序设计中为什么尽量不用GoTo语句?


  四、读程序题


  1、分析以下程序,写出运行结果。


  Private Sub Form_Click()


  score = Int(Rnd * 10) + 80


  Select Case score


  Case Is < 60


  A$ = "F"


  Case 60 To 69


  A$ = "D"


  Case 70 To 79


  A$ = "C"


  Case 80 To 89


  A$ = "B"


  Case Else


  A$ = "A"


  End Select


  Print A$


  End Sub


  2、读下面的程序,分析其功能,写出运行结果。


  在窗体上有一个命令按钮,名称为Command1。然后编写如下程序:


  Private Sub Command1_Click()


  For I = 1 To 4


  For J = 0 To I


  Print Chr$(65 + I);


  Next J


  Print


  Next I


  End Sub


  程序运行后,如果单击命令按钮,则在窗体上显示的内容是什么?


  3、阅读下面的程序,分析并写出其功能。


  Sub insert(a() As Single,ByVal x As Single)


  Dim m as integer,n as integer


  n=1


  Do While n<20 And x>a(n)


  n=n+1


  Loop


  For m=20-1 To n Step –1


  a(m+1)=a(m)


  Next m


  a(n)=x


  End Sub


  4、分析以下程序,写出运行结果。


  Sub subP(b() As Integer)


  For i =1 To 4


  b(i)=2*i


  Next i


  End Sub


  Private Sub Commandl_Click()


  Dim a(1 To 4)As Integer


  a (1)=5


  a (2)=6


  a (3)=7


  a (4)=8


  subP a()


  For i =1 To 4


  Print a(i)


  Next i


  End Sub


  运行上面的程序,单击命令按钮,输出结果是什么?


  5、分析以下程序,写出运行结果。


  Sub sele()


  Dim n as Integer


  i=21:n=3


  Do While i>n


  i=i-n


  Loop


  Print i


  End Sub


  6、分析以下程序,写出运行结果。


  Sub selectPrint()


  Dim a as Integer


  Dim b as Integer


  Dim c as Integer


  a=2:b=5:c=2


  If(a>=b)and(a>=c) or (b>c) Then


  Print a


  a=a+2


  Else


  Print b


  EndIf


  Print a;b;c


  End Sub


  7、分析以下程序,写出运行结果。


  Sub swap()


  Dim x as Integer


  Dim y as Integer


  Dim z as Integer


  x=1:y=2:z=0


  Print x;y;z


  x=x+y


  x=x*z


  Print x,y,z


  End Sub


  8、分析以下程序,写出运行结果。


  Sub selectPrint()


  Dim a as Integer


  Dim b as Integer


  Dim c as Integer


  a=3:b=3:c=2


  If(a>=b)and(a>c)Then Print a


  Print a,b,c


  End Sub


五、编程题

  1、输入一年号,判断它是否是闰年。界面如下图所示,包括两个标签、一个文本框和一个命令按钮。提示:如果此年号能被400整除或者不能被400除尽,也不能被100除尽,但能被4整除,则它是闰年;否则,不是闰年。


  2、输入两个正整数m、n,求m和n的最大公约数。要求建立如下图所示的窗体,其中主要的控件包括:两个标签(Lable1、Lable2)、两个文本框(Text1、Text2)和一个按钮(Command1)。


  3、输入某学生成绩(百分制),若是100≥成绩≥90输出优秀;若是90>成绩≥80输出良好;若是80>成绩≥70输出中等;若是70>成绩≥60输出及格;若是60>成绩≥0,输出不及格;若是其他数则输出error信息。


  4、在窗体中显示从9号字型到16号字型。


  5、在有序序列中插入一个数,使插入后的数列仍然有序(设按由小到大排列)。


  6、编程实现二维数组转置。


  7、随机输入10个100以内的整型数,计算其和及平均值。


  8、找出所有的水仙花数。水仙花数是个三位数,它的各位数字的立方和等于这个三位数本身。例如371=33+73+13,则371是水仙花数。


  9、从键盘输入一个大于2的正整数,判断该数是否是素数。


  10、求二维数组中的最小值及其所在行号、列号。


  11、求一元二次方程ax2+bx+c=0的根(包括实根和复根)。


  12、输入一个正整数n,计算出n!并输出。


  13、Faibonacci数列为0,1,1,2,3,5,8,13 …,计算并输出第20项以及前20项的和。

就业数据资源平台