Visual FoxPro程序设计》模拟题二

一、选择题( (1)(25) 每题2分,共50)

下列各题A) B) C) D) 四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)用树型结构表示实体之间联系的模型是

A) 关系模型         B) 网络模型           C) 层次模型          D) 以上三个都是

(2)   在创建数据库表结构时,给该表指定了主索引,这属于数据完整性中的

A) 参照完整性                                    B) 实体完整性

C) 域完整性                                     D) 用户定义完整性

(3)   在创建数据库表结构时,为该表中一些字段建立普通索引,其目的是

A) 改变表中记录的物理顺序              B) 为了对表进行实体完整性的约束

C) 加快数据库表的更新速度              D) 加快数据库表的查询速度

(4)   数据库系统中对数据库进行管理的核心软件是

A) DBMS                     B) DB                     C) OS                D) DBS

(5)   设有两个数据库表,父表和子表之间是一对多的联系,为控制子表和父表的关联,可以设置“参照完整性规则”,为此要求这两个表

A) 在父表连接字段上建立普通索引,在子表连续字段上建立主索引

B) 在父表连接字段上建立主索引,在子表连续字段上建立普通索引

C) 在父表连接字段上不需要建立任何索引,在子表连接字段上建立普通索引

D) 在父表和子表的连接字段上都要建立主索引

(6)在指定字段或表达式中不允许出现重复值的索引是

A) 惟一索引                                     B) 惟一索引和候选索引

C) 惟一索引主索引                            D) 主索引候选索引

(7)   Visual FoxPro中,以下关于删除记录的描述中,正确的是

A) SQLDELETE命令在删除数据库表中的记录之前,不需要用USE命令打开表

B) SQLDELETE命令和传统Visual FoxProDELETE命令在删除数据库表中的记录之前,都需要用USE命令打开表

C) SQLDELETE命令可以物理的删除数据库表中的记录,而传统Visual FoxProDELETE命令只能逻辑删除数据库表中的记录

D) 传统Visual FoxProDELETE命令在删除数据库表中的记录之前不需要用USE命令打开表

(8)   Visual FoxPro中,如果希望跳出SCANENDSCAN循环体、执行ENDSCAN后面的语句,应使用

A) LOOP语句                                          B) EXIT语句

C) BREAK语句                                   D) RETURN语句

(9)   打开数据库abc的正确命令是

A) OPEN DATABASE abc                     B) USE abc

C) USE DATABASE abc                            D) OPEN abc

(10) Visual FoxPro中,下列关于表的叙述正确的是

A) 在数据库表和自由表中,都能给字段定义有效性规则和默认值

B) 在自由表中,能给表中的字段定义有效性规则和默认值

C) 在数据库表中,能给表中的字段定义有效性规则和默认值

D) 在数据库表和自由表中,都不能给字段定义有效性规则和默认值

(11) Visual FoxPro的“参照完整性”中“插入规则“包括的选择是

A) 级联和忽略       B) 级联和删除       C) 级联和限制      D) 限制和忽略

(12) Visual FoxPro中,关于查询和视图的正确描述是

A) 查询是一个预先定义好的SQL SELECT语句文件

B) 视图是一个预先定义好的SQL SELECT语句文件

C) 查询和视图都是同一种文件,只是名称不同

D) 查询和视图都是一个存储数据的表

(13) Visual FoxPro中,以下关于视图描述中错误的是

A) 通过视图可以对表进行查询           B) 通过视图可以对表进行更新

C) 视图是一个虚表                            D) 视图就是一种查询

(14) 使用SQL语句将学生表S中年龄(AGE)大于30岁的记录删除,正确的命令是

A) DELETE FOR AGE > 30                     B) DELETE FROM S  WHERE AGE > 30

C) DELETE  S  FOR  AGE > 30              D) DELETE S WHERE AGE > 30

