文档库 最新最全的文档下载
当前位置:文档库 › 2008vfp

2008vfp

2008vfp
2008vfp

《VFP程序设计》期末闭卷考试题08

一、单项选择题(每小题1分,共计30分)

1. Visual FoxPro 6.0是一种。

A) 数据库B) 数据库系统C) 数据库管理系统D) 数据库应用2.Visual FoxPro 6.0支持的数据模型是。

A)层次模型B)网状模型C)关系模型D)树状模型

3.如果在数据表中设计了备注型字段和通用型字段,则系统会自动生成______。

A) 一个扩展名为.FPT的备注文件

B) 一个扩展名为.GEN的通用文件

C) 一个扩展名为.FPT的备注文件和一个扩展名为.GEN的通用文件

. D) 两个扩展名为.FPT的备注文件

4.在Visual FoxPro 6.0中,正确的日期型常量是_______。

A) 2008.07.12 B) "07/12/2008"

C) {^2008-07-12} D) 2008年7月12日

5.下列表达式中,和表达式"B">="A" 运算结果相同的是______。

A) "B">"A".and."B"="A" B) "B">"A".or."B"="A"

C) "B">"A"+"B"="A" D) "B">"A"-"B"="A"

6. 关系数据库中有三种基本:选择、投影和连接。其中,选择操作是从关系中找出满足条件的______。

A) 记录B) 字段C) 关系D) 记录和字段

7. 下列命令中可以正确为内存变量赋值的命令是______。

I. ? X=24 II. X=24

I II. STORE 24 TO X,Y IV. STORE 24,25 TO X,Y

A) I和II B) II和III C) I I、III和IV D) I、II和III 8.APPEND BLANK命令功能的准确描述是________。

A) 数据表尾部追加一条记录B) 数据表首部追加一条记录

C) 数据表尾部追加一条空白记录D) 数据表中的任何位置插入一条空白记录

9. 对于打开的数据表SQ(提示:数据表SQ参看附表1。下同。),要求显示字段“商品名称”中包含字符串“播放器”的记录,可以使用的命令是________。

I. LIST FOR AT("播放器",商品名称) II. LIST FOR AT("播放器",商品名称) >0

III. LIST FOR "播放器"$商品名称=.T. IV. LIST FOR "播放器$商品名称"=.T.

A) I、III B) II、IV C) II、III D) III、IV

10. 对于打开的数据表KC(提示:数据表KC参看附表2。下同。),输入命令LIST FOR 进货日期>={^2008/02/02},可以显示该表中记录号为_______的记录。

A) 4、5、6 B) 5、6、7 C) 6、7、8 D) 7、8

11. 在打开的数据表SQ中,若要将所有商品的单价打9折,应使用的命令是_______。

A) REPL ALL单价WITH *0.9 B) REPL 单价WITH 单价*0.9

C) REPL ALL "单价" WITH 单价*0.9 D) REPL ALL 单价WITH 单价*0.9

12. 在打开的数据表SQ中,要求逻辑删除“商品编码”以字母“A”开头的所有商品的记录,应使用命令。

A) DELETE FOR "A"$商品编码

B) DELETE FOR 商品编码="A"

C) DELETE FOR 商品编码=A

D) DELETE FOR SUBSTR (商品编码,1)=="A"

13. Visual FoxPro提供了多种索引类型。如果索引关键字的值有重复值,则可以选择的索引类型为______。

A) 主索引B) 侯选索引C) 普通索引D) 重复索引

14. 下面有关“索引”概念的描述中,正确的是______。

A) 索引实际上是一种逻辑排序,它不改变表中数据的物理顺序

B) 索引实际上不仅是一种逻辑排序,它还改变表中数据的物理顺序

C) 索引排序需要复制出一个和原表内容相同的有序文件

D) 索引排序操作后产生一个索引文件,该文件和原数据表文件大小相同

15.在数据库设计器中,建立SQ表和KC表之间的一对多联系,可以通过建立以下索引实现_______。(数据表SQ和KC参看附表1和附表2。下同。)

A) SQ表建立主索引或候选索引,KC表建立普通索引

B) SQ表建立主索引,KC表建立普通索引或候选索引

C) SQ表建立普通索引,KC表建立主索引或候选索引

D) SQ表建立普通索引,KC表建立候选索引或普通索引

16.已知在数据库设计器中,通过“商品编码”字段建立了SQ表和KC表之间的永久关系,如果利用“参照完整性生成器”设置相关规则如下图,则。

A) 修改SQ表“商品编码”字段中相关数据项时,KC表中相关记录将自动更新。

B) 修改KC表“商品编码”字段中相关数据项时,SQ表中相关记录将自动更新。

C) 修改SQ表“商品名称”字段中相关数据项时,KC表中相关记录将自动更新。

