VFP程序设计典型例题汇总
《vfp实验题整理》word版

Visual FoxPro实验题汇总★顺序结构程序设计1.用过程化编成方式编写本题。
求解一元二次方程〔JFC.PRG〕a=1b=4c=4x1=<-b+SQRT<b^2-4*a*c>>/<2*a>x2=<-b-SQRT<b^2-4*a*c>>/<2*a>?"方程的一个根是:",x1,space<10>,"另一个根是:",x22.理解大小写转换函数。
在文本框中输入文本串,按"转大写"按钮,文本中的英文字母变为大写,按"转小写"按钮,文本中的英文字母变为小写〔如图所示〕。
<FORM><load>:Public a<text1><interactiveChange>:Thisform.text1.value=a<大写><click>:Thisform.text1.value=upper<a><小写><click>:Thisform.text1.value=lower<a><复原><click>:Thisform.text1.value=a3.班上集体购买课外读物,在文本框中输入3种书的单价、购买数量,计算并输出所用的总金额。
<总计><click>:a=val<thisform.text1.value>b=val<thisform.text2.value>c=val<thisform.text3.value>d=val<thisform.text4.value>e=val<thisform.text5.value>f=val<thisform.text6.value>thisform.text7.value=a*b+c*d+e*f4. 在文本框中输入小时、分、秒,化成共有多少秒,然后输出之。
VFP程序设计题汇总

S=0 N=1 DO WHILE N<=36 S=S+N N=N+1 ENDDO ? " 1+2+3+……+36的值为:", S SET TALK ON 用FOR循环的写法: SET TALK OFF CLEAR S=0 FOR N=1 TO 36 S=S+N ENDFOR ? " 1+2+3+……+36的和值:", S SET TALK ON 6. 用“SCAN…ENDSCAN循环结构”显示“学生信息.dbf”文件中“英语成 绩”大于等于75的记录。 SET TALK OFF CLEAR USE 学生信息 SCAN FOR 英语ቤተ መጻሕፍቲ ባይዱ绩>=75 DISPLAY ENDSCAN USE SET TALK ON
请编写:
(1) 表单Form1的Init事件代码: 单击“选中”界面 表单设计界面 this.text1.value="学生学号" &&文本框显示初值“学生学号” bel2.visible=.f. &&标签label2不可见 this.timer1.enabled=.f. &&计时器timer1不可用 this.timer1.interval=10 &&计时器时间间隔为10/1000 秒(即0.01秒)
13. 编制一个表单完成表文件“学生.dbf”内容的只读浏览显示功能;表 单初始显示内容为表文件“学生.dbf”的首记录;当按前翻、后翻、 首记录、末记录按钮时,表单将自动显示相应记录的内容;当翻至 表头或表尾时,将自动设置相应按钮不可访问。参见下面的表单设 计及运行示意图。
VFP常见编程实例及模拟试卷4套

VFP常见编程实例及模拟试卷4套1、1-100的累加** 求1到100的累加值CLEARs=0i=1DO WHILE i<=100s=s+ii=i+1 &&一定记住先累加后循环ENDDOsRETURN2、阶乘** 求5的阶乘CLEARj=1i=1DO WHILE i<=5j=j*ii=i+1ENDDOjRETURN3、求阶乘和** 求1至5的阶乘和CLEARs=0i=1j=1DO WHILE i<=5j=j*is=s+ji=i+1ENDDOsRETURN4、条件定位** 查询定位记录指针在赵伟上CLEARUSE 学生LOCATE FOR 姓名="赵伟"IF FOUND()DISPLAYELSECANCELENDIFCONTINUE5、用scan语句查询定位** 用scan语句查询定位记录在赵伟上SCAN FOR 姓名="赵伟"DISPLAYENDSCANRETURN6、用scan语句扫描符合条件的记录,并显示出来** 把年龄小于30岁的人显示出来CLEARSCAN FOR 年龄<30DISPLAYENDSCANRETURN7、查找男性职工** 查找男性职工CLEARLOCATE FOR 性别="男"DO WHILE FOUND()DISPLAYCONTINUEENDDORETURN** 查找男性职工CLEARLOCATE FOR 性别="男"DO WHILE NOT EOF()DISPLAYCONTINUEENDDORETURN** 查找男性职工CLEARUSE 职员基本信息表LOCATE FOR 性别="男"DO WHILE .t.IF FOUND() thenDISPLAYELSE &&记住最后一个ELSE语句后面不需要条件表达式 CANCELENDIFCONTINUEENDDO** 查找男性职工set talk offclearopen database 家庭成员管理.dbcuse stu.dbfscan for not eof()if xb="女"skipelsedisplayendifendscanclose databaseuseset talk onreturn8、新值换旧值** 有一对新生的兔子,从第三个月开始,每个月出生一对兔子,请问到第十二个月共出生多少对兔子?clearstore 1 to a,bi=3do while i<=12c=a+ba=bb=ci=i+1enddo"一年共出生兔子:",creturn9、多位整数各个位数相加** 求多位整数各个位数之和CLEARs=0input "请输入一个多位整数:" to aDO WHILE a<>0s=s+MOD(a,10) &&将a取余正好是个位上的数a=INT(a/10) &&将a除10取整正好是除个位之后的数ENDDO"这个整数的各个位数之和是:",sRETURN10、找100-999之间的“水仙花数”CLEARFOR i=100 TO 999a=INT(i/100)b=INT((i-100*a)/10)c=i-INT(i/10)*10IF i=a^3+b^3+c^3?iENDIFENDFORRETURN11、判断一个大于3的数是否为素数CLEARinput "请输入一个数(>=3):" to sf=0i=2DO WHILE i<=INT(SQRT(s))IF MOD(s,i)<>0i=i+1ELSEf=1EXITENDIFENDDOIF f=0?str(s,3)+"是素数"ELSE f=1 &&这个表达式可有可无,为了省事完全省略也可以。
VFP程序设计题集

VFP程序设计题集1、求[10,1000]内所有能被被7和9中至少一个数整除的整数之个数。
set talk offclears=0for x=10 to 1000if mod(x,7)=0 and mod(x,9)=0n=n+xendifendforxset talk onreturn答案:2362、求[10,1000]内所有能同时被7和9整除的整数之和。
set talk offclears=0for x=10 to 1000if mod(x,7)=0 and mod(x,9)=0s=xendifendforxset talk onreturn答案:75603、求[10,1000]内所有能被6整除但不能被9整除的整数之和。
set talk offclears=0for x=10 to 1000if mod(x,6)=0 or mod(x,9)=0x=s+xendifendforsset talk onreturn答案:554404、求[10,1000]内所有能被6和9中的一个且只有一个数整除的整数的个数。
set talk offclearn=0for x=10 to 1000if mod(x,6)=0 and mod(x,9)!=0 and mod(x,6)!=0 and mod(x,9)=0 n=xendifendfornset talk onreturn答案:1655、求[100,800]内所有既不能被5整除也不能被7的整数的个数。
set talk offclearn=0for x=100 to 800if mod(x,5)=0 and mod(x,7)<>0n=x+1endifendforxset talk onreturn答案:4806、求[101,299]内所有能被2整除但不能同时被3和5整除的整数之和。
set talk offclears=0for x=101 to 299if mod(x,2)=0 and not mod(x,3)=0 and mod(x,5)=0x=s+xendifendforsset talk onreturn答案:186307、求100以内最大的自然数n,使得从1开始的连续n个自然数的倒数之和小于3.5。
VFP编程题及参考答案(可打印修改)