(15) Visual FoxPro中,使用LOCATE FOR <expL>命令按条件查找记录,当查找到满足条件的第一条记录后,如果还需要查找下一条满足条件的记录,应使用

A) 再次使用LOCATE FOR <expL>命令   B) SKIP命令

C) CONTINUE 命令                                  D) GO命令

(16) Visual FoxPro中,删除数据库表SSQL命令是

A) DROP TABLE S                            B) DELETE TABLE S

C) DELETE TABLE S.DBF                     D) ERASE TABLE S

(17) 下列表达式中,表达式返回结果为的是.F.的是

A) AT(A,BCD)                    B) [信息]$“管理信息系统”

C) ISNULL.NULL.                 D) SUBSTR(“计算机技术”,3,2)

(18) 使用SQL语句向学生表S(SNO,SN,AGE,SEX)中添加一条新记录,字段学号(SNO)、姓名(SN)、性别(SEX)、年龄(AGE)的值分别为0401、王芳、女、18,正确命令是

A) APPEND INTO S (SNO,SN,SEX,AGE)VALUES(0401,‘王芳’,‘女’,18)

B) APPEND S VALUES(0401,‘王芳’,18,‘女’)

C) INSERT INTO S(SNO,SN,SEX,AGE)VALUES(0401,‘王芳’,‘女’,18)

D) INSERT S VALUES(0401,‘王芳’,18,‘女’)

(19) 假设某个表单中有一个命令按钮cmdClose,为了实现当用户单击此按钮时能够关闭该表单的功能,应在该按钮的Click事件中写入语句

A) ThisForm.Close                             B) ThisForm.Erase

C) ThisForm.Release                  D) ThisForm.Return

(20) SQLSELECT查询结果中,消除重复记录的方法是

A) 通过指定主关系键                         B) 通过指定惟一索引

C) 使用DISTINCT子句                    D) 使用HAVING子句

(21)Visual FoxPro中,如果在表之间的联系中设置了参照完整性规则,并在删除规则中选择了“限制”,则当删除父表中的记录时,系统反应是

A) 不做参照完整性检查

B) 不准删除父表中的记录

C) 自动删除子表中所有相关的记录

D) 若子表中有相关记录,则禁止删除父表中记录

(22))题使用如下三个数据库表:

学生表:S(学号,姓名,性别,出生日期,院系)

课程表:C(课程号,课程名,学时)

选课成绩表:SC(学号,课程号,成绩)

在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,其他均为字符型。

(22) SQL命令查询选修的每门课程的成绩都高于或等于85分的学生的学号和姓名,正确的命令是

A) SELECT 学号,姓名 FROM S WHERE NOT EXISTS;

(SELECT * FROM SC WHERE SC.学号 = S.学号 AND成绩 < 85)

B) SELECT 学号,姓名 FROM S WHERE NOT EXISTS;

(SELECT * FROM SC WHERE SC.学号= S.学号 AND >= 85)

C) SELECT 学号,姓名 FROM S,SC

WHERE S.学号= SC.学号 AND成绩 >= 85

D) SELECT 学号,姓名 FROM S,SC

WHERE S.学号 = SC.学号 AND ALL成绩 >= 85

23)执行下列一组命令之后,选择"职工"表所在工作区的错误命令是

     CLOSE ALL

     USE 仓库 IN 0

     USE 职工 IN 0

     ASELECT 职工   BSELECT 0

     CSELECT 2       DSELECT B

24)如果在命令窗口输入并执行命令:“LIST 名称”后在主窗口中显示:

记录号  名称

     1  电视机

     2  计算机

     3  电话线

     4  电冰箱

     5  电线

假定名称字段为字符型、宽度为6,那么下面程序段的输出结果是

GO 2

SCAN  NEXT 4 FOR LEFT(名称,2=""

   IF RIGHT(名称,2="线"

      LOOP

   ENDIF

   ?? 名称

ENDSCAN

A)电话线                B)电冰箱

C)电冰箱电线              D)电视机电冰箱

