1、程序调试技术及答案解析(总分:44.00,做题时间:90 分钟)一、B选择题/B(总题数:12,分数:24.00)1.如果将一个表单文件设置为“排除”状态,那么它_。(分数:2.00)A.不参加连编B.排除在应用程序之外C.本次不编译D.不显示编译错误2.有关过程调用叙述正确的是_。(分数:2.00)A.打开过程文件时,其中的主过程自动调入内存B.同一时刻只能打开一个过程,打开新的过程后,旧的过程自动关闭C.用命令 DOprocWITHparmlist调用过程时,过程文件无须打开就可调用其中的过程D.用命令 DOprocWITH 勺 armlistmfile调用过程时,过程文件无须打开,就可调
2、用其中的过程3.连续执行以下命令之后,最后一条命令的输出结果是_。 SETEXACT OFF X=“A“ ?IIF(“A“=C,X-“BCD“,X+“BCD“)(分数:2.00)A.AB.BCDC.ABCDD.ABCD4.要连编程序,必须通过_。(分数:2.00)A.程序编辑器B.项目管理器C.应用程序生成器D.数据库设计器5.有如下程序: *主程序: P.prg* 子程序: Pl.prg* SET TALK OFF X2=X2+1 STORE 2 TO X1,X2,X3 DO P2 X1=X1+1 X1=X1+1 DO P1 RETURN ?X1+X2+X3* 子程序: P2.prg* RE
3、TURN X3=X3+1 SET TALK ON RETURN TO MASTER 执行命令 DOP后,屏幕显示的结果为_。(分数:2.00)A.3B.4C.9D.106.图书数据库文件中有字符型字段“分类号”。要求将分类号中以字母 A开头的图书记录打上删除标记,在执行了 SETTALKOFF的情况下,下面命令中错误的是_。(分数:2.00)A.DELETE FOR AT(“A“,分类号)=1B.DELETE FOR AT分类号=“A“C.DELETE FOR SUBSTR(分类号,1,1)=“A“D.DELETE FOR“A“$分类号7.下列命令中,不能用作连编命令是_。(分数:2.00)A
4、.BUILD PROJECTB.BUILD FORMC.BUILD EXED.BUILD APP8.如果将一个数据表设置为“包含”状态,那么系统连编后,该数据表将(分数:2.00)A.成为自由表B.包含在数据库之中C.可以随时编辑修改D.不能编辑修改9.使用“调试器”调试程序时,用于显示正在调试的程序文件的窗口是_。(分数:2.00)A.局部窗口B.跟踪窗口C.调用堆栈窗口D.监视窗口10.设有如下程序文件: SET TALK OFF CLEAR DIMENSION a(2,3) i=1 DO WHILE i=2 j=1 DO WHILE j=3 a(i,j)=i+j ?a(i,j) j=j+
5、1 ENDDO ? i=i+1 ENDDO SET TALK ON RETURN 执行此程序,程序的运行结果为_。(分数:2.00)A.234B.123 345 345C.123D.234 246 45611.通过连编可以生成多种类型的文件,却不能生成_。(分数:2.00)A.PRG文件B.APP文件C.DLL文件D.EXE文件12.不能够作为应用程序系统中的主程序的是_。(分数:2.00)A.表单B.菜单C.数据表D.程序二、B填空题/B(总题数:10,分数:20.00)13.要从项目“学生项目”连编得到一个名为“学生档案管理”可执行文件,可以在命令窗口输入命令BUILD 1FROM 2。(
6、分数:2.00)填空项 1:_14.运行 XY.PRG程序后,将在屏幕上显示如下乘法表: 1)1 2)2 4 3)3 6 9 4)4 8 12 16 5)5 10 15 20 25 6)6 12 18 24 30 36 7)7 14 21 28 35 42 49 8)8 16 24 32 40 48 56 64 9)9 18 27 36 45 54 63 72 81 请对下面的程序填空: *计算乘法 XY.PRG* SET TALK OFF CLEAR FORJ=1 TO9 ?STR(J,2+) FOR_ ?_ ENDFOR ? ENDFOR RETURN(分数:2.00)填空项 1:_15.
7、计算前若干个自然数之和,直到和数超过 10000为止。 store 0 to n,s do while .T. n=n+1 s=s+n if s10000 else endif enddo ?n,s(分数:2.00)填空项 1:_16.计算并输出 9的阶乘。 jx=1 n=1 do while jx=jx*n enddo ?9!=+1*2*3*4*5*6*7*8*9=+(分数:2.00)填空项 1:_17.计算 1!+2!+3!+10!的值。 set talk off s=0 for n=1 to 10 t=1 _ t=t*m endfor _ end for ?s(分数:2.00)填空项 1
8、:_18.计算 1+3+5+99的奇数和。 set talk off x=0 y=0 do while xlO0 _ if int(x/2)=x/2 else _ endif enddo ?y return(分数:2.00)填空项 1:_19.输出 50200 之间的所有素数,一行显示 5个,并求和。 set talk off clear n=50 j=0 S=0 _ i=2 do while in if int(n/i)=n/i exit endif _ enddo ifi=n ?str(n,5) S=S+N j=j+l _ ? endif endif n=n+1 enddo ?“S=“,S
9、 return(分数:2.00)填空项 1:_20.打印乘法口诀的程序。 clear for m=1 to 9 for n=1 to ?str(m, 1)+“*“+str(n,1 )+“=“+str(s,2)+“ endfor ? endfor return(分数:2.00)填空项 1:_21.FORI=ITO 10 ?I I=I+1 ENDFOR 以下循环体共执行了_次。(分数:2.00)填空项 1:_22.计算 110 之间的被 2整除和被 3整除的数之和。 set talk off clear store 0 to x,y, s1,s2,s3 do while x10 _ do case
10、 case int(x/2)=x/2 s1=s1+x/2 case mod(x,3)=0 s2=s2+x/3 case_ s3=s3+1 _ enddo ?s 1,s2 ?s3(分数:2.00)填空项 1:_程序调试技术答案解析(总分:44.00,做题时间:90 分钟)一、B选择题/B(总题数:12,分数:24.00)1.如果将一个表单文件设置为“排除”状态,那么它_。(分数:2.00)A.不参加连编 B.排除在应用程序之外C.本次不编译D.不显示编译错误解析:2.有关过程调用叙述正确的是_。(分数:2.00)A.打开过程文件时,其中的主过程自动调入内存B.同一时刻只能打开一个过程,打开新的过
11、程后,旧的过程自动关闭C.用命令 DOprocWITHparmlist调用过程时,过程文件无须打开就可调用其中的过程 D.用命令 DOprocWITH 勺 armlistmfile调用过程时,过程文件无须打开,就可调用其中的过程解析:3.连续执行以下命令之后,最后一条命令的输出结果是_。 SETEXACT OFF X=“A“ ?IIF(“A“=C,X-“BCD“,X+“BCD“)(分数:2.00)A.AB.BCDC.ABCDD.ABCD 解析:4.要连编程序,必须通过_。(分数:2.00)A.程序编辑器B.项目管理器 C.应用程序生成器D.数据库设计器解析:5.有如下程序: *主程序: P.p
12、rg* 子程序: Pl.prg* SET TALK OFF X2=X2+1 STORE 2 TO X1,X2,X3 DO P2 X1=X1+1 X1=X1+1 DO P1 RETURN ?X1+X2+X3* 子程序: P2.prg* RETURN X3=X3+1 SET TALK ON RETURN TO MASTER 执行命令 DOP后,屏幕显示的结果为_。(分数:2.00)A.3B.4C.9 D.10解析:6.图书数据库文件中有字符型字段“分类号”。要求将分类号中以字母 A开头的图书记录打上删除标记,在执行了 SETTALKOFF的情况下,下面命令中错误的是_。(分数:2.00)A.DEL
13、ETE FOR AT(“A“,分类号)=1B.DELETE FOR AT分类号=“A“C.DELETE FOR SUBSTR(分类号,1,1)=“A“D.DELETE FOR“A“$分类号 解析:7.下列命令中,不能用作连编命令是_。(分数:2.00)A.BUILD PROJECTB.BUILD FORM C.BUILD EXED.BUILD APP解析:8.如果将一个数据表设置为“包含”状态,那么系统连编后,该数据表将(分数:2.00)A.成为自由表B.包含在数据库之中C.可以随时编辑修改D.不能编辑修改 解析:9.使用“调试器”调试程序时,用于显示正在调试的程序文件的窗口是_。(分数:2.
14、00)A.局部窗口B.跟踪窗口 C.调用堆栈窗口D.监视窗口解析:10.设有如下程序文件: SET TALK OFF CLEAR DIMENSION a(2,3) i=1 DO WHILE i=2 j=1 DO WHILE j=3 a(i,j)=i+j ?a(i,j) j=j+1 ENDDO ? i=i+1 ENDDO SET TALK ON RETURN 执行此程序,程序的运行结果为_。(分数:2.00)A.234 B.123 345 345C.123D.234 246 456解析:11.通过连编可以生成多种类型的文件,却不能生成_。(分数:2.00)A.PRG文件 B.APP文件C.DLL
15、文件D.EXE文件解析:12.不能够作为应用程序系统中的主程序的是_。(分数:2.00)A.表单B.菜单C.数据表 D.程序解析:二、B填空题/B(总题数:10,分数:20.00)13.要从项目“学生项目”连编得到一个名为“学生档案管理”可执行文件,可以在命令窗口输入命令BUILD 1FROM 2。(分数:2.00)填空项 1:_ (正确答案:EXE 学生档案管理,学生项目)解析:14.运行 XY.PRG程序后,将在屏幕上显示如下乘法表: 1)1 2)2 4 3)3 6 9 4)4 8 12 16 5)5 10 15 20 25 6)6 12 18 24 30 36 7)7 14 21 28
16、35 42 49 8)8 16 24 32 40 48 56 64 9)9 18 27 36 45 54 63 72 81 请对下面的程序填空: *计算乘法 XY.PRG* SET TALK OFF CLEAR FORJ=1 TO9 ?STR(J,2+) FOR_ ?_ ENDFOR ? ENDFOR RETURN(分数:2.00)填空项 1:_ (正确答案:FOR K=1 TO J, STR(J*K,6) (注:其中的 K可以是其他字母))解析:15.计算前若干个自然数之和,直到和数超过 10000为止。 store 0 to n,s do while .T. n=n+1 s=s+n if
17、s10000 else endif enddo ?n,s(分数:2.00)填空项 1:_ (正确答案:exit; loop)解析:16.计算并输出 9的阶乘。 jx=1 n=1 do while jx=jx*n enddo ?9!=+1*2*3*4*5*6*7*8*9=+(分数:2.00)填空项 1:_ (正确答案:n10; n=n+1; ltrim(str(jx))解析:17.计算 1!+2!+3!+10!的值。 set talk off s=0 for n=1 to 10 t=1 _ t=t*m endfor _ end for ?s(分数:2.00)填空项 1:_ (正确答案:form=
18、1 to n s=s+t)解析:18.计算 1+3+5+99的奇数和。 set talk off x=0 y=0 do while xlO0 _ if int(x/2)=x/2 else _ endif enddo ?y return(分数:2.00)填空项 1:_ (正确答案:x=x+l; loop; y=y+x)解析:19.输出 50200 之间的所有素数,一行显示 5个,并求和。 set talk off clear n=50 j=0 S=0 _ i=2 do while in if int(n/i)=n/i exit endif _ enddo ifi=n ?str(n,5) S=S+
19、N j=j+l _ ? endif endif n=n+1 enddo ?“S=“,S return(分数:2.00)填空项 1:_ (正确答案:do whilen200; i=i+l; if int(j/5)=j/5)解析:20.打印乘法口诀的程序。 clear for m=1 to 9 for n=1 to ?str(m, 1)+“*“+str(n,1 )+“=“+str(s,2)+“ endfor ? endfor return(分数:2.00)填空项 1:_ (正确答案:m; s=n*n)解析:21.FORI=ITO 10 ?I I=I+1 ENDFOR 以下循环体共执行了_次。(分数:2.00)填空项 1:_ (正确答案:5)解析:22.计算 110 之间的被 2整除和被 3整除的数之和。 set talk off clear store 0 to x,y, s1,s2,s3 do while x10 _ do case case int(x/2)=x/2 s1=s1+x/2 case mod(x,3)=0 s2=s2+x/3 case_ s3=s3+1 _ enddo ?s 1,s2 ?s3(分数:2.00)填空项 1:_ (正确答案:x=x+l; int(x/2)x/2, endcase)解析: