1、国家二级( VF)机试模拟试卷 13及答案与解析 一、选择题 1 以下叙述中错误的是 ( )。 ( A)算法正确的程序对于相同的输入一定有相同的结果 ( B)算法正确的程序可以没有输入 ( C)算法正确的程序可以没有输出 ( D)算法正确的程序最终一定会结束 2 以下叙述中正确的是 ( )。 ( A)树与二叉树是线性结构 ( B)栈与线性链表是非线性结构 ( C)队列是非线性结构 ( D)线性表是线性结构 3 下列叙述中错误的是 ( )。 ( A)冒泡排序属于交换类排序 ( B)快速排序属于选择类排序 ( C)堆排序属于选择类排序 ( D)希尔排序属于插入排序 4 对象实现了数据和操作的结合,
2、是指对数据和数据的操作进行 ( )。 ( A)组合 ( B)隐藏 ( C)集成 ( D)封装 5 软件生命周期中花费时间最多的阶段是 ( )。 ( A)软件维护阶段 ( B)软件编码阶段 ( C)软件开发阶段 ( D)软件定义阶段 6 在数据流图中, O(椭圆 )代表 ( )。 ( A)源点 ( B) 结束 ( C)数据流 ( D)加工 7 使用白盒测试方法时,确定测试数据应根据 ( )和指定的覆盖标准。 ( A)程序的外部逻辑 ( B)程序的复杂结构 ( C)使用使用说明书 ( D)程序的内部逻辑 8 在数据库系统中,用户所见数据模式为 ( )。 ( A)逻辑模式 ( B)存储模式 ( C)
3、内模式 ( D)外模式 9 最常用的一种基本数据模型是关系数据模型,它的表示应采用 ( )。 ( A)树状图 ( B)网络格式 ( C) 二维表 ( D)图表结构 10 有三个关系 R、 S和 T如下:由关系 R和 s通过运算得到关系 T,则所使用的运算为 ( )。 ( A)合并 ( B)交 ( C)广义笛卡尔积 ( D)连接 11 在 Visual FoxPro的项目管理器中不包括的选项卡是 ( )。 ( A)数据 ( B)文档 ( C)类 ( D)表单 12 在下列函数中,函数返回值为数值的是 ( )。 ( A) STR(200) ( B) SPACE(5) ( C) AT(人民 , 中华
4、人民共和国 ) ( D) SUBSTR(中华人民共和国 , 7) 13 下列表达式中,写法错误的是 ( )。 ( A) “计算机 ”-“computer” ( B) “The Time Is”+DTOC(2012 08 08) ( C) T + F ( D) 2012 08 08+10 14 数据表中有 50个记录,如果当前记录为第 50条记录,把记录指针向下移动一位,使用 EOF()函数的值是 ( )。 ( A) 5 ( B) 50 ( C) T ( D) F 15 在 Visual Foxpro中,调用表设计器修改数据库表 STUDENT DBF的命令是( )。 ( A) MODIFY S
5、TRUCTURE ( B) MODIFY COMMAND STUDENT ( C) CREATE STUDENT ( D) CREATE TABLE STUDENT 16 在 SQL中,建立索引的命令是 ( )。 ( A) ALTER INDEX ( B) SET ORDER TO ( C) SET INDEX TO ( D) INDEX ON 17 要控制两个表中数据的完整性和一致性,可以设置参照完整性,要求这两个表( )。 ( A)一个数据库表,另一个是自由表 ( B)是两个自由表 ( C)是不同数据库中的两个表 ( D)是同一个数据库中的两个表 18 SQL语言是具有 ( )的功能。 (
6、 A)数据分析、数据操纵、数据控制 ( B)数据定义、数据恢复、数据控制 ( C)数据定义、数据查询、数据控制 ( D)数据定义、数据分类、数据操纵 19 有某商场的销售记录 (日期、商品名称、商品单价、销售数量 ),要查询每天的销售情况,以下正确的 SQL语句是 ( )。 ( A) SELECT*FROM销售记录 ORDER BY日期 ( B) SELECT*FROM销售记录 GROUP BY日期 ( C) SELECT日期, SUM(销售数量 )AS销售总数量, SUM(销售数量 *商品单价 )销售总额 FROM销售记录 ORDER BY日期 ( D) SELECT日期, SUM(销售数量
7、 )AS销售总数量, SUM(销售数量 )*SUM(商品单价 )销售总额 FROM销售记录 ORDER BY日期 20 现有某高校的选修课记录 (SC):学号、姓名 、课程名称、成绩,要查询没有选修课成绩的学生和课程,正确的 SQL语句是 ( )。 ( A) SELECT学号,课程号 FROM SC WHERE成绩 =“” ( B) SELECT学号,课程号 FROM SC WHERE成绩 =NULL ( C) SELECT学号,课程号 FROM SC WHERE成绩 IS NULL ( D) SELECT学号,课程号 FROM SC WHERE成绩 21 SQL语句中, DISTINCT短语
8、的功能是 ( )。 ( A)按要求显示部分查询记录 ( B)消除重复出现的查询记录 ( C)删除查询结果中符合条件的记录 ( D)对查询结果进行排序 22 将查询学生的结果放在数组 MyArray中的 SQL语句是: SELECT*FROM学生表 WHERE籍贯 =北京 _ 上面空缺的短语是 ( )。 ( A) INTO CURSOR MyCursor ( B) TO ARRAY MyArray ( C) INTO ARRAY MyArray ( D) INTO TABLE MyTable 23 要使 “商品 ”表中所有商品的单价上浮 10,正确的 SQL命令是 ( )。 ( A) ALTER
9、商品 SET单价 =单价 *1 1 FOR ALL ( B) UPDATE商品 SET单价 =单价 +单价 *10 ( C) UPDATE商品 SET单价 =单价 *1 1 FOR ALL ( D) UPDATE商品 SET单价 =单价 *1 1 24 “图书 ”表中有字符型字段 “图书名称 ”和 “图书类型 ”,要求用 SQL DELETE命令将图书表中书名中含有 “计算机 ”且图书类型是 “小说 ”的记录全部打上删除标记,正确的 SQL命令是 ( )。 ( A) DELETE FROM图书 FOR图书名称 LIKE“计算机 ”AND图书类型 =“小说 ” ( B) DELETE FROM图
10、书 WHILE图书名称 LIKE“计算机 ”AND图书类型 =“小说 ” ( C) DELETE FROM图书 WHERE图书名称 =“计算机 ”AND图书类型 =“小说 ” ( D) DELETE FROM图书 WHERE图书名称 LIKE“计算机 ”AND图书类型=“小说 ” 25 在用 SQL语句建立数据表时,给字段属性定义默认值,应使用短语 ( )。 ( A) FREE ( B) KEY ( C) UNIQUE ( D) DEFAULT 26 现有员工工资表 (PAYMENT),其字段包含如下:员工号 (EmployeeID)C(10),基本工资 (BaseFee)N(8 2),津贴
11、(SubsidyFee)N(8 2),奖金 (AwardFee)N(8 2),保险扣除 (InsuranceFee)N(8 2)。现要求为 “工资 ”表增加一个 “实发工资 ”字段(RealFee),类型为数值型,正确 SQL命令是 ( )。 ( A) ALTER TABLE PAYMENT ADD COLUMN RealFee N(8, 2) ( B) ALTER TABLE PAYMENT ADD FIELD RealFee N(8, 2) ( C) MODIFY TABLE PAYMENT ADD COLUMN RealFee N(8, 2) ( D) MODIFY TABLE PAYM
12、ENT ADD FIELD RealFee N(8, 2) 27 在 Visual Foxpro中,默认查询的输出形式是 ( )。 ( A)浏览 ( B)临时表 ( C)图形 ( D)标签 28 在 Visual FoxPro中建立一个程序文件 Myproject prg的命令是 ( )。 ( A) MODIFY Myproject prg ( B) MODIFY COMMAND Myproject prg ( C) MODIFY PROCEDURE Myproject prg ( D) MODIFY FILE Myproject prg 29 下列有关 SCAN循环结构,叙述正确的是 ( )
13、。 ( A) SCAN循环结构中的 LOOP语句,可将程序流程直接指向循环开始语句SCAN,首先判断 EOF()函数的真假 ( B) SCAN循环结构必须 SCAN和 ENDSCAN成对使用,不可单独使用 ( C) SCAN循环结构的循环体中必须写有 SKIP语句 ( D) SCAN循环结构,如果省略了 子句 FOR和 WHILE条件子句,则直接退出循环 30 在 Visual Foxpro中,为了将表单从内存中释放 (清除 ),可将表单中退出命令按钮的 Click事件中添加代码 ( )。 ( A) ThisForm Refresh ( B) ThisForm Destroy ( C) Thi
14、sForm Hide ( D) ThisForm Release 31 在命令按钮组中, ButtonCount指定命令按钮的个数,它的默认值是 ( )。 ( A) 0 ( B) l ( C) 2 ( D) 5 32 在表单设计器环境下,要选定表单中某选项组里的某个选项按钮,可以 ( )。 ( A)单击选项按钮 ( B)双击选项按钮 ( C)先右击选项组,并选择 “编辑 ”命令,然后再单击选项按钮 ( D)以上 B)和 C)都可以 33 下面对表单控件的描述正确的是 ( )。 ( A)列表框中可以进行多重选择 ( B) 组合框中可以进行多重选择 ( C)选项组中可以选中多个选项按钮 ( D)复
15、选框中不可以选中多个选项 34 使用 Visual FoxPro的菜单设计器时,选中菜单项之后,如果要设计它的子菜单,应在结果下拉框中选择 ( )。 ( A)命令 ( B)填充名称 ( C)子菜单 ( D)过程 35 下面关于 Visual FoxPro报表的数据源的陈述中正确的是 ( )。 ( A)数据库表、自由表或视图 ( B)自由表或其他报表 ( C)表、查询或视图 ( D)数据库表、自由表或查询 36 计算结果不是字符串 ”Student”的语句是 ( )。 ( A) heft(“Student”, 7) ( B) substr(“MyStudent”, 3, 7) ( C) righ
16、t(“MyStudent”, 7) ( D) at(“MyStudent”, 3, 7) 37 在下面的 Visual FoxPro表达式中,运算结果不为逻辑真的是 ( )。 ( A) EMPTY(SPACE(0) ( B) LIKE(xy*, xyz) ( C) AT(xy, abcxyz) ( D) ISNULL( NULL ) 38 执行如下程序,最后 S的显示值为 SET TALK OFF S=0 i=5 x=11 DO WHILE s):数值转换成字符串函数,返回值为字符串;SPACE()返回由指定数目的字符串,返回值是字符串; AT(, )返回第一表达式的首字母在第二个表达式中出现
17、的位置,返回值是数值; SUBSTR(, , )从表达式指定位置截取一个指定长度的字符串,返回值是字符串。 13 【正确答案】 C 【试题解析】 字符型常量和日期型常量都可以用 “+”、 “-”两种运算;逻辑型常量用 NOTANDOR 运算,但不能使用 “+”运算; DTOC是日期转换字符串函数。 14 【正确答案】 C 【试题解析】 EOF()测试当前记录指针是否指向文件尾,若是,返回逻辑真( T ),否则为逻辑假 ( F )。当前记录为最后一个时,再移动就会指向文件尾,所以结果为真。故本题答案 C。 15 【正确答案】 A 【试题解析】 建表命令格式: CREATE表名 DBF MODIF
18、Y STRUCTuRE是修改表结构; MODIFY COMMAND是建立程序文件; CREATE TABLE是 SQL的建表命令,它不通过表设计器进行。 16 【正确答案】 D 【试题解析】 使用命令建立索引的格式: INDEX ON eExpression TO 1 DXleName TAG TagNameOF CDXFileName FOR IExpressionDOMPACT ASCENDING DESCENDING UNIQUE CANDIDATE ADDITIVE 故本题答案 D。 17 【正确答案】 D 【试 题解析】 要设置两个表之间的参照完整性,这两个表必须是同一数据库中的两个
19、表。故本题答案为选项 D。 18 【正确答案】 C 【试题解析】 SQL语言具有数据定义 (CREATE, DROP, ALTER)、数据修改(INSERT, UPDATE, DELETE)、数据查询 (SELECT)、数据控制 (GRANT,REVOKE)的功能。 19 【正确答案】 C 【试题解析】 SQL语句中 GROUP BY子句用于对记录按组进行分组,常用于分组统计。使用 GROUP BY时,只能查询分组的元素和计算函数,不能 查询表的所有记录,故 B不正确; C中 suM(销售数量 )统计每天的销售量,销售数量 *商品单价是每条记录的销售额, SUM(销售数量 )* SUM(商品单
20、价 )是每天的销售总额; D中 SUM(商品单价 )是把每天的记录单价相加,没有实际意义。故本题答案是 C。 20 【正确答案】 C 【试题解析】 利用空值查询,查询空值时要使用 “ISNULL”,而 =“”、 =NULL乙都是无效的,因为空值是一个不确定的值,所以不能用 “=”进行比较。 21 【正确答案】 B 【试题解析】 使用 SQL语句查询 的符合条件的记录 ,可以使用 DISTINCT短语消除重复出现的查询记录。 22 【正确答案】 C 【试题解析】 INTO CURSOR、 INTO TABLE、 lNTO ARRAY都是 SELECT语句的短语,将查询结果放在数组中应使用 INT
21、TO ARRAY短语。 INTO CURSOR是将查询结果存入在临时文件中。 INTO TABLE是将查询结果存放在永久表中。TOARRAY不是正确的 SQL语句。 23 【正确答案】 C 【试题解析】 更新表中元组的值,使用 UPDATE命令,一次可以更新表中的一个或多个属性值 。 UPDATE短语之后指定更新数据所属的表,将新的属性值或表达式赋值给对应的属性名 (SET单价 =单价 *1 1)并置于 SET、短语之后。用WHERE短语可以对元组进入限制,即对符合条件的元组进行更新。若无WHERE短语则是对表中的所有元组进行更新,表示运算符。故答案为 C。 24 【正确答案】 D 【试题解析
22、】 SQL从表中删除数据的命令格式如下: DELETE FROM TableName WHERECondition这里 FROM指定从哪个表中删除数据, WHERE指定被删除的条件。模糊查询使用 LIKE,是 LIKE语句中的通配符。 25 【正确答案】 D 【试题解析】 四个选项中列出的短语都是属于 CREATE TABLE语句的短语: A选项 FREE短语用于指定所建立的表是一个自由表,即不添加到当前数据库中; B选项 KEY短语与 PRIMARY结合用于定义主关键字; C选项 UNIQUE短语用于建立候选索引; D选项 DEFAULT短语用于指定短语的默认值。 26 【正确答案】 A 【
23、试题解析】 可使用 ALTER TABLE命令的 ADDCOLUMN子句添加字段。例如,可以使用以下命令把 “bjmc”(班级名称 )字段添加到 xs表中: ALTER TABLE xsADD COLUMN bimc C(12)。 27 【正确答案】 A 【试题解析】 可以把查询结果输出到不同的目的地。如果没有选定输出目的地,查询结果将显示在 “浏览 ”窗口中。查询去向如下: 浏览:在 (BR()WSE)窗口中显示查询结果,这是默认的输出去向。 临时表:将查询结果存储在一个命名的临时只读表中。 将查询结果保存在一个命名的表中。 图形:使查询结果可用于 MICROSOFT GRAPH。 屏幕:在
24、 Visual FoxPro主窗口或当前活动输出窗口中显示查询结果。 报表:将查询结果输出到一个报表文件 ( frx)。 标签:将查询结果输出到一个标签文件 ( lbx)。 28 【正确答案】 B 【试题解析】 建立和修改程序文件的命令格式为: MODIFY COMMAND 功能:打开文本编辑窗口,用来建立或修改程序文件。 29 【正确答案】 B 【试题解析】 SCAN-ENDSCAN语句一般用于处理表中记录。语句可指明需处理的记录范围及 应满足的条件。语句格式: SCANNOOFTIMIZE ScopeFOR lExpressionlWHILE lExpressidn2 Commands L
25、OOP EXIT ENDSCAN 执行语句时,记录指针自动、依次在当前表的指定范围内满足条件的记录上移动,对每一条记录执行循环体内的命令。如果循环体包含 LOOP命令,那么当遇到 LOOP时,就结束循环体的本次执行,不再执行其后面的语句,而是转回SCAN重新判断条件。范 围如果不写,默认值是 ALL;语句体 SCAN和ENDSCAN必须同时存在,不能单独使用。 30 【正确答案】 B 【试题解析】 ThisForm Release将表单从屏幕和内存中删除。如果不想从内存中释放表单,可在 Click事件中以 ThisForm Hide代替;刷新表单用ThisForm REFRESH; Destr
26、oy是释放对象实例后产生的事件。 31 【正确答案】 C 【试题解析】 命令组中的 ButtonCount属性指定命令组中命令按钮的数目,默认的属性值为 2。 32 【正确答 案】 C 【试题解析】 命令组是包含一组命令按钮的容器控件,用户可以单个或作为一组来操作其中的按钮。在表单设计器中,为了选择命令组中的某个按钮,以便为其单独设置属性、方法或事件,可以采用以下两种方法:一是从属性窗口的对象下拉式组合框中选择所需的命令按钮:一是用鼠标右键单击命令组,然后从弹出的快捷菜单中选择 “编辑 ”命令,这样,命令组就进入了编辑状态,用户可以通过鼠标单击来选择某个具体的命令按钮。因此,本题的正确答案应该
27、是 C。 33 【正确答案】 A 【试题解析】 组合框是用于提供一组条目供用户 选择。埘于组合框来说,通常只有一个条目是可见的。用户可以单击组合框上的下箭头按钮打开条目列表,以便从中选择。所以相比列表框,组合框能够节省表单里的显示空间。组合框不提供多重选择的功能,没有 MultiSelect属性。 列表框提供一组条目 (数据项 ),用户可以从中选择一个或多个项目。一般情况下,列表框显示其中的若干条日,用户可以通过滚动条浏览其他条目。 选项组义称选项按钮组,是包含选项按钮的一种容器,一个选项组中往往包含若干个选项按钮,但用户只能从中选择一个按钮。当川户选择某个选项按钮时,该按钮 即成为被选中状态
28、,而选项组中的其他选项按钮,不管原来是什么状态,都变为未选 lfl状态。被选中的选项按钮中会显示一个圆点。 一个复选框用于标记一个两值状态,如真 ( T )或假 ( F )。当处于 “真 ”状态时,复选框内显示一个对勾;否则,复选框内为空白。对一个表单内的一组复选框可以选中多个,或不选择,或全部选择都可以。 34 【正确答案】 C 【试题解析】 如果要设计它的子菜单,应在结果下拉框中选择子菜单,而不应是命令、过程等。 35 【正确答案】 C 【试题解析】 报表包括两个基本组 成部分:数据源和布局。数据源通常是数据库中的表,但也呵以是视图、查询或临时表。视图和查询将筛选、排序、分组数据库中的数据
29、,而报表布局定义了报丧的打印格式。在定义了一个表、一个视图或查询后,便可以创建报表或标签。 36 【正确答案】 D 【试题解析】 AI()函数的功能是返回一个字符表达式或备注字段在另一个字符表达式或备注字段中首次出现的位置,其结果是数值型。所以选项 D结果不是字符串。 37 【正确答案】 C 【试题解析】 AT()函数是求子串位置函数,函数值为数值型。 AT(, , )中,如果 是 的子串,则返回 值的首字符任 伉中的位置;若不是子串,则返回 0。 38 【正确答案】 C 【试题解析】 该循环语句中,变量 s和 i每次执行循环后值的变化如下 s值 i值 第一次循环 5 6 第二次循环 11 7
30、 第三次循环 18 8 程序在执行第四次循环时,因条件 (18)是求字符串长度的函数。 SPACE()是空格字符串生成函数,返回由指定数日的空格组成的字符串。字符表达式 “-”的含义是连接前后两个字符串,并将前字符串的尾部空格移动到合并后的新字符串尾部。因此 sPAcE(3)-SPACE(2)运算后的长度仍然是 5。 二、基本操作题 41 【正确答案】 (1)单击常用工具栏中的 “打开 ”按钮,打开数据库 stock。在命令窗口中输入: REMOVE TABLE stock_fk。如果显示提示信息框,那么单击 “是 ”按钮。 (2)在 “数据库设计器 -stock”中单击鼠标右键,显示右击菜单
31、,选择 “添加表 ”命令 ,并选择相应的表文件即可 (stock_name)。 (3)在 “数据库设计器 -stock”中,选择表 “stock_s1”并单击鼠标右键,选择 “修改 ”命令,在屏幕上显示 “表设计器 -stock_s1 dbf”窗口,单击 “索引 ”选项卡,然后输入索引名 “股票代码 ”,选择类型为 “主索引 ”、表达式为 “股票代码 ”,最后单击 “确定 ”按钮,再单击 “是 (Y)”就可以建立主索引了。 (4)步骤 l:在 “数据库设计器 -stock”中,选择表 “stock_name”并单击鼠标右键,选择 “修改 ”命令项。 步骤 2:在 “表设计器 -stock_na
32、me dbf”中,选择 “股票代码 ”字段,在 “字段有效性 ”组的 “规则 ”中输入 “LEFT(股票代码, 1)=“6“”,在 “信息 ”中输入 “股票代码的第一位必须是 6”,最后单击 “确定 ”按钮即可。 三、简单应用题 42 【正确答案】 (1)操作步骤 步骤 1:在命令窗口中输入如下语句,并按回车执行。 SELECT姓名, 2003-Year(出生日期 )AS年龄 FROMstudent INTO TABLE new_table1 dbf 步骤 2:单击工具栏中的 “新建 ”按钮,在 “新建 ”对话框中选择 “报表 ”,单击 “向导 ”按钮,在 “向导取向 ”对话框中双击 “报表向
33、导 ”。 步骤 3:在 “报表向导 ”步骤 1中,选择表 new_tablel,并将其全部字段添加到 “选定字段 ”。 步骤 4:连续单击 “下一步 ”按钮直到 “报表向导 ”步骤 5,选择按字段 “年龄 ”升序排序。 步骤 5:单击 “下一步 ”按钮,输入报表标题 “姓名一年龄 ”,单击 “完成 ”按钮、 步骤 6:将报丧保存为 “NEW_REPORT1 FRX”。 (2)操作步骤 步骤 1:单击工具拦中的 “新建 ”按钮,在 “新建 ”对话框中选择 “菜单 ”,单击 “新建义件 ”按钮,在 “新建菜单 ”对话框中单击 “菜单 ”在菜单设计器的 “菜单名称 ”中分别输入 “在 cx”和 “退
34、出 ”。 步骤 2:在 “退出 ”的结果中选择 “命令 ”,并在后面的框中输入: SET SYSMENU TODEFAULT 步骤 3:保存菜单为 query_menu并生成可执行菜单。 四、综合应用题 43 【正确答案】 步骤 1:在命令窗口中输入下列代码,该代码用于将 BOOKS表中满足条件的记录复制到 BOOKS_BAK表中;按回车键执行该代码。 * SELECT*FROM B00KS WHERE书名 LIKE“计算机 ”INTO TABLE BOOKS_BAK * 步骤 2:在命令窗口中输入下列代码,更新 BOOKS_BAK表中的价格字段,并按回车 键以执行该代码。 * UPDATE BOOKS_BAK SET价格 =价格 *(1-0 05) * 步骤 3:在命令窗口中输入下列代码,并按回车键以执行该代码。 * SELECT TOP 1 Books_bak出版单位, avg(books_bak价格 )as均价; FROM books_bak; GROUP BY Books_bak出版单位; HAVING均价 =25; ORDER BY 2: INTO TABLE new_table4 dbf *