-1-一、单项选择题1.要限制数据库表中字段的重复值,可以使用()。(p59)(A)主索引或惟一索引(B)惟一索引或普通索引(C)主索引或普通索引(D)主索引或候选索引2.数据库管理系统的数据模型不包括()。(p5~6)(A)结构型(B)关系型(C)网状型(D)层次型3.VisualFoxPro的“参照完整性”不包括的规则是()。(p10,p76)(A)更新(B)插入(C)删除(D)修改4.在关系数据库的基本操作中,从关系中输出其中几个字段的操作称为()运算。(p9)(A)选择(B)投影(C)联接(D)分组5.如果关系中某个属性或属性组合并非关键字,但却是另一个关系的主关键字,则称此属性或属性组合为()。(p7)(A)外关键字(B)主关键字(C)候选关键字(D)内关键字6.执行以下命令,的输出结果是()。(p37)?VARTYPE(CTOD(“^2006-2-1”))(A)D(B)N(C)C(D)L7.在下面的VisualFoxPro表达式中,不正确的是()。(p39)(A){^2006/6/6}+DATE()(B){^2006-5-1}+10(C){^200666}-DATE()(D){^2006-3-610:15a}-108.一个表文件中有3个备注型字段,1个通用型字段,则这些个字段的内容是存放在()个备注文件中。(p45)(A)4(B)1(C)3(D)多个文件9.下列名词中,可作为VisualFoxPro自由表中的字段名的是()。(p44)(A)英语成绩(B)2001年成绩(C)成绩(D)数学&英语10.要想对一个打开的表添加记录,应当使用命令()。(A)INSERT(B)APPEND(C)MODIFYSTRUCTURE(D)CHANGE11.刚打开表文件,要显示1-5号记录,正确命令是()。(A)DISPLAYNEXT5(B)DISPLAY1,2,3,4,5(C)LIST1,2,3,4,5(D)DISPLAYRECORD512.在VisualFoxPro中,用find命令把记录指针指向姓“王”的第一个记录后,想要查找下一个姓“王”的记录,使用的命令是()。(A)SKIP(B)GONEXT1(C)LOCATE(D)CONTINUE13.要想在一个打开的表中删除某些记录,应先后选用的两个命令是()。(p55)(A)DELETE,ZAP(B)DELETE,RECALL(C)DELETE,PACK(D)PACK,DELETE14.在索引生效后,将记录指针定位到物理记录指针的第一条记录上的命令是()。(A)GOBOTTOM(B)SKIP(C)GOTOP(D)GO115.已打开的表文件的当前记录为150,要将记录指针移向记录号为100的命令是()。(A)GO100(B)SKIP50(C)GO-50(D)SKIP10016.在两个工作区中打开了两个表,且按照关键字段建立了索引,要建立两个表的逻辑关联的命令是()。(p69)(A)SUM(B)CALCLATESUM()(C)TOTALON(D)SETRELATIONTO17.选择当前未使用的最小编号工作区的命令是()。(p66)(A)SELECT0(B)SELECT1(C)SELECTMIN(D)SELECT-118.在VisualFoxPro中,能够进行按照索引字段进行定位的命令是()。(p63)(A)SKIP(B)CONTINUE(C)LOCATE(D)GO19.用SQL语句建立表时为属性定义字段的有效性,应在SQL语句中使用短语()。(p85)(A)UNIQUE(B)PRIMARYKEY(C)CHECK(D)DEFAULT20.以下关于视图的描述中,正确的是()。(p108)(A)只能由数据库表创建视图(B)不能由自由表创建视图(C)可以在数据库外创建视图(D)可以由各种表创建视图21.VisualFoxPro6.0中的表主要有两种存在方式,即自由表和()。(A)任意表(B)数据库表(C)关系型表(D)二维表22.联接中包括所有联接表的全部行,这种联接为()。(p96)(A)左联接(B)完全联接(C)内部联接(D)右联接23.以下关于VisualFoxPro类的说法,不正确的是()。(p162)(A)用户必须给基类定义属性,否则出错(B)用户可以按照已有的类派生出多个子类(C)子类一定具有父类的全部属性(D)类具有继承性和封装性24.以下关于主索引的说法正确的是()。(p59)(A)在自由表和数据库表中都可以建立主索引(B)可以在一个数据库表中建立多个主索引(C)数据库中任何一个表只能建立一个主索引(D)主索引的关键字值可以为NULL二、填空题1.修改表的结构所用的SQL命令是(①ALTERTABLE)。(p88)2.指定表的主控索引文件或主控索引索引标志的命令是(②SETORDERTO)。(p61)3.插入记录的SQL命令是(③INSERTINTO)。(p99)4.顺序执行以下命令,屏幕显示的结果是(④25.65)。A=”16.85”B=”8.8+&A”-2-?&B5.以下命令实现的操作是(⑤删除教师表中”简历”字段)。(p88)ALTERTABLE教师DROP简历6.SETDEFAULTTO命令实现的操作是(⑥指定缺省驱动器、目录)。()7.在循环结构中,能从循环体跳出,转去执行ENDDO后的第一条命令执行的命令语句是(⑦EXIT)。8.打开数据库文件的命令是(⑧OPENDATABASE)。9.要限定数据库中的学生成绩表中的“性别”字段的值域为“男”或者“女”,则应在表设计器的字段选项卡中,选中“性别”字段,在字段有效性规则栏中输入(⑨性别=“男”OR性别=“女”)。(p81)10.以下命令实现的操作是(⑩将“学生”表的结构中的“姓名,性别”字段复制到学生1中)USE学生COPYSTRUTO学生1FIELDS姓名,性别(p56)11.以下命令实现的操作是(○11显示“成绩”表中“入学成绩”前3名的记录。)。SELETOP3*FROM成绩ORDERBY入学成绩DESC12.学生表中含有字段:学号C(11),姓名C(8),入学成绩N(5,1),籍贯C(10),下面一段程序是通过输入学号显示学生信息,请填空。SETTALKOFFCLEARACCEPT请输入学号:TOXXUSE学生LOCATEFOR学号=XXIF(○12FOUND())DISPELSE?没有该学生!(○13ENDIF)SETTALKONRETURN13.以下程序是输出1000~1之间所有的奇数和,请完善程序。(p141)SETTALKOFF(○14S=0)FORI=1TO1000IF(○15MOD(I,2)0)S=S+IENDIFSETTALKONRETURN三、简单操作题(按要求写出相关的命令或者SQL语句)本题目涉及的基本表格结构如下:学生(学号C(5),姓名C(8),性别C(2),少数民族否L,入学成绩N(7,1),籍贯C(10),出生日期D)成绩(学号C(5),课程号C(5),成绩N(7,1))(选课)课程(课程号C(5),课程名C(20),学分N(3,1))1.显示学生表的前五条记录。VFP命令:LISTNEXT5SQL命令:select*top5;from学生;ORDERBY学号2.打开学生表,以入学成绩降序建立排序文件。(p109)VFP命令:USE学生INDEXON入学成绩TAG入学成绩DESCLISTSQL命令:select*;from学生;ORDERBY入学成绩DESC3.求男生的平均年龄。VFP命令:USE学生AVERAGE(YEAR(DATE())-YEAR(出生日期))TOYFOR性别=男SQL命令:SELECTAVG(YEAR(DATE())-YEAR(出生日期))AS平均年龄;-3-FROM学生;WHERE性别=男4.查询成绩表中每个学生的学号,年龄。(用SQL命令)SELECT学号,YEAR(DATE())-YEAR(出生日期)AS年龄;FROM学生5.查询成绩在80分且为非少数民族的学生的姓名,课程名,成绩。(用SQL命令)SELECTA.姓名,C.课程名,B.成绩;FROM学生A,选课B,课程C;WHEREA.学号=B.学号ANDB.课程号=C.课程号AND成绩=80AND!少数民族否四、读程序写运行结果1.写出下列程序运行的结果(18)。CLEARSETTALKOFFX=20Y=-3FORS=19+XTOXSTEPYNEXT?SSETTALKONRETURN2.写出下列程序运行的结果(OK!加10分;OK!OK!)。SETTALKOFFCLEARSTORE[OK!]TOX1,X2DOSUB?X1+X2RETURNPROCSUBPRIVATEX1X1=X2+加10分?X1RETURN五、编写程序1.计算S=A!+B!+C!(A,B,C从键盘上输入)(参阅P165EX7)2.建立如下图所示的表单,其功能是:在第一个文本框中输入一个数据,单击“求值”按扭,将在第2个文本框中显示函数f(x)=|x|4+3的值;单击“退出”按扭,退出表单。请完善以下有关对象属性设置的表格,并按编写相关事件代码。(1)完成各对象属性设置。(2)编写事件代码。要求:a.必须指明是哪个对象的什么事件。b.编写事件代码。1.解:1)建立表单,4个标签组件,TEXT1,TEXT2,TEXT3,TEXT4,4个文本框组件,和”计算”,”退出”两个命令按钮。2)在表单中建立fact方法,代码如下:PARAMETERSNM=1对象名属性名属性值Form1求函数值LABEL1幼园fontsize12输入X:LABEL2fontname隶书fontsize输入XCOMMAND1求值COMMAND2caption退出-4-FORI=1TONM=M*INEXTRETURNM3)在”计算”的CLICK事件中添加如下代码:a=thisform.fact(val(thisform.text1.value))b=thisform.fact(val(thisform.text2.value))c=thisform.fact(val(thisform.text3.value))s=a+b+cthisform.text4.value=allt(str(s))4)在”退出”的CLICK事件中添加代码:thisform.release2.解:1)按如图建立表单,在表单中添加组件。2)在表单建立方法P,其脚本如下:parametersbase,exponent&&base为基数,exponent为指数。result=1fori=1toexponentresult=result*baseendforreturnresult3)在“求值”的click事件中,添加代码:*f(x)=|x|4+3的函数值。x=abs(val(thisform.text1.value))thisform.text2.value=str(thisform.p(x,4)+3)4)在“退出”的click事件中的代码:thisform.release