1、VF编程题库第六章 程序设计编程题1. 求园的面积(要求判断半径是否合理)CleaInpu r= to rIf r0 S=3.14*r*r ?sElse ?半径错误!Endif2. 求分段函数Y的值CleaInpu x= to xIf x0 Y=2*x+5Else If x=0Y=x ElseY=abs(x) EndifEndif?y3. 输入一个百分制成绩判断其等级(优/良/中/及格/不及格)CleaInpu cj= to cjDo case Case cj=90?优 Case cj=80?良 Case cj=70?中 Case cj=60?及格 Orth?不及格Endcase4. 输入若干
2、个(个数不定)百分制成绩判断其等级(优/良/中/及格/不及格)CleaInpu 请输入处理几个人的成绩: to nFor i=1 to nInpu cj= to cjDo case Case cj=90?优 Case cj=80?良 Case cj=70?中 Case cj=60?及格 Orth?不及格Endcaseendfor5. 求S1+2+3. . . . . .+100CleaS=0For i=1 to 100 S=s+iEndfor?s6. 求S123. . . . . .100Cleap=1For i=1 to 100 p=p*iEndfor?p7. 求S1+3+5. . . .
3、.+99CleaS=0For i=1 to 99 step 2 S=s+iEndfor?s8. 求S12+34. . . . . .100CleaS=0For i=1 to 100 S=s+(-1)(i+1)*iEndfor?s9. 求S1+1/2+2/3+3/5. . . . . .前10项之和CleaS=0A=1B=1For i=1 to 10 S=s+a/b T=a A=b B=t+bEndfor?s10. 求S1!+2!+3!. . . . . .+10!CleaS=0P=1For i=1 to 10P=p*i S=s+p Endfor?s11. 对学生表中所有入学成绩650分的学生免
4、去贷款CleaUse 学生Scan for入学成绩=650 .and. 贷款否=.t. Repl贷款否 with .f.EndscanUse12. * * * * * * * * * * * * * * * * * * * * *输出图形CleaFor i=1 to 4 For j=1 to i?* Endfor ?EndforCleaFor i=1 to 4 For j=1 to 4-i? &有一个空格 Endfor For j=1 to 2*i-1?* Endfor ?EndforCleaFor i=1 to 4 For j=1 to 4-i? &有一个空格 Endfor For j=1
5、to i?* Endfor ?Endfor13. 判断一个整数是否素数CleaInpu x= to xFor i=2 to x-1 If mod(x,i)0Loop ElseExitEndifEndforIf ix-1 ?x,是素数Else ?x,不是素数Endif14. 判断十个整数是否素数CleaFor j=1 to 10Inpu x= to xFor i=2 to x-1 If mod(x,i)0Loop ElseExitEndifEndforIf ix-1 ?x,是素数Else ?x,不是素数EndifEndfor15. 找出两个数的大数和小数CleaInpu x= to xInpu
6、y to yIf xy ?x,大,y,小Else ?y,大,x,小Endif16. 找出三个数的最大数和最小数CleaInpu x= to xInpu y to yInpu z to zIf xy t=xx=yy=tElse If xz t=xx=zz=t endifendifif yz t=yy=zz=tendif?x,是最大数,z,是最小数17. 找出十个数的最大数和最小数CleaDime a(10)For i=1 to 10 Inpu to a(i)EndforMax=a(1)Min=a(1)For i=2 to 10 If maxa(i) Min=a(i)Endif EndifEndf
7、or?max,min18. 找出23矩阵中的最大数和最小数cleadime a(2,3)for i=1 to 2 for 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 2 for j=1 to 3if max a(I,j) min= a(I,j) endifendif endforendfor?max=,max,min=,min19. 对三个整数从大到小排序ClearInput a= to aInput b= to bInput c= to cIf ab
8、T=a A=b B=tElse If ac t=a A=cc=t endifendifIf bc T=b A=c c=tendif?a,b,c20. 对十个整数从大到小排序(用选择法和起泡法两种方法)选择法:ClearDime a(10)For i=1 to 10 Input to a(i)EndforFor i=1 to 9 Max=a(i) Num=i For j=i+1 to 10If maxa(j) max=a(j) Num=jEndif Endfor If inum t=A(i) a(i)=a(num) a(num)=t EndifEndforFor i=1 to 10 ?a(i),
9、 Endfor起泡法:ClearDime a(10)For i=1 to 10 Input to a(i)EndforFor i=1 to 9 For j=1 to 10-i If a(j)c and a+cb and b+ca p=(a+b+c)/2 s=sqrt(p*(p-a)*(p-b)*(p-c) ?selse ?三边不能组成三角形Endif27. 求二元方程的根(分三种情况:两个不等实根,两个相等实根,无实根)cleainpu a= to a &a0inpu b= to b &b0inpu c= to ci=b*b-4*a*c if i0 ?方程无实根! else if i=0 r=
10、(-b)/(2*a) ?方程有两个相等实数根:,r else x1=(-b+sqrt(i)/(2*a) x2=(-b-sqrt(i)/(2*a) ?方程有两个不相等实数根:,x1,x2 endifendif28. 输入任意一个五位整数,前后对应位置上的数据进行交换重新排列(即逆序排列)(例:2598448952)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
11、=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 3 for j=1 to 3 input a(+str(I,2)+,+str(j,2)+)= to a(i,j) endforendfor for i=1 to 3 max=a(i,1) col=1 for j=2 to 3 if maxa(k,col) min=a(k
12、,col) row=k endif endfor if 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 n s=s+t t=a+t*10endfor?s1 显示“学生.dbf”文件中性别为“男”的记录。SET TALK OFFUS
13、E 学生DO WHILE .NOT.E()F()IF 性别=”女” SKIP LOOPENDIFDISPLYSIKPENDDOUSESET TALK ONRETURN3.使用SCANENDSCAN循环来显示”教员”表中职称为”讲师”的所有教师。 SET TALK OFF OPEN DATABASE 教学管理 USE 教员 CLEAR SCAN FOR 职称=“讲师” DISPLAY ENDSCAN CLOSE DATABASE SET TALK ON RETURN实验7? Visual FoxPro 6.0程序设计2一、实验目的1熟练掌握分支结构的程序设计方法。2熟练掌握循环结构的程序设计方法
14、。二、实验内容与操作步骤1 1? 分支结构程序设计(1)编写一程序,文件名为P4.prg,请用户输入待查学生的姓名,显示学生基本情况。程序文件如图7.1所示。图7.1 程序文件P4.prg(2)编写一程序,文件名为P5.prg,计算以下分段函数的值。程序如图7.2所示。图7.2程序文件P5.prg(3)编写一密码校验程序,程序文件名为P6.prg(假设密码为123)。程序代码如图7.3所示。图7.3程序文件P6.prg(4)编写一程序,程序文件名为p7.prg,求一元二次方程AX2+BX+C=0的实根。程序代码如图7.4所示。图7.4程序文件P7.prg2 2? 循环结构程序设计(1)编写一程
15、序,程序文件名为P8.prg,计算1+2+3+100之和。程序文件如图7.5所示。图7.5程序文件P8.prg(2)编写一个程序,程序文件名为P9.prg,求出3100之间的所有素数。程序文件如图7.6所示。图7.6程序文件P9.prg(3)编写一个查询学生情况的程序,程序文件名为P10.prg,要求根据给定的学号查找并显示学生的姓名及各门课的成绩。程序文件如下:&程序文件P10.prgset safety off? &当产生已存在的文件或索引标记时,直接覆盖,不给出确认对话框set default to e:vfp6.0open database lizxuse 学生 sele 2use 成
16、绩 inde on 学号 tag xhnsele 1inde on 学号 tag xhset relation to 学号 into 成绩set skip to 成绩do while .t.? clear ? accept 请输入学号: to ixh? seek ixh? if !eof()? mess=学号:+学号+? 姓名:+姓名? do while 成绩.学号=ixh? disp 学号,姓名,b-课程号,b-成绩? mess=mess+chr(10)+chr(13)+课程号:+成绩.课程号+成绩:+str(成绩.成绩,5,1)? skip? enddo? mess=mess+chr(10
17、)+chr(13)+按任意键继续.? else? mess=查无此人,按任意键继续.? endif? wait mess window? wait 继续查询吗?(Y/N)to m? if upper(m)y? exit? endif? enddo? close database? set safety on(4)利用SELECTSQL语句实现本实验(3)中的自动查询。? 程序文件如图7-7所示。图7.7 用SQL语句实现查询7编写一个判断任意某年是否为闰年的程序。 判断某年是闰年的方法为:年份能被4整除但不能被100整除,或者能被400整除。运行程序时,分别用1800、1958、2000、20
18、04等年份进行测试,检查程序的正确性。 【上机步骤】 本题的知识点是双分支选择语句及IF语句的嵌套使用,程序代码如下: CLEARSET TALK OFFINPUT 年份:TO yeflag=.F.IF MOD(YE,400)=0flag=.T.ELSEIF MOD(ye,4)=0 AND MOD(ye,25)!=0flag=.T.ENDIFENDIFIF flag?ye,年是闰年ELSE?ye,年不是闰年ENDIFSET TALK ONRETURN【上机题四】 编写程序,要求输入某学生某门课程的成绩,按成绩大小归类到A、B、C、D、E等5个等级之一,并打印成绩所属级别。 成绩标准如下: E级
19、:060(不含60) 级:6070(不含70) C级: 7080(不含80) B级: 8090(不含90) A级: 90100【上机步骤】 本题的知识点是多分支选择语句的使用,程序代码如下: CLEARSET TALK OFFINPUT 学生成绩:TO gradeDO CASECASE grade=90?ACASE grade=80?BCASE grade=70?CCASE grade=60?DOTHERWISE?EENDCASESET TALK ONRETURN实验十SQL查询语句的使用一、实验目的 1掌握SQL语言中SELECT语句的格式,掌握WHERE、GROUP BY、ORDER BY
20、等子句的用法。 2掌握简单查询、连接查询、嵌套查询的应用。3了解各种查询条件的表达方法。4学会解决复杂查询的思路与方法。二、实验内容及上机步骤 【上机题一】 用SQL语言查询所有在2000年以前参加工作并且职称是讲师的职工。【上机步骤】 本题的知识点是带WHERE子句的SELECT查询语句。在命令窗口中执行如下命令: SELECT * FROM 职工表 where year(工作日期)1【上机题六】 用SQL语言实现从职工表、部门表和工资表中查询部门编号为“01”的职工信息,要求输出职工编号、姓名、部门编号、部门名称、基本工资字段的值。 【上机步骤】 本题的知识点多表联合查询操作。 在命令窗口中执行如下命令: SELECT a.职工编号,a.姓名,a.部门编号,b.部门名称,c.基本工资;FROM 职工表 a,部门表 b,工资表 c;WHERE b.部门编号=a.部门编号 AND a.职工编号=c.职工编号 AND;a.部门编号=01【上机题七】 使用嵌套查询,输出基本工资大于1000的职工的编号、姓名、职称字段的值。【上机步骤】 本题的知识点是嵌套查询操作。 在命令窗口中执行如下命令: SELECT 职工编号,姓名,职称 FROM 职工表;WHERE 职工编号 IN(SELECT 职工编号 F
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1