2015年计算机二级考试《VFP》全真模拟试题(2)
29设有学生表S(学号,姓名,性别,年龄),查询所有年龄小于等于18岁的女同学、并按年龄进行降序排序生成新的表WS,正确的SQL命令是( )。
A.SELECT*FROM S WHERE性别=ˋ女ˊAND年龄<=18 OREDER BY 4 DESC INTO TABLE WS
B.SELECT*FROM S WHERE性别=ˋ女ˊAND年龄<=18 OREDER BY年龄INTO TABLE WS
C.SELECT*FROM S WHERE性别=ˋ女ˊAND年龄<=18 OREDER BYˋ年龄ˊDESC INTO TABLE WS
D.SELECT*FROM S WHERE性别=ˋ女ˊ0R年龄<=18 OREDER BYˋ年龄ˊASC INTO TABLE WS
参考答案:A
参考解析:按年龄的降序排列,所以要用短语DE-SC,排序的字段有两种表示方式,分别是按列号和字段名排序,因为字段名是变量,故不能加引号。
30一间宿舍可住多个学生,则实体宿舍和学生之间的联系是( )。
A.一对一B.一对多C.多对一D.多对多
参考答案:B
参考解析:因为-间宿舍可以住多个学生即多个学生住在-个宿舍中,但-个学生只能住-问宿舍,所以实体宿舍和学生之间是-对多的关系。
31执行USEscIN0命令的结果是( )。
A.选择0号工作区打开sc表
B.选择空闲的最小号工作区打开sc表
C.选择第1号工作区打开sc表
D.显示出错信息
参考答案:B
参考解析:在多个工作区打开某个表时,可彻命令:USE<表名>IN<工作区号>,而最小的工作区号是1,如果指定为0,则选择编号最小的空闲工作区,所以USE sc IN0的结果是选择空闲的最小号工作区打开SC表。
32下列叙述中正确的是( )。
A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构
B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
D.循环队列中元素的个数是由队头指针和队尾指针共同决定
参考答案:D
参考解析:循环队列有队头和队尾两个指针,但是循环队列仍是线性结构的,所以A)错误;在循环队列中只需要队头指针与队尾两个指针来共同反映队列中元素的动态变化情况,所以B)与C)错误。
33为“运动员”表增加一个“得分”字段的正确的SQL命令是( )。
A.CHANGE TABLE运动员ADD得分I
B.ALTER DATA运动员ADD得分I
C.ALTER TABLE运动员ADD得分I
D.CHANGE TABLE运动员INSERT得分I
参考答案:C
参考解析:修改表结构可使用ALTER TABLE命令,为表增加字段的命令格式为:ALTER TABLE<表名>ADD[COLUMN]<字段类型>[<长度>[<小数位数>])][NULLINOTNULL][CHECK<逻辑表达式1>[ERROR<字符型文本提示信息>]][DEFAULT<默认值表达式>][ADD PRIMARY KEY<索引表达式2>TAG<索引名1>][ADD UNIQUE<索引表达式3>TAG<索引名2>]套用ALTER TABLE的命令格式,选项C)正确。
34在数据库设计中,将E-R图转换成关系数据模型的过程属于( )。
A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶段
参考答案:C
参考解析:E-R图转换成关系模型数据则是把图形分析出来的联系反映到数据库中,即设计出表,所以属于逻辑设计阶段。
35如果有定义LOCAL data,data的初值是( )。
A.整数0B.不定值C.逻辑真D.逻辑假
参考答案:D
参考解析:声明局部变量的命令是:LOCAL<内存变量表>。该命令建立指定的局部内存变量,并为它们赋初值逻辑假.F.。
36在Visual FoxPro中,宏替换可以从变量中替换出( )。
A.字符串B.数值C.命令D.以上三种都可能
参考答案:D
参考解析:宏替换的功能是替换出字符变量的内容,即&的值是变量中的字符串。去掉了定界符之后,结果就可能有多种类型,可以是字符串、数值或命令。
37打开已经存在的表单文件的命令是( )。
A.MODIFY FORMB.EDIT FORMC.OPEN FORMD.READ FORM
参考答案:A
参考解析:修改表单文件的命令格式是:MODIFYFORM<表单文件名>。
38查询客户名称中有“网络”二字的客户信息的正确SQL命令是( )。
A.SELECT*FROM客户FOR名称LIKE〝%网络%″
B.SELECT*FROM客户FOR名称=〝%网络%″
C.SELECT*FROM客户WHERE名称=〝%网络%″
D.SELECT*FROM客户WHERE名称LIKE〝%网络%″
参考答案:D
参考解析:LIKE为字符串匹配运算符,可与通配符“%”和“-”-起使用。“%”表示与任意多个字符匹配;“-”表示与任意-个字符匹配。查询客户名称中有“网络”二字的客户信息可用LIKE”%网络%”表示,正确的选项为D)。
39在表单中为表格控件指定数据源的属性是( )。
A.DataSourceB.DataFromC.RecordSourceD.RecordFrom
参考答案:C
参考解析:表格是-种容器对象,其外形与Browse窗口相似,-个表格由若干列对象(Column)组成,每个列对象包含-个标头对象(Header)和若干控件。这里,表格、列、标头和控件都有自己的属性、事件和方法。其中,RecordSource属性用于指明表格数据源,即C)选项正确。
40设有学生(学号,姓名,性别,出生日期)和选课(学号,课程号,成绩)两个关系,计算刘明同学选修的所有课程的平均成绩,正确的SQL语句是( )。
A.SELECT AVG(成绩)FROM选课WHERE姓名=〝刘明〞
B.SELECT AVG(成绩)FROM学生,选课WHERE姓名=〝刘明〞
C.SELECT AVG(成绩)FROM学生,选课WHERE学生.姓名=〝刘明〞
D.SELECT AVG(成绩)FROM学生,选课WHERE学生.学号=选课.学号AND姓名=〝刘明〞
参考答案:D
参考解析:SQL的核心是查询,它的基本形式由sE-LECT-FROM-WHERE查询块组成。其中SELECT说明要查询的字段,FROM说明要查询的字段来自哪个表或哪些表,可以对单个表或多个表进行查询,WHERE说明查询条件,即选择元组的条件。要计算刘明同学选修的所有课程的平均成绩,应设置where条件为WHERE学生.学号=选课.学号AND姓名=”刘明”,即D)选项正确。
二、基本操作题
41在考生文件夹下,完成如下操作:
(1)打开考生文件夹下的表单one,如下图所示,编写“显示”命令按钮的Click事件代码,使表单运行时单击该命令按钮则在Text1文本框中显示当前系统日期的年份(提示:通过设置文本框的Value属性实现,系统日期函数是date(),年份函数是year())。
(2)打开考生文件夹下的表单two,如下图所示,选择“表单”菜单中的“新建方法程序”命令,在“新建方法程序”对话框中,为该表单新建一个test方法,然后双击表单,选择该方法编写代码,该方法的功能是使“测试”按钮变为不可用,即将该按钮的Enabled属性设置为.F.。
(3)创建一个名为study_report的快速报表,报表包含表“课程表”中的所有字段。
(4)为“教师表”的“职工号”字段增加有效性规则:职工号左边3位字符是ll0,表达式为:LEFT(职工号,3)=“110”。
参考解析:
[操作步骤]
(1)利用“文件”菜单下的“打开”命令来打开考生文件夹 下的表单one,或使用命令“MODIFY FORM one”打开表单one。双击“显示”命令按钮,在其Click事件中输入代码:ThisForm.Textl.Value=year(date())保存并运行修改后的表单,查看运行结果。
(2)单击工具栏中的“打开”按钮,打开考生文件夹下的表单two,在“表单”菜单中选择“新建方法程序”命令,新建-个名为test的方法,在属性窗口中双击此方法,在弹出的窗口中编写用户自定义过程代码:ThisForm.Commandl.Enabled=.f.在表单设计器环境下双击“测试”命令按钮,编写Click事件代码:ThisForm.Test保存并运行修改后的表单,查看运行结果。
(3)单击工具栏中的“新建”按钮,在“新建”对话框中选择“报表”,单击“新建文件”按钮;选择“报表”菜单下的“快速报表”命令,在“打开”对话框中选择考生文件夹下的“课程表”,在“快速报表”对话框中单击“确定”按钮;单击工具栏中的“保存”按钮,将快速报表名保存为study_report.
(4)在命令窗口输入命令:alter table教师表alter职工号set check LEFT(职工号,3)=〝110〞按下回车键运行命令。
[易错误区]在Visual FoxPro中,新建的-个方法必须通过相应的语句调用才能使用。在第(2)小题中,按照题目要求新建test方法后,还需要在命令按钮的Click事件中对该方法进行调用。
三、简单应用题
42在考生文件夹下完成如下简单应用:
(1)打开“课程管理”数据库,使用SQL语句建立一个视图salary,该视图包括系号和平均工资两个字段,
并且按平均工资降序排列。将该SQL语句存储在four.prg文件中。
(2)打开考生文件夹下的表单six,如下图所示,“登录”命令按钮的功能是:当用户输入用户名和口令以后,单击“登录’’按钮时,程序在自由表“用户表”中进行查找,若找不到相应的用户名,则提示“用户名错误”,若用户名输入正确,而口令输入错误,则提示“口令错误”。修改“登录”命令按钮Click事件中标有错误的语句,使其能够正确运行。注意:不得做其他修改。
参考解析:
(1)[操作步骤]
步骤l:单击工具栏中的“打开”按钮,打开考生文件夹下的数据库文件“课程管理”。
步骤2:单击工具栏中的“新建”按钮,新建-个程序,输入如下代码。
CREATE sql VIEW salary AS SELECT教师表.系号,AV
(教师表.工资)As平均工资FROM教师表;
GROUP BY教师表.系号0RDER BY 2 DESC
步骤3:保存程序为four.prg,并运行该程序。
(2)[操作步骤]
步骤l:单击工具栏中的“打开”按钮,打开考生文件夹下的表单six.SCX,“登录”按钮中的代码如下。
**********“登录”按钮的Click事件代码**********
USE用户表
GOTOP
flag=0
&&下面语句有错误
WHILE.NOT.EOF()
IF Alhrim(用户名)==Alltrim(Thisform.Tma1.Value)
IF Alltrim(口令)==Alhrim(Thisfonn.Texl2.Value)
WAIT”欢迎使用”WINDOW TIMEOUT 2
ELSE
WAIT”口令错误”WINDOW TIMEOUT 2
ENDIF
nag=1
EXIT
ENDIF
&&下面语句有错误
NEXT
ENDDO
&&下面语句有错误
CASE FLAG=0
WAIT”用户名错误”WINDOW TIMEOUT 2
ENDIF
********************************
步骤2:修改程序中的错误如下。
错误1:将“WHILE”改为“DO WHIIE”。
错误2:将“NEXT”改为“SKIP”。
错误3:将“CASE”改为“IF”。
步骤3:保存并运行表单。
四、综合应用题
43利用菜单设计器建立一个菜单TJ_MENU3,要求如下:
(1)主菜单(条形菜单)的菜单项中有“统计”和“退出”两项。
(2)“统计”菜单下只有一个“平均”菜单项,该菜单项用来统计各门课程的平均成绩,统计结果包含“课程名,,和“平均成绩”两个字段,并将统计结果按课程名升序保存在表NEW TABLE32中。
(3)“退出”菜单项的功能是返回Visual FoxPro系统菜单(只能在命令框中填写相应命令)。菜单建立后。运行该菜单中的各个菜单项。
参考解析:
[操作步骤]
步骤1:通过菜单设计器新建-个菜单,输入菜单项“统计”和“退出”。
步骤2:为“统计”菜单项建立子菜单,并输入菜单项“平均”。
步骤3:在“平均”菜单的“结果”中选择“过程”,单击“编辑”按钮,在弹出的程序编辑窗口中输入下列代码。
******“平均”菜单项中的过程代码******
SETTALKOFF
OPEN DATABASE SCORE_MANAGER
SELECT Course.课程名,AVG(Seorel.成绩)∞平均
成绩;
FROM cour8e,score1;
WHERE Course.课程号=Scowl.课程号;
GROUP BY Course.课程名;
ORDER BY Course.课程名;
INTO TABLE NEW_KBLE32
CLOSE ALL
SETTALKON
**************************
步骤4:在“退出”菜单的结果中选择。命令”,输入语句:
SET SYSMENU TO DEFAULT。
步骤5:保存菜单为TJ_MENU3,生成莱单的可执行程序。
步骤6:运行菜单并执行菜单中的各菜单项。