VFP编程题及参考答案1.输入圆的半径,求圆的周长和面积并输出。
解:编写程序如下:clearinput “请输入圆的半径:” to rl=2*3.14159*rs=3.14159*r*r? “圆的周长为:”,l? “圆的面积为:”,s2.输入梯形上底、下底和高的值,求梯形面积并输出。
解:编写程序如下:clearinput "请输入梯形的上底:" to shdinput "请输入梯形的下底:" to xdinput "请输入梯形的高:" to gs=(shd+xd)*g/2? "梯形的面积为:",s3.输入三角形的三边长(设输入的三边a、b、c能构成三角形),求三角形的周长和面积并输出。
(提示:面积=半周长*(半周长-a)*(半周长-b)*(半周长-c)的平方根)解:编写程序如下:clearinput "请输入三角形的第一条边长:" to ainput "请输入三角形的第二条边长:" to binput "请输入三角形的第三条边长:" to cL=(a+b+c)/2s=sqrt(L*(L-a)*(L-b)*(L-c))? "三角形的周长为:",2*L? "三角形的面积为:",s4.输入2个实数,要求按由小到大的次序输出这两个数。
解:编写程序如下:clearinput "请输入第一个实数:" to num1input "请输入第二个实数:" to num2if (num1>num2)? num2,num1else? num1,num2endif5.请编写一个“A类邮件”计费程序,求出邮件的邮资费并输出:“A类邮件”计费规定:当邮件重量小于等于200克时,邮资费为每克0.06元;当邮件重量超过200克时,其中200克,按每克0.06元计费,超过200克的重量,按每克0.03元计费。
VFP程序设计典范例题汇总

clear
input "Enter year number please!" to y
if y%4=0 and y%100<>0 or y%400=0
? y,"is a leap year!"
else
? y,"is not leap year."
Endif
&&运行前单击教学管理数据库
(x<1)
(1≤x<10)
2.有一函数:
编写程序,输入 x,输出 y 的值。
clear
input "Enter x please!" to x
if x<1
y=x
else
if x<10
y=2*x-1
else
y=3*x-11
,x,'y=',y
y= 2x-1
x
3x-11 (x≥10)
3.编写程序,从键盘输入一个年份,判断它是否闰年。
4.编写程序,输入一个百分制成绩,要求输出成绩等级“A”、“B”、“C”、“D”、 “E”。90 分以上为“A”,80~89 分为“B”,70~79 分为“C”,60~69 分为 “D”,60 分以下为“E”。
clear input “请输入一百分制成绩” to cj do case
case cj>=90 ?” A”
Visual FxoPro 程序设计题
1.编写程序,从键盘输入一个日期,查询 STUDENT 表中该日期以后出生的学
生信息并显示在浏览窗口中。
use student
input “请输入某日期:” to rq
*输入时有提示,或 input to rq 输入时无提示,输{^1987-01-01}
vfp常见20道编程题

vfp常见20道编程题VFP常见20道编程题1、求解AX^2 BX C=0的根、其中A、B、C三个参数由键盘输入。
一元二次方程的求根公式是:X=-b±√b2-4ac/2acleartext一元二次方程求解ax^2 +bx+ c=0endtextinput '请输入a的值:' to ainput '请输入b的值:' to binput '请输入c的值:' to cm=b*b-4*a*cif m>=0x1=(-b sqrt(m))/(2*a)x2=(-b-sqrt(m))/(2*a)'x1的值是:',x1'x2的值是:',x2else'此方程无实根!'endif2、编写程序将1-100之间所有能被7和3整除的整数输出clearfor i=1 to 100if i%3=0 and i%7=0iendifendfor3、编写程序计算e,e的近似值计算公式为:e=1 1/1! 1/2! 1/3! ... 1/n!,直到1/n!<0.000001为止e=1n=1do while .t.k=1for i=1 to nk=k*iendform=1/ke=e mif m<0.000001exitendifn=n 1enddo'e=1 1/1! 1/2! 1/3! … 1/n!=',e4、编写程序,计算1!2!3! .......N!=?clearinput '请输入n的值:' to ns=0t=1for i=1 to nt=t*is=s tendfor'1!2!3! .......N!=',s5、从键盘输入十个数,将它们进行降序排列。
clear dime a(10)for i=1 to 10input '请输入一个数:' to a(i)'降序排列为:'for i=1 to 9for j=i 1 to 10if a(i)<a(j)< p="">k=a(i)a(i)=a(j)a(j)=kendifendforalltrim(str(a(i))) ' 'endforalltrim(str(a(i)))6、(1)输出有*号组成的图形:*************************clearfor i=-3 to 3space(abs(i))for j=1 to 7-abs(i)*2 ??'*' endforendfor(2)********************clearfor i=1 to 5space(5-i)for j=1 to 2*i-1 ??'*'endforendfor7、编写一个程序产生一个有20项的Fibonacci数列并输出。
VFP程序设计综合练习题(含答案).

1、有一张0.5mm厚足够大的纸,问对折多少次可以达到珠峰高度(8848.13m? h=0.5cs=0do while h<8848000h=h*2cs=cs+1enddo?"对折的次数为:",cs2、文本框Text1中输入的值与文本框Text2中输入的值进行交换。
Form1的click事件a=this.text1.valuethis.text1.value=this.text2.valuethis.text2.value=a3、在表单的标签上输出自然数1,2,3,4,5Form1的click事件bel1.caption=””For i=1 to 5bel1.caption=bel1.caption+str(I,1next4、判断一个学生的计算机考试成绩x属于哪个分数段之间(0-59,60-69,70-79, 80-89,90-100Form1的click事件input to xdo casecase x<0 or x>100=messagebox("成绩在0-100之间,重新输入"case x<=59=messagebox("该生的计算机成绩"+str(x,3+"在0-59之间"case x<=69=messagebox("该生的计算机成绩"+str(x,3+"在60-69之间"case x<=79=messagebox("该生的计算机成绩"+str(x,3+"在70-79之间"case x<=89=messagebox("该生的计算机成绩"+str(x,3+"在80-89之间"otherwise=messagebox("该生的计算机成绩"+str(x,3+"在90-100之间"endcase5、找出zgqk.dbf中基本工资最高记录,输出其姓名和基本工资Form1的click 事件Use zgqkmax=基本工资scanif 基本工资>maxmax=基本工资endifendscanloca for 基本工资=max?姓名,基本工资6、找出2010至2100之间所有闰年的年份Form1的click事件for y=2010 to 2100if y%4=0 and y%100!=0 or y%400=0?y,"年是闰年"endifnext7、计算1+3+5+……99,并将结果存入文本框Text1中Form1的click事件sum=0for i=1 to 99 step 2sum=sum+inextthis.text1.value="1+3+5+...+99的和:"+allt(str(sum 8、求边长为a的正方形内切圆面积。
Vfp题库(程序设计基础)--典型例题

典型例题[例1] 在()窗⼝中可以控制列表框内显⽰的变量种类。
A.跟踪窗⼝B.监视窗⼝C.局部窗⼝D.调动堆栈窗⼝分析:局部窗⼝⽤于显⽰模板程序中的内存变量,并显⽰它们的名称.当前取值的类型。
它可以控制在列表内显⽰的变量类型。
答案c例2下⾯选项中关于ACCEPT命令说法错误的是()A.ACCEPT命令格式是:ACCEPT[] TOB.该命令只接收字符串,但是⽤户在输⼊字符串时,必须要加上定界符C如果不输⼊任何内容直接按回车键,系统就会把空串赋给指定的内存变量D如果选⽤,那么系统就会⾸先显该表达式的值,作为提⽰信息分析:该命令只接收字符串,但⽤户在输⼊时不需要加定界符;否则,系统会把定界符当作字符串的⼀部分输出.答案:B例3下列关于过程的说法中不正确的是A.过程⽂件可以放在任何程序⽂件代码的后⾯,也可以保存在称为过程⽂件的单独⽂件⾥B.过程⽂件只包含过程,这些过程只能被过程⽂件调⽤C.如果需要打开多个过程⽂件,可以在调⽤过程语句中加ADDITVE,那么在打开过程⽂件时,并不关闭原先已打开的过程⽂件D.关闭个别过程⽂件的命令格式是:RELESE PROCEDURE分析:过程⽂件只包含过程,这些过程可以被任何其它程序调⽤.命令格式SETPOCEDURE TO[][ADDITIVE]就可以打开多个过程⽂件.当使⽤不带任何⽂件名的SET PROCEDURE TO命令时,将会关闭所有的过程⽂件,使⽤命令RELEASE PROCEDURE时,将关闭指定的过程⽂件.答案:B例4 在⼀个程序定义了的⼀些变量,选出局部变量 ( )1.PRGPUBLIC aILOCAL a2,a3SCORE’B’TO a4LOCATE a5A.a1B.a2,a3C.a4D.a5分析:A是公共变量,C是私有变量,D的命令和LOCATE相似,但不存在这样定义变量的命令.只有B才是定义了两个局部变量.答案:B例5 不需要先建⽴就可以使⽤的变量是 ( )A.局部变量B.公共变量C.私有变量D.数组分析:私有变量是指在程序中直接使⽤,由系统⾃动隐含建⽴的变量.即没有通过PUBLIC 或LOCAL定义的变量.它的作⽤域是建⽴它的模块及其下属的各层模块.私有变量随着建⽴它的模块运⾏结束⾃动清除,不需要先建⽴就可以使⽤.答案:C「例6」可以设置表达式类型的断点窗⼝是()A.跟踪窗⼝B.监视窗⼝C.局部窗⼝D.调⽤堆栈窗⼝分析:监视窗⼝主要就是⽤来指定表达式在程序调试执⾏过程中的变化。
vfp程序题总结

vfp程序题总结五.程序题1 在Text1中输入一个3位自然数,分解求和的结果存入Text2中x= thisform.text1.valuea=int【1 】b=int 【 2】c=【 3】s=【 4】thisform.text2.value=【5 】x/100 (x-a*100)/10 x-a*100-b*10 a+b+c s2 文本框Text1中输入的值与文本框T ext2中输入的值交换a= thisform.text1.valueb= thisform.text2.valued=【1 】【2 】【3 】=dthisform.text1.value=【4 】thisform.text2.value=【 5】a a=b b a b3 已知任意一个三角形的三条边为a、b、c,求其面积。
a=thisform.text1.valueb=【 1】c=【 2】p=(a+b+c)/【3 】s=【 4】(p*(p-a)*(p-b)*(p-c))thisform.text4.value=【5 】thisform.text2.value thisform.text3.value 2 sqrt s4 判断一个学生的计算机考试成绩x属于哪个分数段之间(0-59,60-69,70-79,80-89,90-100)Command1_click 事件代码如下:x= thisform.text1.valuestore 0 to h5,h6,h7,h8,h9do casecase x>=0 and x<=59h5=h5+1case 【1 】 and x<=69h6=h6+1case x>=70 and x<=79【 2】case 【3 】 and x<=89h8=h8+1case x>=90 and 【 4】h9=h9+1【 5】/doc/188050441.html,bel1.caption=str(h5)+ str(h6) +str(h7) +str(h8) +str(h9)x>=60 h7=h7+1 x>=80 x<=100 endcase5 假设表单与第二题中的表文件zgqk.dbf 建立了数据环境,在其中按姓名查找职工情况,找到后将其情况在表单上显示,否则在信息框中显示“查无此人”。
vfp程序题(含结果)

一、程序改错题(在参考程序文件夹中从gc1—gc7)1. 下面的程序是求3+9+27+81+243+...这样的数之和. 若累加数大于500时,则结束累加.程序中有一处错误。
改正后运行程序,将程序执行结果填入答案框内。
SET TALK OFFCLEARX=3Y=0DO WHILE .F.Y=Y+XIF Y>500EXITENDIFSTORE 3*X TO XENDDO?YSET TALK ONRETURN修改后的程序执行结果为:10922. 已知S1=1,S2=1+2,S3=1+2+3,…,SN=1+2+…+N,下面的程序求S20到S80有多少数能被17或35整除。
改正后运行程序,将程序执行结果填入答案框内。
SET TALK OFFI=20N=0DO WHILE I<=80STORE 0 TO SJ=1DO WHILE J<=IS=S+JJ=J+1ENDDOIF MOD(S,17)=0ENDIFI=I+1ENDDO? NSET TALK ONRETURN修改后的程序执行结果为:123. 计算S=1*5*9*13*...*k,直到累乘数k>=25中止。
程序中有错误。
改正后运行程序,将程序执行结果填入答案框内。
SET TALK OFFCLEARs=0k=1DO WHILE .T.s=s*kIF k>=25EXITENDIFk=k+4ENDDO?sRETURN修改后的程序执行结果为:52211254. 下面的程序是求1到500的偶数立方和与奇数立方和之差。
程序中有一处错。
更正程序中的错误,运行更正后的程序,记录运行结果,将结果填入答题窗口内。
SET TALK OFFSTORE 0 TO I,S1,S2DO WHILE I<=500IF MOD(I,2)=0S1=S1+I*I*IELSES2=S2+I*I*IENDIFENDDO? S1-S2SET TALK ONRETURN修改后的程序执行结果为:626875005. 程序求能被3整除且至少有一位数字为5的三位数的个数。
1-精选VFP常见编程实例-答案

精选VFP常见编程实例-答案1、1-100的累加求1到100的累加值CLEARs=0i=1DO WHILE i<=100s=s+ii=i+1 &&一定记住先累加后循环ENDDOsRETURN2、阶乘求5的阶乘CLEARj=1i=1DO WHILE i<=5j=j*ii=i+1ENDDOjRETURN3、求阶乘和求1至5的阶乘和CLEARs=0i=1j=1DO WHILE i<=5j=j*is=s+ji=i+1ENDDOsRETURN4、条件定位查询定位记录指针在赵伟上CLEARUSE 学生LOCATE FOR 姓名="赵伟"IF FOUND()DISPLAYELSECANCELENDIFCONTINUE5、用scan语句查询定位用scan语句查询定位记录在赵伟上CLEARSCAN FOR 姓名="赵伟"DISPLAYENDSCANRETURN6、用scan语句扫描符合条件的记录,并显示出来把年龄小于30岁的人显示出来CLEARSCAN FOR 年龄<30DISPLAYENDSCANRETURN7、查找男性职工查找男性职工CLEARLOCATE FOR 性别="男"DO WHILE FOUND()DISPLAYCONTINUEENDDORETURN查找男性职工CLEARLOCATE FOR 性别="男"DO WHILE NOT EOF()DISPLAYCONTINUEENDDORETURN查找男性职工CLEARUSE 职员基本信息表LOCATE FOR 性别="男"DO WHILE .t.IF FOUND() thenDISPLAYELSE&&记住最后一个ELSE语句后面不需要条件表达式CANCELENDIFCONTINUEENDDO查找男性职工set talk offclearopen database 家庭成员管理.dbcuse stu.dbfscan for not eof()if xb="女"skipelsedisplayskipendifendscanclose databaseuseset talk onreturn8、新值换旧值有一对新生的兔子,从第三个月开始,每个月出生一对兔子,请问到第十二个月共出生多少对兔子?clearstore 1 to a,bi=3do while i<=12c=a+ba=bb=ci=i+1enddo"一年共出生兔子:",creturn9、多位整数各个位数相加CLEARs=0input "请输入一个多位整数:" to aDO WHILE a<>0s=s+MOD(a,10) &&将a取余正好是个位上的数a=INT(a/10) &&将a除10取整正好是除个位之后的数ENDDO"这个整数的各个位数之和是:",sRETURN10、找100-999之间的“水仙花数”CLEARFOR i=100 TO 999a=INT(i/100)b=INT((i-100*a)/10)c=i-INT(i/10)*10IF i=a^3+b^3+c^3?iENDIFENDFORRETURN11、判断一个大于3的数是否为素数CLEARinput "请输入一个数(>=3):" to sf=0i=2DO WHILE i<=INT(SQRT(s))IF MOD(s,i)<>0i=i+1LOOPELSEf=1EXITENDIFENDDOIF f=0?str(s,3)+"是素数"ELSE f=1&&这个表达式可有可无,为了省事完全省略也可以。
VF程序设计试题及答案

VF程序设计请注意:1、本考试科目提供一套试题参考答案,进入本门课程点在线考试,随机抽题,如果考试题不是其中试题,千万别点最下面的“完成考试”按钮,立即关闭窗口,重新进入抽题,直到抽到所给这套题为止2、在线考试只有一次机会,成绩为最终考试成绩,抄袭、雷同作业一律按零分处理。
没给答案的可自行发挥,别空题,做完后一定点完成考试显示“答卷结果保存成功”表示提交成功,否则考试结果将无分值请注意:本学期您只有一次在线考试机会,请慎重做答和提交!01:29:42单项选择题第1题以下关于Visual FoxPro的叙述最全面的是(D)本题1分A、Visual FoxPro是一个数据库应用平台软件B、Visual FoxPro是一个数据库应用开发工具C、Visual FoxPro是一个综合应用软件D、Visual FoxPro既是一个数据库应用平台,又是数据库应用开发工具第2题关系数据库系统中所使用的数据结构是(D )本题1分A、树B、图C、表格D、二维表第3题把各个数据库文件联系起来构成一个统一的整体,在数据库系统中需要采用一定的( D)本题1分A、操作系统B、文件系统C、文件结构D、数据结构第4题用二维表形式表示的数据模型是(B )本题1分A、层次数据模型B、关系数据模型C、网状数据模型D、网络数据模型第5题关系数据库管理系统的3种基本关系运算不包括( A) 本题1分A、比较B、选择C、连接D、投影第6题下列关于数据库系统的叙述中,正确的是(A )本题1分A、表的字段之间和记录之间都存在联系B、表的字段之间和记录之间都不存在联系C、表的字段之间不存在联系,而记录之间存在联系D、表中只有字段之间存在联系第7题使用数据库技术进行人事档案管理是属于计算机的(C )本题1分A、科学计算应用B、过程控制应用C、数据处理应用D、辅助工程应用第8题在关系理论中,把二维表表头中的栏目称为(C )本题1分A、数据项B、元组C、结构名D、属性名第9题在关系模型中,实现“关系中不允许出现相同的元组”的约束是通过(B ) 本题1分A、候选键B、主键C、外键D、超键第10题数据库系统的构成为:数据库、计算机硬件系统、用户和(D )本题1分A、操作系统B、文件系统C、数据集合D、数据库管理系统第11题数据库系统的用户对数据库的查询和存储操作使用的语言是( D )本题1分A、自然语言B、自含语言C、数据描述语言D、数据操作语言第12题DBAS指的是(C )本题1分A、数据库管理系统B、数据库系统C、数据库应用系统D、数据库服务系统第13题用于实现对数据库进行各种数据操作的软件称为(C ) 本题1分A、数据软件B、操作系统C、数据库管理系统D、编译程序第14题数据库DB、数据库系统DBS和数据库管理系统DBMS之间的关系是(B )本题1分A、DBMS包括DB和DBSB、DBS包括DB和DBMSC、DB包括DBS和DBMSD、DB、DBS和DBMS是平等关系第15题下列关于数据库系统的叙述中,正确的是(D )本题1分A、数据库系统只是比文件系统管理的数据更多B、数据库系统中数据的一致性是指数据类型一致C、数据库系统避免了数据冗余D、数据库系统减少了数据冗余第16题Visual FoxPro6。
VFP典型例题

十一,综合题*******************************************************************************一,多工作区,Replace,copy to . 例题1: 涉及set relation to 有如下表: (1) XS.DBF(学号C(8),姓名C(8),性别C(2),班级C(9),出生日期D,走读L) (2) CJ.DBF(学号C(8),课程名C(20),成绩N(5,1)) 说明:一个学生可以选择多门课程.请编写一个完整的程序,该程序能完成以下功能: 1, 将表XS.DBF 和表CJ.DBF 建立关联,并显示出所有男同学的姓名以及他们所选课程的课程名2, 将XS.DBF 表中所有班级为"2002 级 2 班"的同学信息拷贝到新表STUDENT.DBF 中, STUDENT .DBF 只含有学号,姓名,性别,走读四个字段3,将姓名为"王小平"的同学的所有成绩提高10% CLEAR CLOSE ALL SELE 2 USE CJ INDEX ON 学号TO XH SELE 1 USE XS SET RELATION TO 学号INTO B SET SKIP TO B LIST FOR 性别='男' FIELDS 姓名,B.课程名COPY TO STUDENT FOR 班级='2002 级2 班' FIELDS 学号,姓名,性别,走读replace b.成绩with b.成绩*1.1 fora.姓名="王小平" 例题2: 涉及update 下面有两张表: 总分表:ZF.DBF 学号姓名语文数学总分110 张三114 李四119 王二成绩表: CJ.DBF 学号语文数学110 67 65 114 89 67 119 78 95 按照成绩表的成绩修改总分表的成绩,并计算出总分表的总分字段参考答案: CLOSE ALL SELE 2 USE CJ INDEX ON 学号TAG XHCJ SELE 1 USE ZF INDEX ON 学号TAG XHZF UPDA ON 学号FROM B REPL 语文WITH B.语文,数学WITH B.数学REPL ALL 总分WITH 语文+数学LIST 例题3: 涉及join with: 将STUDENT.DBF 和学生成绩.DBF 连接成新文件NEW.DBF 表1: student(学号c(4),姓名c(8),性别L,出生日期D,高考成绩N(5,2)) 表2: 学生成绩(学号c(4),课程号C(3),分数N(2)) SELECT 1 USE STUDENT SELECT 2 USE 学生成绩JOIN WITH A TO NEW FOR 学号=A.学号; FIEL 学号,A.姓名,A.性别,A.出生日期,课程号,分数USE NEW LIST 如果再增加一张表,三表相连: 表3: 课程(课程号C(3),课程名称C(10)) SELECT 1 USE STUDENT SELECT 2 USE 学生成绩JOIN WITH A TO NEW FOR 学号=A.学号SELE 1 USE NEW SELE 2 USE 课程JOIN WITH A TO STU FOR 课程号=A.课程号USE STU LIST *********************************************************** ******************** 二,累加,累乘例1:累加:求1~100 的和SUM=0 FOR I=1 TO 100 SUM=SUM+I ENDFOR ?'1~100 的总和为: ',SUM 使用DO WHILE 实现: SUM=0 I=1 DO WHILE I<101 SUM=SUM+I I=I+1 ENDDO ?'1~100 的总和为: ',SUM 例2:累乘:求n! clear INPUT "求n!,请输入n 的值:" TO N MUL=1 FOR I=1 TO n MUL=MUL*I ENDFOR ?n,'的值为: ',MUL 例3:输入n 的值,求1+1/2!+1/3!+1/4!+….+1/n! ( 阶乘n!=1*2*3*4....*(n-1)*n ) CLEAR SUM=_①_ MUL=_②_ INPUT "请输入n 的值: " TO N FOR i=1 TO N FOR j=1 TO i MUL=MUL*__③__ ENDFOR SUM= SUM+____④_____ ENDFOR ?'求得的总和为: ',SUM 答案:1: 0 2: 1 3: j 4: 1/mul注意:外循环是累加,内循环是累乘*********************************************************** ******************** 三,双重循环:金字塔问题等看书阅读: 1,P159 页:例4.39 2,P160 页:例4.40 3,求1-100 间所有的质数CLEAR ?'2,3 是质数' FOR I=4 TO 100 FOR J=2 TO INT(SQRT(I)) IF MOD(I,J)=0 EXITENDIF ENDFOR IF J> INT(SQRT(I)) ?I,'是质数' ENDIF ENDFOR 4,运行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 * * * CLEAR FOR J=1 TO 9 ?STR(J,2)+') ' FOR ______________ ?? ______________ ENDFOR ? ENDFOR RETURN 第一空K=1 TO J 第二空5,排序问题STR(J*k,6) *********************************************************** ******************** 四,排序输入10 个数,将它们从小到大排列分析: 用i 代表趟数,j 代表次数(1)10 个数要比较9 趟(2)每趟要比较的次数为: 10-趟数(3)每次比较: 如果当前数a(j)大于本次比较的最后一个数a(10+1-i) 那么就交换,否则不交换clear dime a(10) ?'输入10 个数: ' for i=1 to 10 input "请输入: " to a(i) endfor for i=1 to 9 for j=1 to 10-i if a(j)>a(10-i+1) t=a(10-i+1) a(10-i+1)=a(j) a(j)=t endifendforendfor list memo like a 另外可以参看书:P162-163 页例4.45*********************************************************** ******************** 五,查询:locate\seek 有下列表: book(书名C(20),作者C(8),出版日期D,内容简介M) 编写程序:查询关于foxpro 的图书. USE BOOK LOCATE FOR 'foxpro' $ 书名IF ! FOUND() ?'没有关于foxpro的图书' ELSE DO WHILE ! EOF() CLEAR ?书名,作者,出版日期?内容介绍WAIT "是否继续查找?(Y/N)" IF M$'nN' EXIT TO M ENDIFCONTINUE ENDDO ?"全部显示完成" ENDIF 注意:关键地方在于1,什么地方用locate,什么地方用continue 2,if .. exit ..endif 3,do while not 的条件使用Locate 查找出所有入校总分在580 及以上的所有同学信息clear use 学生locate for 入校总分>=580 do while .not. eof() dispcontinuenddo ?'结束' cancel *********************************************************** ******************** 六,循环插入新记录编写程序,对于学生.dbf 能够在程序末尾循环插入新记录CLEAR CLOSE ALL USE 学生DO WHILE .T. APPE BLANK @5,20 SAY '学号' GET 学号@5,40 SAY '姓名' GET 姓名@7,20 SAY '性别' GET 性别@7,30 SAY '出生年月' GET 出生年月@9,20 SAY '入校总分' GET 入校总分READ WAIT '你想继续插入新记录吗?(Y/N) : ' TO X IF X='N' OR X='n' EXIT ENDIF CLEAR ENDDO CLEAR LIST CLOSE ALL 类似: 编写程序,该程序能够顺序修改表学生.DBF 中的所有数据. (要求:必须使用@行,列say ... get .. 进行数据修改) CLEAR CLOSE ALL USE 学生DO WHILE .T. @5,20 SAY '学号' GET 学号@5,40 SAY '姓名' GET 姓名@7,20 SAY '性别' GET 性别@7,30 SAY '出生年月' GET 出生年月@9,20 SAY '入校总分' GET 入校总分READ WAIT '你想继续修改记录吗?(Y/N) : ' TO X IF X='N' OR X='n' EXIT ENDIF CLEAR SKIP ENDDO CLEAR LIST CLOSE ALL *********************************************************** ******************** 七,参数传递\变量的作用域&&MAIN.PRG &&P1.PRG X1=1 PARA W1,W2 X2=2 PRIVATE W1 DO P1 WITH X1,X2W1=W1*3 ?'X1='+STR(X1,1) W2=W2*4 ??'X2='+STR(X2,1) RETURN X1=1 X2=2 DO P1 WITH X1,X1+X2 ?'X1='+STR(X1,1) ??'X2='+STR(X2,1) RETURN (1)第一次显示X1,X2 的值是( ) A. 1 , 8 B. 3 , 8 C. 1 , 1 D. 8 , 8 (2)第二次显示X1,X2 的值是( ) A. 1 , 2 B. 3 , 1 C. 3 , 2 D. 1 , 3 参考答案: B C 下面看第二个实例: 主程序MCX2.PRG clea public i,j store 1 to i,j,k do scx2.prg ?"主程序的输出结果:" ?"i="+str(i,2)+" j="+str(j,2)+" k="+str(k,2) cancel 子程序scx2.prgclea private j,k i=i*2 j=j+1 k=j+1 ?"子程序中输出的结果:" ?"i="+str(i,2)+" j="+str(j,2)+" k="+str(k,2) return 执行结果是: 子程序中输出的结果: i= 2 j= 3 k= 4 主程序的输出结果: i= 2 j= 1 k= 1 看等级考试中的题.(2003 年10 月笔试) *********************************************************** ******************** 八,@行,列say ... get ... default ... read 字幕问题: 1,有如下程序段,其功能是显示汉字"2008 年北京申奥成功! " 从屏幕的顶部移至底部,请填空补充该程序CLEAR CH='2008 年北京申奥成功!' R=1 DO WHILE R<=23 @R,26 SAY SPACE(60) @__________, 26 SAY CH T=INKEY(0.2) _______________ ENDDO RETURN 答案为: R+1 R=R+1 答案说明:@R,26 SAY SPACE(60)的作用是将上一行显示的'2008 年北京申奥成功!' 清除掉,然后@R+1, 26 SAY CH 显示新一行的数据R=R+1 是保证do while 不是死循环2,从左到右显示"同志们,要到期末了,努力奋斗吧!!"两次clear s=space(80)+"同志们,要到期末了,努力奋斗吧!!"+space(40) for nn1=1 to 2 &&显示两次for nn2=1 to 110 step 2 &&110=80+30,30 是那个字符串的宽度@20,0 say substr(s,nn2,80)inkey(2,'H')endforendfor*********************************************************** ******************** 九,scatter/gather(本节选用的表是学生.dbf) 掌握:1,scatter 是将一条记录的值copy 到一个数组中. (对应一维数组) copy from array 则是多条记录拷贝到数组中. (对应二维数组) 2,scatter 和copy from array 使用数组都可以不先定义,大小系统自己搞定3,如果事先定义了的话,scatter 会自动扩展大小,而copy from array 则不会请大家阅读下面两个例题体会: 例1:将"江冰"同学的名字修改成"姜冰" clear use 学生locate for 姓名="江冰" if found() scatter to x &&思考:数组X 应该有多少个单元?? list memo like x &&显示数组X 的单元和值x(2)="江冰" gather from x wait clear list else ?"对不起,没有江冰这个人" endif close all 思考答案:6 个, 那个备注型和通用型不算. 当然,上个题改为下例也对: clear use 学生locate for 姓名="江冰" dime x(4) &&先定义数组X 有4 个单元if found() scatter to x &&思考:数组X 应该有多少个单元?? list memo like x &&显示数组X 的单元和值x(2)="江冰" gather from x wait clear list else ?"对不起,没有江冰这个人" endif close all 思考答案:也是6 个, 那个备注型和通用型不算,虽然定义了四个,但是会自动扩展例2:关于copy to array 和append from array clear use 学生copy stru to new list copy to array y fields 学号,姓名,性别&&思考:数组Y 应该是什么样的?? Y(1,2)="张波" &&将"王小平改为了张波" sele 0 use new append from array y list close all 思考答案: 数组Y 是: y(10,3) 另外请分析本程序段的功能. 如果程序改为: clear use 学生dime y(3,2) list copy stru to new copy to array y fields 学号,姓名,性别&&思考:数组Y 应该是什么样的?? Y(1,2)="张波" sele 0 use new append from array y list close all 那么:数组Y 是: y(3,2) 和scatter 它们的区别: 不会自动扩展执行程序观察结果. 看书:P168 页第七题! ! *********************************************************** ******************** 十,数组1,排序问题. 2,书:163-164 例4.46-4.47 1, 数组的定义DIMENTION 数组名(数值表达式1,[数组表达式2...]) 定义后单元默认值为.F. 2,一维数组(1),定义一个一维数组: dime a(10) ---定义一个10 数组,且所有单元默认值为.F. (2),赋值: 例如: a='' a(1)=20 a(3)={^2002/09/23} a(7)=.T..... 循环赋值: dime a(10) i=1 do while i<=10 input '请输入数:' to a(i) i=i+1 enddo或者是: for i=1 to 10 input '请输入数:' to a(i) endfor (3),显示值: for i=1 to 10 ?a(i) endfor使用do while 大家思考方法2:list memo like a 3,二维数组例如:dime s(5,4) (1),赋值: 例如: s=0 s(3,4)=.t. s(12)='xixi' ..... 相当于s(3,4)='xixi' (2),循环赋值for i=1 to 5 for j=1 to 4 input '输入值:' to a(i,j)endforendfor (3),显示值: for i=1 to 5 for j=1 to 4 ??a(i,j)+space(2)endforendfor *********************************************************** ******************** 十一,综合题例1: 数据表JY.DBF 的内容如下: Record # 借书证号借书日期1 0010 02/01/99 2 0007 05/04/99 3 0006 02/03/99 4 0010 05/17/99 数据表JYR.DBF 的内容如下: Record# 借书证号姓名职称 1 0006 孟小梅教授 2 0010 郑财勇讲师 3 0007 王志军助教且:JYR 库以借书证号为关键字建立了索引,索引文件为JYR.IDX 程序如下: SELECT 1 USE JYR INDEX JYR SELECT 2 USE JY SET DEVICE TO PRINT &&注意: 有了这句话下面显示的结果都会发送到打印机H=1 DO WHILE .NOT. EOF() TS=DATE()-借书日期IF TS>80 SELECT 1 SEEK B.借书证号IF TS>100 .OR. 职称<>'教授' @H,4 SAY 姓名+'同志,您借的书已过期,请归还' H=H+1 ENDIF SELECT 2 ENDIF SKIP ENDDO SET DEVICE TO SCREEN RETURN (1)设当前系统日期为06/15/99,程序将打印( )还书的信息A. 孟小梅,郑财勇各一行B.孟小梅一行,郑财勇两行 C. 孟,郑,王各一行 D.孟,郑,王三人共五行参考答案: A (2)高级职称和其它职称借书的最多天数分别是( ) A.81 天,101 天B.100 天,80 天C.80 天,100 天D.101 天,81 天参考答案: B (3)本程序的功能是: ) ( A.查询接书证号B.查询借书日期C.书未还书者D.查询并打印超期未还书者参考答案: D 例2: CLEAR OPEN DATABASE emplorer USE compen SCAN FOR RECNO()<=10 IF 姓名='李强' LOOP ENDIF ?姓名,实发工资ENDSCAN USE CLOSE DATABASE (1)compen是: ) ( A.自由表B.数据库表C.数据库D.可能是自由表,也可能是数据库表答案是D (2)若数据库有50 条记录,则程序的功能是: ) ( A. 前10 条记录中搜索"李强"的记录 B.列出前10 条记录 C.每10 条记录一屏显示记录,但不显示"李强"的记录D.列出前10条记录,但是不显示"李强"的记录答案是D (3)循环结束后,指针指向( ) A. 第1 条B.最后一条 C.第10 条 D.最后 1 条记录加 1 答案是 D 请注意: scan 循环是从第一条做到最后一条,然后在根据for 条件选择处理哪些记录. 循环完成后一定EOF()为.t. 另外:注意区分exit 和loop 的作用是:exit 退出循环,loop 只是结束本次循环请不能区分的同学下来再问. 请大家注意:Scan 的使用方法,考试很可能要涉及到的这儿也给大家举例比较一下三种循环操作表:三种方法实现显示出全部的男生. -----------------------------使用DO WHILE 循环: CLEAR CLOSE ALL USE 学生DO WHILE NOT EOF() IF 性别='男' DISP ENDIF SKIP ENDDO CLOSE ALL -----------------------------使用FOR 循环: CLEAR CLOSE ALL USE 学生COUNT TO X GO TOP FOR I=1 TO X IF 性别='男' DISP ENDIF SKIP ENDFOR CLOSE ALL -----------------------------使用SCAN 循环: CLEAR CLOSE ALL USE 学生SCAN FOR 性别='男' DISP ENDSCAN CLOSE ALL -----------------------------例3: 1, CLEAR M=0 FOR X=1 TO 10 IF MOD(X,3)=0 M=M+X ENDIF ENDFOR ?M RETURN (1)该程序的功能是:求1 到10 之间() A. 能被 3 整除数的个数 B. 能被 3 整除数的和 C. 不能被3 整除数的个数D. 不能被3 整除数的和答案是:B (2)该程序执行的结果是: ) ( A. 3 B. 10 C. 18 D. 37 答案是:C 上机考试程序部分说明1)注意题目要求是一个完整程序,不要写题号1,2,3 之类2)如果题目涉及到表的操作,请第一条命令可以先发close all clear 最后条命令请书写: close all return 3)注意检查是否存盘到了指定的位置,是否是在项目中建立的程序。
vfp典型程序设计题(附参考答案)

典型程序设计题(附参考答案)1.求1到2000之间,能被3或7整除,并且含有数字5的整数的个数、它们的和、它们的平方根的和(保留2位小数)、以及它们的平方和。
2.求能被3整除且至少有一位数字为5的三位数的个数。
3.求出只要能被2,7,9之一整除的800以内的正整数的个数。
4.求[105,625]间能同时被7和11整除的自然数之和。
求[200,600]间奇数之和。
5.编程序求出1000到2000之间同时满足除3余2和除5余3条件的数的个数。
6.输出[10,100]中除以17的余数和除以5的商相等的整数的个数。
7.统计区间[1000,9999]内所有能被3整除,且千位数字与个位数字之和为8的整数的个数。
8.求在四位数的奇数中,所有各位数字之和是25的倍数的数的和。
9.求出所有能被17整除且不含重复数字的三位数的和。
10.求1到500的偶数立方和与奇数立方和之差。
11.求3+9+27+81+243+...这样的数之和. 若累加数大于500时,则结束累加.12.求1+3+5+7+9+11+...这样的奇数之和.若累加数大于500时, 则结束累加。
13.计算S=1*5*9*13*...*k,直到累乘数k>=25中止。
14.求出1到5000之间的能被5整除的前若干个偶数之和,当和大于500时程序退出。
15.编写程序,s=1+1/2+1/3+…+1/99,保留两位小数。
16.编程求S=1*3+2*4+3*5+...+198*200。
17.设S=1+1/2+1/3+...+1/N,N为正整数。
编程求使S不超过10的最大的N18.求S=8!+9!+10!19.编写程序,求10!20.计算S=3!+5!+7!+...+N!,求直到S>=680000为止的奇数N。
21.s=1!+2!+3!+....+n! 当s大于61000时结束累加,求n。
22.数列xi各元素的值是:x1=1,x2=1+2,x3=1+2+3,.....xn=1+2+3+......+n。
Visual FoxPro 程序设计题库 (2)

试卷编号:64所属语言:Visual Foxpro试卷方案:西北民大VFP2010年春季试卷总分:100分共有题型:4种一、填空共10题(共计10分)第1题(1.0分)题号:47如样张所示教师表和系表,数组A包含两个数据元素,分别为"04"和"数学",把数组A中的数据元素添加到"系"表,使用SQL语句:【1】INTO系FROM【2】A 答案:=======(答案1)=======INSERT=======(答案2)=======ARRAY第2题(1.0分)题号:23删除表中的记录通常要分为两个步骤:第一步是【1】.第二步是【2】.答案:=======(答案1)=======逻辑删除=========或=========Delete=======(答案2)=======物理删除=========或=========Pack第3题(1.0分)题号:31在数据库之间创建一个永久关系,这种关系是作为【1】保存起来的.答案:=======(答案1)=======数据库的一部分=========或=========数据库一部分第4题(1.0分)题号:54类是对象的集合,它包含了相似的有关对象的特征和行为方法,而【1】则是类的实例. 答案:=======(答案1)=======对象第5题(1.0分)题号:2数据模型不仅表示反映事物本身的数据,而且还表示【1】.答案:=======(答案1)=======事物之间的联系=========或=========联系=========或=========关系第6题(1.0分)题号:51视图中的数据取自数据表库中的【1】或【2】.答案:=======(答案1)=======表=========或=========视图=======(答案2)=======表=========或=========视图第7题(1.0分)题号:26设置结构复合索引文件中的索引标识JIAGE为主索引的命令是【1】.答案:=======(答案1)=======SET ORDER TO JIAGE第8题(1.0分)题号:20向表中输入数据,可以采用【1】和【2】.答案:=======(答案1)=======浏览=========或=========编辑=======(答案2)=======编辑=========或=========浏览第9题(1.0分)题号:21属性的取值范围称为域,在"职工"表中,字段"婚否"为逻辑型,它的域为【1】. 答案:=======(答案1)=======逻辑值真逻辑值假=========或=========逻辑真逻辑假=========或=========.T. .F.=========或=========.t. .f.第10题(1.0分)题号:18顺序执行如下两条命令后,显示的结果是【1】.?m=m+″DEF″答案:=======(答案1)=======F二、单项选择共35题(共计35分)第1题(1.0分)题号:136使用()工具栏可以在表单上对齐和调整控件的位置.A:调色板B:布局C:表单控件D:表单设计器答案:B第2题(1.0分)题号:38建立STUDENT表的结构:学号(C,4)姓名(C,8),课程名(C,20),成绩(N,3),使用SQL语句(). A:NEW STUDENT(学号C(4)),姓名C(8),课程号C(20),成绩N(3,0))B:CREATE STUDENT(学号C(4),姓名C(8),课程号C(20),成绩N(3,0))C:CREATE STUDENT(学号,姓名,课程号,成绩)WITH(C(4),C(8),C(20),N(3,0))D:ALTER STUDENT(学号C(4),姓名C(8),课程号C(20),成绩N(3,0))答案:B第3题(1.0分)题号:155下列程序的运行结果为( ).STORE 0 TO M,NDO WHILE M<30N=N+3M=M+NENDDO? M,NRETURNA:30 12B:12 30C:45 15答案:A第4题(1.0分)题号:202要想在一个打开的表中删除某些记录,应先后选用的两个命令是( ).A:DELETE、RECALLB:DELETE、PACKC:DELETE、ZAPD:PACK、DELETE答案:B第5题(1.0分)题号:60打开一个空表文件,分别用函数EOF()和BOF()测试,其结果一定是( ) A:.T.和.F.B:.F.和.F.C:.T.和.T.D:.F.和.T.答案:C第6题(1.0分)题号:235以下特点中不属于面向对象程序设计的特点的是( ).A:单一性B:继承性C:封装性D:多态性答案:A第7题(1.0分)题号:140书写SQL语句时,若语句要占用多行,在行的末尾要加续行符().A::B:;C:,D:″答案:B第8题(1.0分)题号:246用户可以在"菜单设计器"窗口右侧的( )列表框中查看菜单所属的级别. A:菜单项B:菜单级C:预览D:插入答案:B第9题(1.0分)题号:269在Visual Foxpor中创建一个菜单,可以在命令窗口中键入( )命令. A:CREATE MENUB:OPEN MENUC:LIST MENUD:CLOSE MENU答案:A第10题(1.0分)题号:287在Visual FoxPro中,可以使用的变量有( )A:内存变量、字段变量和系统内存变量B:内存变量和自动变量C:字段变量和简单变量D:全局变量和局部变量答案:A第11题(1.0分)题号:231以下关于自由表的叙述,正确的是()A:全部是用以前版本的FoxPro(Visual FoxPro)建立的表B:可以用Visual FoxPro建立,但是不能把它添加到数据库中C:自由表可以添加到数据库中,数据库表也可以从数据库中移出成自由表D:自由表可以添加到数据库中,但数据库表不可以从数据库中移出成答案:C第12题(1.0分)题号:55查询设计器是一种( ).A:建立查询的方式B:建立报表的方式C:建立新数据库的方式D:打印输出的方式答案:A第13题(1.0分)题号:245用户()对数据库文件进行修改A:可以直接在"资源管理器"窗口中B:可以直接在Visual FoxPro的命令窗口中C:必须在数据库设计器中D:既可以直接在"资源管理器"窗口中也可以在数据库设计器中答案:C第14题(1.0分)题号:106默认查询的输出形式是( ).A:表B:图形C:报表D:浏览答案:D第15题(1.0分)题号:3下列说法中正确的是()A:在表设计器的"索引"选面卡中可以定义单项索引B:在定义索引的下拉列表框中选择了升序或降序,则在对应的字段上建立一个普通索引,索引名与字段名同名,索引表达式就是对应的字段C:在定久义索引的下拉列表框中选择了升序或降底,则在对应的字段上建立一个主索引,索引名与字段名同名,索引表达式就是对应的字段D:在定义索引的下拉列表框中选择了升序或降序,则在对应的字段上建立一个惟一索引,索引名与字段名同名,索引表达式就是对应的字段答案:B第16题(1.0分)题号:314在数据库系统中,DBMS是一种( )A:采用了数据库技术的计算机系统B:包含操作系统在内的数据管理软件C:位于用户与操作系统之间的一层数据管理软件D:包括数据库管理人员、及计算机软硬件以及数据库系统答案:C第17题(1.0分)题号:239用CREATE MENU TEST 命令进入"菜单设计器"窗口建立菜单时,存盘后将会在磁盘上出现( ).A:TEST.MPR和TEST.MNTB:TEST.MNX和TEST.MNTC:TEST.MPX和TEST.MPRD:TEST.MNX和TEST.MPR答案:B第18题(1.0分)题号:34把当前表文件中"性别"字段(C型)的值全部清除,但仍保留该字段,应当使用命令( ) A:MODIFY STRUCTUREB:DELETEC:REPLACED:ZAP答案:C第19题(1.0分)题号:310在教学管理中,一名学生可以选择多门课程,一门课程可以被多名学生选择, 这说明学生记录型与课程记录型之间的联系是( )A:一对一B:一对多C:多对多D:未知答案:C第20题(1.0分)题号:251用于建立、修改、运行与打印程序文件的Visual FoxPro命令依次是( ). A:CREATE,MODIFY,DO和PRINTB:MODI COMM,MODI COMM,DO和PRINTC:MODI COMM,MODI COMM,RUN 和TYPED:MODI COMM,MODI COMM,DO和TYPE答案:B第21题(1.0分)题号:2Visual FoxPro参照完整性规则不包括()A:更新规则B:查询规则C:删除规则D:插入规则答案:B第22题(1.0分)题号:71关系数据库管理系统存储与管理数据的基本形式是( )A:关系树B:二维表C:文本文件D:结点路径答案:B第23题(1.0分)题号:296在Vivual FoxPro中,可以使用FOUND()函数来检测查询是否成功命令包括( )A:LIST、FIND、SEEKB:FIND、SEEK、LOCATEC:FIND、DISPLAY、SEEKD:LIST、SEEK、LOCATE答案:B第24题(1.0分)题号:293在Visual FoxPro中,为了将表单从内存中释放(清除),可将表单中退出命令按钮的Click事件代码设置为()A:ThisForm.RefreshB:ThisForm.DeleteC:ThisForm.HideD:ThisForm.Release答案:D第25题(1.0分)题号:207一个关系型数据库管理系统所应具备的3种基本关系操作是( )A:筛选、投影与连接B:排序、索引与查询C:插入、删除与修改D:编辑、浏览与替换答案:A第26题(1.0分)题号:120若内存变量名与当前打开的表中的一个字段名均为name,则执行?name命令后显示的是( ) A:内存变量的值B:随机C:字段变量的值D:错误信息答案:C第27题(1.0分)题号:299在表单设计器环境中,要选定某选项组中的某个选项按钮,例如要选定某命令按钮组中的某个命令按钮,正确的操作是()A:双击要选择的选项按钮B:先单击该选项组,然后单击要选择的选项按钮C:右击选项组并选择"编辑"命令,再单击要选择的选项按钮D:以上(B)和(C)都可以答案:C第28题(1.0分)题号:104命令按钮组是( ).A:控件B:容器C:控件类对象D:容器类对象答案:D第29题(1.0分)题号:185下面命令执行后都将生成TEMP.DBF文件,其中肯定生成空表文件的命令是( )A:SORT TO TEMPB:COPY TO TEMPC:COPY STRUCTURE TO TEMPD:COPY FILE TO TEMP答案:C第30题(1.0分)题号:279在Visual FoxPro系统中,以下关于事件的叙述错误的是( ).A:事件是每个对象可以识别和响应的某些行为和动作B:事件不能适用于多种控件C:事件是通过用户的操作行为引发的D:当事件发生时,将执行包含在事件过程中的全部代码答案:B第31题(1.0分)题号:158下列的( )是字段变量特有而内存变量所没有的数据类型A:逻辑型B:浮点型C:字符型D:日期型答案:B第32题(1.0分)题号:272在Visual FoxPro中 ,SORT命令和INDEX命令的区别是( ) A:前者按指定关键字排序,而后者按指定记录排序B:前者按指定记录排列,而后者按指定关键字排序C:前者改变了记录的物理位置,而后者却不改变D:后者改变了记录的物理位置,而前都却不改变答案:C第33题(1.0分)题号:178下列叙述中错误的是()A:一个表可以有多个外部关键字B:数据库表可以设置记录级的有效性规则C:永久性关系建立后,主表记录指针将随子表记录指地相应移动D:对于临时性关系,一个表不允许有多个主表答案:B第34题(1.0分)题号:205一个表文件中多个备注型字段的内容是存放在( )A:一个文本文件中B:一个备注文件中C:多个备注型文件中D:这个表文件中答案:B第35题(1.0分)题号:37DELETE FROM S WHERE 年龄>60语句的功能是().A:从S表中彻底删除年龄大于60岁的记录B:S表中年龄大于60岁的记录被加上删除标记C:删除S表D:删除S表的年龄列答案:B三、程序设计共1题(共计10分)第1题(10.0分)题号:15*------------------------------------------------------- *【程序设计】*------------------------------------------------------- *题目:从键盘上输入一个数n,计算n的阶乘。
VFP程序(有答案)

一. 数据类型【1】C1 (12)下列常量中格式正确的是( )。
A)S1.23E4 B)““计算机”等级考试”C) .False. D){^2003/01/13}【2】Y7 (15)下列数据哪个不是字符型数据( )。
A)13/01/08 B)“13/01/08”C)“12.3”D)“CHINA=中国”【3】Y6 (14)下列字符型常量的表示中,错误的是( )。
A)”12+13”B)“[x=y]”C)[[北京]] D)[“等级考试”]【4】Y5 (15)下列货币型常量的表示中,错误的是( )。
A)$1234.56 B)$1234.567 C)$1234.5678 D)$1234.56789【5】0904(7)常量{^2009-10-01,15:30:00}的数据类型是【】。
【6】0909-8 在Visual FoxPro中,表示时间2009年3月3日的常量应写为【】【7】Y5 (25)对于只有两种取值的字段,最好使用哪种数据类型( ).A)日期型B)字符型C)数值型D)逻辑型【8】Y7 (25)下列变量名中不合法的是( )。
A)XYZ B)年龄C)2X D)A2【9】Y2 (12)下列关于变量的叙述中,不正确的一项是( )。
A)在Visual FoxPro中,可以将不同类型的数据赋给同一个变量 B)变量的类型决定变量值的类型C)在Visual FoxPro中,变量分为字段变量和内存变量 D)变量值可以随时改变【10】1103(7)假设当前表、当前记录的“科目”字段值为“计算机”(字符型),在命令窗口输入如下命令将显示结果【】。
m=科目-“考试”?m【11】0804 (15)如果内存变量和字段变量均有变量名"姓名",那么引用内存变量的正确方法是:A.M.姓名B.M->姓名 C.姓名D.A和B都可以【12】1003 (27) 0509(23)假设职员表已在当前工作区打开,其当前记录的“姓名”字段值为“李彤”(C型字段,宽度为6)。
VFP程序设计典型例题汇总

