《VFP》第五章习题全解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五章
一、填空
1、以下程序的功能是将英文字母组成的字符串加密.加密的算法是:
如果是大写字母,用原字母后面的第4个字母代替原字母,
否则用原字母后的第2个字母代替原字母,如原文"China",加密后的密文是"Gjkpc", 完善下列程序:
m=space(0)
c="China"
for i=1 to 【 len(c)】
nc=asc(substr(c,I,1))
if nc>64 【 and】 nc<91 &&该字母的ASC值在64之91之间,表明该字母是大写 m=m+【chr(nc+4)/ chr(4+nc)】
else
m=m+chr(nc+2)
endif
endf
2、完善下列程序,其功能是显示如下所示的文字图形.
金
字字
大大大
宝宝宝宝
塔塔塔塔塔
【程序清单】
CLEAR
c="金字大宝塔"
n=LEN(c)/2
FOR i=1 TO n
?SPACE(70-i)
FOR j=1 【TO i】
?? SUBS(C,2*i-1,2)
=INKEY(0.5)
ENDFOR
ENDFOR
3、请写出x的值【 30】,y值是【 -2】
X=26
y=0
if int(x/2)=x/2
y=mod(x,3)
x=x+4
endif
if int(x/3)=x/3
y=Mod(x,-4)
endif
? x,y
4、如果当前日期是2000年4月1日,并且命令 ?date()在屏幕上返回 04/01/00,
则命令行 ?date()+10在屏幕上返回的值为【 04/11/00】
5、已知N="1",M="2",X12="GOOD",则表达式X&N&M的值为【 GOOD】
6、已知有三个文件分别程序文件、查询文件、表单文件,文件名都是a,
请问运行程序文件的命令是【 do a】、
运行查询文件的命令是【do a.qpr】、
运行表单文件的命令是【 do form a】
7、执行下列程序后,输出到屏幕的结果为【 3】。
【程序清单】
CLEAR
cstring="VisualFoxPro"
nresult=0
m=LEN(cstring)
FOR n=1 to m
c=SUBSTR(cstring,n,1)
IF !BETWEEN(ASC(c),ASC("A"),ASC("Z"))
LOOP
ENDIF
nresult=nresult+l
ENDFOR
?nresult
8、完善下列自定义函数STR_RV(),其功能是将一个字符串(假设所有字符均为ASCII和
GB2312字符集中的字符)进行"反序".例如,STR_RV("ABCD")的返回值为"DCBA".
【程序清单】
FUNCTION str_rv()
PARAMETERS c
P=SPACE(O)
DO WHILE LEN(C)>0
x=ASC(【LEFT(c,1)/SUBSTR(c,1,1)/ SUBS(c,1,1)】)
IF x>127 &&ASCII码值大于127的字符为汉字(x为半个汉字的机内码) i=2
ELSE
i=1
ENDIF
P=LEFT(C,i)+P
C=SUBSTR(c,i+1)
ENDDO
【 RETURN P/ RETU P】
ENDFUNC
9、在Visual FoxPro中,基类的事件集合是固定的,不能进行扩充.基类的最小事件集包括
Init 事件、Destroy 事件和【error 】事件
10、如果2002年3月18号是星期一,则以下命令在屏幕上显示【 2】
x={^2002/03/18}
?dow(x)
11、完善程序题.下列程序的功能是统计一个字符串中各个字符的个数(假设字符串仅由大写
英文字母A,B,C,D组成):
cStr='AABBDDCABCDAADBCAACCDDDDBB' &&字符串赋初值
STORE 0 TO nA,nB,nC,nD, &&计数变量
for i=1 to 【 len(cStr)】
C=LEFT(【 cStr,1】)
do case
case C="A"
nA=nA+1
case C="B"
nB=nB+1
case C="C"
nC=nC+1
case C="D"
nD=nD+1
【endcase/ ENDC 】
EndF
12、完善下列程序,是程序的结果如下图所示
1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9
2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18
3*3=9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27
4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36
5*5=25 5*6=30 5*7=35 5*8=40 5*9=45
6*6=36 6*7=42 6*8=48 6*9=54
7*7=49 788=56 7*9=63
8*8=64 8*9=72
9*9=81
*****程序*****
CLEAR
FOR i=1 TO 9
FOR j=1 TO 9
If i<=j
?? STR(I,1)+"*"+STR(j,1)+"="+【str(i*j,2)】 +SPACE(2)
ENDIF
ENDFOR
【?】
ENDFOR
13、已知在命令行输入 ?at("e", "Hello everyone!",3)其返回值为9,
则?at("e", "Hello everyone!",2)返回值为【 7】
14、下面程序执行以后,屏幕上显示【.f.】
x=.t.
y=.f.
z=not(x and (y or x))
?z