1、国家二级 VB 机试(上机操作)-试卷 69 及答案解析(总分:10.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:4.00)请根据以下各小题的要求设计 Visual Basic 应用程序(包括界面和代码)。(分数:4.00)(1).在名称为 Form1,标题为“考试”的窗体上画一个名称为 Combo1、初始内容为空的下拉式组合框。下拉列表中有“隶书”、“宋体”和“楷体”三个项目。运行后的窗体如图 3-188 所示。 (分数:2.00)_(2).在名称为 Form1 的窗体上画两个文本框,其名称分别为 Text1、Text2,初始内容都为空,显示为三号字,且 Text1 的初始
2、状态为不可用;再画一个名称为 Command1、标题为“开始”的命令按钮,如图 3-189 所示。 要求:编写适当的事件过程,使得单击“开始”按钮后,Text1 文本框变为可用状态,且在Text1 文本框中输入字母串时,Text2 文本框中用大写字母形式显示 Text1 文本框中的内容。程序中不得使用变量,每个事件过程中只能写一条语句。 (分数:2.00)_二、简单应用题(总题数:2,分数:4.00)1.在考生文件夹下有一个工程文件 sjt3vbp,其功能是: 单击“读数据”按钮,则把考生文件夹下in3dat 文件中的 20 个整数读入数组 a 中,同时显示在 Text1 文本框中; 单击“变
3、换”按钮,则数组 a 中元素的位置自动对调(即第一个数组元素与最后一个数组元素对调,第二个数组元素与倒数第二个数组元素对调),并将位置调整后的数组显示在文本框 Text2 中。 在窗体文件中已经给出了全部控件(如图 3-190 所示),但程序不完整。 要求:完善程序使其实现上述功能。 (分数:2.00)_2.在考生文件夹下有一个工程文件 sjt4vbp,窗体上有两个标题分别为“读数据”和“统计”的命令按钮:两个名称分别为 Text1 和 Text2、初始值为空的文本框,如图 3-191 所示。 程序功能如下: 单击“读数据”按钮,则将考生文件夹下 in4dat 文件的内容(该文件中仅含有字母和
4、空格)显示在 Text1 文本框中; 在 Text1 文本框中选中内容后,单击“统计”按钮,则自动统计选中文本中从未出现过的字母(统计过程中不区分大小写),并将这些字母以大写形式显示在 Text2 文本框内。 请将“统计”按钮的Click 事件过程中的注释符去掉,把?改为正确内容,以实现上述程序功能。 (分数:2.00)_三、综合应用题(总题数:1,分数:2.00)3.在考生文件夹下有一个工程文件 sjt5vbp,在该工程文件中已经定义了一个学生记录类型数据StudType。有三个标题分别为“学号”、“姓名”和“平均分”的标签;三个初始内容为空,用于接收学号、姓名和平均分的文本框 Text1、
5、Text2 和 Text3;一个用于显示排序结果的图片框。还有两个标题分别为“添加”和“排序”的命令按钮,如图 3-192 所示。程序功能如下: 在 Text1、Text2 和 Text3 三个文本框中输入学号、姓名和平均分后,单击“添加”按钮,则将输入内容存入自定义的学生记录类型数组 stud 中(注:最多只能输入 10 个学生信息,且学号不能为空); 单击“排序”按钮,则将学生记录类型数组 stud 中存放的学生信息,按平均分降序排列的方式显示在图片框中,每个学生一行,且显示三项信息。 请将“添加”按钮、“排序”按钮的 Click 事件过程中的注释符去掉,把?改为正确的内容,以实现上述程序
6、功能。 (分数:2.00)_国家二级 VB 机试(上机操作)-试卷 69 答案解析(总分:10.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:4.00)请根据以下各小题的要求设计 Visual Basic 应用程序(包括界面和代码)。(分数:4.00)(1).在名称为 Form1,标题为“考试”的窗体上画一个名称为 Combo1、初始内容为空的下拉式组合框。下拉列表中有“隶书”、“宋体”和“楷体”三个项目。运行后的窗体如图 3-188 所示。 (分数:2.00)_正确答案:(正确答案:审题分析 本题只需按要求设计程序界面,并设计相关属性即可。 操作步骤 步骤1:新建一个“标准
7、EXE”工程,按要求画出控件并设置属性。 步骤 2:按要求将文件保存至考生文件夹中。 考点链接 选择控件。)解析:(2).在名称为 Form1 的窗体上画两个文本框,其名称分别为 Text1、Text2,初始内容都为空,显示为三号字,且 Text1 的初始状态为不可用;再画一个名称为 Command1、标题为“开始”的命令按钮,如图 3-189 所示。 要求:编写适当的事件过程,使得单击“开始”按钮后,Text1 文本框变为可用状态,且在Text1 文本框中输入字母串时,Text2 文本框中用大写字母形式显示 Text1 文本框中的内容。程序中不得使用变量,每个事件过程中只能写一条语句。 (分
8、数:2.00)_正确答案:(正确答案:审题分析 本题考查考生对文本框控件常用属性和事件的掌握。要使文本框在初始情况下就没有内容,需在设计时通过属性设置窗口将其 Text 属性值设置为空白。要实现程序运行时单击按钮即使 Text1 变为可用,需要在按钮的单击事件中令 Text1Enabled=True;要想实现在 Text1 中输入的任何字符,立即用大写字母显示在 Text2 中的功能,可在 Text1 的 Change 事件过程中,执行将 Text1中显示内容转大写后赋值给 Text2 的语句。 操作步骤 步骤 1:新建一个“标准 EXE”工程,按要求画出控件并设置属性。 步骤 2:打开代码编
9、辑窗口,编写 Text1 的 Change 事件过程和命令按钮的单击事件过程。 参考代码: Private Sub Command1_Click() Text1Enabled=True End Sub Private Sub TexT1_Change() Text2Text=UCase(Text1Text) End Sub 步骤 3:按要求将文件保存至考生文件夹中。考点链接 文本控件。)解析:二、简单应用题(总题数:2,分数:4.00)1.在考生文件夹下有一个工程文件 sjt3vbp,其功能是: 单击“读数据”按钮,则把考生文件夹下in3dat 文件中的 20 个整数读入数组 a 中,同时显示
10、在 Text1 文本框中; 单击“变换”按钮,则数组 a 中元素的位置自动对调(即第一个数组元素与最后一个数组元素对调,第二个数组元素与倒数第二个数组元素对调),并将位置调整后的数组显示在文本框 Text2 中。 在窗体文件中已经给出了全部控件(如图 3-190 所示),但程序不完整。 要求:完善程序使其实现上述功能。 (分数:2.00)_正确答案:(正确答案:审题分析 数组 a 中元素的位置自动对调(即第一个数组元素与最后一个数组元素对调, 第二个数组元素与倒数第二个数组元素对调)可以在一个循环中进行,即第 i 个元素和第 20-i+1 个元素互换,问题的关键是循环的次数应该是 10 次而不
11、是 20 次。 操作步骤 步骤 1:打开考生文件夹中的工程文件 sjt3vbp 步骤 2:打开代码编辑窗口,编写“变换”按钮的单击事件过程。 参考代码:Private Sub Command2_Click() 考生编写 For i=1 To 10 temp=a(i) a(i)=a(20-i+1) a(20-i+1)=temp Next i 以下程序段将已变换的数组元素显示在 Text2 文本框中 For k=1 To 20 Text2=Text2+Str(a(k)+Space(2) Next k End Sub 步骤 3:按键运行程序,先单击“读数据”按钮,然后单击“变换”按钮。 步骤 4:单
12、击窗体右上角的关闭按钮以结束程序。 步骤 5:按要求将文件保存至考生文件夹中。 考点链接 数组定义与操作、For 循环结构。)解析:2.在考生文件夹下有一个工程文件 sjt4vbp,窗体上有两个标题分别为“读数据”和“统计”的命令按钮:两个名称分别为 Text1 和 Text2、初始值为空的文本框,如图 3-191 所示。 程序功能如下: 单击“读数据”按钮,则将考生文件夹下 in4dat 文件的内容(该文件中仅含有字母和空格)显示在 Text1 文本框中; 在 Text1 文本框中选中内容后,单击“统计”按钮,则自动统计选中文本中从未出现过的字母(统计过程中不区分大小写),并将这些字母以大写
13、形式显示在 Text2 文本框内。 请将“统计”按钮的Click 事件过程中的注释符去掉,把?改为正确内容,以实现上述程序功能。 (分数:2.00)_正确答案:(正确答案:审题分析 本题在“统计”按钮的单击事件过程中,先检查是否选中文本框 Text1中的内容(if 语句条件表达式为:s1=0 或 st=-“ “),若没选择内容则弹出提示信息,否则通过 For 循环逐一取出选中内容的每个字符(故循环终值为 s1),并计算出其中每个大写字母在 26 个字母中的顺序,赋值给变量 n,数组元素 a(n)则记录顺序号为 n 的字母出现的次数。再通过 For 循环逐一检查 26 个字母(循环终值为 26)
14、的出现次数是否为 0(即 a(i)=0),将出现次数为 0 的字母显示在文本框 Text2 中。 操作步骤 步骤 1:打开考生文件下的本题工程文件 sjt4vbp,在代码编辑窗口,去掉程序中的注释符“”,将问号“?”改为正确的内容。 参考代码: If s1=0 Then For i=1 To s1 a(n)=a(n)+1 For i=1 To 26 步骤 2:按要求将文件保存至考生文件夹中。 考点链接 数组定义与操作、For 循环结构。)解析:三、综合应用题(总题数:1,分数:2.00)3.在考生文件夹下有一个工程文件 sjt5vbp,在该工程文件中已经定义了一个学生记录类型数据StudTyp
15、e。有三个标题分别为“学号”、“姓名”和“平均分”的标签;三个初始内容为空,用于接收学号、姓名和平均分的文本框 Text1、Text2 和 Text3;一个用于显示排序结果的图片框。还有两个标题分别为“添加”和“排序”的命令按钮,如图 3-192 所示。程序功能如下: 在 Text1、Text2 和 Text3 三个文本框中输入学号、姓名和平均分后,单击“添加”按钮,则将输入内容存入自定义的学生记录类型数组 stud 中(注:最多只能输入 10 个学生信息,且学号不能为空); 单击“排序”按钮,则将学生记录类型数组 stud 中存放的学生信息,按平均分降序排列的方式显示在图片框中,每个学生一行
16、,且显示三项信息。 请将“添加”按钮、“排序”按钮的 Click 事件过程中的注释符去掉,把?改为正确的内容,以实现上述程序功能。 (分数:2.00)_正确答案:(正确答案:审题分析 单击“添加”按钮时先检查当前已输入学生信息数 n 是否已达到 10 条,若没达到 10 条,则标记变量 tag in=0 表示允许添加信息(且学生信息数 n 增 1),否则 tag in=1。当 tag in=0 时,接着检查是否输入学号,若没输入学号则提示用户输入,且学生信息数 n 应减 1(即 n=n1);若已输入学号,则将该学生信息存入记录数组元素 stud(n),其中保存学号的语句为:stud(n)Num
17、=Text1。 在“排序”按钮的单击事件过程中,源程序利用“冒泡法”对记录数组中的元素按平均分从大到小进行排序。故该事件过程中,第一个?处应改为:j+1,第二个?处应改为:Average,第三个?处应改为:stud(j)。最后在 For 循环中,用图片框的 Print 方法在图片框中显示每个学生的 3 项信息。 操作步骤 步骤 1:打开考生文件下的本题工程文件 sjt5vbp,在代码编辑窗口,去掉程序中的注释符“”,将问号“?”改为正确的内容。 参考代码: n=n-1 stud(n)Num=Text1 For k=j+1 To n If stud(k)Averagestud(j)AVerage Then stud(k)=stud(j) 步骤 2:按要求将文件保存至考生文件夹中。 考点链接 变量、运算符和表达式、数组定义与操作。)解析: