1、国家二级 VB机试(程序设计基础)模拟试卷 2及答案与解析 一、选择题 1 以下自定义数据类型的语句中,正确的是 ( )。 ( A) Type student ID As String * 20 name As String * 10 age As Integer End student ( B) Type student ID As String * 20 name As String * 10 age As Integer End Type ( C) Type student ID As String name As String age As Integer End student (
2、D) Type ID As String * 20 name As String * 10 age As Integer End Type student 2 以下变量名中合法的是 ( )。 ( A) x2-1 ( B) Print ( C) str_n ( D) 2x 3 以下变量名中合法的是 ( )。 ( A) x-2 ( B) 12abe ( C) sum_total ( D) print 4 以下合法的 VB变量名是 ( )。 ( A) _x ( B) 2y ( C) a#b ( D) x_1_x 5 以下合法的 VB变量名是 ( )。 ( A) _a ( B) yPrint ( C)
3、 a-b ( D) Type 6 在窗体上画一个名称为 Command1的命令按钮,再画两个名称分别为 Label1、Label2的标签,然后编写 如下程序代码: Private X As Integer Private Sub Command1_Click() X=5: Y=3 Call proc(X, Y) Label1 Caption=X Label2 Caption=Y End Sub Private Sub proe(a As Integer, ByVal b As Integer) X=a * a Y=b+b End Sub 程序运行后,单击命令按钮,则两个标签中显示的内容分别是
4、( )。 ( A) 25和 3 ( B) 5和 3 ( C) 25和 6 ( D) 5和 6 7 窗体上有 1个名称为 Command1的命令按钮,事件过程及函数过程如下: Private Sub Command1_Click() Dim p As Integer p=m(1)+m(2)+m(3) Print p End Sub Private Function m(n As Integer)As Integer Static s As Integer For i=1 To n S=s+1 Next m=S End Function 运行程序,第 2次单击命令按钮 Command1时的输出结果
5、为 ( )。 ( A) 6 ( B) 10 ( C) 16 ( D) 28 8 在一个工程的窗体中有如下代码: Public x As Integer Private Sub Form_Load() Dim y As Integer End Sub 在该工程的标准模块的声明部分有如下代码: Public a As Integer Private b As Integer 关于上述代码,以下叙述中错误的是 ( )。 ( A)变量 x的作用域是整个工程 ( B)变量 y的作用域是 Form_Load过程 ( C)变量 a的作用域是整个工程 ( D)变量 b的作用域是整个标准模块 9 在窗体模块的声
6、明部分声明变量时,不能使用的关键字是 ( )。 ( A) Dim ( B) Public ( C) Private ( D) Static 10 设窗体上有一个 Command1命令按钮,还有以下程序代码: Private Sub Command1_Click() Static x As Integer x=x+1 Call proc(x) Print x, End Sub Private Sub proc(a As Integer) Static x As Integer x =x + a a = x End Sub 程序运行后, 3次单击命令按钮,则产生的输出是 ( )。 ( A) 1 2
7、 3 ( B) 1 3 5 ( C) 1 3 7 ( D) 2 4 6 11 在窗体上画一个文本框,其名称为 Text1,然后编写以下程序: Private Sub Form_Load() Show Text1 Text=“ Text1 SetFoeus End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) Char = Chr(KeyAscii) KeyAscii=Ase(UCase(Char) End Sub 以上程序的功能是 ( )。 ( A)把输入到文本框中的字母转换为小写显示 ( B)把从键盘上输入的字符在文本框中原样显示 (
8、 C)把输入到文本框中的字母转换为大写显示 ( D)把输入到文本框中的字符转换为其 ASCII码显示 12 表达式 Sgn(0 25)的值是 ( )。 ( A) -1 ( B) 0 ( C) 1 ( D) 0 5 13 窗体上有 1个名称为 Command1的命令按钮,事件过程如下: Private Sub Command1_Cliek() m=-3 6 If Sgn(m)Then n=Int(m) Else n=Abs(m) End If Print n End Sub 运行程序,并单击命令按钮,窗体上显示的内容为 ( )。 ( A) -4 ( B) -3 ( C) 3 ( D) 3 6 1
9、4 以下能对正实数的第 3位小数四舍五入的表达式是 ( )。 ( A) 0 01 * Int(d+0 005) ( B) 0 01 * Int(100 * (d+0 005) ( C) 0 01 * Int(100 * (d+0 05) ( D) 0 01 * Int(d+0 05) 15 能够产生 1到 50之间 (含 1和 50)随机整数的表达式是 ( )。 ( A) Int(Rnd*51) ( B) Int(Rnd(50)+1) ( C) Int(Rnd*50) ( D) Int(Rnd*50+1) 16 下面程序运行时,若输入 “Visual Basic Programming”,则在
10、窗体上输出的是( )。 Private Sub Command1_Click() Dim count(25)As Integer, ch As String ch=UCase(InputBox(“请输入字母字符串 “) For k=1 To Len(ch) n=Asc(Mid(ch, k, 1)-Asc(“A“) If n =0 Then count(n)=count(n)+1 End If Next k m=count(0) For k=1 To 25 If m count(k)Then m=count(k) End If Next k Print m End Sub ( A) 0 ( B)
11、 1 ( C) 2 ( D) 3 17 在窗体上画一个文本框,名称为 Text1,然后编写如下程序: Private Sub Form_Load() Show Text1 Text=“ Text1 SetFocus End Sub Private Sub Form_Click() Dim a As String, s As String a=Text1 Text s=“ For k=1 To Lea(a) s=UCase(Mid(a, k, 1)+s Next k Text1 Text=s End Sub 程序运行后,在文本框中输入一个字符串,然后单击窗体,则文本框中的内容( )。 ( A)与
12、原字符串相同 ( B)与原字符串中字符顺序相同,但所有字母均转换为大写 ( C)为原字符串的逆序字符串,且所有字母转换为大写 ( D)为原字符串的逆序字符串 18 窗体上有一个名称为 Text1的文本框,一个名称为 Command1的命令按钮。要求编写一个程序,统计文本框中 0 9各数字字符的个数。某人编写如下程序: Private Sub Command1_Click() Dim count(10)As Integer 第 1个 For循环 For i=0 To 9 count(i)=0 Next S=Trim(Text1 Text) strLen=kn(s) 第 2个 For循环 For
13、i=1 To strLen c=Mid(S, i, 1) If c =”0”And e =“9“ Then x=Val(c) count(i)=count(i)+1 End If Next 第 3个 For循环 For i=0 To 9 Print sty(i), count(i) Next End Sub 运行程序后,发现不能实现题目的要求,程序应该进行的修改是 ( )。 ( A)将第 2个 For循环的初值改为 0 ( B)将第 2个 For语句改为 For i=0 To 9 ( C)去掉 x=Val C语句 ( D)将 count(i)=count(i)+1改为 coum(x)=c伽 m
14、(x)+1 19 下面程序计算并输出的是 ( )。 Private Sub Command1_Click() a=10 s=0 Do s=8+a*a*a a=a-1 Loop Until a =0 Print 8 End Sub ( A) 13+23+33+10 3的值 ( B) 10! +3 ! +2! +1!的值 ( C) (1+2+3+10) 3的值 ( D) 10个 103的和 20 下面的程序是利用公式: =4-4 3+4 5-4 7+4 9-4 11+ 计算, 的近似值 Pvivate Sub Command1_Click() Dim PI As Double, x As Doub
15、le, k As Long, sign As Integer sign=1 k=1 PI=0 Do x=sign*4 (2*k-1) PI=PI+x k=k+1 sign=_ Loop Until Abs(x) 0 000001 Print PI End Sub 在空处应填写的是 ( )。 ( A) sign+1 ( B) -sign ( C) x ( D) k 21 有如下语句序列: Dim a, b As Integer Print a Print b 执行以上语句序列,下列叙述中错误的是 ( )。 ( A)输出的 a值是 0 ( B)输出的 b值是 0 ( C) a是变体类型变量 ( D
16、) b是整型变量 22 下列程序段的输出结果是 ( )。 x=5 Print x+1; x+1 ( A) 6 6 ( B) 5 5 ( C) 6 7 ( D) 5 6 23 执行下列语句: strInput=InputBox(“请输入字符串 “, “字符串对 话框 “, “字符串 “) 将显示示输入对话框。此时如果直接单击 “确定 ”按钮,则变量 strInput的内容是( )。 ( A) “请输入字符串 ” ( B) “字符串对话框 ” ( C) “字符串 ” ( D)空字符串 24 窗体上有一个名称为 Command1的命令按钮,其事件过程如下: Private Sub Command1_
17、Click() x=“VisualBasieProgramming“ a=Right(x, 11) b=Mid(x, 7, 5) c=MsgBox(a, b) End Sub 运行程序后单击命令按钮,以下叙述中错误的是 ( )。 ( A)信息框的标题是 Basic ( B)信息框中的提示信息是 Programming ( C) c的值是函数的返回值 ( D) MsgBox的使用格式有错 25 用来设置文字字体是否为粗体的属性是 ( )。 ( A) FontItalic ( B) FontUnderline ( C) FontSize ( D) FontBold 国家二级 VB机试(程序设计基础
18、)模拟试卷 2答案与解析 一、 选择题 1 【正确答案】 B 【试题解析】 自定义数据类型的语法结构是: Type自定义类型名 (下标 ) As (下标 ) As End Type 其中,成员可以定义为定长的或不定长字符串,也可定义为数组。 本题中, B选项符合语法规则,故 B选项正确。 【知识模块】 程序设计基础 2 【正确答案】 C 【试题解析】 Visual Basic中变量名的命名规则 : 必须以字母或汉字开头 由字母、汉字、数字或下画线组成 不能使用 Visual Basic的保留字。 本题中 x2-1中有 -(减号 ),不是下画线。 print是 Visual Basic的保留字,
19、也不能作变量名。 2x以数字开头,也是错误的。故 C选项正确。 【知识模块】 程序设计基础 3 【正确答案】 C 【试题解析】 根据 Visual Basic中变量名的命名规则,变量 x-2中有一减号,不合法;变量 12abc是以数字开头,不合法;变量 print是 Visual Basic的保留字,不能作变量名 ,也不合法。 sum_total是符合命名规则,是合法的。故选 C。 【知识模块】 程序设计基础 4 【正确答案】 D 【试题解析】 根据 Visual Basic中变量的命名规则, _x不能以一下画线开头,不合法; 2y不能以数字开头,不合法; a#b中有 #,不合法; D选项符合
20、命名规则,故 D选项正确。 【知识模块】 程序设计基础 5 【正确答案】 B 【试题解析】 变量的命名规则是: 必须以字母开头,由字母、汉字、数字或下画线组成; 不能在变量名中出现句点 “ ”、空格或者嵌入字符, 例如 !、 、 #、 $、等; 长度不得超过 255个字符; 不能使用 Visual Basic的关键字,关键字是语言的组成部分,包括预定义语句(例如 If、 For等 )、函数 (Abs、 Sqr等 )和操作符 (or、 Mod等 )。 【知识模块】 程序设计基础 6 【正确答案】 A 【试题解析】 虽然在过程 proc中参数 a默认为按地址传递,参数 b指定了ByVal(按值 )
21、方式传递,但过程中并没有对 a, b的值改变,只对变量 X和 Y进行了赋值,而 X是在窗体模块中起作用的模块变量,而变量 Y在 proc过程中没有声明 ,要整个模块中也没有声明,说明它是一个局部变量,只在本过程中起作用。因此,在 proc过程中 X=a*s=5*5=25,会使按钮单击事件中的变量 X值变为 25,而按钮单击事件过程中的变量 Y不受影响,仍是原来的值 3。因此两个标签上会分别显示 25和 3。 【知识模块】 程序设计基础 7 【正确答案】 D 【试题解析】 在过程 m中, s被定义为静态变量,因此它的值只在第一次调用过程时初始化,以后再调用都不再初始化,而是保留之前的值。 m过程
22、的功能是根据参数值累加,因此第 1次单击时, m(1)+m(2)+m(3)=1+3+6=10,此时变量 s的值,即过程 m的值为 6,第 2次单击时, m(1)+m(2)+m(3)=7+9+12=28。因此答案为 D。 【知识模块】 程序设计基础 8 【正确答案】 A 【试题解析】 Visual Basic中变量按作用域分为 3类。局部变量:在过程内用Dim语句或 Static语句声明的变量,只能在本过程中使用。窗体模块级变量:在 “通用声明 ”段中用 Dim语句或 Private语句声明的变量,可被本窗体模块的任何过程访问。全局变量:在 “通用声明 ”段中用 Public语句声明的变量, 可
23、被本应用程序的任何过程或函数访问。 【知识模块】 程序设计基础 9 【正确答案】 D 【试题解析】 Visual Basic中变量的作用域分为:局部变量:在过程内用 Dim语句或用 Static语句声明的变量,只能在本过程中使用。窗体模块级变量:在 “通用声明 ”段中用 Dim语句或用 Private语句声明的变量,可被本窗体模块的任何过程访问。全局变量:在 “通用声明 ”段中用 Public语句声明的变量,可被本应用程序的任何过程或函数访问。 【知识模块】 程序设计基础 10 【正确答案】 C 【试题解析】 注意 Static关键字修饰的变量,在过程退出后,变量值保持不变。选 C。 【知识模
24、块】 程序设计基础 11 【正确答案】 C 【试题解析】 Chr()是把 ASCII码转换为对应的字符。 UCase将参数转换成大写。 Asc求字符串表达式的第一个字符的 ASCII编码。答案选 C。 【知识模块】 程序设计基础 12 【正确答案】 C 【试题解析】 sgn函数是符号函数,正数返回 1,负数返回 -1, 0返回 0。本题中0 25是正数,所以返回 1,故 C选项正确。 【知 识模块】 程序设计基础 13 【正确答案】 A 【试题解析】 Sgn函数返回参数的符号,参数为负数时返回 -1,为 0时,返回0,为正数时返回 1。所以 Sgn(-3 6)返回 -1。 Visual Bas
25、ic中把任何非 0值都认为是真,以 0表示假,因此 if语句中将执行 n=Int(m)语句。 Int函数返回不大于参数的最大整数, Int(-3 6)要返回小于 -3 6的整数即是 -4,因此 n=-4。 【知识模块】 程序设计基础 14 【正确答案】 B 【试题解析】 Int函数,返回的是不大于该数的一个整 数。 d+0 005,是让第三位小数进位,达到四舍五入,再乘 100,放大 100倍,保留小数位,取整后乘0 01还原为原数。如: 5 333+0 005=5 338,乘 100后为 533 8,取整后为533。乘 0 01后还原为 5 33。 【知识模块】 程序设计基础 15 【正确答
26、案】 D 【试题解析】 Rnd函数产生 0 1之间的随机数,不包括 1。要产生 1 50(包含 1和 50)之间的随机整数,可以先产生 0 50之间的随机整数,然后再这个基础上加1。故 D选项正确。 【知识模块】 程序设计基础 16 【正确答案】 D 【试题解析】 根据题中的程序代码可知, ch为输入字符串的大写状态,第一个For循环是依次取出字母。 n为取出字母与 “A”字符的 ASCII码差值,然后再赋给数组 count();第二个 For循环是找出数组 count()中的最小值,因此,最后窗体上输出的结果为 3,即选项 D。 【知识模块】 程序设计基础 17 【正确答案】 C 【试题解析
27、】 程序中 Mid函数从输入字符串左边开始逐一取一个字符转换为大写,并连接到上次取出的字符的前面,因此文本框中显示的将是原输入字符串转换为 大写的并倒序排列的字符串。所以 C正确。 【知识模块】 程序设计基础 18 【正确答案】 D 【试题解析】 根据题意可知,第 2个 For循环统计的字符个数。 i是循环变量,所以选 D。 【知识模块】 程序设计基础 19 【正确答案】 A 【试题解析】 在 Do循环语句中程序大致执行过程如下: s=103, a=9;s=103+93, a=8; s=10+93+83, a=7 ; ,依此类推,因此正确的答案为A。 【知识模块】 程序设计基础 20 【正确答
28、案】 B 【试 题解析】 根据公式 =4-4 3+4 5-4 7+4 9-4 11+ 可知 sign是作为符号翻转的,即一次 “+”,下一次就为 “-”,因此空缺处应该填 -sign,这样就可使符号循环一次翻转一次。 【知识模块】 程序设计基础 21 【正确答案】 A 【试题解析】 任何变量在被声明后都会有一个初始值。一般情况下,数值型变量的初始值为 0;字符串变量的初始值为空字符串;变体型变量的初始值为空值,即Null值;布尔型的初始值为假,即 False。 本题中变量 a定义时没有声明数据类型,默认为 Variant变体型变量,默认值是: Null;变量 b定义为整型变量,默认值为 0。所
29、以输出 a为空白, b为 0。故A选项错误。 【知识模块】 程序设计基础 22 【正确答案】 A 【试题解析】 Print方法对于数值表达式只打印表达式的值。该题中的表达式中x的值没有发生变化,始终等于 5,所以输出结果是 6 6。 【知识模块】 程序设计基础 23 【正确答案】 C 【试题解析】 InputBox函数的格式: 变量名 =InputBox(“提示信息 ”, “标题栏显示信息 ”, “输入文本 框中默认值 ”, X, Y)InputBox函数的功能:在一输入对话框中显示提示,等待用户在输入文本框中输入数据,然后按下按钮,返回文本框内容。如果用户单击 “确定 ”按钮,则 Input
30、Box函数把输入文本框的内容作为一字符串返回;如果没有输入数据,按 “确定 ”按钮,则返回的是空字符串;如果按 “取消 ”按钮,则不管输入框有没有输入数据,都返回空字符串。 根据以上所述,运行程序,会出现一输入对话框,在上面有 “请输入字符串 ”提示信息,标题栏中显示 “字符串对话框 ”,输入文本框中有默认值 “字符串 ”,单击“确定 ”按钮后,文本框中的 “字符串 ”三个字作为字符串返回给 strInput变量。所以 strInput变量的内容是 “字符串 ”,故选 C。 【知识模块】 程序设计基础 24 【正确答案】 D 【试题解析】 Right(x, 11)是从字符串变量 x右边取 11
31、个字符,即“Programming”,这个字符串存入变量 a中。 Mid(x, 7, 5)是从字符串变量 x的第7个字符开始取 5个字符,即 “Basic”,此字符串存入变量 b中。 MsgBox的格式为: MsgBox(Prompt, Button, Title),参数 中只有 Prompt是必需的,如果省略 Button则显示一个确定按钮,因此题目显示的消息框有一个测定按钮,标题是“Basic”,信息是 “Programming”。 MsgBox的返回值是一个与所选按钮有关的整数。 【知识模块】 程序设计基础 25 【正确答案】 D 【试题解析】 FontItalic用来设置文字是否为斜体, FontUnderLine用来设置文字是否加下画线, FontSize用来设置文字的字号, FontBold用来设置文字是否为粗体。 【知识模块】 程序设计基础
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1