《VFP》 第五章习题.docx
- 文档编号:10792495
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:30
- 大小:26.45KB
《VFP》 第五章习题.docx
《《VFP》 第五章习题.docx》由会员分享,可在线阅读,更多相关《《VFP》 第五章习题.docx(30页珍藏版)》请在冰点文库上搜索。
《VFP》第五章习题
第五章
一、填空
1、以下程序的功能是将英文字母组成的字符串加密.加密的算法是:
如果是大写字母,用原字母后面的第4个字母代替原字母,
否则用原字母后的第2个字母代替原字母,如原文"China",加密后的密文是"Gjkpc",
完善下列程序:
m=space(0)
c="China"
fori=1to【len(c)】
nc=asc(substr(c,I,1))
ifnc>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
FORi=1TOn
?
SPACE(70-i)
FORj=1【TOi】
?
?
SUBS(C,2*i-1,2)
=INKEY(0.5)
ENDFOR
ENDFOR
3、请写出x的值【30】,y值是【-2】
X=26
y=0
ifint(x/2)=x/2
y=mod(x,3)
x=x+4
endif
ifint(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,
请问运行程序文件的命令是【doa】、
运行查询文件的命令是【doa.qpr】、
运行表单文件的命令是【doforma】
7、执行下列程序后,输出到屏幕的结果为【3】。
【程序清单】
CLEAR
cstring="VisualFoxPro"
nresult=0
m=LEN(cstring)
FORn=1tom
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".
【程序清单】
FUNCTIONstr_rv()
PARAMETERSc
P=SPACE(O)
DOWHILELEN(C)>0
x=ASC(【LEFT(c,1)/SUBSTR(c,1,1)/SUBS(c,1,1)】)
IFx>127&&ASCII码值大于127的字符为汉字(x为半个汉字的机内码)
i=2
ELSE
i=1
ENDIF
P=LEFT(C,i)+P
C=SUBSTR(c,i+1)
ENDDO
【RETURNP/RETUP】
ENDFUNC
9、在VisualFoxPro中,基类的事件集合是固定的,不能进行扩充.基类的最小事件集包括Init事件、Destroy事件和【error】事件
10、如果2002年3月18号是星期一,则以下命令在屏幕上显示【2】
x={^2002/03/18}
?
dow(x)
11、完善程序题.下列程序的功能是统计一个字符串中各个字符的个数(假设字符串仅由大写英文字母A,B,C,D组成):
cStr='AABBDDCABCDAADBCAACCDDDDBB'&&字符串赋初值
STORE0TOnA,nB,nC,nD,&&计数变量
fori=1to【len(cStr)】
C=LEFT(【cStr,1】)
docase
caseC="A"
nA=nA+1
caseC="B"
nB=nB+1
caseC="C"
nC=nC+1
caseC="D"
nD=nD+1
【endcase/ENDC】
EndF
12、完善下列程序,是程序的结果如下图所示
1*1=11*2=21*3=31*4=41*5=51*6=61*7=71*8=81*9=9
2*2=42*3=62*4=82*5=102*6=122*7=142*8=162*9=18
3*3=93*4=123*5=153*6=183*7=213*8=243*9=27
4*4=164*5=204*6=244*7=284*8=324*9=36
5*5=255*6=305*7=355*8=405*9=45
6*6=366*7=426*8=486*9=54
7*7=49788=567*9=63
8*8=648*9=72
9*9=81
*****程序*****
CLEAR
FORi=1TO9
FORj=1TO9
Ifi<=j
?
?
STR(I,1)+"*"+STR(j,1)+"="+【str(i*j,2)】+SPACE
(2)
ENDIF
ENDFOR
【?
】
ENDFOR
13、已知在命令行输入?
at("e","Helloeveryone!
",3)其返回值为9,
则?
at("e","Helloeveryone!
",2)返回值为【7】
14、下面程序执行以后,屏幕上显示【.f.】
x=.t.
y=.f.
z=not(xand(yorx))
?
z
15、执行以下程序段后,屏幕显示的运行结果为【15】.
【程序清单】
CLEAR
x=12
DoWHILE.T.
x=x+1
IFx=INT(x/4)*5
?
?
x
ELSE
LOOP
ENDIF
IFX>10
EXIT
ENDIF
ENDD0
16、使程序的运行结果如下所示:
1*9+2=11
12*9+3=111
123*9+4=1111
1234*9+5=11111
12345*9+6=111111
123456*9+7=1111111
1234567*9+8=11111111
12345678*9+9=111111111
123456789*9+10=1111111111
完善下列程序:
SETTALKOFF
CLEAR
x=space(0)
Fori=1to【9】
x=x+allt(str(i))
?
STR(VAL(x))+"*9+"+【allt(str(I+1))/str(I+1)】+"="+ALLT(STR(VAL(x)*9+i+1))
ENDFOR
17、使用LOCAL、PRIVATE和PUBLIC关键字可以指定变量的作用域.
在命令窗口中创建的任何变量或数组均为【全局/publ】性变量.
18、函数LEN(STR(12345678901))的返回值为【10】,函数LEN(DTOC(DATE()))的返回值为【8】
19、函数或过程的参数可以是变量或数组元素,并可以通过值或引用传递.如果希望自定义函数修改参数,并将修改后的值返还给主程序,则应通过【引用】传递函数.
20、设有一表文件xs.dbf且已在当前工作区中打开,则使用命令COPYTO
【xstypexls/xsxls】,可以将该表的数据复制到Excel文件xs.xls中.
21、在自定义函数中,定义形式参数的关键字为【parameters/para】
22、在VFP中,每个对象都具有属性,以及与之相关的【事件和方法】.其中,属性是定义对象的特征或某一方面的行为.
23、下面有两段程序代码,它们的功能【相同】(注:
答"相同"或"不相同").
【程序一清单】
nSum=0
p=1
FORi=1TO10
p=p*i
nSum=nSum+p
ENDFOR
?
nSum
【程序二清单】
nSum=0
FORi=1to10
nSum=nSum+fJC(i)
ENDFOR
?
nSum
FUNCTIONfJC
PARAMETERSx
p=1
FORn=1TOx
p=P*n
ENDFOR
RETURNp
ENDFUNC
24、完善程序题.下列自定义函数DeleteSpace()的功能是将一个字符串中的所有空格删除:
FUNCTIONDeleteSpace
PARAMETERScStr
cResult=SPACE(0)
FORn=1TO【len(cstr)】
IFSUBSTR(cStr,n,1)=SPACE
(1)
【loop】
ENDIF
cResult=cResult+SUBSTR(cStr,n,1)
ENDFOR
RETURN【cResult】
ENDFUNC
25、实现如下表达式的和:
1+3+5+7+9+11,请完善如下程序:
s=0
ForI=1to11
ifmod(I,2)=0
【LOOP】
EndIf
s=s+i
EndFor
?
s
26、完善下列程序,其功能是统计一个仅由数字组成的字符串中各种数字字符的个数:
Clear
cStr="110102342245676893319"
Store0Ton0,n1,n2,n3,n4,n5,n6,n7,n8,n9
DowhileLen(cStr)>0
C=Left(cStr,1)
n&C=【n&c.+1/n&c+1】
cStr=【SUBSTR(cStr,2)/SUBS(cStr,2)】
Enddo
?
n0,n1,n2,n3,n4,n5,n6,n7,n8,n9
27、以下程序产生1000个0-100之间的随机整数,并且统计互不相同的数据个数.
CLEAR
n=1000
DIMENSIONx(n),p(n)&&数组P用于存储数是否相同的标识
FORi=1T0n
x(i)=INT(RAND()*100)
ENDFOR
s=O
FORi=1T0n-1
FORj=i+lTOn
IFx(i)=x(j)
p(i)=.T.
【Exit】
ENDIF
ENDFOR
ENDFOR
FORi=1TOn
IF!
p(i)
s=s+1
ENDIF
ENDFOR
?
s
28、完善下列程序,以实现通过字符串变量操作竖向显示"天长地久"、横向显示"地久天长"的功能.程序清单如下:
SETTALKOFF
STORE"天长地久"TOch
CLEAR
n=1
DOWHILEn<8
?
substr【(ch,n,2)】
n=n+2
ENDDO
?
substr【(ch,5,4)/(ch,5)】
?
?
SUBSTR(ch,1,4)
29、一只球从100米的高度自由落下,每次落地后反弹回原高度的一半.下列程序的功能是:
计算并显示当它在第10次落地时,总共经过的距离和第10次反弹的高度.
【程序清单】
CLEAR
S=100
h=50
FoRi=1TO9
s=s+h*2
h=【h/2】
ENDFOR
?
"球在第10次落地时,共经过了:
'+ALLT(STR(s,10,6))+"米"
?
"球第1O次反弹的高度是:
"+ALLT(STR(h,10,6))+"米"
30、执行下列程序后,输出到屏幕的结果为【3】.
【程序清单】
CLEAR
cstring="VisualFoxPro"
nresult=0
m=LEN(cstring)
FORn=1tom
c=SUBSTR(cstring,n,1)
IF!
BETWEEN(ASC(c),ASC("A"),ASC("Z"))
LOOP
ENDIF
nresult=nresult+l
ENDFOR
?
nresult
31、运行下列程序后,显示的运行结果的第二行为【11*11=121】
SETTALKOFF
CLEAR
Y="11111111"
FORI=1TOLEN(y)
X=LEFT(y,i)
?
SPACE(20-i*2)+x+"*"+x+"="+ALLT(STR(VAL(x)*VAL(x)))
ENDFOR
32、下列自定义函数NTOC()的功能是:
当传送一个1~7之间的数值型参数时,
返回一个中文形式的"星期日~星期六".例如,执行命令?
NTO(4),显示"星期三".
FUNCTIONNTOC
PARAMETERSn
LOCALch
ch="日一二三四五六"
mch="星期"=SUBSTR(ch,【2*n-1】,2)
RETURNmch
ENDFUNC
33、运行下列程序后,显示的运行结果为【FoxPro】.
?
TT("123E%nw$O4q*5n6")
FUNCTIONTT
PARAcstr
cResult=space(0)
FORn=1toLEN(ALLT(cStr))
c=SUBSTR(cStr,n,1)
IF!
BETWEEN(c,"A","Z")and!
BETWEEN(c,"a","z")
LOOP
ENDIF
cResult=cResult+CHR(ASC(c)+1)
ENDFOR
RETURNcResult
ENDFUNC
34、执行下列程序后,输出到屏幕的结果为【300】.
【程序清单】
CLEAR
STORE5TOml,m2
STORE1TOm3,m4
DOPAWITHml,m2,m3,m4
?
m4
PROCEDUREPA
PARAMETERa,b,c,d
d=b^2-4*a*c
DOCASE
CASEd<0
d=100
CASEd=0
d=200
CASEd>0
d=300
ENDCASE
RETURN
35、已知STUDENT表有20条记录,执行以下代码后,屏幕显示的是【10】
clear
closeall
usestudent
i=0
scan
i=i+1
skip
endscan
?
i
36、完善下列程序,以显示7~1000以内能被7整除且含有数字5的所有证书(例如35、56、105等).
FORn=7TO1000【step7】
ch=ALLT(STR(n))
IF"5"$ch
?
n
ENDIF
ENDFOR
37、表达式STR(YEAR(DATE()+10))的值的数据类型为【字符/C】型
38、完善下列程序,计算3+33+333+3333+33333+……前十项之和。
CLEAR
m=3
n=0
s=0
FoRi=1TO10
n=【n*10+3/int(10**i/3)】
s=s+n
ENDFor
39、运行以下程序后,VFP主窗口显示的结果是【6】.
【程序清单】
CLEAR
i=0
n=0
DOWHILEi<=10
IFMOD(i,2)=0
n=n+1
ENDIF
i=i+1
ENDDO
?
n
40、循环语句中跳过当前循环,直接进入下一轮循环的语句是【loop】
41、依次执行以下命令之后,最后一条命令的输出结果是【VisualFoxPro6.0】
SETEXACTOFF
x="6.0"
?
IIF(x="6.0","VisualFoxPro"-x,"VisualFoxPro"+"5.0")
42、在VFP命令窗口中输入并执行命令【_Screen】.FontSize=20,可以使VFP主窗口中输出文本的字号设置为20.
43、命令关键字和函数名一般可以缩写为前四个字母,但MEESSAGEBOX()函数的缩写为
【messageb()/messageb】
44、在定义数组时,使用DECLEAR和【dimension/dim】声明的数组属于"私有数组",而使用PUBLIC命令声明的数组属于"全局数组",使用LOCAL命令声明的数组属于"局部数组".
45、在面向对象的程序设计中,通过类可以简化应用程序的设计,因为类具有【继承性】、
多态性、封装性、抽象性等特点.
46、执行下列主程序后,输出结果为【22】
****主程序****
CLEAR
Publicx,y,z
X=3
Y=4
Z=5
Dopp
?
x+y+z
****过程****
ProcedurePP
LOCALx
X=5
Y=7
Z=x+y
EndPROC
47、完善以下用户自定义函数,使得当输入0——9之间的整数时,函数返回对应的中文:
functionntoc
parameterpdi
cstr="零一二三四五六七八九"
cresult=substr(cstr,【pdi*2+1】,【2】)
return【cresult】
endfunc
48、下列程序段用一句命令表示为【】
DOCASE
CASEX>=85
Y='优秀'
CASEX>=60
andx<85
Y='及格'
OTHERWISE
Y='不及格'
ENDCASE
答案:
y=iif(x>=85,"优秀",iif(x>=60,"及格","不及格"))
或y=iif(x>=85,"优秀",iif(x<60,"不及格","及格"))
或y=iif(x<60,"不及格",iif(x>=85,"优秀","及格"))
或y=iif(x<60,"不及格",iif(x<85,"及格","优秀"))
49、设定日期显示格式中,年的表示是否显示4位数的命令是【setcentury/setcent】on|off
50、在VFP中,利用可是化开发工具(表单设计器)创建表单和对象.通过对对象属性的修改、
方法程序的调用来处理对象.相对引用对象时,所设计的关键字THIS、THISFORMTHISFORMSET只能在方法程序或【事件】处理代码中使用.
51、执行以下程序,屏幕显示为:
【10】和【15】
x=8
DOWHILE.T.
x=x+1
IFx=INT(x/4)*5
?
?
x
ELSE
LOOP
ENDIF
IFx>10
EXIT
ENDIF
ENDDO
52、完善下列程序,使其具有如下功能:
将任意输入的十进制正整数转换为十六进制数形式并显示.(提示:
字母A的ASCII码为65;INPUT语句用于从键盘上输入一个数据)
SETTALKOFF
CLEAR
INPUT"请输入任一正整数"TOnum&&输入一个数,并赋予变量num
num1=num
xnum=SPACE(0)
y="IIF(MOD(num,16)>9,CHR(【mod(num,16)+55】),str(MOD(num,16),1))"
DOWHILEnum>15
xnum=&y+xnum
num=INT(【num/16】)
ENDDO
xnum=&y+xnum
WAITWINDOWSTR(【num1】)+"转换为十六进制后为"+xnum
53、下列程序用来计算数列2/1,3/2,5/3,……,155/18,173/19,192/20,……的前20项之和.
阅读程序并完善,使它能实现要求的功能.
【程序清单】
CLEAR
m=2s=0
FORi=1TO20
s=s+m/i
m=【m+i】
ENDFOR
?
s
54、VFP系统中,程序控制分为顺序、分支和【循环】.
55、当人机交互改变对象的值时发生的事件是【interactivechange】,该事件在组合框、列表框等对象中被常常使用(请写出完整的关键字)
56、完善程序题.下列程序的功能是计算下列数列1!
2!
3!
…,n!
的前10项之和:
nResult=0
nMult=【1】
FORn=1TO10&&计数变量
nMult=nMult*n
nResult=【nResult+nMult】
ENDFOR
?
nResult
57、完善下列程序,使两个程序的功能相同。
[程序清单1]
CLEAR
S=0
P=1
Fori=1to20
P=【P*I】
S=S+P
ENDFOR
?
s
[程序清单2]
CLEAR
S=0
N=1
Fori=1to20
M=1
Forn=1toi
M=M*n
Endfor
S=S+M
Endfor
?
S
58、下列程序用来求0——100偶数之和,请将它写完整
STORE0TON,S
DOWHILE.T.
IFN>100
【Exit】
ELSE
S=S+N
ENDIF
N=N+2
ENDDO
59、本题程序求以下正项级数的近似值:
【程序清单】'
CLEAR
i=0
sn1=O
DOWHILE.T.
i=i+1
sn1=sn1+l/(i*(i+1)*(i+2))
sn2=【sn1+1/((i+1)*(i+2)*(i+3))】
IFABS(sn2-snl)<0.0001
【Exit】
ENDIF
ENDDO
?
sn2
60、运行下列程序段以后,显示内容的前两行为:
【ABCDE】和【BCDE】
SETTALKOFF
S="ABCDEF"
N=LEN(S)
K=1
DOWHILEK<=N
?
SUBS(S,K,N-K)
K=K+1
ENDDO
61、完善下列程序,使两个程序的功能相同(求一个数列的前20项之和).
【程序清单1】【程序清单2】
CLEARCLEAR
s=0s=0
FORi=1To20FORi=lTO19STEP2
s=s+(-1)**(i+1)/(【i*
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VFP VFP 第五章习题 第五 习题