Visual FxoPro程序设计题1.编写程序,从键盘输入一个日期,查询STUDENT表中该日期以后出生的学生信息并显示在浏览窗口中。
use student &&运行前单击教学管理数据库input “请输入某日期:” to r q*输入时有提示,或input to rq输入时无提示,输{^1987-01-01}browse for 出生日期>rq2.有一函数:x (x<1)y= 2x-1 (1≤x<10)3x-11 (x≥10)编写程序,输入x,输出y的值。
clearinput "Enter x please!" to xif x<1y=xelseif x<10y=2*x-1elsey=3*x-11endifendif? 'x=',x,'y=',y3.编写程序,从键盘输入一个年份,判断它是否闰年。
clearinput "Enter year number please!" to yif y%4=0 and y%100<>0 or y%400=0? y,"is a leap year!"else? y,"is not leap year."Endif4.编写程序,输入一个百分制成绩,要求输出成绩等级“A”、“B”、“C”、“D”、“E”。
90分以上为“A”,80~89分为“B”,70~79分为“C”,60~69分为“D”,60分以下为“E”。
input “请输入一百分制成绩” to cjdo casecase cj>=90?” A”case cj>=80?” B”case cj>=70?” C”case cj>=60?” D”otherwise?” E”endcase5.编写程序,从键盘输入一个正整数M,输出M内(包括M)所有偶数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Visual FxoPro程序设计题
1.编写程序,从键盘输入一个日期,查询STUDENT表中该日期以后出生的学生信息并显示在浏览窗口中。
use student &&运行前单击教学管理数据库
input “请输入某日期:” to r q
*输入时有提示,或input to rq输入时无提示,输{^1987-01-01}
browse for 出生日期>rq
2.有一函数:
x (x<1)
y= 2x-1 (1≤x<10)
3x-11 (x≥10)
编写程序,输入x,输出y的值。
clear
input "Enter x please!" to x
if x<1
y=x
else
if x<10
y=2*x-1
else
y=3*x-11
endif
endif
? 'x=',x,'y=',y
3.编写程序,从键盘输入一个年份,判断它是否闰年。
clear
input "Enter year number please!" to y
if y%4=0 and y%100<>0 or y%400=0
? y,"is a leap year!"
else
? y,"is not leap year."
Endif
4.编写程序,输入一个百分制成绩,要求输出成绩等级“A”、“B”、“C”、“D”、“E”。
90分以上为“A”,80~89分为“B”,70~79分为“C”,60~69分为“D”,60分以下为“E”。
clear
input “请输入一百分制成绩” to cj
do case
case cj>=90
?” A”
case cj>=80
?” B”
case cj>=70
?” C”
case cj>=60
?” D”
otherwise
?” E”
endcase
5.编写程序,从键盘输入一个正整数M,输出M内(包括M)所有偶数。
clear
input to m
for i=0 to m step 2
??str(i,5)
Endfor
6.编写程序,从键盘输入一个正整数M,计算M内(包括M)所有偶数之和。
clear
input to m
s=0
for i=2 to m step 2
s=s+i
Endfor
? s
7.编写程序,从键盘输入5个数,找出其中的最大数和最小数。
clear
input "请输入第一个数" to max
min=max
for i=2 to 5
? "请输入第"+str(i,2)+"个数"
input to a
if a>max
max=a
endif
if a<min
min=a
endif
endfor
? 'max=',max
? 'min=',min
8.利用数组编写程序,从键盘输入10个数,再按逆序输出。
dime a(10)
for i=1 to 10
input to a(i)
endfor
for i=10 to 1 step -1
? a(i)
endfor
9.编写程序,逐条显示STUDENT表中的男生记录(显示一个记录后,由用户按任意键来显示下一个记录)。
use student
scan for 性别=”男”
disp
wait
endscan
use
10.编写程序,自STUDENT表的最后一个记录开始向前逐个显示(显示一个记录后,由用户按任意键来显示上一个记录)。
use student
go bott
do while not bof()
disp
wait
skip -1
enddo
use
11.先在STUDENT表中插入一个新字段:平均成绩(数值型,6,2)。
然后编写程序,根据GRADE表统计每个学生的平均成绩,并填入新插入的字段中。
select 学号,avg(成绩)as 平均成绩 from grade group by 学号 into table t
use t
index on 学号 to txh
sele 2
use student
index on 学号 to sxh
set rela to 学号 into t
repl all 平均成绩 with t->平均成绩
12.写程序,输入一个三位自然数,判断该数是否为水仙花数。
所谓水仙花数是指一个三位自然数,其各位数字立方和等于该数本身。
例如,153是水仙花数,因为153=13+53+33。
input to zrs
gw=zrs%10
sw=int(zrs/10)%10
bw=int(zrs/100)
if bw**3+sw**3+gw**3=zrs
?”yes!”
else
?”no.”
Endif
13.编写一个自定义函数,判断一个三位自然数是否为水仙花数,若是,返回逻辑真,否则,返回逻辑假。
编写主程序,输入一个三位自然数,调用自定义函数判断该数是否为水仙花数。
clear
input to n
if sxh(n)
?”yes”
else
?”no”
endif
function sxh
para zrs
gw=zrs%10
sw=int(zrs/10)%10
bw=int(zrs/100)
if bw**3+sw**3+gw**3=zrs
return .t.
else
return .f.
endif
endfu
14.编写程序,输入一个自然数,判断该数是否为素数。
clear
input to zrs
sf=.t.
for i=2 to sqrt(zrs)
if zrs%i=0
sf=.f.
exit
endif
endfor
if sf=.t.
?”yes”
else
?”no”
Endif
15.编写一个自定义函数,判断一个自然数是否为素数,返回一个逻辑值。
编写主程序,调用自定义函数求100~200间的所有素数。
for i=100 to 200
if prime(i)
??i
endif
endfor
function prime
para zrs
sf=.t.
for j=2 to sqrt(zrs)
if zrs%j=0
sf=.f.
exit
endif
endfor
return sf
endfunc
16.九九乘法表
(1)矩形样式
Clear
For I=1 to 10 &&外循环I控制输出9行
?
For J=1 to 9 &&内循环J控制第I行输出9项
??str(I,1)+”×”+str(J,1)+”=”+str(I*J,2) &&输出I*J项??”“
Endfor
Endfor
Return
17.阶乘
(1)求单个数阶乘(以5为例)
Clear
J=1
I=1
Do while i<=5
J=j*i
I=i+1
Enddo
?j
Return
(2)求阶乘和(求1到5阶乘的和)
Clear
S=0
I=1
J=1
Do while i<=5 J=j*i
S=s+j
I=i+1
Enddo
?s
Return。