电子科技大学网络教育考卷(A 卷)
(20 年至20 学年度第 学期)
考试时间 年 月 日(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("成都市",2,2) ②SUBSTR("成都市",2,1)
③SUBSTR("成都市",3,1) ④SUBSTR("成都市",3,2)
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
*显示最前面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分)1、* a.prg
s=0
FOR i=1 TO 5
s=s+i
ENDFOR
?"s=",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
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