1、浙江计算机二级 VF-试卷 5及答案解析(总分:50.00,做题时间:90 分钟)一、程序阅读选择题(总题数:7,分数:48.00)1.程序阅读选择题阅读下列程序说明并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。_【程序说明】程序功能是求 30!。【程序】SET TALK OFFCLEARN=1I1DO WHILE (1) (2)N=N+1 (3)? ISET TALK ON(分数:6.00)A.N30B.N30C.N30D.N30A.II+NB.II*NC.I=I+N!D.II*N!A.ENDDOB.ENDWHILEC.ENDFORD.ENDCASE【程序说明】程序功能是比较从
2、键盘输入的若干个数的大小,并输出其中的最大和最小值。【程序】SET TALK OFFCLEAINPUT“M=” TO M (4)DO WHILE .T. INPUT“N” TO N (5) DNENDIFIF XN (6)ENDIFYN“A” (7) WAIT“是否继续输入(Y继续/N结束)”TO YNENDDO (8) EXIT ENDIFENDDO?“最大的数是:”,D?“最小的数是:”,XSET TALK ON(分数:10.00)A.STORE M,0 TO D,XB.STORE 0 TO D,XC.STORE M TO D,XD.STORE 0,0 TO D,XA.IF DNB.IF
3、DNC.IF DND.IF DNA.XNB.XNC.NXD.N#XA.DO WHILE UPPER (YN)“Y”B.DO WHILE UPPER(YN)“N”C.DO WHILE UPPER(YN)“Y” OR UPPER(YN)“N”D.DO WHILE UPPER(YN)“Y” AND UPPER(YN)“N”A.IF LOWER(YN)“Y”B.IF LOWER(YN)=“N”C.IF LOWER(YN)“y”D.IF LOWER(YN)=“N”【程序说明】设职工表文件的内容是: 编号 姓名 部门 工资 奖金 1001 常胜 车间 850 200 1002 汪洋 车间 700 200
4、1003 陆地 车间 680 200 2001 林木 设计科 900 150 2002 陈路 设计科 1200 150 3004 孙海 财务科 900 100 3006 李扬 财务科 1300 100 3010 张虎 财务科 1100 100【程序】USE 职工AVERAGE 工资 TO a FOR 部门“财务科” & 变量 a 的值是 (9)INDEX ON 工资 TO IDX1GO 1? 编号,姓名 & 显示结果是 (10)SEEK 900SKIP?工资+奖金 &显示结果是 (11)LOCATE FOR 工资900CONTINUE? 姓名 & 显示结果是 (12)SUM 奖金 TO b F
5、OR SUBSTR (编号,1,1)“1” &变量 b的值是 (13)(分数:10.00)A.1300B.1200C.1100D.11400A.1001 常胜B.1002 汪洋C.1003 陆地D.无任何显示A.1200B.1000C.1400D.1350A.林木B.陈路C.孙海D.李扬A.200B.400C.600D.800【程序】STORE“123.”TO xSTORE“45” TO ySTORE“A45” TO z? VAL(x+ y),VAL(x+ z),VAL(z+ y)(分数:6.00)(1).VAL(x+ y)的输出结果为 _。(分数:2.00)A.123B.-123C.-123
6、.4D.-123.45(2).VAL(x+ z)的输出结果为 _。(分数:2.00)A.123B.-123C.-123.45D.0(3).VAL(z+ y)的输出结果为 _。(分数:2.00)A.123B.-123C.-123.45D.0【程序】SET TALK OFFN=325X“ABCDEFGHIJ”Y=“甲乙丙丁戊已.”NCALLTRIM(STR(N,6)LLEN(NC)N22*L-1NN“K1DO WHILE KL N1=INT(VAL(SUBSTR(NC,K,1)* 2+1) NNNN+SUBSTR(X,N1,1) NNNN+SUBSTR(Y,N2,2) ? N1,N2,NN N2N
7、2-2 KK+1ENDDO ? KSET TALK ON(分数:8.00)(1).第一次输出结果为 _。(分数:2.00)A.7 4G 甲B.7 5G乙C.7 5G 丙D.7 4G乙(2).第二次输出结果为 _。(分数:2.00)A.7 4G 丙 EB.5 3G 丙 E 乙C.7 3G 丙 E 乙D.3 G 丙乙甲(3).第三次输出结果为 _。(分数:2.00)A.11 1G 丙 E 乙甲B.11 3G 丙 E 乙甲C.7 3G 丙 E 乙甲D.7 3G 丙 E 乙(4).K的输出结果为 _。(分数:2.00)A.2B.3C.4D.5【程序】* MAIN. PRG * PROC1. PRGSE
8、T TALK OFF PROC P1X10 PARA S1,S2Y=5 S1S1*5SET PROC TO PROC1 S2=S2+5DO P1 WITH X,Y RETURN PROC P2? X,Y &第一次显示 PARAX,YX10 X5Y=5 Y=X+20DO P2 WITH X,Y RETURN? X,Y &第二次显示 X=10Y5DO P1 WITH X+5,Y? X,Y &第三次显示X10Y5DO P2 WITH X,Y+5? X,Y &第四次显示 SET PROC TOSET TALK ONRETURN(分数:8.00)(1).第一次显示结果为 _。(分数:2.00)A.10
9、5B.10 50C.50 5D.50 10(2).第二次显示结果为 _。(分数:2.00)A.10 5B.5 25C.5 10D.10 20(3).第三次显示结果为 _。(分数:2.00)A.10 5B.75 5C.75 10D.10 10(4).第四次显示结果为 _。(分数:2.00)A.5 5B.5 25C.10 5D.10 30二、编写程序题(总题数:1,分数:2.00)2.编制一个表单完成汉字数字时钟显示功能(界面如下图所示)。要求:(1)表单将自动以 1s为间隔动态显示系统时间。(2)时、分和秒要求用汉字说明。(3)将计时器控件的 Interval属性设置为 1 000(1s)。(分
10、数:2.00)_浙江计算机二级 VF-试卷 5答案解析(总分:50.00,做题时间:90 分钟)一、程序阅读选择题(总题数:7,分数:48.00)1.程序阅读选择题阅读下列程序说明并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。_解析:【程序说明】程序功能是求 30!。【程序】SET TALK OFFCLEARN=1I1DO WHILE (1) (2)N=N+1 (3)? ISET TALK ON(分数:6.00)A.N30B.N30C.N30D.N30 解析:解析:本大题要求 130 的阶乘,N 的变量应从 130 且包括 30,故 DO WHILE循环条件应为N30。A.II+
11、NB.II*N C.I=I+N!D.II*N!解析:解析:求阶乘应是 N!=1*2*3* *N。A.ENDDO B.ENDWHILEC.ENDFORD.ENDCASE解析:解析:DO WHILE ENDDO 的格式: DO WHILE条件表达式 语句序列 EXIT LOOP ENDDO 功能;当条件表达式的值为.T.时,重复执行 DO ENDDO 之间的语句序列,直到条件表达式的值为.F.时,结束循环操作。【程序说明】程序功能是比较从键盘输入的若干个数的大小,并输出其中的最大和最小值。【程序】SET TALK OFFCLEAINPUT“M=” TO M (4)DO WHILE .T. INPU
12、T“N” TO N (5) DNENDIFIF XN (6)ENDIFYN“A” (7) WAIT“是否继续输入(Y继续/N结束)”TO YNENDDO (8) EXIT ENDIFENDDO?“最大的数是:”,D?“最小的数是:”,XSET TALK ON(分数:10.00)A.STORE M,0 TO D,XB.STORE 0 TO D,XC.STORE M TO D,X D.STORE 0,0 TO D,X解析:解析:把输入的第一个 M值赋给指向最大值 D变量和指向最小值 X变量。A.IF DN B.IF DNC.IF DND.IF DN解析:解析:如果 N大于 D,则把 N赋给最大值变
13、量 D。A.XNB.XN C.NXD.N#X解析:解析:此 IF语句功能是判断最小值,使变量 X始终指向最小值。如果 X大于 N,则把 N赋给变量X,即 XN。A.DO WHILE UPPER (YN)“Y”B.DO WHILE UPPER(YN)“N”C.DO WHILE UPPER(YN)“Y” OR UPPER(YN)“N”D.DO WHILE UPPER(YN)“Y” AND UPPER(YN)“N” 解析:解析:UPPER(字符表达式)的功能:将小写字母转换为大写。 此空功能是若 YN转化为大写字母不为 Y也不为 N时,执行 DO WHILE循环。A.IF LOWER(YN)“Y”B
14、.IF LOWER(YN)=“N” C.IF LOWER(YN)“y”D.IF LOWER(YN)=“N”解析:解析:LOWER(字符表达式)的功能:将大写字母转换为小写。 此空功能是判断 DO WHILE循环何时结束。 继续查找命令的格式:CONTINUE【程序说明】设职工表文件的内容是: 编号 姓名 部门 工资 奖金 1001 常胜 车间 850 200 1002 汪洋 车间 700 200 1003 陆地 车间 680 200 2001 林木 设计科 900 150 2002 陈路 设计科 1200 150 3004 孙海 财务科 900 100 3006 李扬 财务科 1300 100
15、 3010 张虎 财务科 1100 100【程序】USE 职工AVERAGE 工资 TO a FOR 部门“财务科” & 变量 a 的值是 (9)INDEX ON 工资 TO IDX1GO 1? 编号,姓名 & 显示结果是 (10)SEEK 900SKIP?工资+奖金 &显示结果是 (11)LOCATE FOR 工资900CONTINUE? 姓名 & 显示结果是 (12)SUM 奖金 TO b FOR SUBSTR (编号,1,1)“1” &变量 b的值是 (13)(分数:10.00)A.1300B.1200C.1100 D.11400解析:解析:此语句的功能是求财务科工资的平均值,从职工表文
16、件中可知平均值为(900+1300+1100)/3 =1100。A.1001 常胜 B.1002 汪洋C.1003 陆地D.无任何显示解析:解析:GO 1 的功能是指向职工表的第一条记录。此条记录的编号和姓名分别是 1001,常胜。A.1200B.1000 C.1400D.1350解析:解析:本程序是以工资字段建立的索引,SEEK 900 功能是查找工资为 900的记录,紧接着 SKIP表示查找下一条工资为 900的记录,所以此时定位到第二条工资为 900的记录,可知工资+奖金为 900+100=1000。A.林木B.陈路C.孙海 D.李扬解析:解析:顺序查找命令的格式:LOCATE FOR条
17、件WHILE条件范围。 其功能:按表的排列顺序依次搜索满足条件的第一条记录。 功能:配合 LOCATE命令在表的剩余部分寻找其他满足条件的记录。A.200B.400C.600 D.800解析:解析:本语句的功能是查找编号的第 1个字符为“1”的记录,并求它们的奖金和,从表中可知前三条记录满足条件,它们的奖金和为 200+200+200600。【程序】STORE“123.”TO xSTORE“45” TO ySTORE“A45” TO z? VAL(x+ y),VAL(x+ z),VAL(z+ y)(分数:6.00)(1).VAL(x+ y)的输出结果为 _。(分数:2.00)A.123B.-1
18、23C.-123.4D.-123.45 解析:(2).VAL(x+ z)的输出结果为 _。(分数:2.00)A.123B.-123 C.-123.45D.0解析:(3).VAL(z+ y)的输出结果为 _。(分数:2.00)A.123B.-123C.-123.45D.0 解析:解析:字符串转换成数值的格式:VAL(字符表达式) 功能:将由数字符号(包括正负号、小数点)组成的字符型数据转换成相应的数值型数据。若字符串内出现非数字字符,那么只转换前面部分;若字符串的首字不是数字符号,则返回数值零,但忽略前导空格。【程序】SET TALK OFFN=325X“ABCDEFGHIJ”Y=“甲乙丙丁戊已
19、.”NCALLTRIM(STR(N,6)LLEN(NC)N22*L-1NN“K1DO WHILE KL N1=INT(VAL(SUBSTR(NC,K,1)* 2+1) NNNN+SUBSTR(X,N1,1) NNNN+SUBSTR(Y,N2,2) ? N1,N2,NN N2N2-2 KK+1ENDDO ? KSET TALK ON(分数:8.00)(1).第一次输出结果为 _。(分数:2.00)A.7 4G 甲B.7 5G乙C.7 5G 丙 D.7 4G乙解析:解析:当输入 N为 325时,NC325,L3,N2=5,DO WHILE 的判断条件为 K=3,当 K1 时,N17,第一个 NN为
20、 G,下一个 NN为 G丙,所以第一次输出 7 5G丙。继续向下执行 N2 3,K=2。(2).第二次输出结果为 _。(分数:2.00)A.7 4G 丙 EB.5 3G 丙 E 乙 C.7 3G 丙 E 乙D.3 G 丙乙甲解析:解析:按上题分析知此时 N2=3,K=2,当 K2 时,N1=5,第一个 NN为 G丙 E,第二个为 G丙 E 乙,所以第二次输出 5 3G丙 E乙。继续向下执行 N2=1,K=3。(3).第三次输出结果为 _。(分数:2.00)A.11 1G 丙 E 乙甲 B.11 3G 丙 E 乙甲C.7 3G 丙 E 乙甲D.7 3G 丙 E 乙解析:解析:按上题分析知此时 N
21、21,K3,当 K=3时,N1=11,第一个 NN为 G丙 E乙,第二个 NN 为G丙 E乙甲,所以第三次输出 11 1G丙 E乙甲,继续向下执行 N2=-1,K4。(4).K的输出结果为 _。(分数:2.00)A.2B.3C.4 D.5解析:解析:按上题分析知此时 K=4,不满足 DO WHILE的循环条件 K3,所以退出 DO WHILE循环,输出 K值为 4。【程序】* MAIN. PRG * PROC1. PRGSET TALK OFF PROC P1X10 PARA S1,S2Y=5 S1S1*5SET PROC TO PROC1 S2=S2+5DO P1 WITH X,Y RETU
22、RN PROC P2? X,Y &第一次显示 PARAX,YX10 X5Y=5 Y=X+20DO P2 WITH X,Y RETURN? X,Y &第二次显示 X=10Y5DO P1 WITH X+5,Y? X,Y &第三次显示X10Y5DO P2 WITH X,Y+5? X,Y &第四次显示 SET PROC TOSET TALK ONRETURN(分数:8.00)(1).第一次显示结果为 _。(分数:2.00)A.10 5B.10 50C.50 5D.50 10 解析:解析:调用 P1时,实参变量 X,Y 按引用传递给 P1中的形参 S1,S2,在子程序中 S1S1* 5=105 50,S
23、25+510。按引用传递时,X,Y 值随着传给子程序 P1中对应变量 S1,S2 的变化而变化。(2).第二次显示结果为 _。(分数:2.00)A.10 5B.5 25 C.5 10D.10 20解析:解析:调用 P1时,实参 X,Y 按引用传递给 P2中的形参 X,Y,在子程序 P2中,X5,Y=25,所以主程序中 X,Y 的值也分别为 5,25。(3).第三次显示结果为 _。(分数:2.00)A.10 5B.75 5C.75 10D.10 10 解析:解析:“DO P1 WHTH X+5,Y”语句调用 P1时,实参 X+5是按值传递给 P1中的形参 S1,在子程序中 S175,S210,按
24、值传递时,主程序中的 X值不随着传给 P1中的参数 S1的值的变化而变化。所以主程序中 X仍为 10,Y 值为 10。(4).第四次显示结果为 _。(分数:2.00)A.5 5 B.5 25C.10 5D.10 30解析:解析:“DO P2 WITH X,Y+5”语用调用 P2时,实参 Y+5是按值传递给 P1中的形参 Y,在 P1中Y=25,按值传递时,主程序中的 Y值不随着 P2中 Y值的变化而变化,所以调用 P2后,Y 值仍为 5,而 X值已变化成 5。二、编写程序题(总题数:1,分数:2.00)2.编制一个表单完成汉字数字时钟显示功能(界面如下图所示)。要求:(1)表单将自动以 1s为
25、间隔动态显示系统时间。(2)时、分和秒要求用汉字说明。(3)将计时器控件的 Interval属性设置为 1 000(1s)。(分数:2.00)_正确答案:(正确答案:表单的新添方法 dxzh的代码: PARA D C“一二三四五六七八九十” S=“” DO CASE CASE D=10 SSUBSTR(C,2*D+1,2) CASE D19 SRIGHT(C,2)+IIF(MOD(D,10)0,“”,SUBSTR(C,2 * MOD(D,10)+1,2) OTHERWISE S=SUBSTR(C,2* INT(D/10)+1,2)+RIGHT(C,2)+; HF(MOD(D,10)=0,“”,SUBSTR(C,2* MOD(D,)解析: