第二部分:计算机高级语言部分(Visual FoxPro语言)
说明:试卷中使用到学生“档案”表和学生“成绩”表结构和内容如下:每道使用此二表的题目均使用下面的原始数据,即不考虑各程序运行的影响。档案.DBF
档案(学号(C,6),姓名(C,6),性别(C,2),出生日期(D)) 记录号 学号 姓名 性别 出生日期
1 080001 张志刚 男 05/21/86 2 080002 刘中华 男 03/05/87 3 080003 徐晓蕾 女 09/01/85 4 080004 裴勇俊 男 07/14/86
成绩.DBF 成绩(学号(C,6),数学(N,3,0),英语(N,3,0),物理(N,3,0),总分(N,4,0)) 记录号 学号 数学 英语 物理 总分 1 080001 70 93 87 2 080002 90 86 64 3 080003 82 82 98 4 080004 70 98 92
四、 填空题(将正确答案填写到答题卡相应的位置上,每题2分,共10分)
41.关系数据库中,专门的关系运算有选择、______和联接三种。 42.数据库表索引类型分为主索引、______、普通索引和唯一索引。 43.表单运行中,左键单击某控件时,触发该控件的_________事件。 44.设X=“北京2008”,函数LEN(X+SPACE(8))的值是____________。 45.退出Visual FoxPro的操作方法之一是在命令窗口键入________命令。
五、 阅读程序题(阅读下列程序,将正确的运行结果填写到答题卡相应的位置上。每小题3分,共24分)
46.CLEAR
X=“计算机高级语言” Y=“语言” Z=AT(Y,X) ?Z
程序运行的结果是__________ 47.CLEAR
A=3
DO WHILE A<=6 B=2
DO WHILE B
程序运行的结果是__________ 51. SET TALK OFF
50.SET TALK OFF X=0 USE 档案 SCAN 1 IF YEAR(出生日期)<=1986.and.性别=“男” X=X+1 ENDIF 49.SET TALK OFF CLEAR USE 成绩 COUNT TO A INSERT BLANK COUNT TO B ?A,B CLOSE ALL 程序运行的结果是__________ 48.STORE 0 TO X,Y DO WHILE X<10 X=X+Y Y=Y+2 ENDDO ?X,Y 程序运行的结果是__________ CLEAR
SELECT 2 USE成绩
A=数学+英语+物理 SKIP
DO WHILE .NOT.EOF() B=数学+英语+物理 IF A
ENDDO ?A CLOSE ALL
程序运行的结果是__________ 52. SET TALK OFF
SELECT B USE 成绩
INDEX ON 学号TO XH1 SELECT A USE 档案
SET RELATION TO 学号 INTO B LOCATE FOR 学号=“080003” IF FOUND()
?学号,姓名,B->英语 ELSE
?“查无此人” ENDIF CLOSE ALL
程序运行的结果是__________
六、 完善程序题(每小题3分,共24)
55.根据数据表“成绩.DBF”求所有学生的总平均成绩。 54.求数据表“成绩.DBF”中各记录“总分” SET TALK OFF 字段的值。 USE 成绩 CLEAR
_______________S1,S2,S3 COUNT TO N
AVE=(S1+S2+S3)/N/3 ?AVE CLOSE ALL
56.由数据表“成绩.DBF”和数据表“档案.DBF”联接生成新表“学生信息.DBF”,此表中应包括学号、姓名、数学、英语、物理五个字段。
SET TALK OFF
SELECT B USE 成绩 SELECT A
2
SET TALK OFF CLEAR USE成绩 __________总分 WITH 数学+英语+物理 LIST CLOSE ALL 53. SET TALK OFF SET HEADING OFF CLEAR USE 档案 LOCATE FOR “刘”$姓名 IF .NOT.EOF() DISPLAY OFF ENDIF CLOSE ALL 程序运行的结果是__________ USE 档案
________________FOR 学号=B.学号 FIELD 学号,姓名,B.数学,B.英语,B.物理 USE 学生信息 LIST CLOSE ALL
57.删除“档案”表中“姓名”为“徐晓蕾”的学生 SET TALK OFF CLEAR USE 档案
INDEX ON 姓名 TO XM ________________徐晓蕾 IF FOUND() DELETE PACK ENDIF CLOSE ALL
59.由键盘输入一个学生的学号及成绩信息并添加到数据表“成绩.DBF”中。
CLEAR
____________AA(4) ACCEPT “学号” TO AA(1) ACCEPT “数学” TO AA(2) ACCEPT “英语” TO AA(3) ACCEPT “物理” TO AA(4) USE 成绩 APPEND BLANK GATHER FROM AA DISP CLOSE ALL
61.设计一个显示时间的表单TIMER.SCX,其执行界面如下图所示。表单中有标签控件Label1和计时器控件Timer1。其中Timer1的Interval属性已设为1000(即1秒)。若要正确显示时间,则应对计时器控件Timer1的Timer事件编程如下:
Thisform.label1._________=time()
七.程序改错题(以下每个小题都有一个错误,请在答题卡相应的位置上写出有错误的语句的行号及改正后的完整语句。每小题3分,共12分)
62.将数据表“成绩.DBF”按数学成绩进行降序排列,生成新表“数学成绩.DBF”,新表中包括有学号、数学。 (1)SET HEAFING OFF (2)SET TALK OFF (3)CLEAR (4)USE 成绩
(5)SORT TO 数学成绩 ON –数学 FIELD 学号,数学 (6)USE数学成绩 (7)LIST (8)CLOSE ALL
错误的行是_____________________ 改 为__________________________
63.根据数据表“档案.DBF”,求出学生的平均年龄。
3
60.计算s=1!+2!+3!+4!+5!。 CLEAR S=0 M=1 FOR N=1 TO 5 M=M*N _________________ ENDFOR ?S 58.根据题目所给数据表查询物理成绩超过90分的学生的学号、姓名和物理成绩信息。 SET TALK OFF CLEAR SELECT 成绩.学号,姓名,物理 FROM 成绩,档案; WHERE________________.AND.物理>90 CLOSE ALL (1)SET TALK OFF (2)SET HEADING OFF (3)USE 档案 (4)N=0 (5) A=0
(6)DO WHILE .NOT.EOF() (7) N=N+1
(8) A=A+YEAR(出生日期) (9) SKIP
(10) (11) (12)
ENDDO
?”平均年龄”+STR(A/N,5,1) CLOSE ALL
错误的行是________________ 改为______________________
64.在程序中创建一个结构与数据表“档案.DBF”完全相同的表,表名为“新档案.DBF”,并添加4条空记录。 (1)CLEAR (2)CREAT;
(3)新档案(学号C(6),姓名C(6),性别C(2),出生日期 D) (4)USE 新档案 (5)N=1
(6)DO WHILE N<=4 (7)APPEND BLANK (8)N=N+1 (9)ENDDO (10)CLOSE ALL
错误的行是___________________ 改为_________________________
65. 数据表“档案.DBF”在表尾增加一条记录并写入学号080005。 (1)SET TALK OFF (2)SET HEADING OFF (3)CLEAR (4) USE 档案 (5)INSERT BLANK (6)REPLACE 学号 WITH “080005” (7)CLOSE ALL 错误的行是_______________________ 改为_____________________________
一、单项选择题 1 A 21 ABC 2 C 3 C 22 ACDE 4 D 5 B 23 AB 6 B 7 B 24 BC 8 A 9 D 25 BCD 10 C 11 D 26 AD 12 B 13 A 27 ABE 14 D 15 A 28 ABDE 16 B 17 D 29 BCDE 18 D 19 C 30 BDE 20 A 二、多项选择题
三、判断题 31 √ 32 × 33 × 34 √ 35 √ 36 √ 37 √ 38 × 39 × 40 × 四、填空题 41、投影;42、候选索引;43、Click;44、16;45、Quit; 五 、阅读程序题
46、11;47、3 5; 48、12 8 ;49、4 5;50、2;51、262;52、080003 徐晓蕾 82;53、080002 刘中华 男 03/05/87 六、完善程序题
54、replace all;55、sum 数学,英语,物理 to ;56、join with B to 学生信息;57、find;58、成绩.学号=档案.学号;59、dimension 60、s=s+m;61、caption
4
七、程序改错题 62、错误的行是:(5)
改为:sort to 数学成绩 on 数学/d fields 学号,数学 63、错误的行是:(8)
改为:A=A+Year(Date())-Year(出生日期) 64、错误的行是:(2)
改为:Create Table 65、错误的行是:(5)
改为:Append Blank
5