D) 删除SQ表中的相关记录时,KC表中相关记录也将自动删除。

17.使用SELECT-SQL语句,显示SQ表中“商品编码”、“商品名称”字段的语句是。

A) SELECT * FROM SQ

B) SELECT 商品编码,商品名称FROM SQ

C) SELECT商品编码,商品名称USE SQ

D) SELECT商品编码,商品名称WHERE SQ

18.在SELECT-SQL语句中,查询SQ表中所有单价大于2000元的纪录,使用的语句是。

A) SELECT * FROM SQ

B) SELECT * FROM SQ WHERE 单价>2000

C) SELECT ALL FROM SQ FOR 单价>2000

D) SELECT ALL FROM SQ WHERE 单价>2000

19.使用SELECT-SQL语句,从SQ表中查询所有“商品名称”中含有“数码”字符串的记录,使用的语句是。

A) SELECT * FROM SQ WHERE 商品名称= "%数码"

B) SELECT * FROM SQ WHERE 商品名称LIKE 数码

C) SELECT * FROM SQ WHERE 商品名称LIKE "%数码%"

D) SELECT * FROM SQ WHERE 商品名称LIKE "_数码_"

20.使用SELECT-SQL语句,可以在SQ表中求出所有商品中的最高单价、最低单价和平均单价。

A) SELE MAX(单价) AS A1,MIN(单价) AS A2,A VG(单价) AS A3 FROM SQ

B) SELE MAX(单价) AS A1,MIN(单价) A2,A VERAGE(单价) AS A3 FROM SQ

C) SELE MAX(单价) ,MIN(单价),A VG(单价) AS A1,A2,A3 FROM SQ

D) SELE MAX() TO A1,MIN() TO A2,A VG() TO A3 FROM SQ

21.若要根据数据表SQ和KC查询2008年进货的记录,则可以使用的SELECT-SQL语句是______。

A) Sele * from SQ,KC where SQ.商品编码=KC.商品编码and year(进货日期)=2008

B) Sele * from SQ,KC where SQ.商品编码=KC.商品编码and 进货日期=2008

C) Sele * from SQ,KC where 商品编码=商品编码and year(进货日期)=2008

D) Sele * from SQ,KC where SQ.商品编码=KC.商品编码or 进货日期=2008

22.在下面程序的IF…ELSE..ENDIF结构中,如果从键盘上输入10,则执行后屏幕显示______。

INPUN TO Y

IF Y>=20

? "Y"

ELSE

? Y

ENDIF

A) 10 B) 20 C) Y D) "Y"

23.在下面程序的DO WHILE…ENDDO循环中,循环体将执行______次。

A=10

DO WHILE A>0

A=A-3

ENDDO

A) 3 B) 4 C) 5 D) 10

24.在下面程序的DO WHILE…ENDDO程序循环中,如果从键盘上输入6,则语句B=B+1将被执行______次。

INPUT TO B

DO WHILE .T.

B=B+1

IF B>=10

EXIT

ENDIF

ENDDO

A) 4 B) 5 C) 6 D) 10

25. 如果命令按钮执行后显示如右图所示:

则可以判定其Enabled属性和Visible属性已被设置成______。

A) .T.和.T. B) .T.和.F. C) .F.和.T. D) .F.和.F.

26. 如果文本框执行后显示如右图所示:

则可以判定其______属性的初始值已被设置为:0。

A) Caption B) V alue C) Fontsize D) Source

27. 如果需要改变“标签”控件上显示文本字体的大小,应对其______属性进行设置。

A) Caption B) V alue C) FontName D) FontSize

28. 如果需要在“文本框”控件Text1上显示数据表SQ的“商品编码”字段值,则需要将其______属性设置成:SQ.商品编码。

A) Caption B) V alue C) ControlSource D) Source

29. 如果利用“菜单设计器”定义菜单menu1.mnx结果如下图所示,则可判定:当该菜单运行时,用户选择其中的“添加记录”菜单项,将______。

A) 执行一条Visual FoxPro命令B) 弹出下一级的子菜单

C) 弹出下拉菜单D) 执行事先定义的若干条语句

30. 如果利用“菜单设计器”定义了菜单menu1,并且按Ctrl+W组合键保存为扩展名为.mux 的菜单文件以后,为了运行该菜单程序,应该________。

A) 首先生成菜单程序文件menu1.mpr,然后在命令窗口中输入命令:DO menu1.mpr

B) 首先生成菜单程序文件menu1.mpr,然后在命令窗口中输入命令:DO menu1

C) 直接在命令窗口中输入命令:DO menu1.mpr

D) 直接在命令窗口中输入命令:DO menu1.mux

二、填空题(第1~10小题每空1分,11~20小题每空2分,共30分)

