国家二级VF机试(操作题)模拟试卷113(题后含答案及解析)

  • 格式:doc
  • 大小:29.50 KB
  • 文档页数:3

国家二级VF机试(操作题)模拟试卷113 (题后含答案及解析)

全部题型 2. 基本操作题 3. 简单应用题 4. 综合应用题

基本操作题

1. 注意:基本操作题为4道SQL题,请将每道题的SQL命令粘贴到mysql.txt文件,每条命令占一行,第1道题的命令是第l行,第2道题的命令是第2行,以此类推;如果某道题没有做,相应行为空。 (1)利用SQL SELECT命令将“数量”表复制到“股票数量bk.dbf”。 (2)利用SQL INSERT命令插入记录(“600038”,5.69,5.82,4800)到“股票数量bk”表。 (3)利用SQL UPDATE命令将“股票数量bk”表中“股票代码”为“600016”的股票“现价”改为“16.83”。 (4)利用SQL DELETE命令删除“股票数量bk”表中“股票代码”为“600009”的记录。

正确答案:(1)~(4)题所用的语句内容如下。 ①在命令窗口执行命令:MODIFY FILE MYSQL,打开文本编辑器编写SQL命令。 ②在编辑器中输入如下程序代码: 1 SELECT*FROM数量INTO TABLE股票数量bk 2

INSERT INTO 股票数量 bk VALUES (“600038”,5.6 9,5.82,4800) 3 UPDATE股票数量bk SET现价=16.83 WHERE 股票代码=“600016” 4 DELETE FROM股票数量bk WHERE股票代码=“600009”

③在命令窗口执行命令:DO MYSQL.TXT,执行文件(注意:执行文件时,文件后缀名.txt不能缺省)。

解析:本题考查了SQL查询语句和SQL操作功能。 本题的关键是有关SQl.操作功能的命令编写,包括插入语句(工NSERT)、删除语句(DELETE)和更新语句(UPDATE),只要熟记各操作语句的命令格式,直接套用即可完成操作。

简单应用题

2. 在考生文件夹下,打开商品销售数据库cdb,完成如下简单应用:(1)使用一对多报表向导建立名称为p order的报表。要求从父表顾客表cust中选择所有字段,从子表订单表order中选择所有字段;两表之间采用“顾客号”字段连接;按“顾客号”字段升序排序;报表样式为“经营式”,方向为“纵向”;报表标题为“顾客订单表”。然后修改该报表,在页注脚中增加一个标签“制表人:新思路”;该标签水平居中,标签中的“:”为中文的冒号。 (2)修改一个名称为TWO.PRG的命令文件。该命令文件统计每个顾客购买商品的金额合计(应付款),结果存储在临时表1s中。然后用Is中的每个顾客的数据去修改表scust对应的记录。该命令文件有3行语句有错误,打开该命令文件进行修改。 注意:直接在错误处修改,不可改变SQL语句的结构和短语的顺序,不允许增加、删除或合并行。修改完成后,运行该命令文件。

正确答案:(1)步骤1:在命令窗口执行命令:OPEN DATABASE cdb,打开cdb数据库。 步骤2:执行【文件】→【新建】菜单命令,或单击“常用”

工具栏的“新建”按钮,在弹出的“新建”对话框中选中“报表”选项,然后单击“向导”图标按钮,系统弹出“向导选取”对话框,选中“一对多报表向导”项,单击“确定”按钮,启动报表向导。 步骤3:在报表向导的“步骤1-从父表选择字段”界面的“数据库和表”下选中cust表,将“可用字段”中的字段全部添加到“选定字段”中,单击“下一步”按钮。 步骤4:在报表向导的“步骤2-从子表选择字段”界面的“数据库和表”下选中order表,将“可用字段”中的字段全部添加到“选定字段”中,单击“下一步”按钮。 步骤5:在报表向导的“步骤3-为表建立关系”界面中系统自动建立两个表的联系,单击“下一步”按钮。 步骤6:在报表向导的“步骤4.排序记录”界面中双击“可用的字段或索引标识”中的“顾客号”字段到“选定字段”列表中,再选择“升序”,单击“下一步”按钮。 步骤7:在报表向导的“步骤5-选择报表样式”界面的“样式”下选中“经营式”,方向为“纵向”,单击“下一步”按钮。 步骤8:在报表向导的“步骤6-完成”界面中的“报表标题”下方文本框中输入“顾客订单表”,单击“完成”桉钮。 步骤9:在“另存为”对话框的“保存报表为:”框中输入表单文件名p_order,单击“保存”按钮。 步骤10:在命令窗口输入命令:MODIFY REPORT p_order,打开报表设计器修改报表。向报表设计器最底端的“页注脚”带区添加一个标签控件,并输入“制表人:新思路”,然后选中标签,在“布局”工具栏中单击“水平居中”命令按钮(工具栏中的倒数第4个按钮),设置标签为水平居中。(2)步骤1:在命令窗口执行命令:MODIFY COMMAND two,打开程序文件,文件中的命令代码如下: 1

