二级VISUAL FOXPRO笔试-238
(总分100, 做题时间90分钟)
一、选择题
下列各题A、B、C、D四个选项中,只有一个选项是正确的。
1. 
在窗体上画一个列表框和一个文本框,然后编写List1的双击事件过程,过程代码如下:
   a=Thisform.List1.Value
   ? a+ThisForm.Text1.Value
   程序运行后,在文本框中输入“789”,如图1所示,然后双击列表框中的“456”,则输出结果为______。
   

A  B  C  D  
2. 
在E-R中,实体与其属性之间用______连接。

A 箭头
B 无向边
C 虚线
D 有向边
3. 
在Visual FoxPro中,假设有一个表RSDA,它的结构如表3所示。  
表3  RSDA表的结构  
                                                                                                                                                                                                                                                                               
字段名
字段类型
字段宽度与小数位
备注
XM
C
8
姓名
NL
N
3
年龄
CSRQ
D
8
出生日期
JBGZ
N
7,2
基本工资
JJ
N
7,2
奖金
   现在要为独立复合索引文件RS.CDX建立一个名为GZ的索引标识符,该索引标识符按应发工资(基本工资和奖金的和)升序排列,以下正确的命令是______。

A INDEX ON JBGZ+JJ TO GZ
B INDEX ON JBGZ+JJ TAG GZ OF RS
C INDEX ON STR(JBGZ,7,2)+STR(JJ,7,2)TAG GZ OF RS
D INDEX ON STR(JBGZ,7,2)+STR(JJ,7,2)TAG GZ
19~25题所用到的数据如表1和表2所示。  
表1 BRDA.dbf  
                                                                                                                                                                                                                                                                                                                                                                                                                   
病历号
姓名
性别
年龄
00000001
丁国维
22
00000002
吴春云
53
00000003
郭勤
63
00000004
戴燕
34
00000005
施添力
25
00000006
江素萍
50
00000007
樊达军
24
00000008
张小丽
21
   
表2 MXB.dbf  
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
病历号
药品编号
单价/元
数量
日期
00000001
0001
15.00
4
08/08/1998
00000002
0001
15.00
6
08/06/1999
00000003
0001
15.00
3
07/23/1997
00000004
0001
15.00
4
08/08/1998
00000005
0001
15.00
5
08/06/1998
00000004
0001
15.00
1
07/23/1996
00000007
0001
15.00
8
08/06/2000
00000008
0001
15.00
2
07/23/2002
00000001
0002
30.00
4
08/08/1998
00000002
0003
28.00
6
08/06/1999
00000003
0002
30.00
3
07/23/1997
00000001
0003
28.00
4
08/08/1998
00000005
0002
30.00
5
08/06/1998
00000006
0003
28.00
1
07/23/1996
00000004
0002
30.00
8
08/06/2000
00000008
0003
28.00
2
07/23/2002
00000004
0003
28.00
2
07/23/2002


4. 
语句如下:
   SELECT BRDA.姓名,COUNT(*);
     FROM BRDA INNER JOIN MXB;
     ON BRDA.病历号=MXB.病历号;
     GROUP BY BRDA.病历号;
     ORDER BY 2 DESC
   该语句执行后,结果中的每一条记录的值为______。
A 戴燕4
B 戴燕2
C 丁国维2
D 丁国维3
5. 
要列出所有病人病历号、姓名和所用的药品总价,下列的语句正确的是______。
SELECT 病历号,姓名,药品总价;
   FROM BRDA,MXB;
   GROUP BY 病历号
SELECT BRDA.病历号,BRDA.姓名,SUM(MXB.数量 * MXB.单价)AS药品总价;
   FROM BRDA INNER JOIN MXB;
   WHERE BRDA.病历号=MXB.病历号;
   GROUP BY BRDA.病历号
SELECT BRDA.病历号,BRDA.姓名,SUM(MXB.数量 * MXB.单价)AS 药品总价;
   FROM BRDA INNER JOIN MXB;
   ON BRDA.病历号=MXB.病历号;
   GROUP BY BRDA.病历号
