答案: DO〈命令文件名〉
[例14]有下列程序:
PARAMETER A,B,C,D
D=B* B-4*A*C
DO CASE
CASE D=O
CASE D〈O
D=O
CASE D〉O
D=2
CASE D=O
D=1
ENDCASE
在主程序中執(zhí)行如下命令:
STORE 2 TO A,C
DO SUB WITH A,B,C,D
?D
D的值為—————
分析:執(zhí)行主程序DO SUB WITH A,B,C,D時,把實參1,2,1,2傳遞給形參A,B,C,D。在執(zhí)行過程
SUB中語句D=B*B-4*A*C后的D值為O,然后執(zhí)行DO CASE/ENDCASE語句,條件CASE D=O成立,重新賦值D=1,
最后返回主程序時,把形參A,B,C,D的值1,2,1,1傳給對應(yīng)實參A,B,C,D此時D的值為1。
答案: 1
[例15]有如下程序:
STORE O TO N,S
DO WHILE.T.
N=N+1
S=S+N
IF N>=1O
EXIT
ENDIF
ENDDO
?”S=“+STR(S,2)
本程序的運行結(jié)果是—————
分析:本程序是無限次循環(huán)程序,有N的值來決定何時停止循環(huán)。程序的功能是求1到1O之間的所有整數(shù)之
和?傻贸绦蜻\行的結(jié)果為S=55
答案:S=55
[例16]有如下程序:
*主程序:MAIN。PRG
SET TALK OFF
CLEAR
S=0
DO SUB WITH 10,S
?S
RETU
*子程序SUB。PRG
PARAMETERS D1,D2
D1=D1+D1
D2=D1*2
RETURN
執(zhí)行主程序后S的值是__________。
分析:DO...WITH語句中的實在參數(shù)除了可以是變量外,還可以是任意有數(shù)或表達式。當(dāng)為常數(shù)時,
直接把值傳給對應(yīng)的形參;當(dāng)為表達式時,先求其值后把其值傳給形參。主程序中變量S的初值為0,
S調(diào)用子程序SUB,將數(shù)值10和0對應(yīng)傳給子程序中的參數(shù)D1和D2,執(zhí)行D1=D1+D1后,D1=20,再執(zhí)行D2
=D1*2,D2=40,返回到主程序時D2將值回傳給S。因此,在主程序執(zhí)行?S時,屏幕顯示40。
答案:40
[例17]設(shè)成績庫CJK.DBF中“數(shù)學(xué)”(數(shù)值型字段)這門課程的學(xué)分為4,其學(xué)分計算的方法如下:
數(shù)學(xué)>=90,學(xué)分值為4
80<=數(shù)學(xué)<90,學(xué)分值為3
70<=數(shù)學(xué)<80,學(xué)分值為2
60<=數(shù)學(xué)<70,學(xué)分值為1
數(shù)學(xué)<60,學(xué)分值為0
計算任一學(xué)生數(shù)學(xué)這門課程的學(xué)分值的程序如下:
SET TALK OFF
USE CJK
ACCEPT "輸入學(xué)號:" TO XH
XF=0
LOCATE FOR學(xué)號=XH
DO CASE
CASE______
XH=40
CASE______
XH=3
CASE__________
XF=2
CASE__________
XF=1
OTHERWISE
XF=0
ENDCASE
?"學(xué)號:",XH
?"數(shù)學(xué)的學(xué)分值:",XF
USE
RETURN
分析:本程序的考核要點是DO CASE分支語句
答案:數(shù)學(xué)>=90 數(shù)學(xué)>=80 數(shù)學(xué)>=70 數(shù)學(xué)>=60
【例18】參數(shù)的兩種傳遞方法是_______和_______。
分析:調(diào)用程序模塊時,如果實參是常量或一般形式的表達式,系統(tǒng)會計算出實參的值,并把它們賦值
給相應(yīng)的形參變量。這種情形稱為按值傳遞。如果實參是變量,那么傳遞的將不是變量的值,而是變量
的地址。這時形參和實參實際上是同一個變量,在模塊程序中對形參變量值的改變,同樣是對實參變量
值的改變,這種情形稱為引用傳遞。
答案:TO VALUE(按值傳遞),REFERENCE(按引用傳遞)
【例19】填空完成下列程序,要求該程序能夠三次從右向左顯示變量S內(nèi)容的字幕程序。
CLEAR
S=SPACE(80)+"關(guān)系數(shù)據(jù)庫語言VFP計算機2級教程。關(guān)系數(shù)據(jù)庫."
+SPACE(60)
N=0
______
I=1
DO WHILE I<160
@20,0SAY SUBSTR(S,I,80)
H=INKEY(0.1,"h")
I=I+2
_____
_____
ENDDO
分析:表達式(1)是給出循環(huán)的條件,表達試(3)給出循環(huán)體的遞增形式。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |