1、国家二级 VF机试(操作题)模拟试卷 351及答案与解析 一、基本操作题 1 (1)从 student表查询所有性别为 “男 ”的学生信息,并按学号升序排序将查询结果存入 results表。 (2)利用表单向导生成一个表单,该表单含有 student表的 “学号 ”、 “班级 ”、 “姓名 ”和 “性别 ”4个字段,按 “学号 ”字段升序排序,其他设置采用默认值,并将表单保存为 student scx文件。 (3)建立一个命令文件 myprog prg,该命令文件只有一行语句,即执行前一小题生成的表单文件。 (4)为 student表增加一个 “年龄 ”字段,类型为数值型 (2)。 二、简单应
2、用题 2 (1)student是一个 “学生 ”表,其中包含学号 (C8)、姓名 (C8)、性别 (C2)、政治面目(C4)、班级 (C5)等字段。考生文件夹下的 modil prg程序文件的功能是显示输出所有政治面目为 “群众 ”的 “男 ”生的姓名和班级,每行输出一个学生的信息;程序中有三处错误,请加以改正。 说明:程序中 *ERROR FOUND*的下一行即为错误所在行。请用改正后的程序行覆盖错误所在行,不要插入或删除任 何程序行。 (2)建立命令文件 sprog prg,该命令文件包含如下两条语句: 第一条语句使用 SQL UPDATE命令计算和更新 student表的年龄字段值 (计
3、算年龄的表达式是 year(dat()-year(出生日期 )。 第二条语句使用 SQL SELECT命令查询各种 “政治面目 ”的学生人数和平均年龄,并将结果存储于表 sqlresults(字段名是政治面目、人数和平均年龄 )。 说明:以上命令文件必须执行,并产生所要求的结果。 三、综合应用题 3 考生文件夹下的 gnht dbf是一个合同管理表文件,其中部分字段的含义是:hth(合同号 )、 dhdw(订货单位 )、 ghdw(供货单位 )、 jhs1(订货数量 )。 编写程序 progzh prg分别统计订货单位数、供货单位数、订货总数,并将结果填写到 jieguo dbf(在考生文件夹
4、下已经存在 )表文件中。 说明:以上命令文件必须执行,并产生所要求的结果。 国家二级 VF机试(操作题)模拟试卷 351答案与解析 一、基本操作题 1 【正确答案】 【操作步骤】 (1)在命令窗口执行如下命令,完成查询并保存查询结果 到 results表中。 SELECT * FROM student WHERE性别 “男 “ ORDER BY学号 INTO TABLE results (2) 执行【文件】 【新建】菜单命令,在弹出的 “新建 ”对话框中选中 “表单 ”选项,然后单击 “向导 ”图标按钮,系统弹出 “向导选取 ”对话框,选中 “表单向导 ”项,单击 “确定 ”按钮,启动表单向导
5、。 在表单向导的 “步骤 1-字段选取 ”界面的 “数据库和表 ”下选中 “STUDENT”表,依次双击 “可用字段 ”中的 “学号 ”、 “班级 ”、 “姓名 ”和 “性别 ”字段全部添加到 “选定字段 ”中,单击 “下一步 ”按钮。 跳过 “步骤 2-选择表单样式 ”向导界面,继续单击 “下一步 ”按钮。 在表单向导的 “步骤 3-排序次序 ”界面中双击 “可用的字段和索引标识 ”的 “学号 ”字段添加到 “选定字段 ”列表中,再单击 “升序 ”单选项,单击 “下一步 ”按钮。 在表单向导的 “步骤 4-完成 ”界面中单击 “完成 ”按钮,在 “另存为 ”对话框的 “保存表单为: ”框中输
6、入表单文件名 student,单击 “保存 ”按钮。 (3) 在命令窗口执行命令: MODIFY COMMAND myprog,打开程序文件编辑器。 在编辑器中输入程序代码: DO FORM student。 保存文件,在命令窗口执行命令: DO myprog prg,执行程序文件。 (4)关闭 student表,在命令窗口执行命令: ALTER TABLE student ADD年龄N(2),新增字段。 二、简单应用题 2 【正确答案】 (1)【操作步骤】 步骤 1:在命令窗口执行命令: MODIFY COMMAND modil,打开程序文件,文件中的命令代码如下: 1 SET IALK O
7、EF 2 USE student 3 LOCATE FOR 政治面目 “群众 “ 4 “*error* DO WHILE NOT FOUND() 5 IF性别: “男 “ 6 CONTINUE 7 *error* BREAK 8 ENDIF 9 ?姓名,班级 10 *error* SKIP 11 ENDDO 12 USE 13 SET TALK ON 修改程序中的错误行,修改后的程序如下: 1 SET TALK OFF 2 USE student 打开 student表 3 LOCATE FOR 政治面目 “群众 “ 查找当前基录的 “政治面目 ”为 “群众 ” 4 DO WHILE FOUN
8、D() 循环条件为找到 “政治面目 “为 “群众 “的记录时进入循环 5 IF 性别 “男 “ 如果性别为 “女 “,继续执行下而的语句,否则执行 ENDIF语句之后的语句 6 CONTINUE 返回到循环体起始位置继续重新判断下一条记求 “政治面目 ”值是否为 “群众 ” 7 LOOP 返回到循环体起始位置,即 DO WHILE处重新判断,不再执行后而的语句 8 ENDIF 当 IF处条件不成利时,直接执行该语句后而的命令 9 ?姓名,班级 当前面的 IF条件语句不成立时,执行该语句,显示当前记录的 “姓名 ”和 “班级 ”值 10 CONINUE 返回到循环体起始位置继续罩:新判断下一条记
9、录 “政治面目“值是否为 “群众 “ 11 ENDDO 当 DO WHILE处条件不成立时,直接退出循环体,执行该语句后面的命令 12 USE 关闭当前打开的表 13 SET TALK ON 步骤 2:保存文件修改,在命令窗口执行命令: DO modil prg,执行程序文件。 (2)【操作步骤】 步骤 1:在命令窗口执行命令: MODIFY COMMAND sprog,打开程序文件编 辑器。 步骤 2:在程序文件编辑器中输入如下代码 (相关 SQL查询语句是通过查询设计器生成 ): 1 UPDATE S tudent SET 年龄 YEAR (DATE() YEAR(出生日期 ) 2 SEL
10、ECT STUDENT政治面目, COUNT (STUDENT学号 )AS人数, AVG(STUDENT 年龄 )AS平均年龄; 3 FROM student; 4 GROUP BY student政治面目; 5 INTO TABLE sqlresults dbf 步骤 3:保存文件修改,在命令窗口执行命令: DO sprog prg,执行程序文件。 三、综合应用题 3 【正确答案】 【操作步骤】 步骤 2:在程序文件编辑器中输入如下代码: 1 SELECT COUNT(DISTINCT dhdw)FROM gnht INTO ARRAY arr 2 UPDATE JIEGUO SET num arr WHERE name=”订货单位数 ” 3 SELECT COUNT(DISTINCT ghdw)FROM gnht INTO ARRAY arr 4 UPDATE jieguo SET num arr WHERE name ”供货单位数 ” 5 SELECT SUM(jhs1) FROM gnht INTO ARRAY arr 6 UPDATE jieguo SET num arr WHERE name “订货总数 “ 步骤 3:保存文件修改,在命令窗口执行命令: DO progzh.prg,执行程序文件。