CLOSE DBF 2 PRIVATE no,money 3 USE scust 4 *下面的一行语句有错误 5 SELECT顾客号,数量*单价应付款; 6 FROM order

JOIN comm ON order.商品号=comm.商品号; 7 GROUP BY顾客号;

8 INTO cURSOR ls 9 SELECT scust 10 *下面的一行语句有错误 11 DO WHILE EOF( ) 12 no=顾客号 13 SELECT ls

14 LOCAT FOR顾客号=no 15 monev=应付款 16 SELECT

scust 17 *下面的一行语句有错误 18 REPLACE ALL应付款=monev 19 sKIP+1 20 ENDDO 21 CLOSE TABLE

22 RETURN 修改程序中的错误行,修改后的程序如下: 1

CLOSE DBF 2 PRIVATE no,money 3 UE scust 4 *下面的一行语句有错误 5 SELECT顾客号,sum(数量*单价)应付款; 6 FROM

order JOIN comm ON order.商品号=comm.商品号; 7 GROuP BY顾客号;

8 INTO CURSOR ls 9 SELECT scust 10 *下面的一行语句有错误 11 DO WHILE!EOF( ) 12 no=顾客号 13 SELECT ls

14 LOCAT FOR顾客号=no 15 monev=应付款 16 SELECZ、scust 17 *下面的一行语句有错误 18 REPLACE应付款with

monev 19 SKIP+1 20 ENDDO 21 CLOSE TABLE 22

RETURN 步骤2:保存文件修改,在命令窗口执行命令:DO two,执行程序文件。

解析:(1)本题考查报表向导以及报表设计器的使用,在报表设计器中添加文字,可以通过“报表控件”工具栏中的“标签”控件进行添加。(2)本题考查了DO WHLE循环语句;SQL简单的计算查询;visual FoxPro修改表记录语句,程序的功能大致如下: 首先定义两个私有变量,然后通过SQL语句计算每个顾客购买商品的金额合计,将结果保存到一个临时表中;接着通过一个DO循

环语句逐条判断scust表中的记录,修改scust表中顾客号与临时表ls表中顾客号对应相等的“应付款”字段值。 根据对程序语句的分析,可以得知: 第一处错误是SQL计算语句错误,要求应付款应该是合计值,输出字段中还缺少sum( )函数进行合计。 第二处错误是DO循环条件错误,循环条件应该是没有到记录末尾,因此应使用!eof( )。 第三处错误是修改记录的命令错误,应该使用replace…with…命令。

综合应用题

3. 对考生文件夹下的数据库“图书借阅”中的表完成如下操作: ①为表loans增加一个字段“姓名”,字段类型为“宁符型”,宽度为8。 编写程序modipro.prg实现以下功能: ②根据borrOWS表的内容填写表loans中“姓名”的字段值。 ③查询表loans中2008年2月3日的借书记录,并将查询结果输入表rqtable中。 运行该程序。

正确答案:步骤1:命令窗口执行如下两条命令打开loans表结构。 USE

loans &&打开loans表 MODIFY STRUCTURE &&打开表设计器 步骤2:在表设计“字段”选项卡的“字段名”列的最后一个空白文本框中输入字段名“姓名”,“类型”中选择“字符型”,“宽度”文本框中输入“8”,保存表结构修改。 步骤3:命令窗口执行:MODIFY COMMAND MODIPROG,打开程序文件编辑器,输入如下程序代码(以下SQL奁询语句是通过查询设计器生成): 1 SELECT借书证号,姓名FROM BORROWS INTO CURSOR TEMP

2 DO WHILE NOT EOF( ) 3 UPDATE LOANs SET

LOANs.姓名=TEMP.姓名; 4 WHERE LOANS.借书证号=TEMP.借书证号 5 SKIP 6 ENDDO 7 SELECT*FROM LOANs

WHERE借书日期 ={?8-02-03); 8 INTO TABLE RQTABLE 步骤5:执行命令:DO MODIPROG.PRG,执行程序。

解析:本大题考查了表结构的修改;DO WHILE循环语句;SQL更新语句;SQL简单查询。 表结构的修改可以在表设计器中或直接通过SQL语句修改表。本题基本思路如下: 首先通过简单查询检索BORROWS表中的“借书证号”和“姓名”内容,将结果保存到临时表中,然后通过DO WHLE循环对临时表中的每条记录开始处理,利用SQL-UPDATE更新语句修改LOANS表中的“姓名”字段值,字段值等于临时表的“姓名”字段值,更新条件为LOANs表的“借书证号”等于临时表的“借书证号”;每处理完一条记录,记录指针便指向下一条记录,处理完临时表中所有记录后,退出DO WHILE循环;最后再通过SQL简单查询检索LOANs表中借书日期等于“2008-02-03”的记录。