1. 对于数据表SQ中的数据(数据表SQ参看附表1。下同。),如果需要将其“单价”字段增加2个小数位,则该字段的宽度不能少于【1】个字节。

2.输入命令:? NOT "VFP程序设计"= "V" OR .T. AND .F. 以后输出结果为【2】。3.输入命令:? "ABCDEF "= "ABCDEF" OR "ABCDEF "= ="ABCDEF" 以后输出结果为【3】。

4.输入命令:? AT("AC","ABACBABA"-"CBA"+"CA",3),系统输出结果是【4】。

5. 输入命令:? MAX(INT(8+2.12),ABS(-10.12),ROUND(10.125,2),SQRT(100)),系统系统输出结果是【5】。

6.执行下列命令后,变量B的值为【6】。

A=SUBSTR(SPACE(2)+"笔记本电脑",9) -"教程"

B="《"+ALL TRIM(A)+"》"

7. 执行下列命令后,系统输出结果是【7】。

STORE 5 TO X,Y,Z

? X=Y

8. 执行下列命令后,系统输出结果是【8】。

X1={^2008/05/06}

? STR(YEAR(X1))+"年"

9. 如果在隐含目录下已经建立了一个名为Q1.qpr的查询文件,则运行该查询的命令是【9】。10.Visual FoxPro中,命令文件(或称程序文件)的扩展名是【10】。

******************************************************************

11.依次输入下列命令,系统输出结果是【11】。(数据表SQ参看附表1。下同。)USE SQ

GO 5

SKIP

? EOF()

12.依次输入下列命令,系统输出结果是【12】。

USE SQ

LOCATE FOR "1"$商品编码=.F.

CONT

? EOF()

13. 依次输入下列命令,可在数据表SQ中逻辑删除记录号为【13】的记录。

Use SQ

Delete For 商品编码="A"

14. 要求从SQ表和KC表中查询“商品编码”、“商品名称”和“库存数量”的信息。请将下面命令补充完整:(数据表KC参看附表2。下同。)

SELE SQ.商品编码,商品名称,库存数量from SQ,KC 【14】。

15. 要求将select 命令的执行结果保存到一个名为JH2007.DBF的数据表中,请将下面命令补充完整:

SELE * FROM KC WHERE YEAR(进货日期)=2007 【15】

16. 如果键盘输入10,下列程序执行结束时,则S的值应为【16】。

INPUT TO R

S=3.1416*R^2

Return

17. 下列程序执行结束时,如果键盘输入2000,则屏幕上应显示的记录条数为【17】。

CLEAR

USE SQ

INPUT TO DJ

LIST FOR 单价>DJ

Return

18. 下列程序执行结束后,屏幕上应显示的记录号为【18】。

USE SQ

LOCA FOR 商品编码="A" .AND.单价>1000.AND.单价<3000

? RECNO()

19 设程序文件pro20.prg和pro21.prg如下所示,pro20.prg执行结束后,S的值应为【19】。

* Main_program pro20 * Sub_program pro21

S=0 If int(X/20)=X/20

For X=1 to 100 S=S+X

Do pro21 Endif

Endfor Return

Return

20. 如果表单FORM100中设置有2个文本框,命名为Text1和Text2,1个命令按钮,命名为Command1。命令按钮Command1的Click事件代码定义如下:

DO case

case Thisforn.text1.value>100

Thisforn.text2.value=Thisforn.text1.value*1.5

case Thisforn.text1.value>50

Thisforn.text2.value=Thisforn.text1.value*1.0

case Thisforn.text1.value>20

Thisforn.text2.value=Thisforn.text1.value*0.5

otherwise

Thisforn.text2.value=0

Endcase

如果在文本框Text1中输入20,则文本框Text2显示:【20】

三、编写程序:(每小题10分,共计40分)

1. 已知表单FORM10中设置有1个文本框命名为Text1,3个命令按钮,表单执行后结果如下图所示。

(1) 编写“显示”命令按钮的Click事件代码。要求实现:单击“显示”命令按钮时,在文本框Text1中显示当前的日期和时间。

(2) 编写“清除”命令按钮的Click事件代码。要求实现:单击“清除”命令按钮时,清除在文本框Text1中显示的信息。

(3) 编写“退出”命令按钮的Click事件代码。要求实现:单击“退出”命令按钮时,退出该表单。

2. 已知某表单中设置有3个标签,3个文本框,1个命令按钮,所有控件的属性定义完成后,如下左图所示。要求编写“计算”命令按钮的Click事件代码,实现如下功能:

(1) 在文本框Text1和Text2中分别输入不同整数值,当文本框Text2中的输入值大于Text1中的输入值时,则单击“计算”命令按钮,即可计算两输入值之间所有的整数(包括两个输入的整数)之和,相应结果显示在文本框Text3中。

