1、2009年 3月国家二级( VisualBasic)笔试真题试卷及答案与解析 1 下列叙述中正确的是 _。 ( A)栈是 “先进先出 ”的线性表 ( B)队列是 “先进后出 ”的线性表 ( C)循环队列不是非线性结构 ( D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构 2 支持子程序调用的数据结构是 _。 ( A)栈 ( B)树 ( C)队列 ( D)二叉树 3 某二叉树有 5个度为 2的结点,则该二叉树中的叶子结点数是 _。 ( A) 10 ( B) 8 ( C) 6 ( D) 4 4 下列排序方法中,最坏情况下比较次数最少的是 _。 ( A)冒泡排序 ( B)简单选择排序 (
2、 C)直接插入排序 ( D)堆排序 5 软件按功能可以分为:应用软件、系统软件和支撑软件 (或工具软件 )。下面属于应用软件的是 _。 ( A)编译程序 ( B)操作系统 ( C)教务管理系统 ( D)汇编程序 6 下面叙述中错误的是 _。 ( A)软件测试的目的是发现错误并改正错误 ( B)对被调试的程序进行 “错误定位 ”是程序调试的必要步骤 ( C)程序调试通常也称为 Debug ( D)软件测试应严格执行测试计划,排除测试的随意性 7 耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是 _。 ( A)提高耦合性降低内聚性有利于提高模块的独立性 ( B)降低耦合性提高内聚性有
3、利于提高模块的独立性 ( C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度 ( D)内聚性是指模块间互相连接的紧密程度 8 数据库应用系统中的核心问题是 _。 ( A)数据库设计 ( B)数据库系统设计 ( C)数据库维护 ( D)数据库管理员培训 9 有两个关 系 R, S如下: 由关系 R通过运算得到关系 S,则所使用的运算为 _。 ( A)选择 ( B)投影 ( C)插入 ( D)连接 10 将 E-R图转换为关系模式时,实体和联系都可以表示为 _。 ( A)属性 ( B)键 ( C)关系 ( D)域 11 执行语句 Dim X, Y As Integer后, _。 ( A) X和
4、 Y均被定义为整型变量 ( B) X和 Y均被定义为变体类型变量 ( C) X被定义为整型变量, Y被定义为变体类型变量 ( D) X被定义为变体类型变量, Y被定义为整型变量 12 以下关系表达式中,其值为 True的是 _。 ( A) XYZ “XYz“ ( B) VisualBasic “visualbasic“ ( C) the=“there“ ( D) Integer “Int“ 13 执行以下程序段 a =“Visual Basic Programming“ b =“C+“ c =UCase(Left (a, 7)& b & Right (a, 12) 后,变量 c的值为_。 (
5、A) Visual BASIC Proramming ( B) VISUAL C+ Programming ( C) Visual C+ Programming ( D) VISUAL BASIC Progrmming 14 下列叙述中正确的是 _。 ( A) MsgBox语句的返回值是 个整数 ( B)执行 MsgBox语句并出现信息框后,不用关闭信息框即可执行其他操作 ( C) MsgBox语句的第 个参数不能省略 ( D)如果省略 MsgBox语句的第三个参数 (Title),则信息框的标题为空 15 在窗体上画 个文本框 (名称为 Text1)和 个标签 (名称为 Label1),程序
6、运行后,在文本框中每输入 个字符,都会立即在标签中显示文本框中字符的个数。以下可以实现上述操作的事件过程是 _。 ( A) Private Sub Text1_ Change() Label1.Caption =Str (Len(Text1.Text)End Sub ( B) Private Sub Text1_ Click() Label1.Caption=Str(Len(Text1.Text)End Sub ( C) Private Sub Text1_ Change() Labell.Caption =Text1.TextEnd Sub ( D) Private Sub Label1_
7、Change() Labell.Caption=Str(Len(Text 1. Text)End Sub 16 在窗体上画两个单选按钮 (名称分别为 Option1、 Option2,标题分别为 “宋体 ”和“黑体 ”)、 1个复选框 (名称为 Check1,标题为 “粗体 ”)和 1个文本框 (名称为 Text1,Text属性为 “改变文字字体 ”),窗体外观如图所示。程序运 行后,要求 “宋体 ”单选按钮和 “粗体 ”复选框被选中,则以下能够实现上述操作的语句序列是 _。( A) Option1. Value=Flase Check1.Value=True ( B) Option1.Val
8、ue=True Check1.Value=0 ( C) Option2.Value=Flase Check1.Value=2 ( D) Option1.Value=True Check1.Value=1 17 在窗体上画 个名称为 Command1的命令按钮,然后编写如下 事件过程:Private Sub Command1_ Click() c=1234 c1=Trim(str(c) For i=1 To 4 Print _ NextEnd Sub程序运行后,单击命令按钮,要求在窗体上显示如下内容: 1 12 123 1234则在横线外应填入的内容为 _。 ( A) Right (c1, i)
9、 ( B) Left(c1, i) ( C) Mid(c1, i, 1) ( D) Mid(c1, i, i) 18 假定有以下程序段 For i=1 To 3 For j=5 To 1 Srep-1 Print i*j Next jNext i则语句 Print i*j 的执行次数是 _。 ( A) 15 ( B) 16 ( C) 17 ( D) 18 19 在窗体上画两个文本框 (名称分别为 Text1和 Text2)和 个命令按钮 (名称为Cotranand1),然后编写如下事件过程: Private Sub Command1_Click() x=0 Do While x 50 x=(x
10、+2)*(x+3) n=n+1 Loop Text1.Text=Str(n) Text2.Text=Str(x)End Sub 程序运行后,单击命令按钮,在两个文本框中显示的值分别为 _。 ( A) 1和 0 ( B) 2和 72 ( C) 3和 50 ( D) 4和 168 20 阅读程序: Private Sub Form_ Click() a=0 For j=1 To 15 a=a+j Mod 3 Next j Print aEnd Sub 程序运行后,单击窗体,输出结果是 _。 ( A) 105 ( B) 1 ( C) 120 ( D) 15 21 以下说法中正确的是 _。 ( A)当
11、焦点在某个控件上时,按下 个字母键,就会执行该控件的 KeyPress事件过程 ( B)因为窗体不接受焦点,所以窗体不存在自己的 KeyPress事件过程 ( C)若按下的键相同, KeyPress事件过程中的 KeyAscii参数与 KeyDown事件过程中的 KeyCode参数的值也相同 ( D)在 KeyPress事件过程中, KeyAscii参数可以省略 22 语句 Dim a(-3 To 4, 3 To 6)As Integer定义的数组的元素个数是 _。 ( A) 18 ( B) 28 ( C) 21 ( D) 32 23 在窗体上画 个命令按钮,其名称为 Command1,然后编
12、写如下代码: Option Base 1Private Sub Command1_ Click() Dim a a=Array(1,2,3,4) j=1 For i=,4 To 1 Step-1 s=s+ a(i)*j j=j*10 Next i Print sEnd Sub程序运行后,单击命令按钮,其输出结果是 _。 ( A) 4321 ( B) 1234 ( C) 34 ( D) 12 24 假定通过复制、粘贴操作建立了一个命令按钮数组 Command1,以下说法中错误的是 _。 ( A)数组中每个命令按钮的名称 (Name属性 )均为 Command1 ( B)若未作修改,数组中每个命令
13、按钮的大小都一样 ( C)数组中各个命令按钮使用一个 Click事件过程 ( D)数组中每 个命令的按钮的 Index属性值都相同 25 在窗体上画一个命令按钮,名称为 Command1,然后编写如下代码: Option Base()Private Sub Command1_ Click() Dim A1(4) As Integer, A2(4)As Integer For k= 0 To 2 A1(k+1)=InputBox(“请输入 个整数 ”) A2(3-k)=A1(k+1) Next k Print A2 (k)End Sub程序运行后,单击 命令按钮,在输入对话框中依次输入 2、 4
14、、6,则输出结果为 _。 ( A) 0 ( B) 1 ( C) 2 ( D) 3 26 以下关于函数过程的叙述中,正确的是 _。 ( A)函数过程形参的类型与函数返回值的类型没有关系 ( B)在函数过程中,过程的返回值可以有多个 ( C)当数组作为函数过程的参数时,既能以传值方式传递,也能以传址方式传递 ( D)如果不能指明函数过程参数的类型,则该参数没有数据类型 27 在窗体上画两个标签和 个命令按钮,其名称分别为 Label1、 Labd2和Command1,然后编写如下程序: Private Sub func (L As Label) L.Caption=“1234“End SubPri
15、vate Sub Form_ Load() Label1. Caption=“ABCDE“ Label2 Caplion=10End SubPrivate Sub Command1_ Click() a=Val(Label2. Caption) call func(Label1) Label2.Caption=aEnd Sub 程 序运行后,单击命令按钮,则在两个标签中显示的内容分别为 _。 ( A) ABCD和 10 ( B) 1234和 100 ( C) ABCD和 100 ( D) 1234和 10 28 在窗体上画 个命令按钮 (名称为 Command1),并编写如下代码: Funct
16、ion Fun1 (ByVala As Integer, b As Integer)As Integer Dim t As Integer t=a-b b=t+ a Fun 1=t+ bEnd FunctionPrivate Sub Command1_ Click() Dim x As Integer x=10 Print Fun1(Fun1 (x,(Fun1(x, x-1),x-1)End Sub程序运行后,单击命令按钮,输出结果是 _。 ( A) 10 ( B) 0 ( C) 11 ( D) 21 29 以下关于过程及过程参数的描述中,错误的是 _。 ( A)过程的参数可以是控件名称 (
17、B)调用过程时使用的实参的个数应与过程形参的个数相同 ( C)只有函数过程能够将过程中处理的信息返回到调用 程序中 ( D)窗体可以作为过程的参数 30 设有如下通用过程: Public Function Fun (xStr As String) As String Dim tStr As String, strL As Integer tStr=-“ “ strL=Len(xStr) i=strL/2 Do Whilei =strL tStr=tStr &id(xStr,i+1, 1) i=i+1 Loop Fun=tStr & tStrEnd Function 在窗体上画 个名称为 Tex
18、t1的文本框和 个名称为 Command1的命令按钮,然后编写如下的事件过程: Private Sub Command1_ Click() Dim S1 String S1=“ABCDEF“ Text1.Text=LCase(Fun(S1)End Sub 程序运行后,单击命令按钮,文本框中显示的是 _。 ( A) ABCDEF ( B) abcdef ( C) defdef ( D) defabc 31 在窗体上画一个命令按钮和 一个文本框 (名称分别为 Command1和 Text1),并把窗体的 KeyPreview属性设置为 True,然后编写如下代码: Dim SaveAll As S
19、tringPrivate Sub Form_ Load () Show Text1.Text=“ “ Text1.SetFocusEnd SubPrivate Sub Command1_ Click() Text1. Text=LCase(SaveAll)+SaveAllEnd SubPrivate Sub Form_ KeyPress (KeyAscii As Integer) SaveAll=SaveAll+Chr(KeyAscii)End Sub程序运行后,直接用键盘输入: VB,再单击命令按钮,则文本框中显示的内容为 _。 ( A) vbVB ( B)不显示任何信息 ( C) VB (
20、 D)出错 32 设有以下程序: Private Sub Form_ Click() x=50 For i=1 To 4 y=InputBox(“请输入 个整数 ”) y=Val(y) If y Mod 5=0 Then a=a+ y x=y Else a=a+ x End If Next i Print aEnd Sub 程序运行后,单击窗体,在输入对话框中依次输入 15、 24、 35、 46,输出结果为 _。 ( A) 100 ( B) 50 ( C) 120 ( D) 70 33 以下关于菜单的叙述中,错误的是 _。 ( A)当窗体为活动窗体时,用 Clrl+ E键可以打开菜单编辑器
21、( B)把菜单项的 Enabled 属性设置为 False,则可删除该菜单项 ( C)弹出式菜单在菜单编辑器中设计 ( D)程序运行时,利用控件数组可以实现菜单项的增加或减少 34 以下叙述中错误的是 _。 ( A)在程序运行时,通用对话框控件是不可见的 ( B)调用同 个通用对话框控件的不同方法 (如 ShowOpen或 ShowSave)可以打开不同的对话框窗口 ( C)调用通用对话框控件的 ShowOpen方法,能够直接打开在该通用对话框中指定的文件 ( D)调用通用对话框控 件的 ShowColor方法,可以打开颜色对话框窗口 35 设在工程文件中有 个标准模块,其中定义了如下记录类型
22、: Type Books Name As String *10 TelNum As String*20End Type在窗体上画 个名为Command1的命令按钮,要求当执行事件过程 Command1_Click时,在顺序文件Petson.txt中写入一条 Books类型的记录。下列能够完成该操作的事件过程是 _。 ( A) Private Sub Command1_ Click() Dim B As Books Open “Person.txt“ For Output As #1 B. Name=InputBox(“输入姓名 ”) B. TelNum=InputBox(“输入电话号码 ”)
23、Write #1, B. Name, B. TelNum Close #1End Sub ( B) Private Sub Command1_ Click() Dim B As Books Open “Person.txt“ For Input As #1 B. Name=InputBox(“输入姓名 ”) B.TelNum=InputBox(“输入电话号码 ”). Print #1, B. Name, B.TelNum Close #1End Sub ( C) Private Sub Command1_Click() Dim B As Books Open “Person.txt“ For
24、Output As #1 B.Name= InputBox(“输入姓名 ”) B.TelNum=InputBox(“输入电话号码 ”) Write #1, B Close #1End Sub ( D) Private Sub Command1_ Click() Open “Person. txt“ For Input As #1 Name=InputBox(“输入姓名 ”) TelNum=InputBox(“输入电话号码 ”) Print #1, Name, TelNum Close #1End Sub 36 假设用一个长度为 50的数组成 (数组元素的下标从 0到 49)作为栈的存储窨,栈底
25、指标 bottom指向栈底元素,栈顶指针 top指向栈顶元素,如果 bottom=49,top=30(数组下标 ),则栈中具有【 】个元素。 37 软件测试可分为白盒测试和黑盒测试。基本路径测试属于【 】测试。 38 符合结构化原则的三种基本控制结构是:选择结构、循环结构和【 】。 39 数据库系统的核心是【 】。 40 在 E-R图中,图形包括矩形框、菱形框、椭圆框。其中表示实际联系的是【 】框。 41 设窗体上有 个名称为 Combo1的组合框,并有以下程序: Privale Sub Combol_ KeyPress(KeyAscii As Integer) If【 】 =13 Then
26、回车符的 ASCII码是 13 For k=0 To Combo1. ListCount-1 If Combo1.Text=Combol. List(k)Then Combo1.Text=“ “ Exit For End If Next k If Combo1. Text “ “Then Combo1. AddItem 【 】 End If End If End Sub 程序的功能是:在组合框的编辑区中输入文本后按回车键,则检查列表中有无与此文本相同的项目,若有,则把编辑区中的文本删除,否则把编辑区中文本添加到列表的尾部。请填空。 42 本程序实现文本加密。先给定序列: a1, a2, , a
27、n,它们的取值范围是 1n,且互不相同。加密算法是:把原文本中第 k个字符放到加密后文本的第 ak个位置处。若原文本长度大于 n,则只对前 n个字符加密,后面的字符不变;若原文本长度小于 n,则在后面补字符 “*”使文本长度为 n 后再加密。 例如:若给定序列 a1, a2, a7 却分别为 2, 5, 3, 7, 6, 1, 4 当文本为 “PROGRAM”时,加密后的文本为 “APOMRRG” 当文本为 “PROGKAMMING”时,加密后的文本为 “APOMRRGMING” 当文本为 “THANK”时,加密后的文本为 “*TA*HKN” 下面的过程 code实现这一算法。其中参数数组 a
28、()中存放给定序列 (个数与数组 a的元素个数相等 )a(1, a2, a3, 的值,要加密的文本放在参数变量 mystr中。过程执行完毕,加密后的文本仍放在变量 mysar中。请填空。 Option Basel Private Sub code (a () As Integer, mystr As String) Dim ch AS String, cl As String n=UBound(a)- Len(mystr) If n 0 Then mystr=mystr & String (n,“*“) End If ch= mystr For k=【 】 To UBound(a) c1=Mi
29、d(mystr,k,1) n=【 】 Mid (ch, n)=c1 Next k mystr=ch End Sub 43 窗体如图所示,其中汽车是名称为 Imagel的图像框,命令按钮的名称为Command1,计时器的名称为 Timer1,直线的名称为 Linel。程序运行时,单击命令按钮,则汽车每 0.1秒向左移动 100,车头到达左边的直线时停止移动。请填空完成下面的属性设置和程序,以便实现上述功 能。 1)Timer1的 Interval属性的值应事先设置为【 】 2)Private Sub Command1_ Click() Timer1. Enabled=TrueEnd SubPri
30、vate Sub Tuner1_Timer() If Imagel. Left【 】 Then Image1.Left= 【 】 -100 End IfEnd Sub 44 在当前目录下有 个名为 “myfile.txt”的文本文件,其中有若干行文本。下面程序的功能是读入此文件中的所有文本行,按行计算每行字符的 ASCII码之和,并显示在窗体上。请填空。 Private Sub Command1_ Click() Dim ch , ascii As Integer Open “myfile.txt“ For【 】 As #1 While Not EOF(1) Line Input #1 ,ch
31、 ascii=toascii(【 】 ) Print ascii Wend Close #1 End Sub Private Function toascii(mystr )As Integer n=0 Fork=1 To【 】 n=n+ Asc(Mid(mystr,k,1) Next k toascii=n End Function 2009年 3月国家二级( VisualBasic)笔试真题试卷答案与解析 1 【正确答案】 D 【试题解析】 栈是一种特殊的线性表,这种线性表只能在固定的一端进行插入和删除操作,允许插入和删除的一端称为栈顶,另一端称为栈底。一个新元素只能从栈顶一端进入,删除时
32、。只能删除栈顶 的元素,即刚刚被插入的元素。所以栈又称 “后进先出 ”表,所以选项 A是错误的。 队列可看作是插入在一端进行,删除在另一端进行的线性表,允许插入的一端称为队尾,允许删除的一端称为队头。在队列中,只能删除队头元素,队列的最后一个元素一定是最新入队的元素。因此队列又称 “先进先出 ”表,所以选项 B是错误的。 循环队列是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。它的逻辑结构仍然是线性结构,所以选项 C是错误的。 有序线性表既可以采用顺序存储结构。也可以采用链式存储结构,所以选项 D是正确 的。 2 【正确答案】 B 【试题解析】 子程序调用是
33、一种层次关系,子程序调用功能模块,调用功能模块的个数也不确定,可以是一个,也可以是多个。选项 A、 C中元素之间是一种前后件关系,前后元素之间没有层次之分,每个结点有一个前件也只有一个后件。二叉树是一种很有用的非线性结构,二叉树不同于树形结构。二叉树具有以下两个特点: 1)非空二叉树只有一个根结点; 2)每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。选项 D规定每个结点只能有两个后件。在子程序调用中,调用的功能模块可以是多个,可以调用超过两 个功能模块。所以选项 A、C、 D均不正确。 3 【正确答案】 C 【试题解析】 在任意一棵二叉树中,度为 0的结点 (即叶子结点 )总是比
34、度为 2的结点多一个。本题中度为 2的结点数为 5,故叶子结点数为 5+1=6个。 4 【正确答案】 D 【试题解析】 (1)冒泡排序法:是一种最简单的交换类排序法,它是通过相邻数据元素的交换逐步将线性表变成有序。假设线性表的长度为 n,则在最坏情况下,冒泡排序需要经过 n, 2遍的从前往后的扫描和 n/2遍的从后往前的扫描,需要比较的次数为 n(n-1)/2次。 (2)简单插入 排序法:在简单插入排序法中,每一次比较后最多 移掉一个逆序,因此,这种排序方法的效率与冒泡排序法相同。在最坏情况下,简单插入排序需要 n(n-1), 2次比较。 (3)简单选择排序法:对于长度为 n的序列,选择排序需
35、要扫描 n-1遍,每一遍扫描均从剩下的子表中选出最小的元素,然后将该最小的元素与子表中的第一个元素进行交换。简单选择排序法在最坏情况下 需要比较 n(n-1)/2次。 (4)堆排序法:堆排序的方法为: 首先将一个无序序列建成堆。 然后将堆顶元素 (序列中的最大项 )与堆中最后一个元素交换 (最大项应该在序列的最后 )。在最坏情况下,堆排序需要比较的次数为 O(nlog2n)。假设线性表的长度为 16,那么冒泡排序、直接插入排序、简单选择排序都需要比较120次,而堆排序需要比较 64次。 5 【正确答案】 C 【试题解析】 软件按功能可以分为:应用软件、系统软件、支撑软件 (或工具软件 )。应用
36、软件是为解决特定领域的应用而开发的软件。例如,事务处理软件、工程与科学计算软件,实时处理软件,嵌入式软件。人工智能软件等应用性质不同的软件。因此选项 C教务管理系统属于应用软件。系统软件是计算机管理自身资源,提高计算机使用效 率并为计算机用户提供各种服务的软件。如操作系统,编译程序,汇编程序,网络软件,数据库管理系统等。因此选项 A、 B、 D都属于系统软件。 6 【正确答案】 A 【试题解析】 1983年 IEEE将软件测试定义为:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清 预期结果与实际结果之间的差别。因此选项 A的叙述是错误的。软件测试的基本
37、准则为: (1)所有测试都应追溯到需求。 (2)严格执行测试计划,排除测试的随意性。 (3)充分注意测试中的群集现象。 (4)程序员应避免检查自己的程序。 (5)穷举测试不可能。 (6)妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。因此选项 D正确。在对程序进行了成功的测试之后将进入程序调试 (通常称 Debug,即排错 )。因此选项 C正确。程序调试的任务是诊断和改正程序中的错误。程序调试的基本步骤: (1)错误定位。 (2)修改设计和代码 ,以排除错误。 (3)进行回归测试,防止引进新的错误。因此选项 B是正确的。 7 【正确答案】 B 【试题解析】 1、内聚性:内聚
38、性是一个模块内部各个元素间彼此结合的紧密程度的度量。 2、耦合性:耦合性是模块间互相连接的紧密程度的度量。因此选项C、 D是错误的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚 性,有利于提高模块的独立性。因此选项 A是错误的,应该降低耦性合提高内聚性,所以选项 B是正确的。 8 【正确 答案】 A 【试题解析】 数据库应用系统是数据库系统再加上应用软件及应用界面这三者所组成,具体包括:数据库、数据库管理系统、数据库管理员、硬件平台、软件平台、应用软件、应用界面。在数据库应用系统中的一个核心问题就是设计
39、一个能满足用户要求,性能良好的数据库,这就是数据库设计。所以选项 A是正确的。 9 【正确答案】 B 【试题解析】 专门的关系运算包括:选择、投影和连接。 1、选择:从关系中找出满足给定条件的元组的操作称为选择。选择是从行的角度进行的运算,即从水平方向抽取记录。 2、投影:从关系模式 中指定若干个属性组成新的关系。投影是从列的角度进行的运算,相当于对关系进行垂直分解。 3、连接:连接是关系的横向结合。连接运算将两个关系模式拼接成一个更宽的关系模式,生成的新关系中包含满足连接条件的元组。连接过程是通过连接条件来控制的,连接条件中将出现两个表中的公共属性名,或者具有相同语义、可比的属性。选择和投影
40、运算的操作对象只是一个表。相当于对一个二维表进行切割。连接运算需要两个表操作为操作对象。由图可知关系 R通过运算得到关系 S。关系 S与关系 R相比,记录的条数没有发生变化,属性的个数发生了变化。因此所使用的 运算应该是投影。选项 C插入运算会增加记录的条数。所以选项 B是正确的。 10 【正确答案】 C 【试题解析】 将 E-R图转换为关系模式时。实体和联系都可以表示成关系, E-R图中属性也可以转换成关系的属性。实体集也可以转换成关系。 11 【正确答案】 D 【试题解析】 Dim:用于在标准模块 (Module)、窗体模块 (Form)或过程(Procedure)中定义变量或数组。一个
41、Dim可以定义多个变量,当定义多个变量时,每个变量都要用 As子句声明其类型,否则该变量被看做是变体类型。此题中, X没 有用 As声明其类型,所以它为变体类型, Y为整型变量。 12 【正确答案】 B 【试题解析】 字符串比较大小规则:从左到右逐个比较其字符的 ASCII码值。有以下几种情况: 字符串相等。 当两个字符串不是所有对应位置上的字符都相等,以第一次出现不同字符时的比较结果为准。因此选项 A中只需判断 “Z”与 “z”的大小就可确定表达式的值,“Z”的 ASCII码值小于 “z”的 ASCII码值,因此 “XYZ” “XYz”,选项 A表达式的值为 False。 前面完全相等,以长
42、者为大。因此选项 C中 “the” “there”、选项 D中“Integer” “Int”,选项 C、 D表达式的值均为 False。 对于纯英文且大小写相同,可按英文字典顺序比较。在字典顺序后出现的比在前面出现的大。当出现不对应的大小写字母时,小写字母总是大于相同的大写字母。因此选项 B中字符串 “visualbasic”的首字符 “v”大于字符串 “VisualBasic”的首字符 “V”, “visualbasic” “VisualBasic“,两者并不相等,而运算符 “ ”表示不相等,因此选项 B表达式的值为 True。 字符串由汉字组成时,实际上按拼音的 ASCII值比较。 数字字
43、符比较遵循上面的规则。 13 【正确答案】 B 【试题解析】 首先用 Left函数截取 a字符串的前 7位字符 “Visual”, Ucase函数将其转换为大写 “VISUAL”, Right (a .12)是从右边截取 a字符串的 12位 “Programming”,最后将三个字符串连接起来,答案为 “VISUAL C+Programming”。 14 【正确答案】 C 【试题解析】 Msg语句形式为: MsgBox Msg ,type%,title ,helpfile,context,各参数的含义及作用与 MsgBox函数相同, MsgBox语句没有返回值,除了 Msg参数是必要的,其他的
44、都是可选的。如果省略第三个参数title则对话框的标题为当前工程的名称,如果希望标题栏中没有任何内容,则应把 title参数置为空字符串。 MsgBox语句强制所显示的信息框为模态窗口,在程序运行时,模态窗口挂起应用程序中其他窗口,即当屏幕上出现一个窗口 (或MsgBox对话框 )时,需要响应该窗口中的提示,才能进行其后的操作。 15 【正确答案】 A 【试题解析】 TextBox控件中, change事件是在 FextBox控件的 Fext内容发生改变时触发。 Click事件是在用户鼠标单击文本时触发。程序运行后,在文本框中每键入一个字符,就会引发一次 change事件,所以应把程序写在文本
45、框 Text1的Change()事件中,因此选项 B、 D错误。 Len(Text1.text, )返回文本框中字符的个数, Str将返回的字符的个数转换成字符串,语句“Label1.caption=Str(Len(Text1.text)”是在标签中显示文本框中字符的个数,因此选项 A正确。 16 【正确答案】 D 【试题解析】 Value属性用来表示复选框或单选按钮的状态。对于单选按钮来说, Value属性可设置为 True或 False。当设置为 True时,该单选按钮是 “打开 ”的,按钮的中心有一个圆点。如果设置为 False、则该单选按钮是 “关闭 ”的,按钮是一个圆圈。题目要求 “
46、宋体 ”单选按钮被选中,因此应设置为其 Value属性为True。 对于复选框来说, Value属性可以设置为 0、 1或 2。其中: 0表示没有选择该复选框; 1表示选中该复选框; 2表示该复选框被禁止 (灰色 )。 题目要求 “粗体 ”复选框被选中因 此应设置其 Value属性为 1。 17 【正确答案】 B 【试题解析】 Right (字符串, n):右截取函数,返回 “字符串 ”的最后 n个字符。 Left (字符串, n):左截取函数,返回 “字符串 ”的前 n个字符。 Mid (字符串, p, n):从第 p个字符开始,向后截取 n个字符 Trim函数返回Variant(strin
47、g)类型,其中包含指定字符串的拷贝,但不包含前导和尾随空白。 18 【正确答案】 A 【试题解析】 For循环语句中, Step表示步长,即循环计数器变化的幅度。如果省略步长的声明 ,则默认步长为 1。本题中外循环 i每次加 1,故执行 3次循环,内循环 j每次减 1,故执行 5次循环,每执行一次外循环就执行 5次内循环,因此内循环执行的次数为 3*5=15。 19 【正确答案】 B 【试题解析】 do while. loop循环语句是当 While后面的条件为 True时,执行循环体,当条件为 False时退出循环。 str(数字 )函数用来将数字转换为字符串返回。如果 “数字 ”是正数,由
48、于正数的前面有一个空位表示正号,所以 Str函数所返回的字符串包含一个前导空格。 程序执行的过程为: 第一次: x=0, x 50,所以 x=(0+2)*(0+3)=6, n=0+1=1 第二次: x=6, x 50,所以 x=(6+2)*(6+3)=72, n=1+1=2 第三次: x=72, x不小于 50,循环结束,此时 x=72, n=2。执行接下来的语句: Text1.Text=Str(n)=“2“ Text2.Text=Str(x)=“72“。 20 【正确答案】 D 【试题解析】 本题是计算 1到 15对 3取余的所有余数的和。 For循环控制变量 j从 1到 15变化,步长为 1,每执行一次循环变量的值加 1,因此循环语句的执行了 15次 。因为 Mod运算符的优先级高于加 (+),因此循环体 a=a+ jMod 3中,首先执行 j Mod 3语句,再与 a相加。变量 a的功能是累计 1到 15对 3取余的所有余数的