1、国家二级 VF机试模拟试卷 200及答案与解析 一、基本操作题( 30分) 1 在考生文件夹下,打开一个公司销售数据库 selldb,完成如下操作: (1)为各部门分年度季度销售金额和利润表 s_t创建一个主索引和普通索引 (升序 ),主索引的索引名为 no,索引表达式为 “部门号 +年度 ”;普通索引的索引名和索引表达式均为 “部门号 ”。 (2)在 S T表中增加一个名为 “备注 ”的字段、字段数据类型为 “字符 ”、宽度为30。 (3)使用 SQL的 ALTER TABLE语句将 s_t表的 “年度 ”字段的默认值修 改为“2004”,并将该 SQL语句存储到命令文件 one prg中。
2、 (4)通过 “部门号 ”字段建立 s_t表和 dept表问的永久联系,并为该联系设置参照完整性约束:更新规则为 “级联 ”;删除规则为 “限制 ”;插入规则为 “忽略 ”。 二、简单应用题( 40分) 2 (1)编写程序 three prg完成下列操作:根据 “外汇汇率 ”表中的数据产生 rate表中的数据。 要求:将所有 “外汇汇率 ”表中的数据插入 rate表中并且顺序不变,由于 “外汇汇率 ”中的 “币种 1”和 “币种 2”存放的是外币名称,而 rate表中的 “币种 1代码 ”和 “币种2代码 ”应该存放外币代码,所以插入时要做相应的改动, “外币名称 ”与 “外币代码 ”的对应关
3、系存储在 “外汇代码 ”表中。 注意:程序必须执行一次,保证 rate表中有正确的结果。 (2)使用查询设计器建立一个查询文件 four qpr。查询要求:从外汇账户中查询“日元 ”和 “欧元 ”的记录。查询结果包括了外币名称、钞汇标志、金额,结果按 “外币名称 ”升序排序,在 “外币名称 ”相同的情况下按 “金额 ”降序排序,并将查询结果存储于表 five dbf中。 三、综合应用题( 30分) 3 建立如图 1-37所示表单,表单完成一个计算器的功能。表单文件名和表单控件名均为 calculator,表单标题为 “计算器 ”。表单运行时,分别在操作数1 (Label1)和操作数 2(Lab
4、el2)下的文本框 (分别为 Text1和 Text2)中输入数字 (不接受其他字符输入 ),通过选项组 (Optiongroup1, 4个按钮可任意排列 )选择计算方法(Option1为 “+”, Option2为 “-”, Option3为 “木 ”, Option4为 “ ”),然后单击命令按钮 “计算 ”(Command1),就会在 “计算结果 ”(Label3)下的文 本框 Text3中显示计算结果,要求使用 DO CASE语句判断选择的计算分类,在 CASE表达式中直接引用选项组的相关属性。 注意:所涉及的数字和字母均为半角字符。 表单另有一命令按钮 (Command2),按钮标题
5、为 “关闭 ”,表单运行时单击此按钮关闭并释放表单。 国家二级 VF机试模拟试卷 200答案与解析 一、基本操作题( 30分) 1 【正确答案】 (1) 在命令窗口执行命令: MODIFY DATABASEselldb,打开selldb数据库设计器。 右击数据库设计器中的 s_t表,选择【修改】快捷菜单命令 ,打开 s_t表设计器,选中 “索引 ”选项卡,在 “索引名 ”下方的文本框中输入“no”,在 “索引 ”选项卡中将 “类型 ”选择为 “主索引 ”,在表达式下方的文本框中输入“部门号 +年度 ”,建立主索引。如图 2-24所示。 接着在 “字段 ”选项卡中选中 “部门号 ”,然后在 “索
6、引 ”列中选择 “升序 ”,建立 “部门号 ”字段的普通索引,单击 “确定 ”按钮保存表结构修改。 (2)继续打开 s_t表设计器,在表设计器“字段 ”选项卡的 “字段名 ”列的最后一个空白文本框中输入字段名 “备注 ”,在 “类型 ”下拉框中选择 “字符型 ”,在 “宽度 ”文本框中输入 “30”,保存表结构修改。 (3) 在命令窗口执行命令: MODIFY COMMAND one,打开程序文件编辑器。 在编辑器中输入 SQL查询代码: ALTER TABLE s_tALTER 年度 C(4) DEFAULT “2004“。 在命令窗口执行命令: DO one prg执行程序文件。 (4)
7、在数据库设计器中拖动 DEPT表 “索引 ”下方的主索引 “部门号 ”到 s_t表中 “索引 ”下方的普通索引 “部门号 ”上,为两个表建立联系。 选中两个表之间的关联线 (被选中的连线会变粗 ),首先执行【数据库】 【清理数据库】菜 单命令,清空数据表中带有删除标记的记录,然后执行【数据库】 【编辑参照完整性】菜单命令。 在打开的 “参照完整性 ”对话框的表格中,选择 “更新 ”下的单元格内容为 “级联 ”; “删除 ”下的单元格内容为 “限制 ”; “插入 ”下的单元格内容为 “忽略 ”。单击 “确定 ”按钮保存参照完整性的修改。如图 2-25所示。【试题解析】 本题考查表索引的建立、表结
8、构的修改、 SQL定义语句及参照完整性的建立。 根据多个字段建立索引表达式时,需要在表设计器 “索引 ”选项卡的 “表达式 ”中进行设置,该索引表达式可以直接输入,也可以打 开 “表迭式生成器 ”建立。 参照完整性是针对两个表进行设置的,因此建立参照完整性前要先建立两个表的关联,且有一个表中必须建立关联字段的主索引 (或候选索引 ),另一个表要建立普通索引,建立两个表联系后要先清理数据库,然后再设置参照完整性。 表结构的修改可在相应的表设计器中进行操作即可; SQL定义语句也只需要熟记命令格式,设置表默认值语句的基本格式: ALTER TABLE表名 ALTER字段名类型 (宽度 ) DEFA
9、ULT默认值。 二、简单应用题( 40分) 2 【正确答案】 (1)步骤 1:在命令窗口执行命令: MODIFY COMMANDthree,打开程序文件编辑器。 步骤 2:在编辑器中输入如下程序代码 (以下程序是通过查询设计器生成 ): SELECT 外汇代码外币代码 AS币种 1代码 ,;外汇代码 _a外币代码 AS 币种 2代码,外汇汇率买入价,外汇汇率卖出价; FROM 外汇代码 INNER JOIN 外汇 !外汇汇率; INNER JOIN 外汇 !外汇代码 外汇代码 _a; ON 外汇汇率币种 2=外汇代码 _a外币名称; ON 外汇代码外币名称 =外汇汇率币种1; INTO ARR
10、AY arr1INSERT INTO RATE DBF FROM ARRAY a rr1 步骤 3:在命令窗口执行命令: DO three prg,执行程序文件。中要对同一个表引用两次的方法是将该表向查询设计器中添加两次即可。 (2)步骤 1:在命令窗口执行命令:OPEN DATABASE外汇,打开数据库环境 。 步骤 2:在命令窗口执行命令:CREATE QUERY four,打开查询设计器,在 “添加表或视图 ”对话框中,分别双击“外汇代码 ”表和 “外汇账户 ”表,将表添加到查询设计器中。 步骤 3:添加两个表后,系统弹出 “联接条件 ”对话框,自动查找两个表中相匹配的字段进行联接,单击
11、“确定 ”按钮设置两个表的联系。 步骤 4:依次双击 “外汇代码 ”表中的 “外币名称 ”和“外汇账户 ”表中的 “钞汇标志 ”、 “金额 ”字段,添加到 “字段 ”选项卡的 “选定字段 ”列表中。 步骤 5:在 “筛选 ”选项卡的 “字段名 ”下拉列表中选择 “外汇代码外币名称 ”字段,在 “条件 ”下拉框中选择 “=”,在 “实例 ”框中输入 “日元 ”,在 “逻辑 ”下拉框中选择 “OR”;接着在第二行接着输入查询条件,在 “字段名 ”下拉列表中选择 “外汇代码外币名称 ”字段,在 “条件 ”下拉框中选择 “=”,在 “实例 ”框中输入 “欧元 ”。如图2-26所示。 步骤 6:在 “排
12、序依据 ”选项卡内双击 “选定字段 ”列表框中的 “外汇代码外币名称 ”字段,将字段添加到 “排序条件 ”列表框中,在 “排序选项 ”中选择 “升序 ”单选项:以同样的方法再设置 “外汇账户金额 ”字段的降序。 步骤 7:执行【查询】 【查询去向】菜单命令,在弹 出的 “查询去向 ”对话框中单击 “表 ”图标按钮,接着在 “表名 ”中输入文件名 “five”,单击 “确定 ”按钮。 步骤 8:最后单击 “常用 ”工具栏中的 “运行 ”按钮查看结果,将查询文件保存到考生文件夹下。 【试题解析】 (1)本题考查的是 SQL超链接查询设计 SQL代码的关键是怎样建立 “外汇代码 ”表中 “外币代码
13、”与 “外汇汇率 ”表中 “币种 1”和 “币种 2”的联系。 由于输出结果的 “币种 1”和 “币种 2”需要用相应的 “外币代码 ”表示, “外汇代码 ”表中的 “外币代码 ”只能利用一次,即替换 “币种 1”或 “币种 2”中的币种名 称,这样没有被替换的币种仍然是中文币种名称,因此需要将 “外汇代码 ”表利用两次,两个表中的 “外币代码 ”分别替换 “外汇汇率 ”表中 “币种 1”和 “币种 2”的中文币种名,被两次引用的表名要在原表名后再加 “_a”进行区分。 三个表的联接条件分别是 “外汇代码外币名称 =外汇汇率币种 1”和 “外汇汇率币种 2=外汇代码 _a外币名称 ”查询输出的
14、字段名可以通过 AS短语重新指定名称。 另外,查询结果要求保存到数据库表,因此要将结果保存到数组中,然后再通过数组将记录插入到表中。 (2)本题考查的是在查询 设计器中新建查询的操作。由于涉及两个表的操作,因此在操作过程中要注意确认查询输出的字段来源于哪个数据表;设置查询条件是在 “筛选 ”选项卡中进行;设置排序是在 “排序依据 ”选项卡中进行,在设置排序方式时,需要每指定一个排序字段时,便要指定一次排序方式。升序为默认的排序方式;查询去向可通过执行【查询】 【查询去向】菜单命令,在 “查询去向 ”对话框中进行操作。 三、综合应用题( 30分) 3 【正确答案】 步骤 1:在命令窗口执行命令:
15、 CREATE FORMcalculator,打开表单设计器新建表单。从 “表单控件 ”工 具栏中依次向表单添加三个标签、三个文本框、两个命令按钮和一个选项组控件。 步骤 2:在 “属性 ”面板的下拉框中选择表单对象,在 “全部 ”选项卡中修改对象属性值,见表 2-39,注意,在设置选项组按钮为4个以后,要调整选项组的大小,才能显示新增的两个单选按钮,系统默认的只显示两个。 步骤 3:双击命令按钮,编写各个命令按钮的 Click事件代码。各按钮代码如下: *“计算 ”按钮的 Click事件代码 *N=THISFORM OPTIONGROUP1 VALUEDO CASE CASE N=1 THI
16、SFORM TEXT3 VALUE=THISFORM TEXT1 VALUE+THISFORM TEXT2 VALUE CASE N=2 THISFORM TEXT3 VALUE=THISFORM TEXTl VALUE-THISFORM TEXT2 VALUE CASE N=3 THISFORM TEXT3 VALUE=THISFORM TEXT1 VALUE*THISFORM TEXT2 VALUE CASE N=4 THISFORM TEXT3 VALUE=THISFORM TEXT1 VALUETHISFORM TEXT2 VALUEENDCASE *“关闭 ”按钮的 Click事件代
17、码 * THISFORM RELEASE 步骤 4:单击 “常用 ”工具栏中的 “运行 ”按钮查看结果,将表单文件保存到考生文件夹下。 【试题解析】 本大题考查了表单及控件的常用属性和方法的设置。本题看似比较麻烦,其实所涉及的内容主要是控件属性值的使用。可将主要设计过程按以下操作步骤进行:根据题目要求对各控件及属性值进行设置,通过指定文本框的InputMask属性值为: 99999,表示文本框只能接收 5位数值型数据,指定 Value属性值为: 0,表示该文本框的数据类型为数值型。 通过 DO CASE分支结构判断当前被选定的是哪个单选项,即进行何种运算。然后通过相应算术表达式进行计算。文本框中的数据可以通过 VALUE属性值获取。例如,当进行 “+”运算时,第 3个文本框中计算结果的取值应为THISFORM TEXT1 VALUE+THISFORM TEXT2 VALUE的值。