1、国家二级 VF机试-试卷 23及答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_2.(1)打开“订货管理”数据库,并将表 order_detail添加到该数据库中。 (2)为表 order_detail的“单价”字段定义默认值为 NULL。 (3)为表 order_detail的“单价”字段定义约束规则:单价0,违背规则时的提示信息是:“单价必须大于零”。 (4)关闭“订货管理”数据库,然后建立自由表customer,表结构如下: 客户号 字符型(6) 客户名 字符型(16) 地址 字符型(20) 电话 字符型
2、(14)(分数:2.00)_二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_4.(1)student是一个“学生”表,其中包含学号(C 8)、姓名(C 8)、性别(C 2)、政治面目(C 4)、班级(C 5)等字段。考生文件夹下的 modi1prg 程序文件的功能是显示输出所有政治面目为“群众”的“男”生的姓名和班级,每行输出一个学生的信息;程序中有三处错误,请加以改正。 说明:程序中*ERROR FOUND*的下一行即为错误所在行。请用改正后的程序行覆盖错误所在行,不要插入或删除任何程序行。 (2)建立命令文件 sprogprg,该命令文件包含如下两条语句:
3、 第一条语句使用 SQL UPDATE 命令计算和更新 student 表的年龄字段值(计算年龄的表达式是 year(dat()-yea(出生日期)。 第二条语句使用 SQL SELECT 命令查询各种“政治面目”的学生人数和平均年龄,并将结果存储于表sqlresults (字段名是政治面目、人数和平均年龄)。 说明:以上命令文件必须执行,并产生所要求的结果。(分数:2.00)_三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_6.设计名为 form book的表单(控件名为 form1,文件名为 form_book)。表单的标题设为“图书情况统计”。表单中有一
4、个组合框(名称为 Combo1)、一个文本框(名称为 Text1)和两个命令按钮“统计”(名称为Command1)和“退出”(名称为 Command2)。如图 1-9所示。 (分数:2.00)_国家二级 VF机试-试卷 23答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_解析:2.(1)打开“订货管理”数据库,并将表 order_detail添加到该数据库中。 (2)为表 order_detail的“单价”字段定义默认值为 NULL。 (3)为表 order_detail的“单价”字段定义约束规则:单价0,违背
5、规则时的提示信息是:“单价必须大于零”。 (4)关闭“订货管理”数据库,然后建立自由表customer,表结构如下: 客户号 字符型(6) 客户名 字符型(16) 地址 字符型(20) 电话 字符型(14)(分数:2.00)_正确答案:(正确答案:(1)在命令窗口执行命令: MODIFY DATABASE 订货管理 ,打开数据库设计器。 在数据库设计器中右击鼠标,选择【添加表】快捷菜单命令,在弹出的“打开”对话框中双击order_detail表,将表添加到数据库中。 (2)在数据库设计器中,右击 order_detail表,选择【修改】快捷菜单命令,打开 order_detail表设计器,在“
6、字段”选项卡中选中“单价”,勾选 NULL选项,在“默认值”文本框中输入:NULL。如图 2-32所示。 (3)接上题,在“字段有效性”的“规则”文本框中输入:单价0,在“信息”文本框中输入:“单价必须大于零“,单击“确定”按钮保存表结构的修改。如图 2-32所示。 )解析:解析:本大题考查了数据库设计器的使用;字段有效性规则的建立;自由表的建立。 对表中字段建立有效性规则和设置默认值是在表设计器中操作的,在操作时要注意先选中需要建立有效性规则的字段。注意:当将“单价”字段默认值定义为空值时,应先将 NULL值选项选中,允许字段为空值。 自由表是不属于任何数据库的表,在建立自由表之前应该关闭所
7、有数据库,关闭数据库的命令是 CLOSE DATABASE。二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_解析:4.(1)student是一个“学生”表,其中包含学号(C 8)、姓名(C 8)、性别(C 2)、政治面目(C 4)、班级(C 5)等字段。考生文件夹下的 modi1prg 程序文件的功能是显示输出所有政治面目为“群众”的“男”生的姓名和班级,每行输出一个学生的信息;程序中有三处错误,请加以改正。 说明:程序中*ERROR FOUND*的下一行即为错误所在行。请用改正后的程序行覆盖错误所在行,不要插入或删除任何程序行。 (2)建立命令文件 spro
8、gprg,该命令文件包含如下两条语句: 第一条语句使用 SQL UPDATE 命令计算和更新 student 表的年龄字段值(计算年龄的表达式是 year(dat()-yea(出生日期)。 第二条语句使用 SQL SELECT 命令查询各种“政治面目”的学生人数和平均年龄,并将结果存储于表sqlresults (字段名是政治面目、人数和平均年龄)。 说明:以上命令文件必须执行,并产生所要求的结果。(分数:2.00)_正确答案:(正确答案:(1)步骤 1:在命令窗口执行命令:MODIFY COMMANDmodi1,打开程序文件,文件中的命令代码如下: SET TALK OFF USE stude
9、nt LOCATE FOR 政治面目=“群众“ “*error* DO WHILENOTFOUND() IF 性别=“男“ CONT INUE *error* BREAK ENDIF ?姓名,班级 *error* SKIP ENDDO USE SET TALK ON 修改程序中的错误行,修改后的程序如下: SET TALK OFF USE student &打开 student表 LOCATE FOR 政治面目=“群众“&查找当前记录的“政治面目”为“群众”DO WHILE FOUND() &循环条件为找到“政治面目”为“群众”的记录时进入循环 IF 性别=“男“ & 如果性别为“女”,继续执
10、行下面的语句,否则执行 ENDIF语句之后的语句 CONTINUE &返回到循环体起始位置继续重新判断下一条记录“政治面目”值是否为“群众”LOOP &返回到循环体起始位置,即 DO WHILE处重新判断,不再执行后面的语句 ENDIF &当 IF处条件不成立时,直接执行该语句后面的命令 ? 姓名,班级 & 当前面的 IF条件语句成立时,执行该语句,显示当前记录的“姓名”和“班级”值 CONTINUE &返回到循环体起始位置继续重新判断下一条记录“政治面目”值是否为“群众”ENDDO &当 DO WHILE处条件不成立时,直接退出循环体,执行该语句后面的命令 USE &关闭当前打开的表 SET
11、 TALK ON 步骤 2:保存文件修改,在命令窗口执行命令: DO modilprg ,执行程序文件。 (2)步骤 1:在命令窗口执行命令: MODIFY COMMAND Msprog ,打开程序文件编辑器。 步骤 2:在程序文件编辑器中输入如下代码(相关 SOL查询语句是通过查询设计器生成): UPDATE student SET 年龄=YEAR(DATE()-YEAR(出生日期) SELECT STUDENT政治面目,COUNT(STUDENT学号)AS 人数,AVG(STUDENT年龄) AS 平均年龄; FROM student; GROUP BY student政治面目; INTO
12、 TABLE sqlresultsdbf 步骤 3:保存文件修改,在命令窗口执行命令: DO sprogprg ,执行程序文件。)解析:解析:(1)本题主要考查的是利用 VisualFoxPro命令查询定位数据表中的记录。此类型的题主要通过一个 DO WHILE循环语句对表中的记录逐条比较,对满足条件的记录进行相关的操作。 本题中第一处错误是循环条件的错误,进入循环体的条件是逻辑值为真,第二处错误中属于命令短语错误,visual FoxPro中没有 BREAK命令,第三处错误是 SKIP命令错误,该命令虽然可以将当前记录指针指向下一条记录,但不再执行 LOCATE FOR处的条件判断,如果要包
13、含判断功能,则要使用 CONTINUE 短语。本题程段中各语句的功能可参考“操作步骤”中对各条语句的注释说明,这里不再细说。 (2)本题考查了 SQL数据更新功能和分组计算查询功能。本题数据更新语句可直接套用 SQL更新语句的命令格式;对数据进行分组计算查询时,用来计数的函数为 COUNT(),用来求平均值的函数为 AVG(),通过 AS短语可以指定新的字段名,另外,对记录进行分组时,分组字段要设置正确,根据题意,本题的分组字段应为“学生”表中的“政治面目”字段。三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_解析:6.设计名为 form book的表单(控件
14、名为 form1,文件名为 form_book)。表单的标题设为“图书情况统计”。表单中有一个组合框(名称为 Combo1)、一个文本框(名称为 Text1)和两个命令按钮“统计”(名称为Command1)和“退出”(名称为 Command2)。如图 1-9所示。 (分数:2.00)_正确答案:(正确答案:步骤 1:在命令窗口执行命令: CREATE FORMform-book ,打开表单设计器新建表单。从“表单控件”工具栏中依次向表单添加一个组合框、一个文本框及两个命令按钮控件。 步骤2:在“属性”面板的下拉框中选择表单对象,在“全部”选项卡中修改对象属性值,见表 2-11。 )解析:解析:本大题考查了表单及控件的常用属性和方法的设置;SQL 简单查询。 本题的关键是“统计”命令按钮的 Click事件的编写,可以根据组合框中选择的“出版社”名称,从 book表中查找到该出版社图书的总数,这里求总数用 count()函数,组合框中的当前值用 Value属性来表示,并将求出的总数存放到数组中,然后再将数组中的值赋给文本框的 value值(即文本框中显示的内容)。