1、国家二级 VF机试(选择题)模拟试卷 122及答案与解析 一、选择题 1 下列叙述中正确的是 ( A)算法的效率只与问题的规模有关,而与数据的存储结构无关 ( B)算法的时间复杂度是指执行算法所需要的计算工作量 ( C)数据的逻辑结构与存储结构是一一对应的 ( D)算法的时间复杂度与空间复杂度一定相关 2 下列叙述中正确的是 ( A)线性表链式存储结构的存储空间一般要少于顺序存储结构 ( B)线性表链式存储结构与顺序存储结构的存储空间都是连续的 ( C)线性表链式存储结构的存储空间可以是连续的,也可以 是不连续的 ( D)以上说法均错误 3 某二叉树共有 12个结点,其中叶子结点只有 1个。则
2、该二叉树的深度为(根结点在第 1层) ( A) 3 ( B) 6 ( C) 8 ( D) 12 4 对长度为 n的线性表作快速排序,在最坏情况下,比较次数为 ( A) n ( B) n-1 ( C) n(n-1) ( D) n(n-1)/2 5 结构化程序设计中,下面对 goto语句使用描述正确的是 ( A)禁止使用 goto语句 ( B)使用 goto语句程序效率高 ( C)应避免滥用 goto语句 ( D)以上说法均错误 6 下 面不属于软件测试实施步骤的是 ( A)集成测试 ( B)回归测试 ( C)确认测试 ( D)单元测试 7 下面不属于软件需求分析阶段主要工作的是 ( A)需求变更
3、申请 ( B)需求分析 ( C)需求评审 ( D)需求获取 8 一般情况下,当对关系 R和 S进行自然连接时,要求 R和 S含有一个或者多个共有的 ( A)记录 ( B)行 ( C)属性 ( D)元组 9 ( A)选择 ( B)差 ( C)交 ( D)并 10 有表示公司和职员及工作的三张表,职员可在多家公司兼职。其中公司 C(公司号,公司 名,地址,注册资本,法人代表,员工数),职员 S(职员号,姓名,性别,年龄,学历),工作 W(公司号,职员号,工资),则表 W的键(码)为 ( A)公司号,职员号 ( B)职员号,工资 ( C)职员号 ( D)公司号,职员号,工资 11 以下描述中正确的是
4、: ( A)数据库只包括描述事物的数据本身 ( B)数据库中的数据具有较小的冗余和较高的数据独立性 ( C)数据库系统是为数据库的建立、使用和维护而配置的软件 ( D)数据库管理系统是数据库集合的组成部分。 12 以下描述中错误的是: ( A)层次数据模 型可以表示一对多的联系 ( B)一张二维表就是一个关系 ( C)层次数据模型不能直接表示多对多的联系 ( D)网状数据模型不能直接表示多对多的联系 13 传统的集合运算包括 ( A)并、差和选择 ( B)并、交和投影 ( C)交、差和选择 ( D)并、差和交 14 参照完整性规则的更新规则中 “级联 “的含义是 ( A)更新父表中的连接字段值
5、时,用新的连接字段值自动修改子表中的所有相关记录 ( B)若子表中有与父表相关的记录,则禁止修改父表中的连接字段值 ( C)父表中的连接字段值可以随意更新 ( D) 父表中的连接字段值在任何情况下都不允许更新 15 查询菜单下的 “查询去向 “命令指定了查询结果的输出去向,输出去向不包括 ( A)报表 ( B)标签 ( C)文本文件 ( D)图形 16 下面对视图的描述中错误的是 ( A)通过视图可以查询表 ( B)通过视图可以修改表的结构 ( C)通过视图可以更新表中的数据 ( D)通过自由表不能建立视图 17 打开查询设计器建立查询的命令是 ( A) CREATE QUERY ( B) O
6、PEN QUERY ( C) DO QUERY ( D) EXEC QUERY 18 数据库系统的核心是 ( A)表 ( B)文件 ( C)数据库管理系统 ( D)数据库管理员 19 关系的基本运算包括 ( A)连接、选择和投影 ( B)并、交和差 ( C)排序、连接和选择 ( D)选择、投影和排序 20 以下关于数据管理发展的描述错误的是 ( A)文件系统阶段的数据可以长期保存 ( B)数据库系统阶段仍没有解决数据独立性问题 ( C)数据库系统阶段实现了对数据的共享 ( D)人工管理阶段存在大量数据冗余 21 下列程序段执行后,内存变量 S的值是 CLEAR S=0 FOR I=10 TO
7、100 STEP 10 S=S+I ENDFOR ?S ( A)不能确定 ( B) 0 ( C) 450 ( D) 550 22 下列程序段执行后,内存变量 e的值是 a=10 b=20 c=30 d=IIF(ab,a,B) e=IIF(cd,c,D) ( A) 10 ( B) 20 ( C) 30 ( D) 550 23 下列程序段执行后,内存变量 s1的值是 s1=“奥运会游泳比赛 “ s1=right(s1,4)+substr(s1,7,4)+left(s1,4) ?s1 ( A)奥运比赛游泳 ( B)游泳比赛奥运 ( C)比赛游泳奥运 ( D)奥运游泳比赛 24 表示 2012年 9月
8、 10日的日期常量是 ( A) 2012-09-10 ( B) -2012-09-10 ( C) /2012-09-10 ( D) 2012-09-10 25 下列程序段执行以后,内存变量 X和 Y的值是 CLEAR STORE 3 TO X STORE 5 TO Y SET UDFPARMS TO REFERENCE DO PLUS WITH (X),Y ? X,Y PROCEDURE PLUS PARAMETERS A1,A2 A1=A1+A2 A2=A1+A2 ENDPROC ( A) 5 8 ( B) 8 13 ( C) 5 13 ( D) 3 13 26 下列程序段执行以后,内存变量
9、 y的值是 CLEAR x=56789 y=0 DO WHILE x0 y=y+x%10 x=int(x/10) ENDDO ?y ( A) 56789 ( B) 98765 ( C) 35 ( D) 15 27 下列程序段执行后,内存变量 s1的值是 s1=“奥运会游泳比赛 “ s1=stuff(s1,7,4,“田径 “) ?s1 ( A)奥运会游泳比赛 ( B)奥运会田径比赛 ( C)奥运会田径 ( D)奥运会游泳 28 表名为 Employee的表结构是(职工号,姓名,工资),建立表 Employee的SQL命令是 ( A) CREATE TABLE Employee(职工号 C(10)
10、,姓名 C(20), 工资 Y) ( B) CREATE Employee TABLE(职工号 C(10),姓名 C(20), 工资 Y) ( C) CREATE DATABASE Employee(职工号 C(10),姓名 C(20), 工资 Y) ( D) CREATE Employee DATABASE(职工号 C(10),姓名 C(20), 工资 Y) 29 插入一条记录到表结构为(职工号,姓名,工资)的表 Employee中,正确的SQL命令是 ( A) INSERT TO Employee VALUES(“19620426“, “李平 “,8000) ( B) INSERT INT
11、O Employee VALUES(“19620426“, “李平 “,8000) ( C) INSERT INTO Employee RECORD(“19620426“, “李平 “,8000) ( D) INSERT TO Employee RECORD(“19620426“, “李平 “,8000) 30 将表结构为(职工号,姓名,工资)的表 Employee中所有职工的工资增加20%,正确的 SQL命令是 ( A) CHANGE Employee SET 工资 =工资 *1.2 ( B) CHANGE Employee SET 工资 WITH 工资 *1.2 ( C) UPDATE E
12、mployee SET 工资 =工资 *1.2 ( D) UPDATE Employee SET 工资 WITH 工资 *1.2 31 为 Employee表增加一个字段 “出生日期 “, 正确的 SQL语句是 ( A) CHANGE TABLE Employee ADD 出生日期 D ( B) ALTER DBF Employee ADD 出生日期 D ( C) ALTER TABLE Employee ADD 出生日期 D ( D) CHANGE TABLE Employee INSERT 出生日期 D 32 删除 Employee表中职工号为 “19620426“的记录,正确的 SQL语
13、句是 ( A) DELETE FROM Employee WHILE 职工号 =“19620426“ ( B) DELETE FOR Employee WHERE 职工号 =“19620426“ ( C) DELETE FOR Employee WHILE 职工号 =“19620426“ ( D) DELETE FROM Employee WHERE 职工号 =“19620426“ 33 在表结构为(职工号,姓名,工资)的表 Employee中查询职工号的左 4位为“1962“的职工的最高工资值,正确的 SQL命令是 ( A) SELECT MAX(工资 ) FROM Employee WHE
14、RE RIGHT(职工号 ,4)=“1962“ ( B) SELECT MIN(工资 ) FROM Employee WHERE LEFT(职工号 ,4)=“1962“ ( C) SELECT MAX(工资 ) FROM Employee WHERE LEFT(职工号 ,4)=“1962“ ( D) SELECT MAX(工资 ) FROM Employee WHILE LEFT(职工号 ,4)=“1962“ 34 Employee的表结构为:职工号、单位号、工资, Department 的表结构为:单位号、单位名称、人数,查询工资多于 12000的职工号和他们所在单位的单位名称,正确的 SQ
15、L命令是 ( A) SELECT 职工号 ,单位名称 FROM Employee,Department;WHERE 工资 12000 AND Employee.单位号 =Department.单位号 ( B) SELECT 职工号 ,单位名称 FROM Employee,Department;WHERE 工资 12000 OR Employee.单位号 =Department.单位号 ( C) SELECT 职工号 ,单位名称 FROM Employee,Department;WHERE 工资 12000 AND Employee.单位号 =Department.职工号 ( D) SELECT
16、 职工号 ,单位名称 FROM Employee,Department;WHERE 工资 12000 OR Employee.单位号 =Department.职工号 35 Employee的表结构为:职工号、单位号、工资, Department 的表结构为:单位号、单位名称、人数,查询至少有 3名职工的每个单位的职工人数和平均工资。正确的 SQL命令是 ( A) SELECT 单位号 ,COUNT(*),AVG(工资 ) FROM Employee GROUP BY 单位号 WHERE COUNT(*)=3 ( B) SELECT 单位号 ,COUNT(*),AVG(工资 ) FROM Emp
17、loyee GROUP BY 单位号 HAVING COUNT(*)=3 ( C) SELECT 单位号 ,AVG(工资 ) FROM Employee GROUP BY 单位号 HAVING COUNT(*)=3 ( D) SELECT 单位号 ,COUNT(*),AVG(工资 ) FROM Employee ORDER BY 单位号 HAVING COUNT(*)=3 36 Employee的表结构为:职工号、单位号、工资, Department 的表结构为:单位号、单位名称、人数,查询信息管理学院和计算机学院教师的工资总和,正 确的SQL命令是 ( A) SELECT SUM(工资 )
18、FROM Employee WHERE 单位号 IN (SELECT 单位号 FROM ;Department WHERE 单位名称 =“计算机学院 “ AND 单位名称 =“信息管理学院 “) ( B) SELECT ALL(工资 ) FROM Employee WHERE 单位号 IN (SELECT 单位号 FROM ;Department WHERE 单位名称 =“计算机学院 “ OR 单位名称 =“信息管理学院 “) ( C) SELECT SUM(工资 ) FROM Employee WHERE 单位号 IN (SELECT 单位号 FROM ;Department WHERE 单
19、位名称 =“计算机学院 “ OR 单位名称 =“信息管理学院 “) ( D) SELECT SUM(工资 ) FROM Employee WHERE 单位号 NOT IN (SELECT 单位号 ;FROM Department WHERE 单位名称 =“计算机学院 “ OR 单位名称 =“信息管理学院 “) 37 Employee的表结构为:职工号、单位号、工资,与 SELECT * FROM Employee ;WHERE 工资 BETWEEN 10000 AND 12000等价的 SQL命令是 ( A) SELECT * FROM Employee WHERE 工资 =10000 AND
20、 工资 =10000 AND =10000 OR 工资 =10000 OR ,)为条件测试函数,测试 的值。若为逻辑真 .T.,函数返回 的值;若为逻辑假 .F.,函数返回 的值。 和 的类型不要求相同。“=“用来进行精确比较,只有当两个字符串完全相同 (包括空格及位置 ),才会为逻辑真 .T.。因此本题的运算结果为字符串 ab。 23 【正确答案】 C 【试题解析】 RIGHT( )从指定表达式值的右端取一个指定长度的子串作为函 数值, SUBSTR( )从指定表达式值的指定起始位置取指定长度的子串作为函数值,LEFT( )从指定表达式值的左端取一个指定长度的子串作为函数值。本题 s1=“奥
21、运会游泳比赛 “, right(s1,4)=比赛, substr(s1,7,4)=游泳, left(s1,4)=奥运,即 C选项正确。 24 【正确答案】 A 【试题解析】 本题考查日期常量的格式,日期型常量的格式有两种: 传统的日期格式。月、日各为 2位数字,而年份可以是 2位数字,也可以是 4位数字。系统默认的日期型数据为美国日期格式 “mm/dd/yy“(月 /日 /年)。 严格的日期格式。表示为 yyyy-mm-dd,用这种格式书写的日期常量能表达一个确切的日期。书写时要注意:花括号内第一个字符必须是脱字符( );年份必须用 4位(如 2010、 2011等);年月日的次序不能颠倒、不
22、能缺省。 25 【正确答案】 D 【试题解析】 STORETO为内存变量的赋值命令,用于计算表达式并将表达式值赋给一个或多个内存变量。 PARAMETERS , 是接收参数的命令, 本题 A1=A1+A2,最后的运行结果为3; A2=A1+A2,最后的运行结果为 13。 26 【正确答案】 C 【试题解析】 DO WHILE-ENDDO是一个功能全面使用频率较高的循环语句,运行该语句时,先判断 是否为真,如果是真则运行 DO WHILE与 ENDDO间的循环体,当运行到 ENDDO时,再返回 DO WHILE 重新判断循环条件是否为真,确定是否再次运行循环体。若条件为假则结束循环语句运行 EN
23、DDO后的语句。本题 x=56789, y=y+x%10的最后运算结果为 35。 27 【正确答案】 B 【 试题解析】 STUFF( ,)为子串替换函数,用 值替换 中由 和 指定的一个子串。替换和被替换的字符个数不一定相等。如果 值是 0,则插在由 指定的字符前面。如果 值是空串,那么 中由 和 指定的子串被删去。本题正确答案为 B。 28 【正确答案】 A 【试题解析】 在 visual foxpro中可以通过 SQL的 CREATE TABLE命令建立表,其语法格式为: CREATE TABLE|DBF NAME FREE ( ( , ) NULL|NOT NULL CHECK ERR
24、OR DEFAULT PRIMARY KEY|UNIQUE REFERENCES TAG NOCPTRANS , ,PRIMARY KEY TAG |,UNIQUE TAG ,FOREIGN KEY TAG NODUP REFERENCES TAG ,CHECK ERROR ) |FROM ARRAY 29 【正确答案】 B 【试题解析】 INSERT INTO (字段名 1,字段名 2,) VALUES( 字段值 1,字段值 2, ) 命令用于插入数据,只有 B选项格 式正确。 30 【正确答案】 C 【试题解析】 更新数据的命令格式为: UPDATE 表名 SET 字段名 1=表达式 1
25、,字段名 2=表达式 2 WHERE 条件 。一般使用 WHERE子句指定更新的条件,并且一次可以更新多个字段;如果不使用 WHERE子句,则更新全部记录。本题要使 “Employee“表中所有职工的工资增加 20%,应设置表达式为 “工资 =工资*1.2“,即 C选项正确。 31 【正确答案】 C 【试题解析】 修改表结构可使用 ALTER TABLE命令,为表增加字段的命令格式 为: ALTER TABLE ADD COLUMN ,)NULL|NOT NULL CHECK ERROR DEFAULT ADD PRIMARY KEY TAG ADD UNIQUE TAG 选项 A、 B、 D
26、的格式错误, A为正确答案。 32 【正确答案】 D 【试题解析】 删除数据的命令格式为: DELETE FROM 表名 WHERE 条件 ,WHERE指定被删除的记录所满足的条件,因此选 D。 33 【正确答案】 A 【试题解析】 本题考查的简单计算查询,求最大值的函数是 MAX()。 RIGHT()和 LEFT()均为取子串函数,其中 LEFT( )从指定表达式值的左端取一个指定长度的子串作为函数值, RIGHT( )从指定表达式值的右端取一个指定长度的子串作为函数值。查询职工号的左 4位为 “1962“的职工应使用 LEFT(职工号 ,4)=“1962“,因此 C选项正确。 34 【正确
27、答案】 A 【 试题解析】 本题考查简单的连接查询, SELECT 指定查询显示的字段,在WHERE子句中指定连接条件(连接的字段名前要加上表名做为前缀,表名和字段名之间用 “.“隔开),在 FROM子句中指定要连接的表。本题查询工资多于12000的职工号, A选项的命令正确。 35 【正确答案】 B 【试题解析】 COUNT用于统计表中元组的个数(即统计输出的行数), AVG用于计算一个数据列的平均值,本题要查询每个单位的职工人数和平均工资,首先排除 C选项。使用 GROUP BY 子句进行分组,而 ORDER BY用于排序, 排除D选项。题目要求计算至少有 3名职工的单位信息,应使用 HA
28、VING子句来限制分组后的条件,因此 B选项正确。 36 【正确答案】 C 【试题解析】 本题考查内外层嵌套查询,内层使用命令 “SELECT 单位号 FROM ;Department WHERE 单位名称 =“计算机学院 “ OR 单位名称 =“信息管理学院 “来返回信息管理学院和计算机学院教师的信息,外层使用 “SELECT SUM(工资 ) FROM Employee WHERE 单位号 IN“ 命令查询工资总和,因此 C选项正确。 37 【正 确答案】 A 【试题解析】 简单查询是基于一个表进行的查询,是由 SELECT和 FROM短语构成的无条件查询 ,或由 SELECT、 FROM
29、和 WHERE短语构成的条件查询。BETWEENAND 为常用运算符,表示在 和 之间,其中包含等于,即大于等于 AND前面的数,小于等于 AND后面的数。本题题干的含义是查询工资在10000至 12000之间的职工信息, WHERE指定的条件应为 “WHERE 工资BETWEEN 10000 AND 12000“,因此 A选项正确。 38 【正确答案】 A 【试题解析】 在表单设计器环境下,选定需要添加快捷菜单的对象,在此对象的RightClick事件中添加调用快捷菜单,程序的命令为: DO WITH THIS。因此本题选 A。 39 【正确答案】 D 【试题解析】 标签控件 在报表中广泛应用 ,用作说明性文字或标题文本等。域控件用于打印表或视图中的字段、变量和表达式的计算结果。例如,通过设置域控件,可以自动给报表添加页码,或通过域控件实时显示当前日期和时间等。 40 【正确答案】 D 【试题解析】 事件是一种由系统预选定义,而由用户或系 统触发的动作。可由用户触出(如 click事件),也可以是由系统触发(如 load事件)。对于用户触发的事件,又可分为用户操作触发和事件代码触发两种方式。本题中,只有 DblClick为表单的常用事件,在鼠标双击时引发。另外 Hide、 Show和 Release均为表单的常用方法。