《程序设计基础.doc》由会员分享,可在线阅读,更多相关《程序设计基础.doc(10页珍藏版)》请在金锄头文库上搜索。
1、第七章程序设计基础147第七章程序设计基础三、例题精解【例71】在Visual FoxPro中,用于建立和修改过程文件的命令为( )。A)MODIFY COMMAND B)MODIFY FILE C)MODIFY PROCEDURE D)以上A)和B)都可以解:过程文件也是.PRG文件,它的建立或修改与程序文件相同。MODIFY COMMAND 主要用于建立或修改程序和过程文件,若缺省扩展名,则默认.PRG;但它也可以用于创建文本文件,此时文件名要加.TXT。MODIFY FILE 主要用于建立或修改文本文件,若缺省扩展名,则默认.TXT;但它也可以用于创建程序和过程文件,此时文件名要加.PR
2、G。答:71D【例72】运行程序的DO命令不能调用的文件为( )。A).FXPB).APPC).PRGD).CDX解:在Visual FoxPro中,DO命令可以用于运行过程或程序文件(.PRG)、查询文件(.QPR)、菜单程序文件(.MPR)、应用程序文件(.APP)和可执行文件(.EXE)。若缺省扩展名,则默认.PRG。当使用DO命令运行程序文件时,若缺省扩展名,执行的优先顺序如下:.EXE(可执行文件).APP(应用程序文件).FXP(程序编译文件).PRG(源程序文件)。.CDX是结构化复合索引文件,不能脱离表文件而单独使用。答:72D【例73】下列关于交互语句的叙述中,正确的是( )
3、。A)INPUT语句只能接收字符串B)ACCEPT语句只能接收字符串C)ACCEPT语句可以接收任意类型的数据D)WAlT语句只能接收一个字符,而必须按ENTER键解:INPUT语句可输入除M和G型之外的类型的数据,键入数据后要回车;ACCEPT语句只能输入C型数据,输入的字符串不必加定界符,并要回车;WAlT语句只能输入单个C型字符,不必加定界符,也不必回车。答:73B【例74】下列关于RETURN语句的叙述中,错误的是( )。A)子程序的结尾必须是RETURN语句B)通常主程序的结尾不用CANCEL语句,而用RETURN语句C)自定义函数中可以不含RETURN D)在子程序中遇到RETUR
4、N TO MASTER语句,则直接返回到最高一级调用点。解:子程序的结尾必须是RETURN语句,否则被调用后无法返回调用点。RETURN语句的作用是逐级返回调用点。RETURN TO MASTER语句的作用是直接返回到最高一级调用点。调用函数的结果必须有一个返回值,自定义函数是通过RETURN 语句返回函数的值。答:74C【例75】下面关于LOOP与EXIT语句的叙述中,正确的是( )。A)LOOP与EXIT语句可以写在循环体外B)LOOP语句的作用是结束循环C)在循环体中,通常将LOOP与EXIT语句嵌套的选择语句中D)EXIT语句要受到循环条件的制约解:在循环体中,若遇到跳出循环语句EXI
5、T,则无条件结束循环,执行ENDDO的后继语句。若遇到短路语句LOOP,则不执行本次循环的余下语句,而返回循环起始句DO WHILE,重新判断下一次循环的条件。答:75C【例76】执行下面程序,结果是( )。CLEARFOR K=4 TO 1 STEP -1 ?SPACE(4-K) ?REPLICATE(*,2*K+1)ENDFOR?SPACE(4-K)+*RETURNA)*B)*C)*D) * * * * * * * * * * * * * * * * *解:循环变量K用于控制输出图案的行数;函数SPACE(4-K)用于控制每行的前导空格;函数REPLICATE(*,2*K+1)用于控制每行
6、输出*号的个数。答:76A【例77】下面关于过程调用的叙述中,正确的是( )。A)实参与形参的数量必须相等B)实参与形参的名称必须相同C)实参的数量可以多于形参的数量D)形参的数量可以多于实参的数量,多余的形参为逻辑假解:实参与形参的对应位置及数据类型要一致,但不一定名称要相同。形参的数目不能少于实参的数目,否则将出错。如果形参的数目多于实参的数目,那么多余的形参初值取.F.。答:77D【例78】下面程序运行的结果是( )。CLEARPUBLIC X,YX=10Y=100DO P8? X,Y&输出10BBB*过程P8PROCEDURE P8PRIVATE X&屏蔽上层同名的变量,使本模块X的不
7、上传X=50LOCAL Y&屏蔽上层同名的变量,Y与上下本模块都无关,Y初值为.F.DO P9&X的值在P9中被修改后,将带回P8? X,Y&输出AAA.F.RETURN*过程P9PROCEDURE P9X=AAAY=BBBRETURNA)10 BBBB)AAA BBBAAA 10010 100C)10 .F.D)AAA .F.AAA BBB10 BBB解:PUBLIC语句用于定义全局变量,它对所有层次的模块都有效,全局变量一旦建立就一直有效,即使程序运行结束也不会消失。PRIVATE语句用于定义私有变量,它对本模块及下属模块有效,私有变量屏蔽上层的同名变量,本模块运行结束,该变量即释放。LO
8、CAL语句用于定义局部变量,的作用域仅限于建立它的本模块,局部变量屏蔽上层的同名变量,本模块运行结束,该变量即释放。答:78D【例79】下面关于自定义函数的叙述中,正确的是( )。A)只能通过RETURN语句返回一个函数值B)不仅能通过RETURN语句返回一个函数值,还可以通过形参与变量实参间相互作用双向传递数据C)只能通过形参与变量实参间相互作用传递数据D)只能返回一个函数值和变量值解:若实参是常量或表达式,实参按值传递给形参,自定义函数只能通过RETURN语句返回一个函数值。若实参是内存变量,且SET UDFPARMS TO VALUE,实参按值传递给形参,自定义函数也只能通过RETURN
9、语句返回一个函数值。若实参是内存变量,且SET UDFPARMS TO REFERENCE,实参按地址传递给形参,变量实参的值将随着对应形参值的改变而改变,这样,自定义函数不仅可以通过RETURN语句返回一个函数值,还可以通过变量实参返回其他结果值,且有几个变量实参就可以返回几个变量值。答:79B四、习题精选(一)选择题1建立、修改、运行、打印程序文件的命令依次是( )。A)CREATE,MODIFY,DO,PRINTB)MODIFY COMMAND,MODIFY COMMAND,RUN,PRINTC)MODIFY COMMAND,MODIFY COMMAND,DO,TYPED)MODIFY
10、COMMAND,MODIFY COMMAND,DO,PRINT2要执行命令文件MAIN.PRG,应在命令窗口中输入( )。A)!MAINB)DO MAINC)MAIND)RUN MAIN3用WAlT命令给内存变量输入数据时,内存变量获得的数据是( )。A)任意长度的字符串B)一个字符串和一个回车符C)数值型数据D)一个字符4INPUT命令接收的数据类型有( )。A)C,NB)CC)D,LD)C,D,N,L5下列命令中,可以输入字符型数据的是( )。A)ACCEPTB)WAIT和ACCEPTC)INPUTD)以上三者皆可6以下不是注释命令的是( )。A)NOTEB)DELAREC)*D)&7在V
11、isual FoxPro中,程序设计的三种基本结构是( )。A)顺序,选择,逻辑B)顺序,选择,循环C)模块,转移,循环D)网状,选择,逻辑8设有表文件FILE.DBF,执行如下命令序列: SET DELETED OFF USE FILE LIST Recoed# 商品名 金额 1洗衣机3100.00 2电冰箱2300.00 321寸彩电1800.00 4空调机4100.00 GO 3 DELETE GO BOTTOM INSERT BLANK REPLACE 商品名 WITH 34寸彩电,金额 WITH 6000 SUM 金额 TO S ? S S的值应该是( )。A)11300B)1730
12、0C)11400D)155009有如下程序: INPUT TO A IF A=10 S=0 ENDIF S=1 ?S假定从键盘输入的A值是数值型,上面条件选择程序的执行结果是( )。A)0B)1C)由A的值决定D)程序出错10A,B,C均是数值变量,要求出其中最大的数并存人变量MAX中,下列正确的程序段是( )。A)MAX=IIF(IIF(AB,A,B)C,IIF(AB,A,B)C)B)IF ABC)IF AB MAX=A MAX=A ELSE IF MAXC MAX=B MAX=C ENDIF ELSE IF MAXB MAX=A IF MAXC MAX=A ELSE MAX=C ENDIF ENDIF11不属于循环结构的语句是( )。A)SCANENDSCANB)IFENDIFC)FORENDFORD)DO WHILEENDDO12在DO WHILE ENDDO循环结构中,EXIT命令的作