省二级考试VB试题汇总
VB上机试题解惑答疑
(2010年6月hq注释版)
资料说明:
本资料是由历届同学从历年二级模拟考试系统、课后习题、实验课本习题中辛苦整理、积累下来的典型题目。基本上可以代表省二级VB考试的考试知识点、难度。对于考生二级VB的同学极具参考价值,推荐同学们细细研读。
资料使用方法:
1. 看到相关题目就要联想所涉及的知识点,如果不很明白,就要察看教材,复习这些知识点,只有掌握了相应知识点才能真正应付考试中灵活多变的题目(当然还要能融汇贯通这些知识点); 2. 对于附有答题解释的题目,最好先不要看答案,自己分析过后再对照查看自己思路是否正确; 3. 切忌只看原体答案,不作总结,经常总结题目所涉及的知识点以及完成某任务(功能)的方法是非常重要的学习方法;一定不要死记硬背!
4. 本资料对题目进行了大量注释,帮助同学理解;有些题目考点、方法相同,只在靠前的题目作了解释,因此,最好顺序向下看。
一、选择题
1 以下4种描述中,错误的是_______。 D A. 常量在程序执行期间其值不会发生改变
B. 根据数据类型不同,常量可分为字符型常量 、数值常量、日期/时间型常量和布尔型常量 C. 符号常量是用一个标识符来代表一个常数,好象是为常数取一个名字,但仍保持常数的性质 D. 符号常量的使用和变量的使用没有差别 2 下面合法的常量是_______。 D
A. 1/2 B. 'abcd' C. 1.2*5 D. False
3 Visual Basic中可以用类型说明符来标识变量的类型,其中表示货币型的是_______。 C A. % B. # C. @ D. $ 4 以下关键字中,不能定义变量的是_______。 A
A. Declare B. Dim C. Public D. Private 5 用十六进制表示Visual Basic的整型常数时,前面要加上的符号是_______。 A
A. &H B. &O C. H D. O 6 Visual Basic日期常量的定界符是_______。 A
A. ## B. ?? C. () D. {}
7 数学关系3≤x<10表示成正确的VB表达式为_______。 B A. 3<=x<10 B. 3<=x AND x<10 C. x>=3 OR x<10 D. 3<=x AND <10
8 \\,/,Mod,*四个算术运算符中,优先级别最低的是_______。 C
A. \\ B. / C. Mod D. * 9 下面语句中有非法调用的是_______。 C A. x=SGN(-1) B. x=FIX(-1) \\ 和 mod 运算符都是针对整 C. x=SQR(-1) D. x$=CHR$(65) 型数据的运算;先自动把参与10 表达式23/5.8、23\\5.8、23 Mod 5.8的运算结果分别是_______。B 运算的各项四舍五入,然后再 A. 3、3.9655、3 B. 3.9655、3、5 执行运算,结果只取整数部分。 C. 4、4、5 D. 3.9655、4、3
11 如果变量 a=2、b=\、c=\、d=5,则表达式 a
们的ASCII 码值的大小 省二级考试VB试题汇总
12 为了给x,y,z三个变量赋初值1,下面正确的赋值 A 语句是_______。 一行中多个语句,语句之间用冒号“:” A. x=1∶y=1∶z=1 B. x=1,y=1,z=1 分隔 C. x=y=z=1 D. xyz=1 13 以下4类运算符,优先级最低的是_______。 D A. 算术运算符 B. 字符运算符 C. 关系运算符 D. 逻辑运算符 14 已知a=\,则表达式Left(a, 4) +Mid(a, 4, 2)的值是_______。B
A. 123456 B. \ C. 123445 D. 1279 15 设有如下的记录类型
Type Student number As String name As String age As Integer End Type
则正确引用该记录类型变量的代码是_______。 B
A. Student.name=\张红\ B. Dim s As Student s.name=\张红\
C. Dim s As Type Stuent D. Dim s As Type s.name=\张红\ s.name=\张红\
16 下列程序运行时,从键盘输入字符\,则输出结果是_______。 A Private Sub Form_Click() 因为输入的是“-”号,所以执行本语句 op$=InputBox(\ 从未定义过的变量a为空值,在这里是出现 If op$=\ 在算术运算中,所以系统把它认为值为0, If op$=\ 0-2结果为“-2”再赋值给左边的变量a Print a 因此输出变量a的值“2” End Sub A. -2 B. 0 C. +2 D. +0 17 下列程序段的运行结果为_______。 B
For i=3 To 1 Step -1 外层i循环可以认为是行操作,内层j循环认为是列操作;最后 Print Space(5-i); 有个分号“;”,因此输出后不换行;i逐次递减1,则5-i 递增, For j=1 To 2*i-1 也就是每行前产生的空格数量逐行递增,每次递增1; Print \而D选项每行的*输出位置相差2个字符 Next j 因此选B Print Next i A. * B. ***** C. ***** D. ***** *** *** *** *** ***** * * * 18 执行 PRINT 18/2*3,-3^2 命令后,输出结果为_______。 C A. 3 9 B. 3-9
C. 27 -9 D. -9 27 19 执行 PRINT 9.4\\3.7,9.4 MOD 3.7 命令后,输出 A \\运算符要求左右两边的表达式值为整结果为_______。 数,不是整数的话就自动四舍五入;运 A. 2 1 B. 3 0 C. 2 20 D. 1 2 算结果只取整数部分 20 运行以下程序后,输出结果为_______。 C x%=1/4 X% 表示变量x为整型,此时会自动把 y%=11/4 右边表达式的值四舍五入取整 第 2 页 共 74 页 省二级考试VB试题汇总
PRINT x%;y% END
A. 0.25 0.75 B. 0 2 C. 0 3 D. 1 3
21 窗体里有两个对象,分别是图片框Picture1和标签Label1。那么下面关于Print方法的使用中,错误的一条是_______。 D
标签label不支持print方法; A. Picture1.Print 147 B. Print 147
C. Printer.Print 147 D. Label1.Print 147 22 下面的_______语句可以实现:先在窗体上输出大写字母A,然后在同一行的第10列输出小写字母b。 B
A. Print \ B. Print \ C. Print \ D. Print \ 23 阅读下面的程序段: 24题:format函数第一个参数为字符n1=InputBox(\请输入第一个数:\ 串类型时,后面的格式化字符<表示把n2=InputBox(\请输入第二个数:\ 该字符串转化为小写形式 Print n1+n2
当输入分别为111和222时,程序输出为______。 A A. 111222 B. 222 C. 333 D. 程序出错 24 语句Print Format (\的输出结果是_______。 B a=2出现在语句中是 A. HELLO B. hello C. He D. he 关系表达式,返回逻25 语句 Print (a=2) And (b=-2) 的输出结果是_______。 D 辑值,如果单独处于 A. True B. 结果不确定 C. -1 D. False 一行则为赋值语句,26 以下程序段运行后,输出字符的排列顺序是_______。 D 此处为前者;因为a For i=1 To 6 从未定义,所以在此 If i Mod 2=0 Then 为空值,a=2比较结 Mod运算是取余运算,要求左右 Print \果为false 两边参与运算的表达式为整数; Else 在这里利用了来表示i能被2整除 Print \ End If Next i
A. #*#*# B. ##### C. ***** D. *#*#*# 27 用MSGBOX函数显示的对话框,以下叙述正确的是_______。 D A. 该对话框有一个“确定”按钮 函数Iif(参数1 ,参数2,参数3)B. 该对话框有“是”,“否”两个按钮 功能等同于if语句 C. 该对话框有“是”,“否”,“取消”三个按钮 参数1表示条件 D. 该对话框通过选择参数可以得到以上不同的的按钮组合 参数2是条件结果为true时候函数28 与语句Dim abc%作用相同的语句是_______。 A 的返回值 A. Dim abc As Integer B. Dim abc As Long 参数3是条件不满足时候的返回值 C. Dim abc As String D. Dim abc As Date 29 设a=1,b=2,c=3,d=4,则表达式IIf(a
30 表达式Int(198.555*100+0.5)/100的值为 _______。 C
A. 198 B. 199.6 C. 198.56 D. 200 这是对千分位四舍五入;int(n)函数对正数n来说,只取整数部分(不会四舍五入);详见38题 31 要使变量x赋值为1~100间(含1,不含100)的一个随机整数,正确的语句是_______。D A. x=Int(100*Rnd) B. x=Int(101*Rnd) int(n)函数对正的参数n来说, C. x=1+Int(100*Rnd) D. x=1+Int(99*Rnd) 只取n的整数部分 第 3 页 共 74 页 省二级考试VB试题汇总
32 Visual Basic表达式 Cos(0)+Abs(1)+Int(Rnd(1))的值是_______。 D A. 1 B. -1 C. 0 D. 2 利用区间的运算规则来做题;Rnd函数 的返回结果区间是【0,1) [1,2,3,4,5] [-1,0,1,2,3 ]
33 表达式Int(5*Rnd+1)* Int(5*Rnd-1) 值的范围是_______。 D A. [0,15] B. [-1,15] C. [-4,15] D. [-5,15]
34 当函数MsgBox返回值为1,对应的符号常量是 vbOK,那么此时表示用户做的操作是_______。 A A. 用户单击了对话框中的“确定”按钮 B. 用户单击了对话框中的“取消”按钮 C. 用户单击了对话框中的“是”按钮 D. 用户单击了对话框中的“否”按钮
35 在Visual Basic中,InputBox函数的默认返回值类型为字符串,用InputBox函数输入数值型数据时,下列操作中可以有效防止程序出错的操作是_______。 A A. 事先对要接收的变量定义为数值型
B. 在函数InputBox前面使用Str函数进行类型转换
C. 在函数InputBox前面使用Value函数进行类型转换 D. 在函数InputBox前面使用String函数进行类型转换 36 表达式Len(\程序设计ABC\的值是_______。 A
A. 10 B. 14 C. 20 D. 17
Lan()函数返回相应字符串字符的个数,汉字算做一个字符; Lanb()函数则是返回字符串所占字节数,由于VB采用unicode编码,故每个字符,不管是英文字符还是汉字,都是占用2个字节 所以对于同一字符串,lanb()返回的结果,总是lan()函数返回结果的2倍 Mid()函数返回的为字符串类型的结果;对于数 字和由纯数字组成的字符串进行“+”运算,则这 个字符串被转换为数值类型,并进行加法运算 37 赋值语句g = 123 + Mid(\执行后,变量g中的值是_______。 D A) \ B) 123C) 12334 D) 157
38 如果x是一个正实数,对x的第3位小数四舍五入的表达式是_______。B A. 0.01 * Int(x + 0.005)
B. 0.01 * Int(100 * (x + 0.005)) C. 0.01 * Int(100 * (x + 0.05)) D. 0.01 * Int(x + 0.05) 解答此类题时:比如对0.XXXXXYXXXX中的Y那一位自动进行四舍五入运算 1.先对原数进行处理(放大10^n倍),使得Y那一位数处于小数点后的第一位; 变成xxxxx.y 2.再对新产生的数加上0.5 得到xxxxk.H 3.再利用int函数对这个结果进行运算取得整数部分(当然也是四舍五入后的结果,主要是把H以及 H后面的数据全部舍弃) 4.对这个结果进行恢复处理(就是步骤1的反操作)就可得到题目要求的结果 如:int(12.3456789*10000+0.5)*0.0001就可得到12.3457 这是对12.3456789中小数点后第四位的数 字进行四舍五入处理的结果。 该原理基于int(x.y+0.5)可以对小数点后一位的数字进行四舍五入处理。 第 4 页 共 74 页 省二级考试VB试题汇总
39 MsgBox函数的返回值的类型是_______。 A
A) 整数 B) 字符串 C)逻辑值 D) 日期
40 使用下列语句:Dim x(1 to 10,3) As Single,则数组占用内存空间的字节数是_______。 C
A. 132 B. 80 C. 160 D. 120 这里x是2维数组,第一维可以认为表示10行,第二维可以表示每行有0~3列(也就 是4列);那么总共有10*4=40个元素,每个元素都是single类型,每个single类型的 变量占4个字节(教材第2章);所以数组X占用存储空间为40*4=160B X是数值型,它却被放在需要逻辑类型(常常是关系表达式)的if语句的条件处, 则符合数值类型给逻辑类型赋值的规则:0对应的是FALSE,其它非零数值均对应为TRUE,于是if 语句执行Then分支中的语句x=0 41 若x=1,执行语句If x Then x = 0 Else x = 1的结果是_______。 D A. 实时错误 B. 编译错误 C. x=1 D. x=0 42 下列程序段的循环结构执行后,i的输出值是_______。 C
Dim y as Integer
For i = 1 To 10 Step 2 退出For循环后,循环变量i仍有效, y = y + i 其值是由初始值1加上步长整数倍并Next i
且刚好超越终止值的那个数值11 Print i A. 25 B. 10 C. 11 D. 因为y初值不知道,所以不确定
类似题目关键是要搞清楚for语句执行过程。 第一次执行for时,将初值赋给循环变量i; 接着执行循环体的语句,在循环体执行结束后,就执行到next那一行,此时就会把i的值与当前for语句的步长求和,并把这个和放入i,接着返回for那一行,判断当前i的值是否在初值与终值的范围内: 1. 如果在这个范围,就继续执行循环体,并遵从上述规则(与上述黑色字所述过程相同); 2. 如果i的值此时已经不在初值与终值的范围内,则退出for语句;(即开始执行与当前for匹配的next) 在本题中,第一次执行循环体时i=1,第二次是为3,??最后一次为9,执行到next i时,i与步长2求和结果为11,此时i=11,回到for,此时i已经不在循环范围,于是退出for语句;此时i仍为11.再接下来就是print i 所以输出结果i的当前值11 类似题目都可用此方法解题! 重要!! 43 以下程序段的运行结果是_______。 D Private Sub Form_Click() x = 5 m = 1 Until作为条件关键词,则,条件值为true就退出循环; n = 1 而while作为条件关键词,条件值为true就执行循环体; Do
据此,代入m和n的值,执行4趟,每次都记录下m和n的 m = m * n 值,不难得出结果(注意m和n的值都不断发生着变化) n = n + 1 Loop Until n > 5 Print x ^ 2 + m / 3 End Sub
A. 25 B. 45 C. 55 D. 65
第 5 页 共 74 页