该表单一次正确输入的执行结果示例如下右图所示。

(2) 当文本框Text2输入的值不大于Text1中输入值时,则单击“计算”命令按钮,显示如下所示提示框。

3. 已知表单FORM11中设置有2个标签,2个文本框,2个命令按钮,1个选项按钮组,所有控件的属性定义完成后,如下左图所示。表单执行后结果如下右图所示。

要求编写“计算”命令按钮的Click事件代码,实现如下功能:在文本框Text1中输入半径值,并在“选项按钮组”中选定1个选项后,单击“计算”命令按钮即可在文本框Text2中显示相应计算的结果。

(提示:球表面积计算公式为:4πR2,球体积计算公式为:(4/3)πR3,要求π取值精确到2位小数。)

4. 已知“教师情况查询”表单中设置有3个标签、2个文本框、1个命令按钮。所有控件的属性定义完成,并设置数据源。数据源设置结果如下左图所示。整个表单设计显示如下右图所示。

要求编写“查询”按钮的Click事件代码,以实现如下功能:

该表单执行后,用户可以在文本框text1中输入1个教师姓名,单击“查询”按钮,可在数据表“教师情况表”中进行查询,并可进行判断:

(1) 如果有该教师的记录,则将该记录的相关数据经重新组织后在文本框text2中显示,

该表单一次执行的结果示例如下图所示。(提示:“教师情况表”结构描述如下:姓名(C,20),性别(C,2),年龄(N,2),职称(C,6)。)

(2)如果没有找到该教师的记录,则弹出一个显示“查无此人!”的提示框,如下图所示。

===============================================================

附表1:数据表SQ包含字段:商品编码(C,4)、商品名称(C,10)、单价(N,5,0)。其记录列表如下图所示。

附表2:数据表KC包含字段:商品编码(C,4)、库存数量(N,4,0)、进货日期(D,8)。其记录列表如下图所示。

答案

一、单项选择题(每小题1分,共计30分)

请在每个题号下方的空格中填入各相应小题的选择答案。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

C C A C B A B C C C

D B C A A

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

A B B C A A A B A A B D C D A

二、填空题(第1~10小题每空1分,11~20小题每空2分,共30分)

【1】7【11】.T.

【2】.F.【12】.F.

【3】.T.【13】1、2、5

【4】11【14】WHERE SQ.商品编码=KC.商品编码

【5】10.13【15】INTO TABLE JH2007

【6】《电脑教程》【16】314.16

【7】.T.【17】3

【8】2008年【18】1

【9】DO Q1.QPR【19】300

【10】.PRG【20】0

三、编写程序:(每小题10分,共计40分)

1. 参考答案及评分标准:

(1) THISFORM.TEXT1.V ALUE=DA TETIME() (4分)

(2) THISFORM.TEXT1.V ALUE=" " (3分)

(3) THISFORM.RELEASE (3分)

2.参考答案:

S=0

X=THISFORM.TEXT1.V ALUE

Y=THISFORM.TEXT2.V ALUE

IF X

FOR I=X TO Y

S=S+I

ENDFOR

THISFORM.TEXT3.V ALUE=S

ELSE

=MESSAGEBOX("输入的第2个数不大于第1个数,请重新输入!")

THISFORM.TEXT3.V ALUE=0

ENDIF

评分标准:

(1) 写出IF…ELSE…END 结构语句得3分。

(2) IF…ELSE 之间的命令序列正确得5分。

(3) ELSE…END 之间的命令序列正确得2分。

3. 参考答案:

x=thisform.optiongroup1.value

y=thisform.text1.value

do case

case x=1

thisform.text2.value=2*3.14*y

case x=2

thisform.text2.value=3.14*y^2

case x=3

thisform.text2.value=4*3.14*y^2

case x=4

thisform.text2.value=4/3*3.14*y^3

endcase

评分标准:

(1) 写出DO CASE…CASE…ENDCASE 结构语句得2分。

(2) 每个分支判断正确得2分。(分支判断共计8分。)

4. 参考答案:

X=ALL TRIM(THISFORM.TEXT1.V ALUE)

LOCA FOR 姓名=X

IF .NOT.EOF()

Y=TRIM(姓名)+","+性别+","+STR(年龄,2)+"岁,"+TRIM(职称)+"。"

THISFORM.TEXT2.V ALUE=Y

ELSE

=MESSAGEBOX("查无此人!")

ENDIF

评分标准:(1) 写出IF…ELSE…END 结构语句得3分。

(2) LOCA FOR…语句正确得2分

(3) IF…ELSE 之间的命令序列正确得4分。

(4) ELSE…END 之间的命令序列正确得1分

相关文档