考试时间 年 月 日(120分钟) 课程 数据库程序设计基础 教师签名_____
大题号 一 二 三 四 五 六 七 八 九 十 合 计 得 分
一、单项选择题(每小题 1 分,共 30 分)
1、统计女生人数并将结果存放于变量 X中的命令是_________①_________ ①COUNT FOR .NOT. 性别=\"男\" TO X ②COUNT FOR ( 性别=\"女\")=.T. TO X ③SUM FOR ( 性别<>\"男\")=.T. TO X ④SUM FOR 性别=\"女\" TO X
2、在已打开的表中,要永久删除当前记录位置开始的 10 条记录,可用_______①_____ ①先执行 DELETE NEXT 10 命令,后用 PACK 命令 ②先执行 DELETE RECORD 10 命令,后用 PACK 命令
③先执行 DELETE FOR RECORD> 10 命令,后用 PACK命令 ④ZAP NEXT 10
3、按数值型字段“总分”进行索引,使其按降序排列的命令是_________①_________ ①INDEX ON -总分 TO WP ②INDEX ON 总分/A TO WP ③INDEX ON 总分 TO WP ④INDEX ON 总分/D TO WP
4、下列操作后,不改变表记录指针的命令是_________①_________ ①RECALL ②LIST ③SUM ④REPL ALL
5、按照数据库的数据模型分类,VFP 属于_________②_________ ①层次型 ②关系型 ③网状型 ④混合型
6、函数 LEN(SPACE(5)-SPACE(1))的返回值是_________③_________ ①错误信息 ②17 ③6 ④4
7、某表文件中有日期型字段“出生日期” ,设 N='01/01/80',下列命令正确的是_________③_________
①LOCATE FOR 出生日期='01/01/80'
②LOCATE FOR 出生日期=&N ③LOCATE FOR DTOC(出生日期)=N ④LOCATE FOR DTOC(出生日期)=CTOD(N)
8、 从表customer中提取所有记录生成查询, 并将查询结果存放于表MyCursor的SQL命令为_________②_________
①SELECT * FROM customer INTO CURSOR MyCursor ②SELECT * FROM customer INTO TABLE MyCursor ③SELECT ALL FROM customer INTO TABLE MyCursor
④CREATE SQL VIEWMyCursor ASSELECT * FROM customer 9、下列概念中,正确的是_________①_________ ①在一个工作区中只能打开一个表文件,打开新的表文件后,原来所打开的表文件就自动关
闭
②一个表文件可以在不同的工作区同时打开 ③一个工作区中可以同时打开多个表文件
④一个表文件可以在不同的工作区同时打开,且一个工作区中可以同时打开多个表 10、将 2009年国庆节的日期送入内存变量 ND 的方法是_________②_________ ①ND=DTOC(\"10/01/09\") ②ND=CTOD(\"10/01/09\") ③STORE DATE()TO ND ④STORE 10/01/09 TO ND
11、 表文件 DD.DBF 有 100 条记录, 当前记录号是 10, 执行 DISPLAY ALL 命令后, 记录指针向的记录号是_________ ④_________
①100 ②10 ③1 ④101
12、执行命令:ACCEPT \"请输入出生日期:\" TO MDATE 时,如果通过键盘输入 CTOD(\"01/01/69\"),则 MDATE 的 值应当是_________①_________ ①CTOD(\"01/01/69\") ②\"01/01/69\"
③01/01/69 ④拒绝接受,MDATE 不赋值
13、在表结构中,逻辑型、日期型、备注型字段的宽度分别固定为_________④_________ ①3,8,4 ②1,6,4 ③1,8,任意 ④1,8,4
14、表与相应索引文件已经打开,内存变量 XM=\"李春\",执行时会产生逻辑错误的命令是_________④_________ ①LOCATE FOR 姓名=XM ②FIND &XM ③SEEK XM
④LOCATE FOR 姓名=&XM
15、以下命令中正确的是_________①_________ ①STORE 8 TO X,Y ②STORE 8,9 TO X,Y ③X=8,Y=9 ④X=Y=8
16、在非嵌套程序结构中,可以使用 LOOP 和 EXIT 语句的基本程序结构是_________②_________
①TEXT--ENDTEXT ②DO WHILE--ENDDO ③IF--ENDIF ④DO CASE--ENDCASE
17、下面可使程序单步执行的命令是________③______ ①SET STEP ON ②SET ESCAPE ON ③SET DEBUG ON ④SET STEP OFF
18、如果想从字符串\"成都市\"中取出汉字\"都\",应该用函数_________④_________ ①SUBSTR(\"成都市\②SUBSTR(\"成都市\ ③SUBSTR(\"成都市\④SUBSTR(\"成都市\
19、若使用 REPLACE 命令时,其范围子句为 ALL或 REST,则执行该命令后,记录指针指向_________④ _________
①首记录 ②末记录 ③首记录的前面 ④末记录的后面
20、若要恢复用 DELETE 命令删除的若干记录,应该_________①_________ ①用 RECALL命令 ②立即按[ESC]键 ③用 RELEASE 命令 ④用 FOUND 命令
21、执行命令 STORE CTOD('03/09/94') TO A 后,变量 A 的类型为_________①_______ ①日期型 ②数值型 ③备注型 ④字符型
22、在 Visual FoxPro 中,数据环境指定义表单或表单集时使用的______③_______ ①数据 ②数据库 ③数据源 ④数据项
23、\"电子科技大学\"这六个汉字作为字符串常量,在VFP 中,可表示为_______④______ ①{电子科技大学} ②(电子科技大学) ③电子科技大学 ④\"电子科技大学\"
24、在 VFP中,INPUT,APPEND,WAIT 三条命令中可以接受字符的命令是_________③_________
①只有 ACCEPT ②只有 ACCEPT 和 WAIT ③都可以 ④只有 WAIT
25、下列 VFP 表达式运算结果为日期型的是_________③_________ ①04/05/97-2
②CTOD('04/05/97') - DATE( ) ③CTOD('04/05/97')-3 ④DATE( )\"04/05/97\"
26、职工工资数据库文件按基本工资字段升序索引后,再执行 GO TOP 命令,此时当前记录号是_________② _________
①1 ②基本工资最少的记录号 ③0 ④基本工资最多的记录号
27、 当前数据库文件有20条记录, 当前记录号是10。 执行命令LIST REST以后, 当前记录号是_________③_________ ①10 ②20 ③21 ④1 28、对学生成绩数据库文件按总分/N/6.2 降序、姓名/C/8 升序索引。应当使用命令_________④_________
①INDEX TO ABC ON 总分,姓名 ②INDEX TO ABC ON -总分,姓名
③INDEX TO ABC ON STR(-总分,5,1)+姓名 ④INDEX TO ABC ON STR(1000-总分) +姓名 29、把当前数据库文件中\"性别\"字段的值全部清除,但仍保留该字段,应当使用命令_________③_________
①MODIFY STRUCTURE ②DELETE ③REPLACE ④ZAP
30、命令 SELECT 0 的功能是_________①_________ ①选择区号最小的空闲工作区 ②选择区号最大的空闲工作区
③选择当前工作区的区号加 1的工作区 ④随机选择一个工作区的区号
二、判断题(正确的划√,错误的划×,每小题1 分,共 10 分) ( × )1、对象具有属性,而属性只能在设计阶段设置。
( × )2、一条命令可分几行写,在行结束处用“: ”表示一行未完,转入下一行。 (√)3、建立自由表分两步:定义表结构和输入数据。
(√)4、表间的关系分三种:一对一关系、一对多关系和多对多关系。 (√)5、若要使用多个表,就要使用多个工作区。
(√)6、在应用程序中可以通过使用该工作区的表的别名来标识工作区。 (√)7、报表包括两个基本组成部分:数据源和布局。
(√)8、视图与查询相类似的地方是:可以用来从一个或多个相关联的表中提取有用信息。 (√)9、视图与表相类似的地方是:可以用来更新其中的信息,并将更新结果永久保存在磁盘上。
(√)10、一个视图在使用时,将作为临时表在自己的工作区中打开。 三、简答题(每小题5 分,共10 分) 1、FOR 条件和 WHILE条件有何区别?
答:当 FOR和 WHILE在同一条命令语句中使用时,系统规定 WHILE 子句优先。这两种子句的差别是:FOR子句能
在整个数据表文件中筛选出符合条件的记录,而 WHILE 子句从当前记录开始顺序查找出满足条件的记录,一旦发
现下面有一条记录不满足条件,就终止寻找。
2、GO TOP和 GO 1 在什么情况下其作用相同?在什么情况下不同?
答:(1)当表文件中有记录且没有主控索引时,GO TOP 和 GO 1 是等价的。 (2)GO TOP和 GO 1 作用不同时的情况如下:
①如果当前文件没有记录,执行 GO TOP,系统不会出错,而执行 GO 1 系统将报告记录越界。这时 RECNO()的值
仍为 1,而 RECCOUNT()=0。
②如果当前数据表文件有记录且有主控索引, 执行 GO TOP, 系统将当前记录指针定位在主控索引的第一条记录上;
而执行 GO 1系统将当前记录指针绝对定位在数据表文件的第一条记录上。
四、程序填空题(请在横线上填入合适的语句,将程序补充完整。每小题5 分,共15 分) 1、SET TALK OFF
ACCEPT \"输入表名:\" TO KM USE &KM
3 *显示最前面5 条记录
________________________ DISP NEXT 5_________________________ WAIT
GO BOTTOM
*显示最后 4条记录 SKIP –3
DISP NEXT 4 USE 2、有 12 个结构完全相同的表WY01,WY02,„„.WY11,WY12,下列程序完成的功能是:顺序打开每一个表并浏览之. SET TALK OFF G=1
DO WHILE G<13 DO CASE CASE G<10
GW='WY0'+STR(G,1) CASE G>=10
GW='WY'+ STR(G,2)
ENDCASE USE &GW BROW
_______________________G=G+1_________________________ USE ENDDO RETU
3、对 TEACHER.DBF 中的每条记录的 SALARY 字段作如下变化:若 SALARY>=3000,则上浮 3%,若 SALARY<3000,则 上浮 6%
USE TEACHER SCAN
IF salary >= 3000
REPLACE salary WITH salary * 1.03 ELSE
_______________ REPLACE salary WITH salary * 1.06_________________ ENDIF ENDSCAN USE
五、程序分析题(请将程序运行后的输出结果写在横线上。每小题 5 分,共 15 分)a.prg s=0
FOR i=1 TO 5 s=s+i ENDFOR ?\"s=\
输出结果:__________________s=15__________________ 2、CLEAR
STORE 2 TO I,C,T DO WHILE I<=4 DO PR
?\"F(\"+STR(I,1)+\")=\"+STR(C,2) I=I+1 ENDDO
?\"T=\"+STR(T,2) RETURN
PROCEDURE PR C=C*2 T=T+C RETURN
输出结果:________________________________________________ 答:F(2)=4 F(3)=8 F(4)=16
1、* T=30 3、i=1
DO WHILE i<10 i=i+2 ENDDO ?i
输出结果:________________________11________________________ 六、编程题(每小题10 分,共 20 分) 1、编程在屏幕上显示“九九”乘法口诀表。 SET TALK OFF CLEAR
FOR I=1 TO 9 FOR J=1 TO I K=I*J
S=STR(K,2)
??STR(I,1)+\"X\"+STR(J,1)+\"=\"+S+\" \" ENDFOR ?
ENDFOR
SET TALK ON
2、逐条显示体检表中性别为“男”的所有记录。 set talk off clear
use 体检表
do while .not. eof() if 性别=\"男\"
?\"*********************************\" display endif skip enddo use
set talk on return
因篇幅问题不能全部显示,请点此查看更多更全内容