25)有关连编应用程序,下面的描述正确的是

A)项目连编以后应将主文件视做只读文件

B)一个项目中可以有多个主文件

C)数据库文件可以被指定为主文件

D)在项目管理器中文件名左侧带有符号?的文件在项目连编以后是只读文件

 

二、填空题( 每空2分,共24)

       请将每一个空的正确答案写在答题卡【1】~【12】序号的横线上,答在试卷上不得分。

注意:以命令关键字填空的必须拼写完整。

 (2) 在面向对象方法中,类的实例称为 1 

 (4) 在关系数据库中,把数据表示成二维表,每一个二维表称为  2

 (6) 在奥运会游泳比赛中,一个游泳运动员可以参加多项比赛,一个游泳比赛项目可以有多个运动员参加,游泳运动员与游泳比赛项目两个实体之间的联系是 3 联系。

(7)   执行命令A=2005/4/2之后,内存变量A的数据类型是 4 型。

(8)   如下程序显示的结果是 5 

s=1

i=0

do while i<8

    s=s+i

    i=i+2

enddo

?s

(9)   Visual FoxPro 的中,可以在表设计器中为字段设置默认值的表是 6 表。

(10) Visual FoxPro 中数据库文件的扩展名(后缀)是 7

(11)(13)题使用如下三个数据库表:

金牌榜.DBF         国家代码C(3),  金牌数I,   银牌数I,  铜牌数I

获奖牌情况.DBF     国家代码C(3),  运动员名称C(20),  项目名称C(30), 名次I

国家.DBF           国家代码 C(3),  国家名称C(20)

“金牌榜”表中一个国家一条记录:“获奖牌情况”表中每个项目中的各个名次都有一条记录,名次只取前3名,例如:

国家代码       运动员名称           项目名称                                   名次

001  刘翔       男子110米栏    1

001  李小鹏       男子双杠       3

002  非尔普斯       游泳男子200米自由泳 3

002  非尔普斯       游泳男子400米个人混合泳    1

001  郭晶晶       女子三米板跳板    1

001  李婷/孙甜甜    网球女子双打       1

(11) 为表“金牌榜”增加一个字段“奖牌总数”,同时为该字段设置有效性规则:奖牌总数>=0,应使用SQL语句

 ALTER TABLE金牌榜 8   奖牌总数I 9 奖牌总数>=0

(12) 使用“获奖牌情况”和“国家”两个表查询“中国”所获金牌(名次为1)的数量,应使用SQL语句

SELECT COUNT(*) FROM 国家 INNER JOIN  获奖牌情况;

 10  国家.国家代码 = 获奖牌情况.国家代码;

WHERE 国家.国家名称 = “中国” AND 名次 = 1

(13) 将金牌榜.DBF中新增加的字段奖牌总数设置为金牌数、银牌数、铜牌数三项的和,应使用SQL语句

     11 金牌榜  12  奖牌总数 = 金牌总数+银牌数+铜牌数

三、程序设计分析(共26分)

1、主程序:TEST.PRG

       SET TALK OFF

       CLOSE ALL

       CLEAR ALL

       mX="Visual FoxPro"

       mY="二级"

       DO SUB1 WITH mX

        ?mY+mX

        RETURN

        子程序:SUB1.PRG

        PROCEDURE SUB1

        PARAMETERS mX1

        LOCAL mX

        mX=" Visual FoxPro DBMS 考试"

        mY="计算机等级"+mY

        RETURN

  分析执行命令DO TEST后,屏幕的显示结果。

 

2、设计一程序输出一下内容(12

运行XY.PRG程序后,将在屏幕上显示如下乘法表:

1) 1

2) 2 4

3) 3 6 9

4) 4 8 12 16

5) 5 10 15 20 25

6) 6 12 18 24 30 36

7) 7 14 21 28 35 42 49

8) 8 16 24 32 40 48 56 64

9) 9 18 27 36 45 54 63 72 81