SELECT BRDA.病历号,BRDA.姓名,SUM(MXB.数量 * MXB.单价)AS 药品总价;
   FROM BRDA INNER JOIN MXB;
   ON BRDA.病历号=MXB.病历号;
   ORDER BY BRDA.病历号
6. 
要给BRDA表的性别字段设置一个字段级有效性规则,规则为该字段只能输入“男”或“女”,如果在输入时违反了该规则,将给出提示信息“性别必须是男或女。”正确的语句是______。
CREATE TABLE BRDA 性别 CHECK 性别=男 OR 性别=女;
   ERROR"性别必须是男或女。"
ALTER TABLE BRDA ALTER 性别;
   ADD CHECK 性别="男"OR 性别="女"ERROR"性别必须是男或女。"
ALTER TABLE BRDA ALTER 性别;
   SET CHECK 性别="男"OR 性别="女"ERROR"性别必须是男或女。"
ALTER TABLE BRDA ALTER 性别;
   SET CHECK 性别=男 OR 性别=女 ERROR"性别必须是男或女。"
7. 
把MXB中药品编号为“0001”的药品的单价提高15%,其他药品的单价提高10%,以下正确的语句为______。
REPLACE 单价 WITH 单价*(1+0.15);
   WHILE 药品编号="0001",单价 WITH 单价*(1+0.10)FOR MXB
UPDATE MXB 单价 WITH 单价*(1+0.15);
   FOR 药品编号="0001",单价 WITH 单价*(1+0.10)
C UPDATE MXB SET 单价=IIF(药品编号子="0001",单价*(1+0.15),单价*(1+0.10))
UPDATE MXB SET 单价 WITH IIF(药品编号子="0001",单价*(1+0.15);
   单价*(1+0.10))
