VF程序设计经典例题
VF程序设计(含答案)
2014年春季学期 《VF 程序设计》试卷A一、单项选择题(每空1分,共35分)1.表单的NAME 属性是____。
A.显示在表单标题栏中的名称B.运行表单程序时的程序名C.保存表单时的文件名 D .引用表单对象时的名称2.在VFP6.0中,将字符型数据转换成日期型数据的函数是____。
A .DTOC() B .CTOD() C . DA TE() D . STR()3. 执行命令INPUT ”请输入数据:”TO XYZ 时,可以通过键盘输入的内容包括_____ A) 字符串 B) 数值和字符串C) 数值、字符串和逻辑值 D) 数值、字符串、逻辑值和表达式 4.下列四组基类中,同一组中各个基类全是容器型的是____。
A.Grid,Column,TextBoxmandButton,OptionGroup,ListBoxmandGroup,DataEnvironment,HeaderD.Form,PageFrame,Column 5.字段的默认值保存在____ A.表的索引文件中 B .数据库文件中 C.项目文件中 D .表文件中 6.下列叙述中含有错误的是____。
A.一个数据库表只能设置一个主索引 B.唯一索引不允许索引表达式有重复值C.候选索引既可以用于数据库表也可以用于自由表D.候选索引不允许索引表达式有重复值 7.表移出数据库后,仍然有效的是____ A.记录的验证规则 B .表的验证规则C.字段的默认值D.结构复合索引中的候选索引8.菜单文件经过生成以后形成的菜单程序文件的扩展名是____ A.MPR B.MNX C.MPX D.MND 9.下列叙述中含有错误的是____。
A.一个表可以有多个外部关键字 B.数据库表可以设置记录级的有效性规则C.永久性关系建立后,主表记录指针移动将使子表记录指针相应移动D.对于临时性关系,一个表不允许有多个主表 10.下列对象中,属于容器类的是____A.文本框 B .组合框 C .页框 D.选项按钮11.对于自由表而言,不能创建的索引类型是____。
VF考试 程序设计题
1、从键盘上输入3个不同的数,将他们从大到小排序。
请将下列程序填写完整。
(提示:利用三个if…endif语句实现,其中交换时用到的临时内存变量为t)。
set talk offinput "请输入第一个数:" to ainput "请输入第二个数:" to binput "请输入第三个数:" to c**********Program**********if a<bt=aa=bb=tendifif a<ct=aa=cc=tendifif b<ct=bb=cc=tendif********** End **********?a,b,cReturnSet talk on2、求[1,100]内所有能被3或被5整除的数以及个数。
(提示:利用do while语句实现)。
Set talk offclearn=0i=1**********Program**********Do while i<=100IF MOD(i,3)=0 .OR. MOD(i,5)=0**int(i/3) = i/3 .OR. int(i/5) = i/5?? in=n+1Endifi=i+1enddo********** End **********? "满足条件的数的个数为:",nSet talk onReturn3、求自然数5的阶乘。
请将下列程序填写完整。
(用FOR循环语句)SET TALK OFFS = 1M = 1**********Program**********FOR M=1 TO 5S=S*MENDFOR********** End **********? SSET TALK ONRETURN4、从键盘上输入一个数n,计算n的阶乘。
Set talk offInput "请输入n的值:" to NS=1**********Program**********For I=1 to NS=S*IEndfor********** End **********?SSet talk onReturn5、求连乘数1*2*3*4*……,当积大于720时退出程序。
VF程序设计经典题型
为节省空间,我将答案都放在了Program和End中间了,大家可以学学看哦!(以下各题答案请在Program和End中间填写)1.用循环程序求出1~15之间能被3整除的整数的阶乘和存入变量OUT中,要求用For循环语句实现。
SET TALK OFFSET LOGERRORS ONOUT=0**********Program**********T=1FOR N=1 TO 15T=T*NIF N%3=0OUT=OUT+TENDIFENDFOR?OUT********** End **********SET TALK ONDO YZJ17 WITH OUTRETURN2.. 编程判断一个整数w的各位数字平方之和能否被5整除, 可以被5整除则返回1,否则返回0。
将结果存入变量OUT中,要求用Do While语句实现。
SET TALK ONSET LOGERRORS ON? "输入一个整数:w=39"OUT=-1w=39**********Program**********S=0DO WHILE W>0S=S+(W%10)* (W%10)W=INT(W/10)ENDDOIF S%5=0Out=1ELSEOUT=0ENDIF?OUT********** End **********DO YZJ WITH OUTSET LOGERRORS OFFSET TALK OFF3.编程当n=10时,计算如下表达式a10的值。
a1=1,a2=1/(1+a1),a3=1/(1+a2),......an=1/(1+a(n-1))。
将结果存入变量OUT中,要求用For循环语句实现。
SET TALK ONSET LOGERRORS ONOUT=-1**********Program**********a=1for i=1 to 9a=1.0/(1+a)endforout=a?out********** End **********DO YZJ WITH OUTSET LOGERRORS OFFSET TALK OFF4. 从键盘输入一个整数,输出所有能整除该数,并且本身也能被3整除的数的和。
VF程序设计经典例题
1. 求园的面积〔要求判断半径是否合理〕CleaInpu ‘r=’ to rIf r>0S=3.14*r*r"sElse"’半径错误!’Endif2. 求分段函数Y 的值CleaInpu ‘If *>0Y=2**+5ElseIf *=0Y=*ElseY=abs(*)EndifEndif"y3. 输入一个百分制成绩判断其等级〔优/良/中/及格/不及格〕CleaInpu ‘cj=’ to cjDo caseCase cj>=90"’优’Case cj>=80"’良’Case cj>=70"’中’Case cj>=60"’及格’Orth"’不及格’Endcase4. 输入假设干个〔个数不定〕百分制成绩判断其等级〔优/良/中/及格/不及格〕CleaInpu ‘请输入处理几个人的成绩:’ to nFor i=1 to nInpu ‘cj=’ to cjDo caseCase cj>=90"’优’ 2*+5 *>0 * *=0 | * | *<0Case cj>=80"’良’Case cj>=70"’中’Case cj>=60"’及格’Orth"’不及格’Endcaseendfor5.求S=1+2+3. . . . . .+100CleaS=0For i=1 to 100S=s+iEndfor"s6.求S=1×2×3. . . . . .×100Cleap=1For i=1 to 100p=p*iEndfor"p7.求S=1+3+5.. . . . .+99CleaS=0For i=1 to 99 step 2S=s+iEndfor"s8.求S=1-2+3-4. . . . . .-100CleaS=0For i=1 to 100S=s+(-1)^(i+1)*iEndfor"s9.求S=1+1/2+2/3+3/5. . . . . .前10项之和CleaS=0A=1B=1For i=1 to 10S=s+a/bT=aA=bB=t+bEndfor"s10. 求S =1!+2!+3!. . . . . .+10!CleaS=0P=1For i=1 to 10P=p*iS=s+pEndfor"s11. 对学生表中所有入学成绩≥650分的学生免去贷款CleaUse 学生Scan for 入学成绩>=650 .and. 贷款否=.t.Repl 贷款否 with .f.EndscanUse12. 输出图形Clea For i=1 to 4 For j=1 to i""’*’ Endfor " EndforCleaFor i=1 to 4For j=1 to 4-i""’’ &&有一个空格EndforFor j=1 to 2*i-1""’*’Endfor"EndforCleaFor i=1 to 4For j=1 to 4-i""’’ &&有一个空格Endfor * **** * ******** **** ** *** *** ******* *** *** ** ***** ****** ** **** * ******* ***** *For j=1 to i""’*’Endfor"Endfor13.判断一个整数是否素数CleaInpu ‘*=’ to *For i=2 to *-1If mod(*,i)<>0LoopElseE*itEndifEndforIf i>*-1"*,’是素数’Else"*,’不是素数’Endif14.判断十个整数是否素数CleaFor j=1 to 10Inpu ‘*=’ to *For i=2 to *-1If mod(*,i)<>0LoopElseE*itEndifEndforIf i>*-1"*,’是素数’Else"*,’不是素数’EndifEndfor15.找出两个数的大数和小数CleaInpu ‘*=’ to *Inpu ‘y’ to yIf *>y"*,’大’,y,’小’Else"y,’大’,*,’小’Endif16.找出三个数的最大数和最小数CleaInpu ‘*=’ to *Inpu ‘y’ to yInpu ‘z’ to zIf *<yt=**=yy=tElseIf *<zt=**=zz=tendifendifif y<zt=yy=zz=tendif"*,’是最大数’,z,’是最小数’17.找出十个数的最大数和最小数CleaDime a(10)For i=1 to 10Inpu to a(i)EndforMa*=a(1)Min=a(1)For i=2 to 10If ma*<a(i)Ma*=a(i)ElseIf min>a(i)Min=a(i)EndifEndifEndfor"ma*,min18.找出2×3矩阵中的最大数和最小数cleadime a(2,3)for i=1 to 2for j=1 to 3input ‘a(‘+str(I,2)+’,’+str(j,2)+’)=’ to a(I,j) endforendforma*=a(1,1)min=a(1,1)for i=1 to 2for j=1 to 3if ma*<a(I,j)ma*= a(I,j)elseif min> a(I,j)min= a(I,j)endifendifendforendfor"’ma*=’,ma*,’min=’,min19.对三个整数从大到小排序ClearInput ‘a=’ to aInput ‘b=’ to bInput ‘c=’ to cIf a<bT=aA=bB=tElseIf a<ct=aA=cc=tendifendifIf b<cT=bA=cc=tendif"a,b,c20.对十个整数从大到小排序〔用选择法和起泡法两种方法〕选择法:ClearDime a(10)For i=1 to 10Input to a(i)EndforFor i=1 to 9Ma*=a(i)Num=iFor j=i+1 to 10If ma*<a(j)ma*=a(j)Num=jEndifEndforIf i<>numt=A(i)a(i)=a(num)a(num)=tEndifEndforFor i=1 to 10""a(i),' 'Endfor起泡法:ClearDime a(10)For i=1 to 10Input to a(i)EndforFor i=1 to 9For j=1 to 10-iIf a(j)<a(j+1)t=A(j)a(j)=a(j+1)a(j+1)=tEndifendforEndforFor i=1 to 10""a(i),' 'Endfor21.输出Fibonacci〔斐波那契〕数列的前十项ClearDime a(10)a(1)=1a(2)=1For i=3 to 10a(i)=a(i-1)+a(i-2)EndforFor i=1 to 10""A(i)Endfor22.输出辉三角的前十行ClearDime a(10,10)For i=1 to 10A(I,1)=1A(I,i)=1EndforFor i=3 to 10For j=2 to i-1A(I,j)=a(i-1,j)+a(i-1,j-1)EndforEndforFor i=1 to 10For j=1 to i""A(I,j)Endfor"Endfor23.对2×3矩阵转置CleaDime a(2,3),b(3,2)for i=1 to 2for j=1 to 3input to a(I,j)endforendforfor i=1 to 3for j=1 to 2b(I,j)=a(j,i)endforendforfor i=1 to 3for j=1 to 2""b(I,j)Endfor"endfor24.求三位数中的所有水仙花数〔即指一个三位数,其各位数字立方和等于该数本身〕Cleafor *=100 to 999a=int(*/100)b=mod(int(*/10),10)c=mod(*,10)if *==a*a*a+b*b*b+c*c*c"*Endifendfor25.求100以的所有完数〔即一个数恰好等于除它本身外的所有因子之和〕Cleafor i=3 to 100s=0for j=1 to i-1if mod(i,j)==0s=s+jendifendforif i==s"iendifendfor26.三角形的三边〔从键盘输入〕,求其面积(S^2=p(p-a)(p-b)(p-c), p=(a+b+c)/2)Clearinput 'a=' to ainput 'b=' to binput 'c=' to cif a+b>c and a+c>b and b+c>ap=(a+b+c)/2s=sqrt(p*(p-a)*(p-b)*(p-c))"selse"'三边不能组成三角形'Endif27.求二元方程的根〔分三种情况:两个不等实根,两个相等实根,无实根〕cleainpu 'a=' to a &&a<>0inpu 'b=' to b &&b<>0inpu 'c=' to ci=b*b-4*a*cif i<0""方程无实根!"elseif i==0r=(-b)/(2*a)""方程有两个相等实数根:",relse*1=(-b+sqrt(i))/(2*a)*2=(-b-sqrt(i))/(2*a)""方程有两个不相等实数根:",*1,*2endifendif28.输入任意一个五位整数,前后对应位置上的数据进展交换重新排列〔即逆序排列〕〔例:25984→48952〕cleadime a(5)inpu to ba(1)=int(b/10000)a(2)=mod(int(b/1000),10)a(3)=mod(int(b/100),10)a(4)=mod(int(b/10),10)a(5)=mod(b,10)for i=1 to int(5/2)t=a(i)a(i)=a(6-i)a(6-i)=tendforc=a(1)*10000+a(2)*1000+a(3)*100+a(4)*10+a(5)"b,c29.找出一个3*3矩阵的“鞍点〞,即该位置上的元素在该行上最大,在该列上最小〔也有可能没有鞍点〕cleadime a(3,3)flag=.t.for i=1 to 3for j=1 to 3input 'a('+str(I,2)+','+str(j,2)+')=' to a(i,j)endforendforfor i=1 to 3ma*=a(i,1)col=1for j=2 to 3if ma*<a(i,j)ma*=a(i,j)col=jendifendformin=a(1,col)row=1for k=2 to 3if min>a(k,col)min=a(k,col)row=kendifendforif ma*==min"a(row,col),'是鞍点,在',row,'行',col,'列'flag=.f.endifendforif flag==.t."'无鞍点'endif30.求S(n)=a+aa+aaa+...+aaa....aaa(其中有n个a)之值,a是一个数字,n和a由键盘键入(例如:2+22+222+22222+22222,此时n=5)cleainpu 'a=' to ainpu 'n=' to ns=0t=afor i=1 to ns=s+tt=a+t*10endfor"s31.把一一元钞票,换成一分、二分和五分硬币,每种至少11枚,问有多少种方案"13cleas=0for a=11 to 100for b=11 to 50for c=11 to 20if a+2*b+5*c=100s=s+1endifendforendforne*t"s32.一只猴子一天从山上摘来一袋桃子,从这天开场,它每天都要把袋中的桃子平分为二堆,吃掉其中的一堆,然后再从剩下的桃中拿出一个解谗,等到第10天,它发现袋中只有一只桃可吃啦,问猴子总共摘了多少桃。
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元计费。
VF典型题例
4、求s=1/1!+1/2!+1/3!+……+1/10!的值 a=1 s=0 for n=1 to 10 a=a*n s=s+1/a endfor ?s
3、求各位数字(判定水仙花数、回文数等)
设某四位数的各位数字的平方和等于100,问共有多少个这 种四位数? clea n=0 for x=1000 to 9999 a=int(x/1000) b=int(x/100)%10 c=int(x/10)%10 d=mod(x,10) if a*a+b*b+c*c+d*d=100 n=n+1 endif endfor ?n return
【例】铁路托运慢件行李,假设每张火车票托运
行李在50公斤以内时,按每公斤0.5元收费;超过 50公斤时,超过的部分按每公斤加价0.3元计费.
由题意分析
已知:每公斤的费用0.5元,超重的费用0.3元
要输入的量:行李重量为G 要处理的量:G是不是大于50公斤 要输出的量:费用为F 可得到如下计算公式: 当G≤50公斤 费用:F=0.5×G 当G>50公斤 费用: F=0.5×50+(0.5+0.3)×(G-50)
ENDIF
… …
ENDFOR
初值 循环体内 求和:s=0 s=s+i 求积:s=1 s=s*i 求个数:n=0 n=n+1
VF典型题(改错OR填空)
1、能被整除的
求[10,1000]内所有能被被7和9中至少一个数整 除的整数之个数。 set talk off clear s=0 for x=10 to 1000 if mod(x,7)=0 or mod(x,9)=0 n=n+1 endif endfor ?n set talk on return
VF程序设计习题(1)
1.下列关于数据与信息叙述不正确的是()。
A.数据都可以经过处理得到信息B.信息一定是数据C.数据一定是信息D.信息是经过处理的数据2.下列关系运算中不是单表运算的是()。
A. 选择B. 合并C. 连接D. 投影3.下列描述不正确的是()。
A. 数据库减少了数据冗余B. 数据库能避免一切数据重复C. 数据库具有较高的数据独立性D. 数据库中的数据可以共享4.Visual FoxPro 6.0中要隐藏命令窗口的组合键是()。
A. CTRL+F2B. CTRL+F4C. CTRL+F1D. CTRL+F35.在Visual FoxPro环境下,要隐藏命令窗口,可选择“窗口”菜单中的命令。
A. 清除B. 隐藏C. 循环D. 命令窗口6.在Visual FoxPro 中,关于字段值为空值(NULL)的描述中正确的是()。
A. 不支持字段值为空值B. 空值表示字段还没有确定值C. 空值等同于空字符串D. 空值等同于数值07.Y1="大学计算机基础",那么?SUBS(Y1,LEN(y1)-3,4)命令的执行结果是()。
A. 9B. 12C. 基础D. 计算机8.命令?round(42.1998,2)的结果是( )。
A. 42.00B. 42.20C. 42.19D. 42.20009.下列说法不正确的是( )。
A. recno()的功能是测试当前或指定工作区中数据表的当前记录号B. eof()的功能是测试当前或指定工作区中数据表的记录指针是否指向最后一条记录之后C. reccount()的功能是测试当前或指定工作区中数据表的记录个数,不包含逻辑删除的记录D. bof()的功能是测试当前或指定工作区中数据表的记录指针是否指向第一个记录之前10.关于函数atc()和at()的说法正确的是()。
A. atc()和at()的功能完全相同B. 以上说法都不正确C. atc()区分字母的大小写D. at()区分字母的大小写11.函数MAX(1,-90)的结果值是()。
vf编程试题集解析
【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
【程序4】题目:将一个正整数分解质因数。
例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
【程序5】题目:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
1.程序分析:(a> b)?a:b这是条件运算符的基本例子。
【程序6】题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:利用辗除法。
【程序7】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1.程序分析:利用while语句,条件为输入的字符不为'\n '.【程序8】题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
VF经典题 程序题汇总
231 1 若某整数平方等于某两个正整数平方之和的正整数称为弦数。
例如:由于3^2+4^2=5^2,则5为弦数,求[100,200]之间最大的弦数。
130 2011232 2 求方程8x-5y=3,在|x|<=150, |y|<=200内的整数解。
试问这样的整数解中|x|+|y|的最大值是多少? 323 2011233 3 若两素数之差为2 ,则称两素数为双胞胎数,问[31,600]之间有多少对双胞胎数。
21 2011234 1 若某整数N的所有因子之和等于N的倍数,则N称为多因子完备数,如数28,其因子之和1+2+4+7+14+28=56=2*28,28是多因子完备数。
求[1,500]之间有多少个多因子完备数。
5 2012235 2 求方程8x-5y=3,在|x|<=150, |y|<=200内的整数解。
试问这样的整数解中x+y的最大值是多少? 314 2012236 3 一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:1不是素数),且数p的各位数字均不为零,则称该数p 为逆向超级素数。
例如,617,17,7都是素数,因此617是逆向超级素数,尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。
试求[100,999]之内的所有逆向超级素数的个数。
39 2012237 1 若某整数N的所有因子之和等于N的倍数,则N称为多因子完备数,如数28,其因子之和1+2+4+7+14+28=56=2*28,28是多因子完备数。
求[1,200]之间有多少个多因子完备数。
4 2013238 2 四位数的各位数字的平方和等于100,问其中最大的一个是多少? 9331 2013239 3 设有十进制数字a,b,c,d和e,它们满足下列式子:abcd*e=bcde (a不等于0, e不等于0或1),求满足上述条件的最大四位数abcd的值。
vf典型程序例题
use 学生
locate for 入校总分>=580
do while .not. eof()
disp
continu
enddo
?'结束'
cancel
*******************************************************************************
USE BOOK
LOCATE FOR ‘foxpro’ $ 书名
IF ! FOUND()
?’没有关于foxpro的图书’
ELSE
DO WHILE ! EOF()
CLEAR
?书名,作者,出版日期
?内容介绍
WAIT “是否继续查找?(Y/N)” TO M
*******************************************************************************
五、查询:locate\seek
有下列表:
book(书名 C(20),作者 C(8),出版日期 D,内容简介 M)
编写程序:查询关于 foxpro 的图书.
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)=tndfor
list memo like a
另外可以参看书:P162-163页例 4.45
?’1~100的总和为:’,SUM
使用DO WHILE 实现:
SUM=0
I=1
vf程序设计练习及答案
程序设计操作练习题计算:T=1!+2!+3!+…+10!。
T=0for i=1 to 10S=1for j=1 to iS=S*jendforT=T+Sendfor?"1!+2!+....10!=",T1.某商场的日销售表RQ.DBF包含:营业员代号(DH,N,6)、品名(PM,C,6)、数量(SL,N,2)、单价(DJ,C,7,2)、营业额(YEE,N,9,2),每一笔销售构成数据表中的一条记录,营业额字段为0,编程查询某个营业员全天营业额的程序。
例如:DH PM SL DJ YYE011201 洗衣机 4 1820.00011201 电饭锅8 298.00020301 空调 5 4500.00011201 空调 3 4500.00020301 MP3 1458.00CLEAUSE RQREPL ALL YYE WITH SL*DJ &&营业额=单价*数量D="" && 初始化变量DAccept "请输入营业员代号:" TO DS=0Locate for DH=DDo while Not eof()S=S+YYEContEnddo@12,10 SAY "营业额为:"+STR(S,8,2)RETU3. 逐条显示RSGL.DBF中的记录,显示完一条记录后暂停,出现提示“继续吗(Y/N)?”,用户输入Y(y)则继续显示下一条记录,输入N(n)退出。
clearset talk offuse rsgldo while .not. eof()disp 编号,姓名,性别,职称&&可以使用?输出wait "继续吗(Y/N)?" to YNif UPPER(YN)="N"ExitEndifSkipEnddoUseSet talk onReturn4显示RSGL.DBF中在1966年以后出生的职工记录。
二级VF程序设计典型例题
计算机二级VF程序设计典型例题(六):RETURN T分析:FUNCTION 是一个子函数,语句PARAMETERS是定义子函数里面的变量。
[例30] 如果说用DO命令来执行查询文件、菜单文件、那么<文件名>中必须名含——————。
分析:VISUAL FOXPRO 程序文件通过编辑、连接,可以产生不同的目标代码文件,这些文件具有不同的文件名。
当用DO 命令执行程序文件时,如果没有指定扩展名,系统将按下列顺序寻找程序文件的源代码或某种目标代码文件执行:.EXE->.APP->.FXP->.PRG;但是用DO命令来执行查询文件、菜单文件时,那么<文件名>中必须包括扩展名。
答案:扩展名(.QBR或.MPR)[例31]打开银行客户关系表,输入一个控制口令控制程序的执行,若口令为1,则把“银行代码”为“001”的所有记录加上删除标记;若口令为2,把“银行代码”为“002”的所有记录加上删除标记;若口令为3,把“银行代码”为“003”的所有记录加上删除标记。
请将程序填写完整。
程序:CLEARUSE银行客户关系表EXCLUSIVEBROWSE LASTWATT“请输入你的选择:(1-3)”TO yhdmDO CASECASE (1)DELETE ALL FOR 银行代码=“001”BROWSE ALL FOR银行代码=“001”RECALLCASE (2)DELETE ALL FOR 银行代码=“002”BROWSE ALL FOR 银行代码=“002”RECALLCASE (3)DELETE ALL FOR 银行代码=“003”BROWSE ALL FOR 银行代码=“003”RECALLENDCASEUSE分析:该程序执行时,依次判断语句中列出的条件,当碰到取值为真时就执行该条件下的语句序列。
答案:(1)yhdm=“1”,(2)yhdm=“2”,(3)yhdm=“3”例32 按银行帐号显示存款记录,如果该帐号不存在,则会显示空记录,请将该程序填写完整。
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。
VF程序设计题
1.一个“判定等级”表单如下图所示,包含一个文本框(Text1)、二个标签(Label1,Label2)和二个命令按钮(Command1,Command2)。
此表单的功能是:在文本框Text1中输入一个成绩后,当按下“判定等级Command1”按钮后,会根据输入的成绩判定该同学的成绩级别并在Label2标签处显示;当按下“清空Command2”按钮后,会自动清除Text1和Labe12中的内容。
请写出这两个命令按钮对应的Click事件代码。
(注:成绩在90~100分之间,级别为“优秀”;成绩在80~89分之间,级别为“良好”;成绩在70~79分之间,级别为“中等”;成绩在60~69分之间,级别为“及格”;成绩在0~59分之间,级别为“不及格”。
)Connamd1的单击事件代码Ma=val(thisform.text1.value)s1="该同学的成绩级别为:"do casecase Ma>=90s2="优秀"case Ma>=80s2="良好"case Ma>=70s2="中等"case Ma>=60s2="及格"others2="不及格"endcasebel2.caption=s1+s2Command2的单击事件代码thisform.text1.value=""thisform.text1.setfocusbel2.caption=""2.一个显示“九九乘法表”的表单如下图所示。
此表单的功能是:鼠标单击表单时,界面上会显示出“九九乘法表”。
请写出该表单(Form1)的C1ick事件代码。
表单的单击事件代码for i=1 to 9for j=1 to 9if i*j<10 then??str(i,1)+"*"+str(j,1)+"="+str(i*j,1)+space(2)else??str(i,1)+"*"+str(j,1)+"="+str(i*j,2) +space(1)endifnext j?next i3.一个“标签文本互换”表单如图所示,包含三个标签:Label1、Label2、Label3,它们的文本是:信息技术,生物工程,自动控制。
VF编程题一
dime f(50)
f(1)=1-1/2
f(2)=1/3-1/4
f(3)=1/5-1/6
s=0
for n=1 to 50
f(n)=1/(2*n-1)-1/(2*n)
s=s+f(n)
endfor
?round(s,4)
184 S1=1,S2=1+3,S3=1+3+5,S4=1+3+5+7,…,SN=1+3+5+7+…+(2N-1),N为正整数。编程求S1+S2+S3+S4+…+SN的值<20000时的N的最大值。 38
?s
103求[351,432]之间所有既不能被3整除,又不能被8整除的正整数的个数。 47
clea
s=0
for n=351 to 432
if n%3!=0 and n%8!=0
s=s+1
endif
endfor
?s
1
150求[1,1000]之间能被3整除,且至少有一位上的数是5的所有数之和。 46509
f(1)=0
f(2)=0
f(3)=1
s=0
for n=4 to 36
f(n)=f(n-3)+f(n-2)+f(n-1)
s=f(n)
endfor
?s
20 编程序求出1-5000以内能被37整除的整数之和。 339660
clear
s=0
for n=1 to 5000
147 计算y=1+2/3+3/5+4/7+…+n/(2*n-1)(n=50), 要求:按四舍五入的方式精确到小数点后第二位。 26.47
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)。
1. 求园的面积(要求判断半径是否合理)CleaInpu ‘r=’ to rIf r>0S=3.14*r*r?sElse?’半径错误!’Endif2. 求分段函数Y 的值Clea Inpu ‘x=’If x>0Y=2*x+5ElseIf x=0Y=xElseY=abs(x)EndifEndif?y3. 输入一个百分制成绩判断其等级(优/良/中/及格/不及格)CleaInpu ‘cj=’ to cjDo caseCase cj>=90?’优’Case cj>=80?’良’Case cj>=70?’中’Case cj>=60?’及格’Orth?’不及格’Endcase4. 输入若干个(个数不定)百分制成绩判断其等级(优/良/中/及格/不及格)CleaInpu ‘请输入处理几个人的成绩:’ to nFor i=1 to nInpu ‘cj=’ to cjDo case2x +5 x>0 x x=0 | x | x<0Case cj>=90?’优’Case cj>=80?’良’Case cj>=70?’中’Case cj>=60?’及格’Orth?’不及格’Endcaseendfor5.求S=1+2+3. . . . . .+100CleaS=0For i=1 to 100S=s+iEndfor?s6.求S=1×2×3. . . . . .×100Cleap=1For i=1 to 100p=p*iEndfor?p7.求S=1+3+5.. . . . .+99CleaS=0For i=1 to 99 step 2S=s+iEndfor?s8.求S=1-2+3-4. . . . . .-100CleaS=0For i=1 to 100S=s+(-1)^(i+1)*iEndfor?s9.求S=1+1/2+2/3+3/5. . . . . .前10项之和CleaS=0A=1B=1For i=1 to 10S=s+a/bT=aA=bB=t+bEndfor?s10. 求S =1!+2!+3!. . . . . .+10!CleaS=0P=1For i=1 to 10P=p*iS=s+pEndfor?s11. 对学生表中所有入学成绩≥650分的学生免去贷款CleaUse 学生Scan for 入学成绩>=650 .and. 贷款否=.t.Repl 贷款否 with .f.EndscanUse12. 输出图形Clea For i=1 to 4For j=1 to i??’*’Endfor?EndforCleaFor i=1 to 4For j=1 to 4-i??’ ’ &&有一个空格EndforFor j=1 to 2*i-1??’*’* **** * ******** **** ** *** *** ******* *** *** ** ***** ****** ** **** * ******* ***** *?EndforCleaFor i=1 to 4For j=1 to 4-i??’’&&有一个空格EndforFor j=1 to i??’*’Endfor?Endfor13.判断一个整数是否素数CleaInpu ‘x=’ to xFor i=2 to x-1If mod(x,i)<>0LoopElseExitEndifEndforIf i>x-1?x,’是素数’Else?x,’不是素数’Endif14.判断十个整数是否素数CleaFor j=1 to 10Inpu ‘x=’ to xFor i=2 to x-1If mod(x,i)<>0LoopElseExitEndifEndforIf i>x-1?x,’是素数’Else?x,’不是素数’Endif15.找出两个数的大数和小数CleaInpu ‘x=’ to xInpu ‘y’to yIf x>y?x,’大’,y,’小’Else?y,’大’,x,’小’Endif16.找出三个数的最大数和最小数CleaInpu ‘x=’ to xInpu ‘y’to yInpu ‘z’to zIf x<yt=xx=yy=tElseIf x<zt=xx=zz=tendifendifif y<zt=yy=zz=tendif?x,’是最大数’,z,’是最小数’17.找出十个数的最大数和最小数CleaDime a(10)For i=1 to 10Inpu to a(i)EndforMax=a(1)Min=a(1)For i=2 to 10If max<a(i)Max=a(i)ElseIf min>a(i).Min=a(i)EndifEndifEndfor?max,min18.找出2×3矩阵中的最大数和最小数cleadime a(2,3)for i=1 to 2for j=1 to 3input ‘a(‘+str(I,2)+’,’+str(j,2)+’)=’to a(I,j) endforendformax=a(1,1)min=a(1,1)for i=1 to 2for j=1 to 3if max<a(I,j)max= a(I,j)elseif min> a(I,j)min= a(I,j)endifendifendforendfor?’max=’,max,’min=’,min19.对三个整数从大到小排序ClearInput ‘a=’ to aInput ‘b=’ to bInput ‘c=’ to cIf a<bT=aA=bB=tElseIf a<ct=aA=cc=tendifendifIf b<cT=bA=cc=tendif?a,b,c20.对十个整数从大到小排序(用选择法和起泡法两种方法)选择法:ClearDime a(10)For i=1 to 10Input to a(i)EndforFor i=1 to 9Max=a(i)Num=iFor j=i+1 to 10If max<a(j)max=a(j)Num=jEndifEndforIf i<>numt=A(i)a(i)=a(num)a(num)=tEndifEndforFor i=1 to 10??a(i),' 'Endfor起泡法:ClearDime a(10)For i=1 to 10Input to a(i)EndforFor i=1 to 9For j=1 to 10-iIf a(j)<a(j+1)t=A(j)a(j)=a(j+1)a(j+1)=tEndifendforEndforEndfor21.输出Fibonacci(斐波那契)数列的前十项ClearDime a(10)a(1)=1a(2)=1For i=3 to 10a(i)=a(i-1)+a(i-2)EndforFor i=1 to 10??A(i)Endfor22.输出杨辉三角的前十行ClearDime a(10,10)For i=1 to 10A(I,1)=1A(I,i)=1EndforFor i=3 to 10For j=2 to i-1A(I,j)=a(i-1,j)+a(i-1,j-1)EndforEndforFor i=1 to 10For j=1 to i??A(I,j)Endfor?Endfor23.对2×3矩阵转置CleaDime a(2,3),b(3,2)for i=1 to 2for j=1 to 3input to a(I,j)endforendforfor i=1 to 3for j=1 to 2b(I,j)=a(j,i)endforendfor??b(I,j)Endfor?endfor24.求三位数中的所有水仙花数(即指一个三位数,其各位数字立方和等于该数本身)Cleafor x=100 to 999a=int(x/100)b=mod(int(x/10),10)c=mod(x,10)if x==a*a*a+b*b*b+c*c*c?xEndifendfor25.求100以内的所有完数(即一个数恰好等于除它本身外的所有因子之和)Cleafor i=3 to 100s=0for j=1 to i-1if mod(i,j)==0s=s+jendifendforif i==s?iendif26.已知三角形的三边(从键盘输入),求其面积(S^2=p(p-a)(p-b)(p-c), p=(a+b+c)/2)Clearinput 'a=' to ainput 'b=' to binput 'c=' to cif a+b>c and a+c>b and b+c>ap=(a+b+c)/2s=sqrt(p*(p-a)*(p-b)*(p-c))?selse?'三边不能组成三角形'Endif27.求二元方程的根(分三种情况:两个不等实根,两个相等实根,无实根)cleainpu 'a=' to a &&a<>0inpu 'b=' to b &&b<>0inpu 'c=' to ci=b*b-4*a*cif i<0?"方程无实根!"elseif i==0r=(-b)/(2*a)?"方程有两个相等实数根:",relsex1=(-b+sqrt(i))/(2*a)x2=(-b-sqrt(i))/(2*a)?"方程有两个不相等实数根:",x1,x2endifendif28.输入任意一个五位整数,前后对应位置上的数据进行交换重新排列(即逆序排列)(例:25984→48952)cleadime a(5)inpu to ba(1)=int(b/10000)a(2)=mod(int(b/1000),10)a(3)=mod(int(b/100),10)a(4)=mod(int(b/10),10)a(5)=mod(b,10)for i=1 to int(5/2)t=a(i)a(i)=a(6-i)a(6-i)=tendforc=a(1)*10000+a(2)*1000+a(3)*100+a(4)*10+a(5)?b,c29.找出一个3x3矩阵的“鞍点”,即该位置上的元素在该行上最大,在该列上最小(也有可能没有鞍点)cleadime a(3,3)flag=.t.for i=1 to 3for j=1 to 3input 'a('+str(I,2)+','+str(j,2)+')=' to a(i,j)endforendforfor i=1 to 3max=a(i,1)col=1for j=2 to 3if max<a(i,j)max=a(i,j)col=jendifendformin=a(1,col)row=1for k=2 to 3if min>a(k,col)min=a(k,col)row=kendifendforif max==min?a(row,col),'是鞍点,在',row,'行',col,'列'flag=.f.endifendforif flag==.t.?'无鞍点'endif30.求S(n)=a+aa+aaa+...+aaa....aaa(其中有n个a)之值,a是一个数字,n和a由键盘键入(例如:2+22+222+22222+22222,此时n=5)cleainpu 'a=' to ainpu 'n=' to ns=0t=afor i=1 to ns=s+tt=a+t*10endfor?s31.把一张一元钞票,换成一分、二分和五分硬币,每种至少11枚,问有多少种方案? 13cleas=0for a=11 to 100for b=11 to 50for c=11 to 20if a+2*b+5*c=100s=s+1endifendforendfornext?s32.一只猴子一天从山上摘来一袋桃子,从这天开始,它每天都要把袋中的桃子平分为二堆,吃掉其中的一堆,然后再从剩下的桃中拿出一个解谗,等到第10天,它发现袋中只有一只桃可吃啦,问猴子总共摘了多少桃。