1、国家二级 VB机试(数据类型及运算)模拟试卷 15及答案与解析 一、选择题 1 以下表达式与 Int(3 5)的值相同的是 ( A) Int(3 5) ( B) Val(3 5) ( C) Fix(3 5) ( D) Abs(3 5) 2 以下能对正实数 d的第 3位小数四舍五入的表达式是 ( A) 0 01*Int(d+0 005) ( B) 0 01*In(000*(d+0 005) ( C) 0 01*Int(100*(d+0 05) ( D) 0 01*Int(d+0 05) 3 语句: Print Asc(Chr$(Mid$(“98765432“, 4, 2)的输出是 ( A) 65
2、 ( B) A ( C) 8765 ( D) W 4 语句: PrintInt(Rnd*5+20)的输出不可能是 ( A) 20 ( B) 22 ( C) 24 ( D) 25 5 产生 100以内 (不含 100)2位随机整数的 Visual Basic表达式是 ( A) Int(Rnd(11*91)+10 ( B) Int(Rnd(1)*90)+10 ( C) Int(Rnd(1)*91)+11 ( D) Int(Rnd(1)*90)+11 6 在 窗体上画两个文本框,其名称分别为 Text1和 Text2,然后编写如下程序: Private Sub Form Load() Text1 T
3、ext=“: Text2 Text=“: Text1 SetFocus End Sub Private Sub Text1_Change() Text2 Text: Mid(Text1 Text, 6) End Sub 程序运行后,如果在文本框 Text1中输入 ChinaBeijing,则在文本框 Text2中显示的内容是 ( A) ChinaBeijing ( B) China ( C) Beijing ( D) ChinaB 7 设有如下通用过程: Public Function Fun(xStr As String)As String Dim tStrAs String strLAs
4、Integer tStr=“ strL=Len(xStr)i=1 Do While i0 Then Print Mid(num, p+1) Else Print“END“ End If End Sub 运行程序单击窗体,根据提示输入一个数值。如果不是输 入实数,则输出“END”;否则 ( A)用字符方式输出该实数 ( B)输出该实数的整数部分 ( C)输出该实数的小数部分 ( D)去掉实数中小数点,保留所有数码输出 16 在窗体上画一个文本框,名称为 Text1,然后编写如下程序: Private Sub Form Load() Private Sub Form Click() Text1 T
5、ext=“: Text1 SetFocus Dim a As String, S As String End Sub a=Text1 Text: s=“ For k=l To Len(a) s=UCase(Mid(a, k, 1)+s Next k Text1 Text=s End Sub 程序运行后,在文本框中输入一个字符串,然后单击窗体,则文本框中的内容 ( A)与原字符串相同 ( B)与原字符串中字符顺序相同,但所有字母均转换为大写 ( C)为原字符串的逆序字符串,且所有字母转换为大写 ( D)为原字符串的逆序字符串 17 在窗体上画一个命令按钮,然后编写如下事件过程: Private
6、Sub Command1_Click() a$=InputBox(“请输入一个二进制数 “): n=Len(a$) For i=1 To n Dec=Dec*2+_(a$, i, 1) Next i Print Dec End Sub 程序功能为:单击命令按钮,将产生一个输入对话框,此时如果在对话框中输入一个二进制数,并单击 “确定 ”按钮,则把该二进制数转换为等值的十进制数。这个程序不完整,应在横线处填入的内容是 ( A) Left ( B) Right ( C) Val ( D) Mid 18 以下程序的功能是随机产生 10个两位的整数: Option Base1 Private Sub
7、Command1_Click() Dim a(10)As Integer, i As Integer Randomize For i=1 To 10 a(i)=Int(Rnd*100)+1: Print a(i) Next i End Sub 运行以上程序,发现有错误,需要对产生随机数的语句进行修改。以下正确的修改是 ( A) a(i)=Int(Rnd*100) ( B) a(i)=Int(Rnd*90)+10 ( C) a(i)=Int(Rnd*100)+10 ( D) am=Int(Rnd*101) 19 窗体上有一个名称为 Command1的命令按钮,单击该按钮时所实现的功能,是产生 1
8、0个随机整数,然后从键盘输入一个整数,查找该数在数组中的位置。若找到,输出该数的位置;若没有找到,给出相应的提示。该命令按钮的单击事件过程如下: Private Sub Command1_Click() Dim a(10)As Integer, x As Integer For i=1 To 10 a(i)=Int(Rnd*100) Next x=InputBox(“输入 100以内的整数: “): p=0 For i=l To 10 If a(i)=x Then P=i: Exit For End If Next Ifp=0 Then Print“没有找到与输入数据相同的数 !“ Else
9、Print Str(x)+“在数组中的位置是 “+Str(p) End If End Sub 对于上述事件过程,以下叙述中正确的是 ( A)本程序实际产生的随机数是 0-99 ( B)若产生的随机数中有相同数,则 p是其中最后一个数的位置 ( C)程序有错, p的初值设置不对 ( D)程序有错, InputBox函数产生的数据与 x的类型不匹配 20 表达式 5 Mod 3+3 5*2的值是 ( A) 0 ( B) 2 ( C) 4 ( D) 6 21 设有如下程序段: x=2 For i=1 To Step 2 x=x+i Next i 运行以 上程序后, x的值是 ( A) 26 ( B)
10、 27 ( C) 38 ( D) 57 22 设 a=“MicrosoftVisualbasic”,则以下使变量 b的值为 “Visualbasic”的语句是 ( A) b=Left(a, 10) ( B) b=Mid(a, 10) ( C) b=Right(a, 10) ( D) b=Mid(a, 11, 10) 23 设 a=“a“, b=“b“, c=“c“, d=“d“,执行语句 x=IIf(ad), “A“, “B“) 后, x的值为 ( A) a ( B) b ( C) A ( D) B 24 设有如下语句: Dim a, b As Integer c=“VisualBasic“
11、d=#7 20 2005# 以下关于这段代码的叙述中,错误的是 ( A) a被定义为 Integer类型变量 ( B) b被定义为 Integer类型变量 ( C) c中的数据是字符串 ( D) d中的数据是日期类型 25 设 x=4, y=6,则以下不能在窗体上显示出 “A=10”的语句是 ( A) Print A=x+y ( B) Print“A=“; x+y ( C) Print“A=“=Str(x+y) ( D) Print“A=“x+y 26 下列表达式中不能判断 x的是否为偶数的是 ( A) x 2=Int(x 2) ( B) x Mod 2=0 ( C) Fix(x 2)=x 2
12、 ( D) x 2=0 27 如设置了文本框的属性 PasswordChar=“$“,则运行程序时向文本框中输入 8个任意字符后,文本框中显示的是 ( A) 8个 “$” ( B) 1个 “$” ( C) 8个 “*” ( D)无任何内容 28 为了计算 1+3+5+99 的值,某人编程如下: k=1: s=0 while k99 ( C)循环前的赋值语句 k=1错误,应改为 k=0 ( D)循环中两条赋值语句的顺序错误,应改为 s=s+k: k=k+2 29 如果执行一个语句后弹出如图所示的窗口,则这个语 句是( A) InputBox(“输入框 “, “请输入 VB数据 “) ( B) x
13、=InputBox(“输入框 “, “请输入 VB数据 “) ( C) InputBox(“请输入 VB数据 “, “输入框 “) ( D) x=InputBox(“请输入 VB数据 “, “输入框 “) 30 下列可以打开随机文件的语句是 ( A) Open“filel dat“For Input As #1 ( B) Open“filel dat“For Append As #1 ( C) Open“filel dat“For Output As #1 ( D) Ooen“filel dat“For Random As #1 len=20 31 下面可以产生 20 30(含 20和 30)
14、的随机整数的表达式是 ( A) Int(Rnd*10+20) ( B) Int(Rnd*11+20) ( C) Int(Rnd*20+30) ( D) Int(Rnd*30+20) 32 假定用下面的语句打开文件: Open“Filel txt“For Input As #1 则不能正确读文件的语句是 ( A) Input #1, ch$ ( B) Line Input #1, ch$ ( C) ch$=Input$(5, #1) ( D) Read #1, ch$ 国家二级 VB机试(数据类型及运算)模拟试卷 15答案与解析 一、选择题 1 【正确答案】 C 【试题解析】 Int函数的作用是
15、去返回不大于参数的最大整数,例如Int(4 6)=4, Int(-4 6)=-5; Fix函数的作用是去掉参数的小数部分只保留整数部分,在参数为正数的时候, Int函数和 Fix函数的返回值是相同的。 【知识模块】 数据类型及运算 2 【正确答案】 B 【试题解析】 Int函数 会返回不大于参数的最大整数,要对第 3位小数进行四舍五入,需要先将 d自加 0 005,这样如果第三位小数大于 5就将进位:接下来乘以 100,这样第 3位小数就变成了第一位小数,对其做 Int函数留下整数部分,最终再乘以 0 01得到结果。 【知识模块】 数据类型及运算 3 【正确答案】 A 【试题解析】 Mid函数
16、可以实现在任何位置取任何长度的子串,其中长度省略的话将会一直取到串尾,本题中是从第 4位取长度为 2的子串即 “65”。 Chr函数可以将 ASCII码转成对应的字符, ASC函数将字符转换成对应的 ASCII码。 【知识模块】 数据类型及运算 4 【正确答案】 D 【试题解析】 随机数函数 Rnd用于产生一个小于 1但大于或等于 0的随机数值, Int函数会返回不大于参数的最大整数值。由于 Rnd函数酌值不能到达 1,所以整个表达式也不可能到达 25。 【知识模块】 数据类型及运算 5 【正确答案】 B 【试题解析】 随机数函数 Rnd的功能是用于产生一个小于 1但大于或等于 0的随机数。为
17、了生成某个指定范围内的随机整数,可使用以下公式: Int(upperbound-lowerbound+1)*Rnd+lowerbound),其中 upperbound是随机整数范围的上限, lowerbound是随机整数范围的下限。 【知识模块】 数据类型及运算 6 【正确答案】 C 【试题解析】 Mid(string, start, length)函数用于从已有字符串中取出从指定位置开始的含指定个数字符的字符串,如果 stan参数超过了 string参数中字符的数目,将返回空字符串,如果省略或 length参数超过文本的字符数 (包括 stan处的字符 ),将返回字符串中从 stan到字符串
18、结束的所有 字符。本题程序运行后,当在文本框 Text1中输入字符数达到或超过 6时,在文本框 Text2中将随即显示输入字符中从第 6个字符开始的所有字符,全部字符输入后,文本框 Texf2中的内容为“Beijing”。 【知识模块】 数据类型及运算 7 【正确答案】 C 【试题解析】 本题通用过程的功能是:从字符串变量 xStr值的左右两端同时开始,由外向里每次取出两个字符 (左右各一个 ),组成一个新的字符串。 本题程序运行后,当调用通用过程函数 Fun后,返回值应为 “afbecd”,转换为大写后在文本框中 的显示结果为 “AFBECD”。 【知识模块】 数据类型及运算 8 【正确答案
19、】 D 【试题解析】 本题考查的考点是有关取子串函数的。本题也比较简单,循环次数就是字符串的长度,每次都在第 i位取一个字母转换成小写,最后倒序连接起来,注意每次都把新取得的字符连接到 s1的前面,所以为倒序连接。 【知识模块】 数据类型及运算 9 【正确答案】 B 【试题解析】 本题考查的考点是有关取子串函数的。在 VB中有 3种取子串函数: Left函数用于在字符串左端开始取 n个字符; Right函数用于在字 符串右端开始取 n个字符 (注意子串中字符的顺序与母串中相同 ); Mid函数可以实现在任何位置取任何长度的子串,其中长度省略的话将会一直取到串尾。本题中显示出来的结果可以看出,第
20、一行是字符串的第一个字符,第二行是字符串的前两个字符 所以每行输出的应该是字符串的前 i位。 【知识模块】 数据类型及运算 10 【正确答案】 C 【试题解析】 本题考查的考点是有关字符串处理的。本题中过程中的循环变量 i的初值是字符串长度的一半,终值是字符串长度,结合循环中的取子串函数,整个循环的功能是取得字符串的后一半放 入 tstr中,然后连接上自身的值返回到调用程序。 【知识模块】 数据类型及运算 11 【正确答案】 D 【试题解析】 本题考查的考点是有关自定义类型和 Fix函数的。用户可以通过Type语句自定义类型,并可用自定义的类型声明变量。注意 Fix函数是向下取整, Round
21、函数是四舍五入。 【知识模块】 数据类型及运算 12 【正确答案】 C 【试题解析】 本题考查的考点是有关字符转换函数的。 UCase函数的功能为强制转成大写字母: Chr函数的功能是把整数按照 ASCII码转换成字母; Asc函数的功能是把字母转换成对应的 ASCII码。本题中变量 c的值是大写字母 “A”,最终结果是大写字母 “C”。 【知识模块】 数据类型及运算 13 【正确答案】 D 【试题解析】 Mid(字符串,起始位置 ,个数 )函数用于从已有字符串中取出从指定位置开始的含指定个数字符的字符串, UCase()函数用于将字符串中小写字母转化为大写字母,原本大写或非字母字符保持不变。
22、 【知识模块】 数据类型及运算 14 【正确答案】 A 【试题解析】 Int函数的作用是去返回不大于参数的最大整数 ,例如Int(4 6)=4, Int(-4 6)=-5: VB中的逻辑值 True和 False和整型值之间会自动进行类型转换,其中 -1转换为 True, 0转换为 False。本题中由于 m为负数,所以sgn(m)的值为 -1,即条件为真,会返回不大于 m的最大整数值即 -4。 【知识模块】 数据类型及运算 15 【正确答案】 C 【试题解析】 字符串匹配函数 lnstr用于查找第二个参数在第一个参数中第一次出现的位置,若未找到返回 0: Mid(字符串,起始位置 ,个数 )
23、函数用于从已有字符串中取出从指定位置开始的 含指定个数字符的字符串,若不指定个数将返回字符串中从参数 “起始位置 ”到字符串尾端的所有字符。本题实际就是先找到小数点的位置,然后输出小数点后面的部分,即小数部分。 【知识模块】 数据类型及运算 16 【正确答案】 C 【试题解析】 Mid(字符串,起始位置 ,个数 )函数用于从已有字符串中取出从指定位置开始的含指定个数字符的字符串, UCase()函数用于将字符串中小写字母转化为大写字母,原本大写或非字母字符保持不变。本题中在循环内每次取出第 k位个字符并且连接到结果字符串的前面,所以结果字符串 是源字符串的逆序字符串。 【知识模块】 数据类型及
24、运算 17 【正确答案】 D 【试题解析】 Mid(字符串,起始位置 ,个数 )函数用于从已有字符串中取出从指定位置开始的含指定个数字符的字符串。本题中要将二进制数转换为十进制数,应该取出二进制数的每一位然后乘以位权。 【知识模块】 数据类型及运算 18 【正确答案】 B 【试题解析】 随机数函数 Rnd的功能是用于产生一个小于 1但大于或等于 0的随机数。为了生成某个指定范围内的随机整数,可使用公式: Int(upperbound-lowerbound+1)*Rnd+lowerbound),其中 upperbound是随机整数范围的上限,lowerbound是随机整数范围的下限。本题中 up
25、perbound为 99, lowerbound为10。 【知识模块】 数据类型及运算 19 【正确答案】 A 【试题解析】 随机数函数 Rnd的功能是用于产生一个小于 1但大于或等于 0的随机数。为了生成某个指定范围内的随机整数,可使用以下公式:Int(upperbound-lowerbound+1)*Rnd+lowerbound),其中 upperbound是随机整数范围的上限, lowerbound是随机整数范围的下限。本题中 upperbound为 99,lowerbound为 0。 【知识模块】 数据类型及运算 20 【正确答案】 B 【试题解析】 本题考查 VB运算符和表达式。本题
26、中的表达式运算符有 Mod求余,整除和 *乘法运算,整除和乘法优先级相同,因此先计箅 3 5值为 0,然后乘以 2值为 0,表达式变成: 5 Mod 3+0,结果为 2。 【知识模块】 数据类型及运算 21 【正确答案】 B 【试题解析】 本题考查 For循环。 x的初值为 2,代码的功能是把循环变量的值和 x做累加。 For循环执行 5次,循环变量 i的值分别为: 1、 3、 5、 7、 9,因此循环结束后 x的值为:2+1+3+5+7+9=27。 【知识模块】 数据类型及运算 22 【正确答案】 B 【试题解析】 本题考查常用函数, Mid(a, M, N)功能是从 a字符串左起第 M位下
27、标开始取值 (包含 M位 ),共取 N位字符: Right(a, M)表示从右起第一位开始取值,向左取 M位; Left(a, N)表示从 a字符串左起第一位开始取值,向右取 N位。题目要求取字 符串右边的 11个字符,可以使用 Mid或者或者 Right函数。选项 C错误是由于少取了一个字符:选项 D错误,只取了 10个字符:选项 B正确,表示从 a字符串的第 10位下标开始取右边的字符串。 【知识模块】 数据类型及运算 23 【正确答案】 C 【试题解析】 本题考查运算符、表达式和常用函数。 IIf语法是: IIf(逻辑表达式,表达式 1,表达式 2) 逻辑表达式:如果此表达式为真,该函数
28、就返回表达式1,否则返回表达式 2。在本题中 a99循环一次也不执行:选项 C变量 k表示数列元素,初值为 1表示数列第一项,是正确的;选项 D正确,如果 k=k+2放在前面,那么计算的数列第一项是 3,而不是 1。 【知识模块】 数据类型及运算 29 【正确答案】 D 【试题解析】 本题考查 InputBox的使用,语法是: InputBox (prompt, title,default】 , xpos, ypos)其中的 prompt为窗口的提示, title为输入窗口的标题,default为输入窗口的默认内容, xpos, ypos为窗口距离屏幕左边,上边的距离。在本题中,第一个参数 p
29、rompt为 “请输入 VB数据 ”,标题为 “输入框 ”。 【知识模块】 数据类型及运算 30 【正确答案】 D 【试题解析】 本题考查文件操作, VB中打开随机文件的语法为: OpenFor Random As#Len=1 其中 For Random表示打开随机文件, Len用来指定记录的长度,记录长度的缺省值为 128个字节。 【知识模块】 数据类型及运算 31 【正确答案】 B 【试题解析】 本题考查常用函数。如果产生一个 m到 n之间的随机数 (nm,包含 n和 m)表达式可为: r=Int(Rnd*(n-m+1)+m) 【知识模块】 数据类型及运算 32 【正确答案】 D 【试题解析】 本题考查文件操作,读文件使用 Line Input、 Input #, (以上为文本方式 )和 Get(以上为二进制方式 )。 Open“Filel txt”For Input As #1是以输入方式打开 Filel txt文本文件,因此可以使用 Line Input和 Input方法读文件,选项D错误。 【知识模块】 数据类型及运算