1、(A)二级 VISUAL+BASIC 笔试-8 及答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:40.00)1.在名称为 Form1 的窗体上添加一个名称为 Command1 的命令按钮,标题为“打开文件”,再添加一个名称为 CD1 的通用对话框。程序运行后,如果单击命令按钮,则弹出打开文件对话框,请按下列要求设置属性和编写代码:设置适当属性,使对活框的标题为“打开文件”;设置适当属性,使对话框的“文件类型”下拉式组合框中有两项可供选择:“文本文件”、“所有文件”(如图所示),默认的类型是“所有文件”;编写命令按钮的事件过程,使得单击按钮可以弹出“打开文
2、件”对话框。要求:程序中不得使用变量,事件过程中只能写入一条语句。注意:存盘时必须存放在考生文件夹下,工程文件名保存为 sjt1.vbp,窗体文件名保存为 sjt1.frm。(分数:20.00)_2.在名称为 Form1 的窗体上添加一个名称为 Command1 的命令按钮,其标题为“移动本按钮”,如图所示。要求编写适当的事件过程,使得程序运行时,每单击按钮一次,按钮向左移动 100。要求:程序中不得使用变量,事件过程中只能写入一条语句。注意:存盘时必须存放在考生文件夹下,工程文件名保存为 sjt2.vbp,窗体文件名保存为 sjt2.frm。(分数:20.00)_二、简单应用题(总题数:2,
3、分数:40.00)3.在名称为 Form1 的窗体上添加一个名称为 Label1、标题为“添加项目”的标签;添加一个名称为 Text1的文本框,初始内容为空;添加一个名称为 Combo1 的下拉式组合框,并通过属性窗口输入若干项目(不少于 3 个,内容任意);再添加两个命令按钮,名称分别为 Command1、Command2,其标题分别为“添加”、“统计”。在程序运行时,向 Text1 中输入字符,单击“添加”按钮后,则将 Text1 中的内容作为一个列表项被添加到组合框的列表中;单击“统计”按钮,则在窗体空白处显示组合框中列表项的个数,如图所示。请编写两个命令按钮的 Click 事件过程。注
4、意:程序中不得使用变量,也不能使用循环结构。存盘时必须存放在考生文件夹下,工程文件名保存为sjt3.vbp,窗体文件名保存为 sjt3.frm。(分数:20.00)_4.在考生文件夹下有一个工程文件 sjt4.vbp,其窗体如图所示。该程序用来对在上面的文本框中输入的英文字母串(称为“明文”)加密,加密结果(称为“密文”)显示在下面的文本框中。加密的方法为:选中一个单选按钮,单击“加密”按钮后,根据选中的单选按钮后面的数字 n,将“明文”中的每个字母改为它后面的第 n 个字母(“z”后面的字母认为是“a”,“Z”后面的字母认为是“A”),如图所示。窗体中已经给出了所有控件和程序,但程序不完整,
5、请去掉程序中的注释符,把程序中的?改为正确的内容。(分数:20.00)_三、综合应用题(总题数:1,分数:20.00)5.考生文件夹下有一个工程文件 sit5.vbp,窗体上有两个文本框,名称分别为 Text1、Text2,都可以多行显示。还有三个命令按钮,名称分别为 C1、C2、C3,标题分别为“取数”、“排序”、“存盘”。“取数”按钮的功能是将考生文件夹下的 in5.dat 文件中的 50 个整数读到数组中,并在 Text1 中显示出来;“排序”按钮的功能是对这 50 个数按升序排序,并显示在 Text2 中;“存盘”按钮的功能是把排好序的 50 个数存到考生日录下的 out5.dat 文
6、件中,如图所示。在窗体中已经给出了全部控件和部分程序代码,要求阅读程序并去掉程序中的注释符,把程序中的?改为正确的内容,并编写“排序”按钮的 Click事件过程,使其实现上述功能,但不能修改程序中的其他部分,也不能修改控件的属性。最后将修改后的文件按原文件名存盘。(分数:20.00)_(A)二级 VISUAL+BASIC 笔试-8 答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:40.00)1.在名称为 Form1 的窗体上添加一个名称为 Command1 的命令按钮,标题为“打开文件”,再添加一个名称为 CD1 的通用对话框。程序运行后,如果单击命令按钮
7、,则弹出打开文件对话框,请按下列要求设置属性和编写代码:设置适当属性,使对活框的标题为“打开文件”;设置适当属性,使对话框的“文件类型”下拉式组合框中有两项可供选择:“文本文件”、“所有文件”(如图所示),默认的类型是“所有文件”;编写命令按钮的事件过程,使得单击按钮可以弹出“打开文件”对话框。要求:程序中不得使用变量,事件过程中只能写入一条语句。注意:存盘时必须存放在考生文件夹下,工程文件名保存为 sjt1.vbp,窗体文件名保存为 sjt1.frm。(分数:20.00)_正确答案:(操作步骤步骤 1:新建一个窗体,按照要求建立控件并设置其属性,如图所示。程序中用到的控件及属性见表。)解析:
8、考点 本题考点有:通用对话框的 Action、Dialogtitle、Name 和 Filter 属性,命令按钮的Name 和 Caption 属性以及通用对话框的 ShowOpen 方法。通用对话框是一种 ActiveX 控件,在一般情况下,启动 Visual Basic 后,在工具箱中没有通用对话框控件。为了把通用对话框控件加到工具箱中,其操作步骤如下:执行“工程”菜单中的“部件”命令,打开“部件”对话框,在对话框中,选择“控件”选项卡,然后在控件列表框中,选择“Microsoft Common Dialog Control 6.0”,再单击“确定”按钮,通用对话框立即被加到工具箱中。通用
9、对话框的属性可以在属性窗口中直接设置。当通用对话框显示为“打开”或“另存为”类型时,其 FileName 属性用于返回或设置所选的文件的路径和文件名。Fiher(过滤器)属性用于指定在对话框的文件列表中显示文件的类型。语法为“对象名Filter=描述|文件扩展名”。打开顺序文件的基本格式为“Open FileName For ModeAs#FileNutuber”。FileName 表示要打开的文件的路径;Mode 为打开模式,OutPut 用于输出、Append 用于追加写入、Input 用于读取;FileNumber 为打开文件时指定的句柄。对话框的属性设置不仅可以在属性窗口中设置,也可以
10、在属性页对话框中设置。打开“属性页”对话框的方法是在窗体上的通用对话框控件上单击鼠标右键,在弹出的快捷菜单中选择“属性”命令。通用对话框控件“属性页”对话框中有 5 个选项卡,因此要注意对不同类型的对话框设置属性,就要选择不同的选项卡。2.在名称为 Form1 的窗体上添加一个名称为 Command1 的命令按钮,其标题为“移动本按钮”,如图所示。要求编写适当的事件过程,使得程序运行时,每单击按钮一次,按钮向左移动 100。要求:程序中不得使用变量,事件过程中只能写入一条语句。注意:存盘时必须存放在考生文件夹下,工程文件名保存为 sjt2.vbp,窗体文件名保存为 sjt2.frm。(分数:2
11、0.00)_正确答案:(操作步骤步骤 1:新建一个窗体,按照要求建立控件并设置相应属性如表所示。控件 命令按钮属性 Name Caption设置值 Command1移动本按钮步骤 2:打开代码编辑窗口,在指定位置编写如下代码。参考答案Private Sub Commalld1_Click()Command1.Left=Command1.Left-100End Sub步骤 3:调试并运行程序,关闭程序后按题目要求存盘。)解析:考点 本题考点有:命令按钮的 Caption、Name 和 Left 属性。在 Visual Basic 中,通过代码使命令按钮向左移动 100,需要用到按钮的 Left
12、属性,使其值在每单击一次按钮时减去 100。二、简单应用题(总题数:2,分数:40.00)3.在名称为 Form1 的窗体上添加一个名称为 Label1、标题为“添加项目”的标签;添加一个名称为 Text1的文本框,初始内容为空;添加一个名称为 Combo1 的下拉式组合框,并通过属性窗口输入若干项目(不少于 3 个,内容任意);再添加两个命令按钮,名称分别为 Command1、Command2,其标题分别为“添加”、“统计”。在程序运行时,向 Text1 中输入字符,单击“添加”按钮后,则将 Text1 中的内容作为一个列表项被添加到组合框的列表中;单击“统计”按钮,则在窗体空白处显示组合框
13、中列表项的个数,如图所示。请编写两个命令按钮的 Click 事件过程。注意:程序中不得使用变量,也不能使用循环结构。存盘时必须存放在考生文件夹下,工程文件名保存为sjt3.vbp,窗体文件名保存为 sjt3.frm。(分数:20.00)_正确答案:(操作步骤步骤 1:新建一个窗体,按照题目要求建立控件并设置控件属性,如图所示。)解析:考点 本题考点有:命令按钮的 Caption 和 Name 属性,下拉式组合框的 Caption、Name、List和 ListCount 属性,文本框的 Text 和 Name 属性,标签的 Caption 和 Name 属性,下拉式组合框的AddItem 方法
14、以及窗体的 Print 方法。命令按钮和标签的标题用属性窗口中的 Caption 属性设置。要使 Text1 的文本框没有初始内容,需要将属性窗口中的 Text 属性设为空。要在下拉式组合框中输入内容,可以在属性窗口中对下拉式组合框的 List属性进行设置。AddItem 方法用来向组合框中添加一个列表项,其格式为:组合框 AddItem 列表项索引ListCount 属性用来返回组合框中列表项的个数。4.在考生文件夹下有一个工程文件 sjt4.vbp,其窗体如图所示。该程序用来对在上面的文本框中输入的英文字母串(称为“明文”)加密,加密结果(称为“密文”)显示在下面的文本框中。加密的方法为:
15、选中一个单选按钮,单击“加密”按钮后,根据选中的单选按钮后面的数字 n,将“明文”中的每个字母改为它后面的第 n 个字母(“z”后面的字母认为是“a”,“Z”后面的字母认为是“A”),如图所示。窗体中已经给出了所有控件和程序,但程序不完整,请去掉程序中的注释符,把程序中的?改为正确的内容。(分数:20.00)_正确答案:(操作步骤步骤 1:打开本题工程文件。步骤 2:打歼代码编辑窗口,去掉程序中的注释符“”,将问号改为正确的内容。参考答案(阴影部分是需考生填入的内容)Private Sub Command1_Click()Dim n As Integer, k As Integer, m As
16、 IntegerDim c As String, a As StringFor k=0 To 2If Op1(k).Value Thenn=Val(Op1(k).Caption)End IfNext km=Len(Text1.Text)a=“For k=1 To mc=Mid(Text1. Text, k, i)c=String(1, Asc(C)+n)If c“z“ Or c“z“ And c“a“ Thenc=String(1, Asc(c)-26)End Ifa=a+cNext kText2.Text=aEnd Sub步骤 3:调试并运行程序,关闭程序后按题目要求存盘。)解析:考点 本题
17、考点有:Mid()函数、Len()函数、Asc()函数、String()函数、单选按钮 Value、If 判断语句以及 For 循环语句。根据题意,首先要确定移动的位数,移动的位数是通过单选按钮来选择的,移动的值是由单选按钮的Caption 属性值决定的,然后要确定循环的次数,循环的次数是由输入字母的个数决定的。使用 Mid()函数取出字符串中的字符,利用 Asc()函数返回字符的代码,利用 String()函数将字符代码转换成字符。Mid()函数的格式为 Mid(字符串,p,n)。其中,Mid()函数从第 p 个字符开始,向后截取 n 个字符,p 和n 都是算术表达式。Mid()雨数的第 3
18、 个变量可以省略,这样将从第 p 个字符开始向后截取到字符串的结尾。String()函数用于重复指定字符串中的字符,返回新的字符串。Asc()函数用于返回一个 Integer,代表字符串中首字母的字符代码。单选按钮数组的起始下标为 0,而不是 1,在循环和判断的时候要特别注意。三、综合应用题(总题数:1,分数:20.00)5.考生文件夹下有一个工程文件 sit5.vbp,窗体上有两个文本框,名称分别为 Text1、Text2,都可以多行显示。还有三个命令按钮,名称分别为 C1、C2、C3,标题分别为“取数”、“排序”、“存盘”。“取数”按钮的功能是将考生文件夹下的 in5.dat 文件中的 5
19、0 个整数读到数组中,并在 Text1 中显示出来;“排序”按钮的功能是对这 50 个数按升序排序,并显示在 Text2 中;“存盘”按钮的功能是把排好序的 50 个数存到考生日录下的 out5.dat 文件中,如图所示。在窗体中已经给出了全部控件和部分程序代码,要求阅读程序并去掉程序中的注释符,把程序中的?改为正确的内容,并编写“排序”按钮的 Click事件过程,使其实现上述功能,但不能修改程序中的其他部分,也不能修改控件的属性。最后将修改后的文件按原文件名存盘。(分数:20.00)_正确答案:(操作步骤步骤 1:打开本题工程文件。步骤 2:打开代码编辑窗口,去掉程序中的注释符“”,将问号改
20、为正确的内容,并编写代码。参考答案(阴影部分是需考生填入的内容)Dim a(50)As IntegerPrivate Sub C1_Click()Dim k As Integer, ch As StringOpen“in5.dat“ For Input As#1ch=“For k=1 To 50Input#1, a(k) 将取出的数据存入教组 a 中ch=ch+Str(a(k)+“ 将数据存入 chNext kClose=#1Text1.Text=ch 在 Text1 文本框中显示文件内容End SubPrivate Sub C2_Click()End SubPrivate Sub C3_Cl
21、ick()Open“out5. dat“ For Output As # 1Print#1, Text2.TextClose=#1End Sub需编写的“排序”按钮的代码Private Sub C2_Click()Dim t As IntegerDim i As IntegerDim j As IntegerDim ch As Stringch=“For i=50 To 2 Step-1使用冒泡算法从小到大排序For j=1 To 49If a(j)a(j+i)Then两两比较t=a(j+i)a(j+1)=a(j)a(j)=tEnd IfNext jNext iFor j=1 To 50将排序
22、后的数组重新赋给 chch=ch+Str(a(j)+“Next jText2.Text=chEnd Sub步骤 3:调试并运行程序,关闭程序后按题目要求存盘。)解析:考点 本题考点有:Sir()函数、“冒泡法”排序、For 循环语句、If 判断语句以及文件操作。Str 函数用于数值转化为字符串,语法为:Str(number)。在循环语句中 Step 表示步长,可以为正数,表示下一个变量加一个数,也可以为负数,则相反,在默认情况下,步长为 1,就不需要使用 Step 特意标识。“冒泡法”是一种重要的数据排序算法,它的核心思路是按顺序让一个数列中的每一个数都与它之后的所有的数逐一进行比较,如果该数大于其后面的数,则把这两个位置的数进行交换。通过这样的循环,最终按照从小到大的顺序排列出该数列。从程序提供的代码中呵以看出,整型数组 a 的使用范围是本窗体中的所有事件过程,用来存放从文件中读取的数据。在排序中,使用双重循环,外循环每循环一次,确定内循环循环的次数,内循环就是把本次循环中最大的数,放在数组的最后面,这样就可以实现对这 50 个数的升序排序。注意冒泡排序的用法,理解位置交换的含义和方法,在交换时要有一个中间变量来起到传递的作用,否则会使其中一个值丢失而产生错误。