2004年(春)VisualFoxPro二级考试试卷(本试卷包括计算机基础知识部分和程序设计部分,考试时间共120分钟)(红色选项为答案部分)第二部分VisualFoxPro程序设计(红色部分为答案)一、选择题(用答题卡答题,答案依次填在21-30答题号内)。21.要在浏览窗口中显示表js.dbf中职称(zcc(10))为“教授”和“副教授”的纪录(该字段的内容无前导空格),下列命令中不能实现此功能的事(21)。A.SELECT*FROMjsWHEREjs.zc=”教授”ORjs.zc=”副教授”B.SELECT*FROMjsWHERE”教授”$js.zcC.SELECT*FROMjsWHEREjs.zcIN(”教授”,”副教授”)D.SELECT*FROMjsWHEREWHERERIGHT(js.zc,4)=”教授”22.在VisualFoxPro系统中,表达式LEN(DTOC(DATE(),1))的值为(22)。A.4B.6C.8D.1023.如果要对自由表某一子段的数据之建立唯一性保护机制(即表中所有字段的值不重复),以下表述中正确的是(23)。A.对该字段创建主索引B.对该字段创建唯一索引C.对该字段创建候选索引D.对该字段创建普通索引24.VisualFoxPro系统中,对数据库表设置参照完整性过程时,“更新规则”选择了“限制”选项后,则(24)。A.在更新父表的关键字的值时,新的关键字值更新子表中的所有相关记录B.在更新父表的关键字的值时,若子表中有相关记录则禁止更新C.在更新父表的关键字的值时,若子表中有相关记录则允许更新D.在更新父表的关键字的值时,不论子表中是否有相关记录25.设cmd是一个用户创建的命令按钮子类,并设置了Click事件代码。在某表单中基于cmd类创建了一个命令按钮,则在该命令按钮的Click事件代码编辑窗口中,(25)。A.cmd类的Click事件代码可视,但不能被修改B.cmd类的Click事件代码可视,但能被修改C.cmd类的Click事件代码不可视,且运行表单并单击按钮时该Click事件代码不被执行D.cmd类的Click事件代码不可视,且运行表单并单击按钮时该Click事件代码被执行26.若为xs.dbf表添加一个宽度为6的字符型字段mc,以下命令中正确的是(26)。A.ALTERTABLExsADDmcC(6)B.ALTERxs.dbfADDCOLUMNmcC(6)C.ALTERxs.dbfADDmcC(6)D.ALTERTABLExsADDFIELDmcC(6)27.设有一自由表xx.dbf。下列SELECT-SQL命令中,语法错误的是(27)。A.SELECT*FROMxxB.SELECT*FROMxxINTOCURSORtempC.SELECT*FROMxxINTOTABLEtempD.SELECT*FROMxxINTOtemp28.假定表单(frm2)上有一个文本框对象text1和一个命令组按钮对象cg1,命令按钮组cg1包含cd1和cd2两个命令按钮。如果要在cd1命令按钮的某个方法中访问文本框对象text1的Value属性,下列表达始终正确的是(28)。A.THIS.THISFORM.text1.ValueB.THIS.PARENT.PARENT.text.ValueC.PARENT.PARENT.text1.ValueD.THIS.PARENT.text1.Value29.主程序是一个应用系统运行时的起点,是应用系统执行时首先别执行的程序。在“项目管理器”窗口中,可以选择一个文件为主程序。下列各组文件中,所有文件类型均可以被设置为主程序的是(29)。A.菜单、查询、表单和程序(.prg)B.项目、菜单、查询和表单C.数据库、查询、表单和程序(.prg)D.菜单、查询、表单和表30.在开发一个应用程序时,报表设计所占的工作量通常比较大。在下列有关报表的叙述中,错误的是(30)。A.所有利用报表设计器创建的报表,其数据环境中一定包含表或视图。B.在报表设计器窗口中,最多可以有9种不同的报表带区C.在报表中可以插入图片文件D.在打印报表时,可以不打印细节行,只打印总计和分类总计信息二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行)1.若已经为在当前工作区中打开的表设置了主控索引,将记录指针移动到物理顺序的第一条记录,所用的命令为GOTO1,而将记录指针移动到逻辑顺序的首纪录,所使用的命令为gotop。2.若xs.dbf表中含有10个字段且已在当前工作区中打开,则仅浏览表中xh、xm、xb这三个字段的数据,可用:BROWSEFieldxh,xm,xb或SELECTxh,xm,xbFROMxs命令。3.VisualFoxPro系统提供的基类都有最小事件集(Destroy、Error、Init)。从事件的激发顺序看,最小事件集中destroy事件是最后激发的。4.关系的基本运算有两类。一是传统的集合计算,包括并、差、交运算;二是专门的关系运算,包括:选择、投影和联结。5.VisualFoxpro系统中,除了自由表的字段明、表的索引标识名至多只能有10个字组成外,其它名的长度可多达28个字符。6.表达式LEN(TRIM(STR(24)))的计算结果为10;设有一表文件xs.dbf且已在当前工作区中打开,则使用命令COPYTOxs.txtSDF,可以将该表的数据复制到ASCII码文件xs.txt中。7.依次执行一下命令之后,最后一条命令的输出结果是VisualFoxPro6.0。SETEXACTOFFx=”6.0”?IIF(“6.0”=x,”VisualFoxPro”–x,“VisualFoxPro”+“5.0”)8.在VisualFoxPro系统中,事件循环由READEVENTS命令建立、CLEAREVENTS命令停止。当发出CLEAREVENTS命令时,程序将继续执行紧跟在ReadEvent命令后面的那条可执行语句。9.在某教学管理数据库中,有一个成绩表(cj.dbf),表结构及其记录如下表所述。对于下列SELECT-SQL语句,其查询结果含有3条记录。SELECTxh,COUNT(*)AS选课门数FROMcjGROUPBYxh10.在VisualFoxPro系统的命令窗口中,输入并执行下列命令后,VFP主窗口中显示内容为.T.。?3^2+2=MOD(12,7)+LEN(FoxPro)11.使用VisualFoxPro开发某应用程序时,如果某自由表在应用程序运行过程中是只读的,且要求在项目连编后、在软件发布时可以删除该自由表文件,则在连编前必须在项目管理器窗口中将该自由表设置为包含。12.完善下列程序,以实现通过字符串变量操作竖向显示“天长地久”、横向显示“地久天长”的功能。程序清单如下:SETTALKOFFSTORE“天长地久”TOchCLEARn=1DOWHILEn8?__Substr(ch,n,2)n=n+2ENDDO?____Substr(ch,5,4)??SUBSTR(ch,1,4)RETURN13.设某表单(frm1)上有一个文本框(text1)和一个命令按钮(command1)。该表单运行时,单击命令按钮command1,则文本框text1中显示该表单数据环境的Name属性值。由此,命令按钮command1的Click事件程序代码中必须写入的命令为:THISFORM.text1.Value_=THISFORM.DataEvironment.Name14.在连编应用程序之前应设置应用程序的主程序。下列程序是某应用程序的主程序main.prg,请根据命令行中的注释信息完善该程序。CLEARALL_SCREEN.Visible=.f.SETTALKOFF&&关闭显示**************设置VisualFoxPro主窗口属性***********WITH_SCREEN.Caption=’《库存管理系统》’.Picture=’pict\softface.jpg’.WindowState=2.ControlBox=.f.ENDWITH_SCREEN.Visible=.t.SETSYSMENUON____Do____mainmenu.mpr&&执行菜单程序mainmenu.mpr_____Doform______Loginfonm&&运行表单文件:Loginfonm.scxREADEVENTS&&启动事件循环RETURN15.阅读下列程序,并填写运行结果。CLEARx=”OK”STORE“学习”TOyok=’努力’?&x+(y)运行以上程序后,屏幕显示的结果时"努力学习"。16.某表单(fml)上有一个列表框(list1)、一个文本框(text)和一个命令按钮(command1,其Caption属性为“添加”)。请完善命令按钮的Click事件代码以实现以下功能:在文本框text1中输入字符串,如果该字符串在列表框中不存在,就将该字符串插入到列表框中,否则弹出对话框给出信息提示“该字符串已经存在,请重新输入”。运行表单时参考界面如图所示。flag=0FORn=1TOTHISFORM.list1.ListCountIFTHISFORMlist1.List(n)=thisform.Text1.Valueflag=1ENDIFENDFORIFflag=0Thisform.List1.AddListItem(THISFORM.text1.Value)ELSEMESSAGEBOX(“改字符串已经存在,请重新输入”)ENDIF17.某学生管理数据库中有两张表:学生表和成绩表。其表结构如下:并且xs表以xh字段建立xh索引,cj表以xh字段已建立xh索引。xs表和cj表的纪录分别如下表所示:执行如下程序:SELECT0USEcjORDERTAGxhSELECT0USExsSETRELATIONTOxhINTOcjSETORDERTOxhGO2?RECNO(“cj”)则运行结束时显示结果为4。18.某表单的数据环境中包含kc表和cj表,且kc表和cj标之间已建好临时关系。当表单运行时,如下图所示。1)列表框的BoundColumn为1,要求显示kc表的课程代号(kcdh)、课程明(kcm)、和课时数(kss)字段,则列表框的RowSourceType属性值为“6(字段)”,RowSource属性值为kcdh,kcm,kss。2)若在列表框中选中某门课程时,表格中显示该课程的所有学生的成绩,且在文本框text中显示该课程的平均分,则列表框的InteractiveChange事件代码中应含有:SELECTAVG(cj.cj)FROMcj;WHEREcj.kcdh=This.ValueINTOARRAYtTHIS.Parent.text1.Value=t19.某银行存款表(ck.dbf)的表结果如下所示:1)创建ck表的表结构,可以使用下列命令:CREATETABLEck(zhC(15),crrqD,cqN(3,0),jeY)2)为ck表增加下表所示的一条记录,可以使用下列命令:INSERTInTockValues_(‘10789324’,{^2004/03/12},12,10000)20.设某表单form1中有一个表格控件grid1,如果要将该表格控件中所有列表对象的BackColor设置为红色,可以使用下列命令:THISFORM.grid.setall(BackColor,RGB(255,0,0),Column)21.在删除某个数据库文件时,原数据库中包含的表仍然保留对该数据库引用的后链,而且这些表不能被添加到其他的数据库中。如果要使这些表能被添加到其他数据库中,需要从表中删除后链。删除表后链的命令是FreeTable。22.某表单中有一个命令按钮,该命令按钮的Click事件过程代码中含有一条命令可以将该表单中的页框pg1的活动页面改为第三个页面,该命令是THISFORM.pg1.activepage=3。23.学生情况查询表单(form1)上有一个表格对