1、二级 VISUAL+BASIC 机试-118 及答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:30.00)完成下列问题:(分数:30.00)(1).在名称为 Form1 的窗体上画一个名称为 Command1 的命令按钮,标题为“打开文件”,再画一个名称为 CD1 的通用对话框。程序运行后,如果单击命令按钮,则弹出打开文件对话框。请按下列要求设置属性和编写代码:设置适当的属性,使用话框的标题为“打开文件”。设置适当的属性,使对话框的“文件类型”下拉列表框中有 2 个选项:“文本文件”、“所有文件”(如图 1 所示),默认的类型是“所有文件”。*编写命令按
2、钮的事件过程,使得单击按钮可以弹出打开文件对话框。要求:程序中不得使用变量,事件过程中只能写一条语句。注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt1.vbp,窗体文件名为 sjt1.frm。(分数:15.00)_(2).在名称为 Form1 的窗体上画一个命令按钮,名称为 Command1,其标题为“移动本按钮”,如图 2 所示。*要求编写适当的事件过程,使得程序运行时,每单击按钮一次,按钮向左移动 100。要求:程序中不得使用变量,事件过程中只能写一条语句。注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt2.vbp,窗体文件名为 sjt2.frm。(分数:15.00)_二
3、、简单应用题(总题数:1,分数:40.00)完成下列问题:(分数:40.00)(1).在名称为 Form1 的窗体上画一个名称为 Label1、标题为“添加项目:”的标签;画一个名称为 Text1的文本框,其中没有初始内容;画一个名称为 Combo1 的下拉列表框,并通过属性窗口输入若干项目(不少于 3 个,内容任意);再画两个命令按钮,名称分别为 Command1、Command2,标题分别为“添加”、“统计”。运行时,向 Text1 中输入字符,单击“添加”按钮后,则 Text1 中的内容作为一个列表项被添加到组合框的列表中;单击“统计”按钮,则在窗体上显示组合框中列表项的个数,如图 3
4、所示。请编写两个命令按钮的 Click 事件过程。*注意:程序中不得使用变量,也不能使用循环。存盘时必须存放在考生文件夹下,工程文件名为sjt3.vbp,窗体文件名为 sjt3.frm。(分数:20.00)_(2).在考生文件夹下有一个工程文件 sjt4.vbp,其窗体如图 4 所示。该程序用来对在上面的文本框中输入的项字母串(称为“明文”)加密,加密结果(称为“密文”)显示在下面的文本框中。加密的方法是:选中一个单选按钮,单击“加密”按钮后,根据选中的单选按钮后面的数字 n,把明文中的每个字母改为它后面的第 n 个字母(“z”后面的字母认为是“a”,“Z”后面的字母认为是“A”),如图 4
5、所示。窗体中已经给出了所有控件和程序,但程序不完整,请在程序中的横线处填写正确的内容。*注意:不能修改程序中的其他部分和控件属性,最后把修改后的文件按原文件名存盘。题目提供的源程序Private Sub Command1_Click()Dim n As Integer, k As Integer, m As IntegerDim c As String, a As StringFor k=0 To 2If Op1(k).Value Thenn=Val(Op1(k). (1) End IfNext km=Len(Text1.Text)a=“For k=1 To (2) c=Mid $ (Text
6、1.Text, (3) ,1)c=String (1,Asc(c)+n)If c“z“ Or c“Z“ And c“a“ Thenc=String(1,Asc(c)-26)End If(4) =a+cNext kText2.Text=aEnd Sub(分数:20.00)_三、综合应用题(总题数:1,分数:30.00)1.在考生文件夹下有一个工程文件 sjt5.vbp,窗体上有 2 个文本框,名称为 Text1、Text2,都可以多行显示;还有 3 个命令按钮,名称分别为 c1、c2、c3,标题分别为“取数”、“排序”、“存盘”。“取数”按钮的功能是把考生目录下的 in5.dat 文件中的 50
7、 个整数读到数组中,并在 Text1 中显示出来;“排序”按钮的功能是对这 50 个数按升序排序,并显示在 Text2 中;“存盘”按钮的功能是把排好序的50 个数存到考生目录下的 out5.dat 文件中。如图 5 所示。在窗体中已经给出了全部控件和部分程序。(分数:30.00)_二级 VISUAL+BASIC 机试-118 答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:30.00)完成下列问题:(分数:30.00)(1).在名称为 Form1 的窗体上画一个名称为 Command1 的命令按钮,标题为“打开文件”,再画一个名称为 CD1 的通用对话框
8、。程序运行后,如果单击命令按钮,则弹出打开文件对话框。请按下列要求设置属性和编写代码:设置适当的属性,使用话框的标题为“打开文件”。设置适当的属性,使对话框的“文件类型”下拉列表框中有 2 个选项:“文本文件”、“所有文件”(如图 1 所示),默认的类型是“所有文件”。*编写命令按钮的事件过程,使得单击按钮可以弹出打开文件对话框。要求:程序中不得使用变量,事件过程中只能写一条语句。注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt1.vbp,窗体文件名为 sjt1.frm。(分数:15.00)_正确答案:(操作步骤第 1 步:新建一个标准 EXE 工程。第 2 步:添加命令按钮。在窗体上
9、有一个命令按钮控件,设置其 Caption 属性为“打开文件”。第 3 步:添加通用对话框。选择“工程”菜单下的“部件”子菜单,在弹出的“部件”对话框中的Microsoft Common Dialog Control 6.0 前的复选框中打上勾号,再单击“确定”按钮。此时,在工具箱的右下角会显示出通用对话框控件图标 ,选择该图标在窗体上画一个通用对话框控件。第 4 步:设置通用对话框的属性。设置通用对话框的名称属性为 CD1,设置 DialogTitle 属性为“打开文件”,设置 Filter 属性为“文本文件|*.txt|所有文件|*.*”,设置 FilterIndex 属性为 2,如图 1
10、 所示。)解析:解析 本题需要用到外部控件通用对话框 Microsoft Common Dialog Control,通用对话框的标题由 DialogTitle 属性控制;文件类型的过滤方式由 Filter 属性控制,当有多种过滤方式时,可用FilterIndex 属性指定默认的过滤方式。(2).在名称为 Form1 的窗体上画一个命令按钮,名称为 Command1,其标题为“移动本按钮”,如图 2 所示。*要求编写适当的事件过程,使得程序运行时,每单击按钮一次,按钮向左移动 100。要求:程序中不得使用变量,事件过程中只能写一条语句。注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt2
11、.vbp,窗体文件名为 sjt2.frm。(分数:15.00)_正确答案:(操作步骤第 1 步:新建一个标准 EXE 工程。第 2 步:在窗体上画一个命令按钮,设置其 Caption 属性为“移动本按钮”。第 3 步:编写代码。双击命令按钮,进入代码编写状态,编写如下代码:Private Sub Command1_Click()Command1.Left=Command1.Left-100End Sub第 4 步:调试并运行程序,并按题目要求保存工程。)解析:解析 窗体上的控件位置由其 Left 和 Top 属性控制,要使得每单击一次按钮,按钮向左移动100,只需每次单击时将其 Left 属性
12、值减少 100 即可。二、简单应用题(总题数:1,分数:40.00)完成下列问题:(分数:40.00)(1).在名称为 Form1 的窗体上画一个名称为 Label1、标题为“添加项目:”的标签;画一个名称为 Text1的文本框,其中没有初始内容;画一个名称为 Combo1 的下拉列表框,并通过属性窗口输入若干项目(不少于 3 个,内容任意);再画两个命令按钮,名称分别为 Command1、Command2,标题分别为“添加”、“统计”。运行时,向 Text1 中输入字符,单击“添加”按钮后,则 Text1 中的内容作为一个列表项被添加到组合框的列表中;单击“统计”按钮,则在窗体上显示组合框中
13、列表项的个数,如图 3 所示。请编写两个命令按钮的 Click 事件过程。*注意:程序中不得使用变量,也不能使用循环。存盘时必须存放在考生文件夹下,工程文件名为sjt3.vbp,窗体文件名为 sjt3.frm。(分数:20.00)_正确答案:(操作步骤第 1 步:新建一个标准 EXE 工程。第 2 步:在窗体上画一个标签控件,设置其 Caption 属性为“添加项目:”。第 3 步:在窗体上画一个文本框控件,清空其 Text 属性中的内容。第 4 步:在窗体上画一个组合框,单击 List 属性后向下的箭头,输入 3 个以上选项(输完一个项目后,可以按 Ctrl+Enter 键继续输入后续内容)
14、。第 5 步:在窗体上画一个命令按钮,设置其 Caption 属性为“添加”;再画另一个命令按钮,设置其Caption 属性为“统计”。第 6 步:编写代码。Private Sub Command1_Click( )Combo1.AddItem Text1.TextEnd SubPrivate Sub Command2_Click()Print Combo1.ListCountEnd Sub第 7 步:调试、运行并保存程序。)解析:解析 本题主要考查组合框控件的使用。与列表框一样,组合框的选项也由 List 属性控制;向组合框添加选项的方法是 AddItem;可从组合框的 ListCount
15、属性获取当前组合框中选项的个数。(2).在考生文件夹下有一个工程文件 sjt4.vbp,其窗体如图 4 所示。该程序用来对在上面的文本框中输入的项字母串(称为“明文”)加密,加密结果(称为“密文”)显示在下面的文本框中。加密的方法是:选中一个单选按钮,单击“加密”按钮后,根据选中的单选按钮后面的数字 n,把明文中的每个字母改为它后面的第 n 个字母(“z”后面的字母认为是“a”,“Z”后面的字母认为是“A”),如图 4 所示。窗体中已经给出了所有控件和程序,但程序不完整,请在程序中的横线处填写正确的内容。*注意:不能修改程序中的其他部分和控件属性,最后把修改后的文件按原文件名存盘。题目提供的源
16、程序Private Sub Command1_Click()Dim n As Integer, k As Integer, m As IntegerDim c As String, a As StringFor k=0 To 2If Op1(k).Value Thenn=Val(Op1(k). (1) End IfNext km=Len(Text1.Text)a=“For k=1 To (2) c=Mid $ (Text1.Text, (3) ,1)c=String (1,Asc(c)+n)If c“z“ Or c“Z“ And c“a“ Thenc=String(1,Asc(c)-26)En
17、d If(4) =a+cNext kText2.Text=aEnd Sub(分数:20.00)_正确答案:(操作步骤第 1 步:打开工程文件 sjt4.vbp第 2 步:分析并修改源程序。第 3 步:调试、运行并保存程序。1Caption 2m 3k 4a)解析:解析 根据题意,首先要确定移动的位数,移动的位数由被选择的单选按钮决定,移动的值由单选按钮的 Caption 属性值决定;然后再确定循环加密的次数,循环的次数是由输入字符的个数Len(Text1.Text)决定的。实现加密方法:使用 Mid()函数将字符串中的字符一一取出,利用 Asc()函数转换成字符的 ASCII 码,将 ASCI
18、I 码加上移动的位数后,再利用 String()函数将字符 ASCII 码转换成字符。Mid()函数的格式为 Mid(字符串,p,n)。表示从字符串的第 p 个字符开始,向后截取 n 个字符,p 和 n 都是算术表达式。Mid()函数的第三个变量可以省略,这样将从第 p 个字符开始向后截取到字符串的结尾。String()函数用于重复指定字符串中的字符,返回新的字符串。Asc()函数用于返回一个 Integer,代表字符串中首字母的字符 ASCII 码。三、综合应用题(总题数:1,分数:30.00)1.在考生文件夹下有一个工程文件 sjt5.vbp,窗体上有 2 个文本框,名称为 Text1、T
19、ext2,都可以多行显示;还有 3 个命令按钮,名称分别为 c1、c2、c3,标题分别为“取数”、“排序”、“存盘”。“取数”按钮的功能是把考生目录下的 in5.dat 文件中的 50 个整数读到数组中,并在 Text1 中显示出来;“排序”按钮的功能是对这 50 个数按升序排序,并显示在 Text2 中;“存盘”按钮的功能是把排好序的50 个数存到考生目录下的 out5.dat 文件中。如图 5 所示。在窗体中已经给出了全部控件和部分程序。(分数:30.00)_正确答案:(操作步骤第 1 步:打开工程文件 sjt5.vbp。第 2 步:分析并修改源程序。1a(k) 2ch“排序”按钮的参考代
20、码如下:Private Sub C2_Click( )考生应编写的程序For i=1 To 49For j=1 To 50-iIf a(j)a(j+1) Thent=a(j)a(j)=a(j+1)a(j+1)=tEnd IfNext jNext jFor j=1 To 50ch=ch+Str(a(i)+“Next iText2=chEnd Sub第 3 步:调试、运行并保存程序。)解析:解析 程序首先打开文件 in5.dat,并从文件中读取数据,从读取语句的下一行“ch=ch+Str(a(k)+“”可以看出,将读取的数据连接到 ch 的后面,连接的内容为 a(k),所以读取语句 Input 中的变量应该是 a(k)。文件内容读取结束后,文件的所有内容都连接到变量 ch 中,将 ch 赋值给 Text1.Text 即可在文本框中显示出文件的内容。排序可采用多种方法,如选择法、冒泡法等。