1、国家二级 VF 笔试-试卷 131 及答案解析(总分:90.00,做题时间:90 分钟)一、选择题(总题数:32,分数:70.00)1.选择题()下列各题 A、B、C、D 四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。_2.算法的时间复杂度是指( )。(分数:2.00)A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程中所需要的基本运算次数D.算法程序中的指令条数3.下列描述中,不是线性表顺序存储结构特征的是( )。(分数:2.00)A.不便于插入和删除B.需要连续的存储空间C.可随机访问D.需另外开辟空间来保存元素之间的关系4.按照“先进后出”原则组织数据
2、的数据结构是( )。(分数:2.00)A.队列B.栈C.双向链表D.二叉树5.有下列二叉树,对此二叉树前序遍历的结果为( )。 (分数:2.00)A.ACBEDGFHB.ABDGCEHFC.HGFEDCBAD.ABCDEFGH6.对建立良好的程序设计风格,下列描述正确的是( )。(分数:2.00)A.程序应该简单、清晰、可读性好B.符号名的命名只需要符合语法C.充分考虑程序的执行效率D.程序的注释可有可无7.下列不属于软件工程 3 个要素的是( )。(分数:2.00)A.工具B.过程C.方法D.环境8.下列选项中不属于软件生命周期开发阶段任务的是( )。(分数:2.00)A.软件测试B.概要设
3、计C.软件维护D.详细设计9.使用白盒测试法时,确定测试数据应该根据( )和指定的覆盖标准。(分数:2.00)A.程序的内部逻辑B.程序的复杂结构C.使用说明书D.程序的功能10.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是( )。(分数:2.00)A.DB 包括 DBS 和 DBMSB.DBMS 包括 DB 和 DBSC.DBS 包括 DB 和 DBMSD.没有任何关系11.对关系 S 和 R 进行集合运算,结果中既包含 S 中的所有元组也包含 R 中的所有元组,这样的集合运算称为( )。(分数:2.00)A.并运算B.交运算C.差运算D.积运算12.在 Visu
4、al FoxPro 中下列叙述正确的是( )。(分数:2.00)A.表也被称作表单B.数据库文件不存储用户数据C.数据库文件的扩展名是 DBFD.一个数据库中的所有表文件存储在一个物理文件中13.数据库系统的核心是( )。(分数:2.00)A.数据库B.操作系统C.数据库管理系统D.文件14.按照数据模型分类,数据库管理系统可以分为 3 种类型,它们是( )。(分数:2.00)A.大型、中型和小型B.西文、中文和兼容C.层次、网状和关系D.数据、图形和多媒体15.定义何种菜单时,可以使用菜单设计器窗口中的“插入栏”按钮,以插入标准的系统菜单命令( )。(分数:2.00)A.条形菜单B.弹出式菜
5、单C.快捷菜单D.B 和 C16.下列关于控件类的说法中,错误的是( )。(分数:2.00)A.控件是一个可以以图形化的方式显示的对象B.控件可以与用户进行交互C.控件通常被放置在一个容器里D.控件是不可复制的17.用鼠标双击对象时所引发的事件是( )。(分数:2.00)A.ClickB.DbclickC.RightClickD.LeftClick18.SQL SELECT 语句中的 WHERE 用于说明( )。(分数:2.00)A.查询数据B.查询条件C.查询分组D.查询排序19.SQL 语句可以进行多个查询的嵌套,但 Visual FoxPro 中只支持( )层嵌套。(分数:2.00)A.
6、1B.2C.3D.无穷20.在成绩表中要求按“物理”降序排列,并查询前两名的学生姓名,正确的命令是( )。(分数:2.00)A.SELECT 姓名 TOP 2 FROM 成绩表 WHERE 物理 DESCB.SELECT 姓名 TOP 2 FROM 成绩表 FOR 物理 DESCC.SELECT 姓名 TOP 2 FROM 成绩表 GROUP BY 物理 DESCD.SELECT 姓名 TOP 2 FROM 成绩表 ORDER BY 物理 DESC21.找出在职工年龄大于 50 的职工姓名,以及这些职 2ET 作所在的城市,正确的命令是 ( )。(分数:2.00)A.SELECT 姓名,城市
7、FROM 职工; WHERE (年龄50) OR (职工.职工号=城市.职工号)B.SELECT 姓名,城市 FROM 职工; WHERE (年龄50) AND (职工.职工号=城市.职工号)C.SELECT 姓名,城市 FROM 城市,职工; WHERE (年龄50) OR (职工.职工号=城市.职工号)D.SELECT 姓名,城市 FROM 城市,职工; WHERE (年龄50) AND (职工.职工号=城市.职工号)22.在 Visual FoxPro 中,如果在表之间的联系中设置了参照完整性规则,并在删除规则中选择了“限制”,当删除父表记录时,系统反应是( )。(分数:2.00)A.不
8、做参照完整性检查B.不准删除父表中的记录C.自动删除子表中所有相关记录D.若子表中有相关记录,则禁止删除父表中记录23.在 Visual FoxPro 中,下列选项中数据类型所占字符的字节数相等的是( )。(分数:2.00)A.字符型和逻辑型B.日期型和备注型C.逻辑型和通用型D.通用型和备注型24.不需要事先建立就可以使用的变量是( )。(分数:2.00)A.私有变量B.局部变量C.全局变量D.数组变量25.在 Visual FoxPro 的数据库表中只能有一个( )。(分数:2.00)A.候选索引B.普通索引C.主索引D.唯一索引26.下列关于 SQL 对表的定义的说法中,正确的选项是(
9、)。(分数:2.00)A.利用 ALTERTABLE 来定义一个新的数据表结构B.SQL 的表定义语句定义自由表的域完整性、字段有效性规则等C.SQL 只能对数据库表实现其完整性、有效性规则等信息的设置D.SQL 的表定义语句只能定义表中的候选索引、唯一索引和普通索引,不能定义主索引27.下列关于查询的描述正确的是( )。(分数:2.00)A.不能根据自由表建立查询B.只能根据自由表建立查询C.只能根据数据库表建立查询D.可以根据数据库表和自由表建立查询28.“主键”不允许取重复值,是指( )。(分数:2.00)A.实体完整性约束规则B.引用完整性约束规则C.用户自定义完整性约束规则D.数据完
10、整性约束规则29.检索尚未确定的供应商的订单号,正确的命令是( )。(分数:2.00)A.SELECT*FROM 订购单 WHERE 供应商号 NULLB.SELECT*FROM 订购单 WHERE 供应商号 =NULLC.SELECT*FROM 订购单 WHERE 供应商号 IS NULLD.SELECT*FROM 订购单 WHERE 供应商号 IS NOT NULL30.可以随表的打开而自动打开的索引是( )。(分数:2.00)A.单项索引B.复合索引C.结构复合压缩索引D.非结构化索引31.下列选项中,不属于 SQL 特殊运算符的是( )。(分数:2.00)A.GROUPB.ONC.AL
11、LD.EMPTY使用下列数据表。“外汇名”表:外币代码 外币名称 现钞买入价 现钞卖出价 基准价 13 欧元 958.6400 985.2300 996.540028 英镑 1220.9700 1330.2200 1287.456537 法郎 592.7650 618.1305 612.591026 加元 516.4110 531.4280 519.869015 美元 811.5410 817.8900 815.6650“持有数”表:姓名 外币代码 持有数量李巡芬 37 30000.00 张武奇 13 1000.00 陆凭凭 15 3000.00 陆凭凭 37 4000.00张武奇 15 22
12、00.00 林诗诗 26 2000.20 李巡芬 26 30000.00 张武奇 28 3000.00 陆凭凭 26 3000.00 陆凭凭 13 4000.00 张武奇 26 18000.00(分数:10.00)(1).执行下列 SQL 语句后,第一条记录的内容是( )。SELECT 姓名,外币名称,持有数量 FROM 外汇名,持有数; WHERE 外汇名.外币代码=持有数.外币代码; AND 持有数量=10000; ORDER BY 持有数量 DESC,姓名(分数:2.00)A.张武奇 加元 18000B.张武奇 法郎 18000C.李巡芬 加元 30000D.李巡芬 法郎 30000(2
13、).查询持有外币种类在 4 种以上人员的姓名,及持有的种类数量,并按种类数量升序排列,数量相同时,则按姓名降序排列,下列语句正确的是( )。(分数:2.00)A.SELECT 姓名,COUNT(*) AS 外币种类 FROM 持有数; GROUP BY 姓名 HAVING COUNT(*)=4; ORDER BY 外币种类,姓名 DESCB.SELECT 姓名,COUNT(*) AS 外币种类 FROM 持有数; GROUP BY 姓名 HAVING COUNT(*)=4; ORDER BY COUNT(*),姓名 DESCC.SELECT 姓名,COUNT(*) AS 外币种类 FROM 持
14、有数; GROUP BY 姓名 HAVING COUNT(*)=4; ORDER BY 外币种类 AND 姓名 DESCD.SELECT 姓名,COUNT(*) AS 外币种类 FROM 持有数; GROUP BY 姓名 HAVING COUNT(*)=4; ORDER BY 外币种类+姓名 DESC(3).计算出“陆凭凭”所持有的全部外币相当于人民币的价值数量,下列语句正确的是( )。(某种外币相当于人民币数量的计算公式:人民币价值数量=该种外币的“现钞买入价” *该种外币“持有数量”)(分数:2.00)A.SELECT SUM (现钞买入价*持有数量) AS 人民币价值; FROM 持有数
15、,外汇名; WHERE 外汇名.外币代码=持有数.外币代码; AND 姓名=“陆凭凭“B.SELECT SUM (现钞买入价*持有数量) AS 人民币价值; FROM 持有数,外汇名; WHERE 外汇名.外币代码=持有数.外币代码; FOR 姓名=“陆凭凭“C.SELECT COUNT (现钞买入价,持有数量) AS 人民币价值; FROM 持有数,外汇名; WHERE 外汇名.外币代码=持有数.外币代码; AND 姓名=“陆凭凭“D.SELECT COUNT (现钞买入价*持有数量) AS 人民币价值; FROM 持有数,外汇名; WHERE 外汇名.外币代码=持有数.外币代码; FOR
16、姓名=“陆凭凭“(4).将“外汇名”表美元和英镑的基准价下调 1%,下列 SQL 语句正确的是( )。(分数:2.00)A.UPDATE 外汇名 FOR 基准价=基准价*0.99; WHERE 外币名称=“美元“ OR 外币名称=“欧元“B.UPDATE 外汇名 SET 基准价=基准价*0.99; WHERE 外币名称=“美元“ OR 外币名称=“欧元“C.UPDATE 外汇名 SET 基准价=基准价*0.99; WHERE 外币名称=“美元“ AND 外币名称=“欧元“D.UPDATE 外汇名 FOR 基准价=基准价*0.99; WHERE 外币名称=“美元“ AND 外币名称=“欧元“(5
17、).删除“持有数”表中所有外币名称为“法郎”的记录,下列 SQL 语句正确的是( )。(分数:2.00)A.DELETE FROM 持有数; WHERE 持有数.外币代码=外汇名.外币代码; AND 外币名称=“法郎“B.DELETE FROM 持有数,外汇名; WHERE 持有数.外币代码=外汇名.外币代码; AND 外币名称=“法郎“C.DELETE FROM 持有数 WHERE 外币代码 IN; (SELECT 外币代码 FROM 外汇名 WHERE 外币名称=“法郎“)D.DELETE FROM 持有数 WHERE 外币代码 IN; SELECT 外币代码 FROM 外汇名 WHERE
18、 外币名称=“法郎“二、填空题(总题数:10,分数:20.00)32.填空题(每空)请将每一个空的正确答案写在答题卡上。注意:以命令关键字填空的必须拼写完整。(分数:2.00)_33.数据结构分为逻辑结构和存储结构,循环队列属于 1 结构。(分数:2.00)填空项 1:_34.队列是限定在表的一端进行插入和在另一端进行删除操作的线性表。允许插入的一端称作 1。(分数:2.00)填空项 1:_35.在一个容量为 32 的循环队列中,若头指针 front=3,尾指针 rear=2,则该循环队列中共有 1 个元素。(分数:2.00)填空项 1:_36.一棵二叉树第 6 层(根结点为第一层)的结点最多
19、为 1 个。(分数:2.00)填空项 1:_37.度为 10 的线性表进行冒泡排序,最坏情况下需要比较的次数为 1。(分数:2.00)填空项 1:_38.如下程序显示的结果是 1。S=1i=0do while i填空项 1:_39.在 Visual FoxPro 中,可以在表设计器中为字段设置默认值的表是 1 表。(分数:2.00)填空项 1:_40.在表单中确定控件是否可见的属性是 1。(分数:2.00)填空项 1:_41.在 SQL 的 CREATE TABLE 语句中,为属性说明取值范围(约束)的是 1 短语。(分数:2.00)填空项 1:_国家二级 VF 笔试-试卷 131 答案解析(
20、总分:90.00,做题时间:90 分钟)一、选择题(总题数:32,分数:70.00)1.选择题()下列各题 A、B、C、D 四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。_解析:2.算法的时间复杂度是指( )。(分数:2.00)A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程中所需要的基本运算次数 D.算法程序中的指令条数解析:解析:所谓的算法时间复杂度是指执行算法所需要的工作量,可以用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。3.下列描述中,不是线性表顺序存储结构特征的是( )。(分数:2.00)A.不便于插入和删除B.需要连续的存储空间
21、C.可随机访问D.需另外开辟空间来保存元素之间的关系 解析:解析:线性表的顺序存储是用一片连续的空间来存放数据元素,其特点是逻辑上相邻的元素在物理位置上也相邻。数据元素之间逻辑上的先后关系自动隐含在物理位置的相邻元素之中,因此不需要另外开辟空间来保存元素之间的关系。4.按照“先进后出”原则组织数据的数据结构是( )。(分数:2.00)A.队列B.栈 C.双向链表D.二叉树解析:解析:栈是一种特殊的线性表,其插入和删除运算都只在线性表的一端进行,而另一端是封闭的。进行插入、删除的一端称为栈顶,封闭的一端称为栈底。栈顶元素是最后被插入的元素,而栈底元素是最后被删除的栈,是按先进后出的原则组织数据的
22、。5.有下列二叉树,对此二叉树前序遍历的结果为( )。 (分数:2.00)A.ACBEDGFHB.ABDGCEHF C.HGFEDCBAD.ABCDEFGH解析:解析:对二叉树的前序遍历是指:先访问根结点,然后访问左子树,最后访问右子树,并且,在访问左、右子树时,先访问报结点,再依次访问其左、右子树。6.对建立良好的程序设计风格,下列描述正确的是( )。(分数:2.00)A.程序应该简单、清晰、可读性好 B.符号名的命名只需要符合语法C.充分考虑程序的执行效率D.程序的注释可有可无解析:解析:“清晰第一,效率第二”,在考虑到程序的执行效率的同时,一定要保证程序清晰、可读;对符号名的命名,除了要
23、符合语法要求外,还要具有一定的含义;程序的注释可以帮助程序员理解程序,不是可有可无的。7.下列不属于软件工程 3 个要素的是( )。(分数:2.00)A.工具B.过程C.方法D.环境 解析:解析:软件工程包括 3 个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理和文档生成;过程支持软件开发的各个环节的控制、管理。8.下列选项中不属于软件生命周期开发阶段任务的是( )。(分数:2.00)A.软件测试B.概要设计C.软件维护 D.详细设计解析:解析:软件的生命周期可分为软件定义、软件开发及软件运行维护 3 个阶段。其中软件定义阶段的主要工作有可行性研究与计划制
24、定和需求分析等;软件开发阶段的主要工作有概要设计、详细设计和测试等;软件运行维护阶段的主要工作是软件的运行及后期的维护等。9.使用白盒测试法时,确定测试数据应该根据( )和指定的覆盖标准。(分数:2.00)A.程序的内部逻辑 B.程序的复杂结构C.使用说明书D.程序的功能解析:解析:白盒测试是把测试对象看作是一个打开的盒子,允许测试人员利用程序内部的逻辑结构及相关信息来设计或选择测试用例,对程序所有的逻辑路径进行测试。所以,白盒测试的对象基本上是源程序,以程序的内部逻辑和指定的覆盖标准测试数据。10.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是( )。(分数:2.0
25、0)A.DB 包括 DBS 和 DBMSB.DBMS 包括 DB 和 DBSC.DBS 包括 DB 和 DBMS D.没有任何关系解析:解析:数据库系统(DBS)由数据库(DB)、数据库管理系统(DBMS)、数据库管理员、硬件平台和软件平台 5 个部分组成,可见 DB 和 DBMS 都是 DBS 的组成部分。11.对关系 S 和 R 进行集合运算,结果中既包含 S 中的所有元组也包含 R 中的所有元组,这样的集合运算称为( )。(分数:2.00)A.并运算 B.交运算C.差运算D.积运算解析:解析:关系的并运算是指由结构相同的两个关系合并,形成一个新的关系,其中包含两个关系中的所有元组。12.
26、在 Visual FoxPro 中下列叙述正确的是( )。(分数:2.00)A.表也被称作表单B.数据库文件不存储用户数据 C.数据库文件的扩展名是 DBFD.一个数据库中的所有表文件存储在一个物理文件中解析:解析:Visual FoxPro 中一个关系被称作一个表,表与表单是两个不同的概念。数据库是一个逻辑上的概念和手段,是通过一组系统文件将相互联系的数据库表及其相关的数据库对象统一组织和管理,并不能存储用户数据。数据库中所包含的表文件都是独立存在的物理文件。数据库的文件扩展名为.dbc,表的文件扩展名为.dbf。13.数据库系统的核心是( )。(分数:2.00)A.数据库B.操作系统C.数
27、据库管理系统 D.文件解析:解析:在数据库系统中,数据库管理系统对数据实行专门管理,提供安全性和完整性等统一控制机制,是数据库系统的核心,Visual FoxPro 就是一个可以在计算机和服务器上运行的数据库管理系统。14.按照数据模型分类,数据库管理系统可以分为 3 种类型,它们是( )。(分数:2.00)A.大型、中型和小型B.西文、中文和兼容C.层次、网状和关系 D.数据、图形和多媒体解析:解析:数据库管理系统所支持的数据模型分为 3 种:层次型、网状型和关系型。其中层次型是用树型结构表示实体及实体之间的联系,网状形有网状结构表示实体及实体之间的联系,关系型用二维表来表示实体及实体之间的
28、联系。15.定义何种菜单时,可以使用菜单设计器窗口中的“插入栏”按钮,以插入标准的系统菜单命令( )。(分数:2.00)A.条形菜单B.弹出式菜单C.快捷菜单D.B 和 C 解析:解析:在当前菜单项之前插入一个 Visual FoxPro 系统菜单命令的。方法是:单击该按钮,打开“插入系统菜单栏”对话框,然后在对话框内选择所需的菜单命令(可以多选),并单击“插入”按钮。“插入栏”按钮仅在定义弹出式菜单时有效,而快捷菜单一般是一个弹出式菜单,或者由几个具有上下级关系的弹出式菜单组成。所以“插入栏”按钮在定义快捷菜单时也有效。16.下列关于控件类的说法中,错误的是( )。(分数:2.00)A.控件
29、是一个可以以图形化的方式显示的对象B.控件可以与用户进行交互C.控件通常被放置在一个容器里D.控件是不可复制的 解析:解析:控件是一个可以以图形化的方式显示并能与用户进行交互的对象,如一个命令按钮、一个文本框等。控件通常被放置在一个容器里。容器可以被认为是一种特殊的控件,它能包容其他的控件或容器,如一个表单、一个表格等。在表单设计器环境下,可以对表单中的控件进行诸如移动、复制、布局等操作,也可以为控件设置 Tab 键顺序。17.用鼠标双击对象时所引发的事件是( )。(分数:2.00)A.ClickB.Dbclick C.RightClickD.LeftClick解析:解析:Click 事件是鼠
30、标单击对象时所引发的;DblClick 事件是鼠标双击对象时所引发的;RightClick 事件是右击对象所引发的;表单及控件中不包含 LeftClick 事件。18.SQL SELECT 语句中的 WHERE 用于说明( )。(分数:2.00)A.查询数据B.查询条件 C.查询分组D.查询排序解析:解析:SELECT 语句中的 WHERE 短语用来进行查询条件的筛选,相当于关系的选择操作;GROUP BY短语用于对查询结果进行分组:ORDER BY 短语用来对查询结果进行排序。19.SQL 语句可以进行多个查询的嵌套,但 Visual FoxPro 中只支持( )层嵌套。(分数:2.00)A
31、.1B.2 C.3D.无穷解析:解析:SQL 可以进行多个查询嵌套,Visual FoxPro 中只支持两层嵌套,即内层查询块和外层查询块,不支持 SQL 的多层嵌套查询。20.在成绩表中要求按“物理”降序排列,并查询前两名的学生姓名,正确的命令是( )。(分数:2.00)A.SELECT 姓名 TOP 2 FROM 成绩表 WHERE 物理 DESCB.SELECT 姓名 TOP 2 FROM 成绩表 FOR 物理 DESCC.SELECT 姓名 TOP 2 FROM 成绩表 GROUP BY 物理 DESCD.SELECT 姓名 TOP 2 FROM 成绩表 ORDER BY 物理 DES
32、C 解析:解析:使用 SQL SELECT 可以将查询结果排序,排序的短语是 ORDER BY。只显示前几项记录的格式是: TOP nExprPERCENT。其中,nExpr 是数字表达式,当不使用PERCENT时,nExpr 可以是 132767之间的整数;当使用 (PERCENT时,nExpr 是 0.01 到 99.99 间的实数,说明显示结果中前百分之几的记录。TOP 要与 ORDER BY 一起使用才有效。21.找出在职工年龄大于 50 的职工姓名,以及这些职 2ET 作所在的城市,正确的命令是 ( )。(分数:2.00)A.SELECT 姓名,城市 FROM 职工; WHERE (
33、年龄50) OR (职工.职工号=城市.职工号)B.SELECT 姓名,城市 FROM 职工; WHERE (年龄50) AND (职工.职工号=城市.职工号)C.SELECT 姓名,城市 FROM 城市,职工; WHERE (年龄50) OR (职工.职工号=城市.职工号)D.SELECT 姓名,城市 FROM 城市,职工; WHERE (年龄50) AND (职工.职工号=城市.职工号) 解析:解析:选项 A)中缺少查询的“城市”表,且查询条件连接有误;选项 B)中同样缺少查询的“城市”表;选项 C)中查询条件错误,应使用 AND 进行条件连接,而不是 OR。22.在 Visual Fox
34、Pro 中,如果在表之间的联系中设置了参照完整性规则,并在删除规则中选择了“限制”,当删除父表记录时,系统反应是( )。(分数:2.00)A.不做参照完整性检查B.不准删除父表中的记录 C.自动删除子表中所有相关记录D.若子表中有相关记录,则禁止删除父表中记录解析:解析:参照完整性与表之间的关联有关,它的大概含义是:当插入、删除或修改一个表中的数据时,通过参照引用相互关联的另一个表中的数据,来检查对表的数据操作是否正确。参照完整性规则包括更新规则、删除规则和插入规则。 删除规则规定了删除父表中的记录时,如何处理处理相关的子表中的记录: 如果选择“级联”,则自动删除子表中的所有相关记录。 如果选
35、择“限制”,若子表中有相关记录,则禁止删除父表中的记录。 如果选择“忽略”,则不作参照完整性检查,即删除父表的记录时与子表无关。23.在 Visual FoxPro 中,下列选项中数据类型所占字符的字节数相等的是( )。(分数:2.00)A.字符型和逻辑型B.日期型和备注型C.逻辑型和通用型D.通用型和备注型 解析:解析:在 Visual FoxPro 中,系统默认的逻辑型字段只占 1 个字节,日期型字段占 8 个字节,备注型和通用型字段占的 4 个字节。24.不需要事先建立就可以使用的变量是( )。(分数:2.00)A.私有变量 B.局部变量C.全局变量D.数组变量解析:解析:在程序中直接使
36、用(没有通过 PUBLIC 和 LOCAL 命令事先声明)而由系统自动隐含建立的变量都是私有变量。私有变量的作用域是建立它的模块及其下属的各层模块。局部变量只能在建立它的模块中使用,不能在上层或下层模块中使用。当建立它的模块程序运行结束时,局部变量自动释放,局部变量用LOCAL 命令建立。全局变量是指在任何模块中都可使用的变量,又称为公共变量。全局变量要先建立后使用,全局变量可用 PUBLIC 命令建立。25.在 Visual FoxPro 的数据库表中只能有一个( )。(分数:2.00)A.候选索引B.普通索引C.主索引 D.唯一索引解析:解析:主索引是指在指定字段或表达式中不允许出现重复值
37、的索引。这样的索引可以起到主关键字的作用,它强调的“不允许出现重复值”是指建立索引的字段值不允许重复。 候选索引和主索引具有相同的特性,建立候选索引的字段可以看作是候选关键字,所以一个表可以建立多个候选索引。即候选索引像主索引一样要求字段值的唯一性并决定处理记录的顺序。 唯一索引是为了保持同早期版本的兼容性,它的“唯一性”是指索引项的唯一,而不是字段值的唯一。它以指定字段的首次出现值为基础,选定一组记录,并对记录进行排序。在一个表中可以建立多个唯一索引。 普通索引是可以决定记录的处理顺序,它不仅允许字段中出现重复值,并且索引项中也允许出现重复值。在一个表中可以建立多个普通索引。 在一个表中可以
38、建立多个普通索引、多个唯一索引、多个候选索引,但只能建立一个主索引。26.下列关于 SQL 对表的定义的说法中,正确的选项是( )。(分数:2.00)A.利用 ALTERTABLE 来定义一个新的数据表结构B.SQL 的表定义语句定义自由表的域完整性、字段有效性规则等C.SQL 只能对数据库表实现其完整性、有效性规则等信息的设置 D.SQL 的表定义语句只能定义表中的候选索引、唯一索引和普通索引,不能定义主索引解析:解析:在 SQL 的定义功能里,所定义的新数据表结构的内容和在表设计器中定义一个新表的内容一样,可以完成其所有功能,包括主索引、域完整性的约束、字段有效性规则等。但对于自由表的定义
39、也和在表设计器中一样,都不能定义自由表的主索引、域完整性的约束、字段有效性规则等,只能进行一些最基本的操作,如定义字段名、宽度和类型等。27.下列关于查询的描述正确的是( )。(分数:2.00)A.不能根据自由表建立查询B.只能根据自由表建立查询C.只能根据数据库表建立查询D.可以根据数据库表和自由表建立查询 解析:解析:查询就是预先定义好的一个 SOL SELECT 语句,在不同的需要场合可以直接或反复使用,从而提高效率。查询是从指定的表或视图中提取满足条件的记录,然后按照想得到的输出类型定向输出查询结果,如浏览器、报表、表、标签等。查询是基于一个表或多个表的操作,表可以是数据库表或者自由表
40、,如果查询基于多个表时,这些表有联系的。28.“主键”不允许取重复值,是指( )。(分数:2.00)A.实体完整性约束规则 B.引用完整性约束规则C.用户自定义完整性约束规则D.数据完整性约束规则解析:解析:实体完整性是保证表中记录唯一的特性,也就是说,在一个表中不可以有重复的记录。在Visual FoxPro 中利用主关键字和候选关键字来保证实体完整性。29.检索尚未确定的供应商的订单号,正确的命令是( )。(分数:2.00)A.SELECT*FROM 订购单 WHERE 供应商号 NULLB.SELECT*FROM 订购单 WHERE 供应商号 =NULLC.SELECT*FROM 订购单
41、 WHERE 供应商号 IS NULL D.SELECT*FROM 订购单 WHERE 供应商号 IS NOT NULL解析:解析:进行空值查询时,要使用 IS NULL,而 =NULL 是无效的,因为空值不是一个确定的值,所以不能使用“=”这样的运算符进行比较。30.可以随表的打开而自动打开的索引是( )。(分数:2.00)A.单项索引B.复合索引C.结构复合压缩索引 D.非结构化索引解析:解析:结构复合压缩索引文件具有以下特性: 在打开表时自动打开。 在同一索引文件中能包含多个索引方案,或索引关键字。 在添加、更改或删除记录时,自动维护索引。31.下列选项中,不属于 SQL 特殊运算符的是
42、( )。(分数:2.00)A.GROUPB.ONC.ALLD.EMPTY 解析:解析:选项 A)、B)、C)都属于 SQL 的特殊运算符,选项 D)是一个空值测试函数。在 SQL 要利用空值查询,应使用 IS NULL 运算符号。使用下列数据表。“外汇名”表:外币代码 外币名称 现钞买入价 现钞卖出价 基准价 13 欧元 958.6400 985.2300 996.540028 英镑 1220.9700 1330.2200 1287.456537 法郎 592.7650 618.1305 612.591026 加元 516.4110 531.4280 519.869015 美元 811.541
43、0 817.8900 815.6650“持有数”表:姓名 外币代码 持有数量李巡芬 37 30000.00 张武奇 13 1000.00 陆凭凭 15 3000.00 陆凭凭 37 4000.00张武奇 15 2200.00 林诗诗 26 2000.20 李巡芬 26 30000.00 张武奇 28 3000.00 陆凭凭 26 3000.00 陆凭凭 13 4000.00 张武奇 26 18000.00(分数:10.00)(1).执行下列 SQL 语句后,第一条记录的内容是( )。SELECT 姓名,外币名称,持有数量 FROM 外汇名,持有数; WHERE 外汇名.外币代码=持有数.外币代
44、码; AND 持有数量=10000; ORDER BY 持有数量 DESC,姓名(分数:2.00)A.张武奇 加元 18000B.张武奇 法郎 18000C.李巡芬 加元 30000D.李巡芬 法郎 30000 解析:解析:本题 SQL 语句执行的功能是检索外汇持有数量在 10000(含)以上的持有人姓名、外汇名称和持有数量,检索的结果按“持有数量”降序排序,当“持有数量”相同时则按“姓名”升序排序。其中FROM 短语中指定的是要查询的表,WHERE 短语中指定两表的连接条件和筛选记录的条件,ORDER BY 短语中指定排序字段及排序方式。注意:两个排序字段之间用逗号隔开。(2).查询持有外币
45、种类在 4 种以上人员的姓名,及持有的种类数量,并按种类数量升序排列,数量相同时,则按姓名降序排列,下列语句正确的是( )。(分数:2.00)A.SELECT 姓名,COUNT(*) AS 外币种类 FROM 持有数; GROUP BY 姓名 HAVING COUNT(*)=4; ORDER BY 外币种类,姓名 DESC B.SELECT 姓名,COUNT(*) AS 外币种类 FROM 持有数; GROUP BY 姓名 HAVING COUNT(*)=4; ORDER BY COUNT(*),姓名 DESCC.SELECT 姓名,COUNT(*) AS 外币种类 FROM 持有数; GRO
46、UP BY 姓名 HAVING COUNT(*)=4; ORDER BY 外币种类 AND 姓名 DESCD.SELECT 姓名,COUNT(*) AS 外币种类 FROM 持有数; GROUP BY 姓名 HAVING COUNT(*)=4; ORDER BY 外币种类+姓名 DESC解析:解析:本题中首先通过 GROUP BY 短语按“姓名”字段对“持有数”表中的记录进行分组,然后利用 COUNT()分组统计每个人持有的外币种类,再通过 HAVING 子句限定外币种类至少在 4 种以上的记录;利用 ORDER BY 短语可以对查询结果进行排序,有升序(ASC)和降序 (DESC)两种,默认
47、的为升序排序方式,如果排序字段有多个,则每个字段之间用逗号隔开。(3).计算出“陆凭凭”所持有的全部外币相当于人民币的价值数量,下列语句正确的是( )。(某种外币相当于人民币数量的计算公式:人民币价值数量=该种外币的“现钞买入价” *该种外币“持有数量”)(分数:2.00)A.SELECT SUM (现钞买入价*持有数量) AS 人民币价值; FROM 持有数,外汇名; WHERE 外汇名.外币代码=持有数.外币代码; AND 姓名=“陆凭凭“ B.SELECT SUM (现钞买入价*持有数量) AS 人民币价值; FROM 持有数,外汇名; WHERE 外汇名.外币代码=持有数.外币代码;
48、FOR 姓名=“陆凭凭“C.SELECT COUNT (现钞买入价,持有数量) AS 人民币价值; FROM 持有数,外汇名; WHERE 外汇名.外币代码=持有数.外币代码; AND 姓名=“陆凭凭“D.SELECT COUNT (现钞买入价*持有数量) AS 人民币价值; FROM 持有数,外汇名; WHERE 外汇名.外币代码=持有数.外币代码; FOR 姓名=“陆凭凭“解析:解析:本题中查询的“现钞买入价”是来自“外汇名”表的字段,“持有数量”来自“持有数”表,进行计算查询时需要采用连接查询的方式对两表进行查询,两表的连接条件在 WHERE 短语中指定,另外对记录进行筛选的条件通过 AND 短语与表的连接条件一起放在 WHERE 短语之后。(4).将“外汇名”表美元和英镑的基准价下调 1%,下列 SQL 语句正确的是( )。(分数:2.00)A.UPDATE 外汇名 FOR 基准价=基准价*0.99; W