8. 
要给BRDA表增加一个婚否字段(逻辑型),下面正确的是______。
A CREATE TABLE BRDA ADD COLUMN 婚否 L
B ALTER TABLE BRDA ALTER COLUMN 婚否 L
C ALTER TABLE BRDA ADD COLUMN 婚否 L
D ALTER TABLE BRDA ADD COLUMN "婚否"L
9. 
要从MXB中删除1998年以前的记录,以下一定正确的是______。
    B DELETE ALL FOR 日期<={^1997/12/31}
    C DELETE FROM MXB WHERE 日期<={^1997/12/31}
    D DELETE ALL FROM MXB WHERE日期<={^1997/12/31}
  • D) DELETE ALL FROM MXB FOR日期<={^1997/12/31
  • 10. 
    根据MXB创建一个名为YP的视图,该视图包含每种药品的药品号和销售总价,下列正确的语句是______。
    SELECT 药品编号,SUM(数量*单价) AS 销售总价;
       FROM MXB INTO VIEW YP
    CREATE VIEW YP AS;
       SELECT 药品编号,SUM(数量*单价) AS 销售总价;
       FROM MXB;
       GROUP BY 药品编号
    CREATE VIEW YP AS;
       SELECT 药品编号,SUM(数量*单价) AS 销售总价;
       FROM MXB;
       ORDER BY 药品编号
    CREATE YP AS VIEW;
       SELECT 药品编号,SUM(数量*单价) AS 销售总价;
       FROM MXB;
       ORDER BY 药品编号
    11. 
    “职工”表文件,含有“编号”、“姓名”、“性别”、“出生日期”、“职务”、“退休”、“基本工资”和“简历”共8个字段。该表文件已经打开,现要求显示女职工平均工资的错误操作是______。

    AVERAGE 基本工资 FOR 性别="女"TO x
       ? x
    AVERAGE FIELDS 基本工资 FOR 性别="女"TO x
       ? x
    COUNT FOR 性别="女"TO c
       SUM FOR 性别="女"基本工资 TO x
       ? x/c
    AVERAGE FOR 性别="女"TO x
       ? x
    12. 
    同一关系中的任何两元组______。

    A 可完全相同
    B 不能完全相同
    C 关键字值可相同
    D 次序不能交换
    13. 
    在编辑框中,关于文本选定的几个属性的说法不正确的是______。

    A 如果把SelLength属性值设置成小于0,将产生一个错误
    B 如果SelStart的设置值大于文本总字符数,系统将提示错误
    C 如果改变了SelStart属性的值,系统将自动把SelLength属性值设置为0
    D 如果将SelText属性设置成一个新值且SelLength值为0,那么新值将插入到插入点处
    14. 
    在Visual FoxPro中,逻辑删除库文件中所有记录的正确操作是______。

    A DELETE
    B ZAP
    C PACK
    D DELETE ALL
    15. 
    在数据库管理阶段,数据库系统必须提供必要的保护措施,这些措施不包括______。

    A 数据的并发访问控制
    B 数据的安全性控制
    C 数据的冗余控制
    D 数据的完整性控制
    16. 
    希尔排序在最坏的情况下的比较次数是______。

    n1.5
    n2
    C n(n-1)/2
    log2n
    17. 
    在设计报表的时候,希望每个字段一列,字段名在页面上方,字段与其数据在同一列,每行一条记录,应采用的报表布局为______。

    A 列报表
    B 行报表
    C 一对多报表
    D 多栏报表
    18. 
    下列不是软件过程的输出信息的是______。

    A 计算机程序
    B 文档
    C 数据
    D 数据库
    19. 
    一辆汽车由多个零部件组成,且相同的零部件可适用于不同型号的汽车,则汽车实体集与零部件实体集之间的联系是______。

    A 1:1
    B 1:M
    C M:1
    D M:N
    20. 
    在项目管理器中,下列的______文件不包含在文档选项卡中。

    A 表单
    B 报表
    C 程序
    D 标签
    21. 
    在Visual FoxPro中,关于表单的数据环境的说法不正确的是______。

    A 打开或运行表单时,在数据环境中的表和视图将自动打开
    B 关闭或释放表单时,将自动地关闭数据环境中的表和视图
    C 在数据环境中,可以设置表之间的关系
    D 数据环境是表单的子对象,可使用表单的DateEnvironment属性访问数据环境
    22. 
    若R和s的关系分别如下图所示:
       
       则R和S自然连接的结果是______。
       
       
       
       

    A  B  C  D  
    23. 
    树是结点的集合,它有______个根结点。

    A 1个
    B 1或多
    C 0或1
    D 至少2
    24. 
    有下列程序段:
       For i=1 To 4
         x=4
         For J=1 To 3
           x=3
           For k=1 To 2
             x=x+6
           Next k
         Next j
       Next i
       ? x
       该程序段的执行结果为______。

    A 7
    B 15
    C 157
    D 538
    25. 
    关于索引的说法,以下不正确的是______。

    A 索引可以提高查询速度
    B 主索引和候选索引可以保证字段值的唯一性
    C 唯一索引也可以保证字段的唯一性
    D 索引需要维护,这种维护可能使插入、删除和修改操作的速度降低
    26. 
    在Visual FoxPro中,当在表格中显示一个表(子表)时,可用表格控件的______属性指定对应的父表名称。

    A ChildOrder
    B Parent
    C LinkMaster
    D RelationalExpr
    27. 
    执行下列命令后,显示结果为______。
         A=".F."
       B=A
         ? TYPE("B"),TYPE(B)

    A C,L
    B L,L
    C C,C
    D L,C
    28. 
    在层次方框图中,框间的连线表示______。

    A 调用
    B 组成
    C 包含
    D 归纳
    29. 
    在Visual FoxPro中,在文本框的______事件过程中可以检测用户输入的按键。

    A KeyPress
    B InteractiveChange
    C When
    D Valid
    30. 
    关于自由表和数据库表的说法中,不正确的是______。

    A 自由表就是那些不属于任何数据库的表
    B 可通过ADD TABLE命令把自由表加到数据库中使之成为数据库表
    C 可通过REMOVE TABLE命令把数据库表从数据库中移去使之成为自由表
    D 一个表可以包含在多个数据库中
    31. 
    假设一棵二叉树的后序遍历序列为DGJHEBIFCA,其中序遍历序列为DBGEHJACIF,则其前序遍历序列为______。

    A ABCDEFGHIJ
    B ABDEGHJFIC
    C ABDEGJHCFI
    D ABDEGHJCFI
    32. 
    在Visual FoxPro的表单中有一个选项按钮组,按钮组中有两个选项按钮,如图2所示。已经为Option1和OptionGroup1编写了Click事件过程代码,程序运行时,单击Option2,将会执行的事件代码是______。
       

    A  B  C  D  
    33. 
    一个具有767个结点的完全二叉树,其叶子结点个数为______。

    A 383
    B 384
    C 385
    D 386
    34. 
    在Visual FoxPro中利用菜单生成器所建立的菜单文件是______。

    A 扩展名为.PRG的文件
    B 扩展名为.MPR的文件
    C 扩展名为.MPX的文件
    D 扩展名为.MNX和.MNT的文件
    35. 
    ______也称结构测试或逻辑驱动测试,主要是检查内部成分。

    A 白盒测试
    B 黑盒测试
    C 功能测试
    D 数据驱动测试
    二、填空题

    1. 
    与一般的线性表一样,在程序设计语言中,用______作为栈的顺序存储空间。

    2. 
    为了要在线性表中插入一个新元素,首先要给该元素分配一个______,以便用于存储该元素的值。

    3. 
    ______是具有共同属性、共同方法的对象的集合。

    4. 
    ______是结构化的英语和伪码,是一种混合语言。

    5. 
    ______负责整个数据库系统的建立、维护和协调工作。

    6. 
    两个具有相同结构的关系R和S,它们的______运算是由既属于R又属于S的元组组成的集合。

    7. 
    下列程序的执行结果是______。
       STORE "" TO A
       STORE.NULL.TO B
       STORE O TO C
       ? ISNULL
    • (A),ISNULL
    • (B),ISNULL
    • (C),EMPTY(A),EMPTY(B),EMPTY


    下列程序的功能是统计一个字符串中包括多少个汉字(假设这些汉字均属于GB2312字符集),其基本算法是从字符串中依次取一个字符,如果其ASCII码值大于127,则为一个汉字内码的第一个字节。请填空。
       STR1="中国(ChinA) 是一个伟大的国家(nation)"
       C=0
       DO WHILE LEN(STR1)>0
         IF  (8)   (LEFT(STR1,1))>127
       C=C+1
       STR1=SUBSTR(STR1,  (9)  )
         ELSE
       STR1=SUBSTR(STR1,  (10)  )
         ENDIF
       ENDDO
       WAIT WINDOWS"汉字个数为"+STR(C)

    8. 
    9. 
    10. 
    11. 
    在Visual FoxPro中,数组的维数最多为______维。

    12. 
    把当前工作区中打开的表的当前记录的所有字段(包括备注字段)复制到数组ARR1中,应使用的命令为
       ______ TO ARR1

    13. 
    列出在当前工作区中打开的表中所有被逻辑删除的记录,使用的命令为
       LIST ALL FOR ______

    14. 
    在Visual FoxPro的某程序中,定义了一个模块如下:
       PROCEDURE ABCD
       PARAMETERS A,B
         * 略
         ENDPROC
       现在使用的实参变量为C和D,在默认情况下,如果希望按值传递,调用命令为______。

    15. 
    Visual FoxPro允许用户从“数据环境设计器”窗口、“项目管理器窗口”或“数据库设计器”窗口中直接将字段、表或视图拖入表单,系统将产生相应的控件并与字段相绑定。默认情况下,如果拖动的是备注型字段,将产生______控件。