1、浙江计算机二级 VF模拟试卷 6及答案与解析 一、程序阅读选择题 阅读下列程序说明并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。 0 本大题的程序一、二使用的 “学生 ”表和 “选修课 ”表如下: “学生 ”表: 学号 姓名 政治面貌 年龄 学分 科目号 20001 王 海 团员 25 4 01 20002 李 盐 预备党员 20 3 02 20003 刘小鹏 团员 22 4 01 20004 隋小新 团员 20 6 03 20005 李明月 预备党员 24 4 01 20006 孙民主 预备党员 21 3 02 20007 赵福来 预备党员 22 6 03 “选修课 ”表: 科
2、目号 科目名 01 日语 02 法律 03 微积分 【程序说明一】 使用 SQL语句查询每个学生及其选修课程的情况: 【程序一】 SELECT 学生 .*,选修课 .*; FROM 学生,选修课; WHERE (1) = (2) 【程序说明二】 使用 SQL语句求选修了法律课程的所有学生的学分总和: 【程序二】 SELECT (3) (学生分 ); FROM 学生; WHERE 科目号 IN; (SELECT 科目号; FROM (4) ; WHERE 科目号 “法律 ”) 【程序说明三】 设有 s(学号,姓名,性别 )和 sc(学号,课程号,成绩 )两个表,下面 SQL的 SELECT 语句
3、检索选修的每门课程的成绩都高于或等于 85分的学生的学号、姓名和性别。 【程序三】 SELECT 学号,姓名,性别 FROM s WHERE (5) (SELECT * FROM sc WHERE sc. 学号 s. 学号 AND 成绩 85) ( A)科目号 ( B)学生 .科目号 ( C)学生 .姓名 ( D)选修课 .科目号 ( A)科目号 ( B)学生 .科目名 ( C)选修课 .科目名 ( D)选修课 .科目号 ( A) AVG ( B) MAX ( C) SUM ( D) MIN ( A)选修课 ( B)学生 ( C)学生 .选修课 ( D)成绩 ( A) NOT ( B) EXI
4、STS ( C) NOT EXIST ( D) NOT EXISTS 5 【程序说明】 程序功能是仅接受输入 Y和 N的程序,否则程序结束。 【程序】 DO WHILE .T. WAIT“请输入 Y/N” TO AS IF UPPER(AS) “Y”AND UPPER(AS) “N” (6) ELSE (7) ENDIF ENDDO ( A) EXIT ( B) ENDDO ( C) LOOP ( D) CONTINUE ( A) EXIT ( B) ENDDO ( C) LOOP ( D) CONTINUE 7 【程序说明】 计算下列算式的值。 a, Ai为正整数,从键盘输入。其小 Ai1+
5、2+ Ai , Ai! 1 *2*3*Ai(i 1, 2 a) 。 【程序】 SET TAIK OFFCLEARINPUT“M ”TO MSTORE 0 TO S1, S2FOR I=1 TO M (8) DO SUB1 DO SUB2ENDFOR? ” 所求算式的值为: “+ALLTRIM(STR(S1/S2, 15, 3)SET TALK ONPROCEDURE SUB1 (9)FOR R 1 TO A K K+RENDFOR (10)RETURNPROCEDURE SUB2 (11)FOR P 1 TO A T=T*PENDFOR (12)RETURN ( A) INPUT“A ”TO
6、A ( B) INPUT“I=”TO I ( C) INPUT“R=”TO STR(R) ( D) INPUT“K ”TOK ( A) K 1 ( B) K 0 ( C) PRIVATE K ( D) PARA K ( A) X=K ( B) S1 S1+K ( C) S1=S2+K ( D) S1=K ( A) PUBLIC T ( B) T 0 ( C) T 1 ( D) PARA T ( A) X=T ( B) S2 S1+K ( C) S2 S2+K ( D) S2 T 12 【程序】 SET TALK OFF CLEAR STORE 0 TO X, S1, S2, S3 DO WHI
7、LE X 15 X X+1 DO CASE CASEINT(X/2)=X/2 S1=S1+X/2 CASE MOD(X, 3) 0 S2 S2+X/3 CASE INT(X/2) X/2 S3=S3+1 ENDCASE ENDDO ? X, S1, S2, S3 SET TALK ON RETURN 13 X的输出结果为 _。 ( A) 0 ( B) 14 ( C) 15 ( D) 16 14 S1的输出结果为 _。 ( A) 56 ( B) 28 ( C) 14 ( D) 15 15 S2的输出结果为 _。 ( A) 9 ( B) 10 ( C) 15 ( D) 16 16 S3的输出结果为
8、 _。 ( A) 4 ( B) 5 ( C) S ( D) 7 16 【程序】 SET TALK OFF CLEAR SS 0 FOR X 1 TO 10 STEP 3 SS SS+X ENDFOR ? SS 17 SS的输出结果为 _。 ( A) 22 ( B) 18 ( C) 12 ( D) 19 18 若将 STEP 3改为 STEP 1,则 SS的输出结果为 _。 ( A) 22 ( B) 35 ( C) 45 ( D) 55 19 若将 STEP 3删除,则 SS的输出结果为 _。 ( A) 22 ( B) 35 ( C) 45 ( D) 55 20 若将 STEP 3改为 STEP
9、 -1时,则 SS的输出结果为 _。 ( A) 22 ( B) 0 ( C) 1 ( D) -1 20 【程序】 * 主程序: AAA. PRG SET TALK OFF CLEAR K 20 Y=30 DO BBB ?X, Y RETURN * 子程序: BBB. PRG PRIVATE Y X 40 Y=50 RETURN 21 程序执行后的显示结果为 _。 ( A) 20 30 ( B) 40 50 ( C) 30 40 ( D) 40 30 22 若将 PRIVATE Y删除,则程序执行后的显示后果为 _。 ( A) 20 30 ( B) 40 50 ( C) 30 40 ( D) 4
10、0 30 23 若将 PRIVATE Y改为 PRIVATE X,则程序执行后的显示结果为 _。 ( A) 20 30 ( B) 40 50 ( C) 20 50 ( D) 40 30 24 若在 PRIVATE Y后加一条 PRIVATE X语句,则程序执行后的显示结果为 _。 ( A) 20 30 ( B) 40 50 ( C) 20 50 ( D) 40 30 二、编写程序题 25 编写程序,一球从 100米高度落下,每次落地后反弹高度为上一次高度的一半。求该球第 10次落地时所经过的总路程 (保留两位小数 )。 26 编写程序,求 “学生 ”表中指定班级 (如 071或 073,学号字
11、段的前 3个字符表示班级 )的男、女学生的奖学金总额。 浙江计算机二 级 VF模拟试卷 6答案与解析 一、程序阅读选择题 阅读下列程序说明并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。 1 【正确答案】 B 2 【正确答案】 D 【试题解析】 若一个查询同时涉及两个以上的表,则称之为连接查询。其一般格式为: 表名 1 列名 1比较运算符 表名 2 列名 2 学生表和选修课表的连接是通过公共字段 “科目号 ”来建立的。 3 【正确答案】 C 【试题解析】 AVG:求平均值, MAX:取最大值, SUM:求和, MIN:取最小值。 4 【 正确答案】 A 【试题解析】 一个 SELE
12、CTFROMWHERE语句称为一个查询块。将一个查询块嵌套在另一个查询块的 WHERE 子句或 HAVING 短语的条件中的查询称为嵌套查询。 SUM()实现了对 “学业分 ”求和。 嵌套查询中,选择条件科目号 “法律 ”的字段在 “选修课 ”表中,所以嵌套查询来自 “选修课 ”表。 5 【正确答案】 D 【试题解析】 在 SQL中,括号内 SELECT* FROM sc WHERE sc. 学号 s. 学号 AND 成绩 85 表示是每门课成绩都小于 85分的学生, 要检索成绩高于或等于 85分, NOT EXISTS是取反即检查不小于 85分的学生信息。 6 【正确答案】 A 7 【正确答
13、案】 C 【试题解析】 该题是一个条件循环,选用 EXIT是强制退出循环条件,执行它能够立即跳出循环,执行 ENDDO后面的语句。选用 LOOP则是一种强制缩短循环的语句,其功能是终止本次循环体语句的执行,把控制转到循环结构的开始。 8 【正确答案】 A 【试题解析】 表达式接收语句的格式; INPUT字符表达式 TO内存变量从子过程 SUB1和 SUB2中可知需 接收一个 A值作为正整数。 9 【正确答案】 B 【试题解析】 从语句 “K=K+R”可知需定义变量 K并给变量 K赋初值 0,目的求Aa的值。 10 【正确答案】 B 【试题解析】 本语句功能是求分子 A1+A2+Aa 的值。 1
14、1 【正确答案】 C 【试题解析】 从语句 “T T*P”可知需定义变量 T并给变量 T赋初值 1,目的求Aa!的值。 12 【正确答案】 C 【试题解析】 本语句功能是求分母 A1!+A2!+ +Aa !的值。 13 【正确答案】 C 【试 题解析】 当 X=15时,不再执行 DO WHILE/ENDDO循环。 14 【正确答案】 B 【试题解析】 DO CASE/ENDCASE语句,当所给条件满足 CASE中的任一条件时,不再判断其他的 CASE分支,而是结束 DO CASE循环。 能被 2整除的数是 2, 4, 6, 8, 10, 12, 14,所以 S10+2/2+4/2+6/2+8/
15、2+10/2+12/2+14/2 28。 15 【正确答案】 A 【试题解析】 能被 3整除的数是 3, 6, 9, 12, 15。但当 X 6, 12时,执行CASEINT(X/2) X/2分支,不再执行 CASE MOD (X, 3) 0分支。 所以满足第二个分支的条件只有 3, 9, 15即 S2 0+3/3+9/3+15/3 9。 16 【正确答案】 B 【试题解析】 CASE INT(X/2) X/2 S3 S3+1分支的功能是不能被 2和 3整除而执行本分支的次数。当 X 1, 5, 7, 11, 13时,执行本语句,共执行了 5次。 17 【正确答案】 A 【试题解析】 循环前
16、SS的初值为 0,是用来存放累加结果的。第一次开始循环, X的值为 1,小于 10,满足循环条件,结果 SS的累加值为 1,第二次开始循环, X的值变为 4(X的值自动增加了步长 3),小于 10,满足循环条件,结果 SS的累加值为 5;第三次开始循环, X的值变为 7,小于 10,满足循环条件,结果 SS的累加值为 12;第四次开始循环, X的值变为 10,等于 10(但不大于 10),仍然满足循环条件,结果 SS的累加值为 22,第五次开始循环, X的值变为 13,大于10,不满足循环条件,循环终止。最后 SS的值为 22。该程序也就是求 1+4+7+10的值。 18 【正确答案】 D 【
17、试题解析】 当 STEP 3改为 STEP 1时,即求 1+2+3+10 的和,其值为 55。 19 【正确答案】 D 【试题解析】 若省略 STEP步长,则递增步长为 1。所以本题和第 (18)题是一样的。 20 【正确答案】 B 【试题解析】 语句 For X 1 T0 10 STEP -1是不正确的,所以本题不执行FOR/ENDFOR循环。最后 SS输出初值 0。 21 【正确答案】 D 【试题解析】 在子程序中, X被重新赋值为 40,变量 Y是私有变量,在子程序结束后,主程序中的 Y值不变。 22 【正确答案】 B 【试题解析】 X、 Y都是公有变量,执行子程序后, X、 Y被重新赋
18、为 40, 50。 23 【正确答案】 C 【试题解析】 变量 X是私有变量,在子程序结束后,变量 X恢复初值 20, Y是公有变量,被重新赋值 50。 24 【正确答案】 A 【试题解析】 在子程序中,变量 X和 Y都是私有变量,子程序结束, X和 Y值都为初值 20和 30。 二、编写程序题 25 【正确答案】 程序代码如下: CLEAR SET TALK OFF h 100 5 100 FOR i 2 TO 10 h h/2 s s+ h* 2 ENDFOR ? ROUND(s, 2) 26 【正确答案】 程序代码如下: SET TALK OFF CLEAR USE 学生 ACCEPT“输入指定的班级 (如: 071或 073): ”TO BJ LOCATE FOR LEFT(学号, 3)=BJ IF FOUND() SUM 奖学金 TO JXJ1 FOR LEFT (学号, 3)=BJ AND 性别 SUM 奖学金 TO JXJ2 FOR LEFT (学号, 3) BJ AND ! 性别 ? BJ+“班全体男学生的奖学金总额为: ”+STR (JXJ1, 5, 2) ? BJ+“班全体女学生的奖学金总