VF编程题库.docx

上传人:b****7 文档编号:8694395 上传时间:2023-02-01 格式:DOCX 页数:29 大小:25.91KB
下载 相关 举报
VF编程题库.docx_第1页
第1页 / 共29页
VF编程题库.docx_第2页
第2页 / 共29页
VF编程题库.docx_第3页
第3页 / 共29页
VF编程题库.docx_第4页
第4页 / 共29页
VF编程题库.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

VF编程题库.docx

《VF编程题库.docx》由会员分享,可在线阅读,更多相关《VF编程题库.docx(29页珍藏版)》请在冰豆网上搜索。

VF编程题库.docx

VF编程题库

第六章程序设计编程题

1.求园的面积(要求判断半径是否合理)

Clea

Inpu‘r=’tor

Ifr>0

S=3.14*r*r

?

s

Else

?

’半径错误!

Endif

2.求分段函数Y的值

Clea

Inpu‘x=’tox

Ifx>0

Y=2*x+5

Else

Ifx=0

Y=x

Else

Y=abs(x)

Endif

Endif

?

y

3.输入一个百分制成绩判断其等级(优/良/中/及格/不及格)

Clea

Inpu‘cj=’tocj

Docase

Casecj>=90

?

’优’

Casecj>=80

?

’良’

Casecj>=70

?

’中’

Casecj>=60

?

’及格’

Orth

?

’不及格’

Endcase

4.输入若干个(个数不定)百分制成绩判断其等级(优/良/中/及格/不及格)

Clea

Inpu‘请输入处理几个人的成绩:

’ton

Fori=1ton

Inpu‘cj=’tocj

Docase

Casecj>=90

?

’优’

Casecj>=80

?

’良’

Casecj>=70

?

’中’

Casecj>=60

?

’及格’

Orth

?

’不及格’

Endcase

endfor

5.求S=1+2+3......+100

Clea

S=0

Fori=1to100

S=s+i

Endfor

?

s

6.求S=1×2×3......×100

Clea

p=1

Fori=1to100

p=p*i

Endfor

?

p

7.求S=1+3+5......+99

Clea

S=0

Fori=1to99step2

S=s+i

Endfor

?

s

8.求S=1-2+3-4......-100

Clea

S=0

Fori=1to100

S=s+(-1)^(i+1)*i

Endfor

?

s

9.求S=1+1/2+2/3+3/5......前10项之和

Clea

S=0

A=1

B=1

Fori=1to10

S=s+a/b

T=a

A=b

B=t+b

Endfor

?

s

10.求S=1!

+2!

+3!

......+10!

Clea

S=0

P=1

Fori=1to10

P=p*i

S=s+p

Endfor

?

s

11.对学生表中所有入学成绩≥650分的学生免去贷款

Clea

Use学生

Scanfor入学成绩>=650.and.贷款否=.t.

Repl贷款否with.f.

Endscan

Use

12.

******************

******************

******************

******************

输出图形

Clea

Fori=1to4

Forj=1toi

?

?

’*’

Endfor

?

Endfor

Clea

Fori=1to4

Forj=1to4-i

?

?

’’&&有一个空格

Endfor

Forj=1to2*i-1

?

?

’*’

Endfor

?

Endfor

Clea

Fori=1to4

Forj=1to4-i

?

?

’’&&有一个空格

Endfor

Forj=1toi

?

?

’*’

Endfor

?

Endfor

13.判断一个整数是否素数

Clea

Inpu‘x=’tox

Fori=2tox-1

Ifmod(x,i)<>0

Loop

Else

Exit

Endif

Endfor

Ifi>x-1

?

x,’是素数’

Else

?

x,’不是素数’

Endif

14.判断十个整数是否素数

Clea

Forj=1to10

Inpu‘x=’tox

Fori=2tox-1

Ifmod(x,i)<>0

Loop

Else

Exit

Endif

Endfor

Ifi>x-1

?

x,’是素数’

Else

?

x,’不是素数’

Endif

Endfor

15.找出两个数的大数和小数

Clea

Inpu‘x=’tox

Inpu‘y’toy

Ifx>y

?

x,’大’,y,’小’

Else

?

y,’大’,x,’小’

Endif

16.找出三个数的最大数和最小数

Clea

Inpu‘x=’tox

Inpu‘y’toy

Inpu‘z’toz

Ifx

t=x

x=y

y=t

Else

Ifx

t=x

x=z

z=t

endif

endif

ify

t=y

y=z

z=t

endif

?

x,’是最大数’,z,’是最小数’

17.找出十个数的最大数和最小数

Clea

Dimea(10)

Fori=1to10

Inputoa(i)

Endfor

Max=a

(1)

Min=a

(1)

Fori=2to10

Ifmax

Max=a(i)

Else

Ifmin>a(i)

Min=a(i)

Endif

Endif

Endfor

?

max,min

18.找出2×3矩阵中的最大数和最小数

clea

dimea(2,3)

fori=1to2

forj=1to3

input‘a(‘+str(I,2)+’,’+str(j,2)+’)=’toa(I,j)

endfor

endfor

max=a(1,1)

min=a(1,1)

fori=1to2

forj=1to3

ifmax

max=a(I,j)

else

ifmin>a(I,j)

min=a(I,j)

endif

endif

endfor

endfor

?

’max=’,max,’min=’,min

19.对三个整数从大到小排序

Clear

Input‘a=’toa

Input‘b=’tob

Input‘c=’toc

Ifa

T=a

A=b

B=t

Else

Ifa

t=a

A=c

c=t

endif

endif

Ifb

T=b

A=c

c=t

endif

?

a,b,c

20.对十个整数从大到小排序(用选择法和起泡法两种方法)

选择法:

Clear

Dimea(10)

Fori=1to10

Inputtoa(i)

Endfor

Fori=1to9

Max=a(i)

Num=i

Forj=i+1to10

Ifmax

max=a(j)

Num=j

Endif

Endfor

Ifi<>num

t=A(i)

a(i)=a(num)

a(num)=t

Endif

Endfor

Fori=1to10

?

?

a(i),''

Endfor

起泡法:

Clear

Dimea(10)

Fori=1to10

Inputtoa(i)

Endfor

Fori=1to9

Forj=1to10-i

Ifa(j)

t=A(j)

a(j)=a(j+1)

a(j+1)=t

Endif

endfor

Endfor

Fori=1to10

?

?

a(i),''

Endfor

21.输出Fibonacci(斐波那契)数列的前十项

Clear

Dimea(10)

a

(1)=1

a

(2)=1

Fori=3to10

a(i)=a(i-1)+a(i-2)

Endfor

Fori=1to10

?

?

A(i)

Endfor

22.输出杨辉三角的前十行

Clear

Dimea(10,10)

Fori=1to10

A(I,1)=1

A(I,i)=1

Endfor

Fori=3to10

Forj=2toi-1

A(I,j)=a(i-1,j)+a(i-1,j-1)

Endfor

Endfor

Fori=1to10

Forj=1toi

?

?

A(I,j)

Endfor

?

Endfor

23.对2×3矩阵转置

Clea

Dimea(2,3),b(3,2)

fori=1to2

forj=1to3

inputtoa(I,j)

endfor

endfor

fori=1to3

forj=1to2

b(I,j)=a(j,i)

endfor

endfor

fori=1to3

forj=1to2

?

?

b(I,j)

Endfor

?

endfor

24.求三位数中的所有水仙花数(即指一个三位数,其各位数字立方和等于该数本身)

Clea

forx=100to999

a=int(x/100)

b=mod(int(x/10),10)

c=mod(x,10)

ifx==a*a*a+b*b*b+c*c*c

?

x

Endif

endfor

25.求100以内的所有完数(即一个数恰好等于除它本身外的所有因子之和)

Clea

fori=3to100

s=0

forj=1toi-1

ifmod(i,j)==0

s=s+j

endif

endfor

ifi==s

?

i

endif

endfor

26.已知三角形的三边(从键盘输入),求其面积(S^2=p(p-a)(p-b)(p-c),p=(a+b+c)/2)

Clea

input'a='toa

input'b='tob

input'c='toc

ifa+b>canda+c>bandb+c>a

p=(a+b+c)/2

s=sqrt(p*(p-a)*(p-b)*(p-c))

?

s

else

?

'三边不能组成三角形'

Endif

27.求二元方程的根(分三种情况:

两个不等实根,两个相等实根,无实根)

clea

inpu'a='toa&&a<>0

inpu'b='tob&&b<>0

inpu'c='toc

i=b*b-4*a*c

ifi<0

?

"方程无实根!

"

else

ifi==0

r=(-b)/(2*a)

?

"方程有两个相等实数根:

",r

else

x1=(-b+sqrt(i))/(2*a)

x2=(-b-sqrt(i))/(2*a)

?

"方程有两个不相等实数根:

",x1,x2

endif

endif

28.输入任意一个五位整数,前后对应位置上的数据进行交换重新排列(即逆序排列)(例:

25984→48952)

clea

dimea(5)

inputob

a

(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)

fori=1toint(5/2)

t=a(i)

a(i)=a(6-i)

a(6-i)=t

endfor

c=a

(1)*10000+a

(2)*1000+a(3)*100+a(4)*10+a(5)

?

b,c

29.找出一个3x3矩阵的“鞍点”,即该位置上的元素在该行上最大,在该列上最小(也有可能没有鞍点)

clea

dimea(3,3)

flag=.t.

fori=1to3

forj=1to3

input'a('+str(I,2)+','+str(j,2)+')='toa(i,j)

endfor

endfor

fori=1to3

max=a(i,1)

col=1

forj=2to3

ifmax

max=a(i,j)

col=j

endif

endfor

min=a(1,col)

row=1

fork=2to3

ifmin>a(k,col)

min=a(k,col)

row=k

endif

endfor

ifmax==min

?

a(row,col),'是鞍点,在',row,'行',col,'列'

flag=.f.

endif

endfor

ifflag==.t.

?

'无鞍点'

endif

30.求S(n)=a+aa+aaa+...+aaa....aaa(其中有n个a)之值,a是一个数字,n和a由键盘键入(例如:

2+22+222+22222+22222,此时n=5)

clea

inpu'a='toa

inpu'n='ton

s=0

t=a

fori=1ton

s=s+t

t=a+t*10

endfor

?

s

1.显示“学生.dbf”文件中性别为“男”的记录。

SETTALKOFF

USE学生

DOWHILE.NOT.E()F()

IF性别=”女”

SKIP

LOOP

ENDIF

DISPLY

SIKP

ENDDO

USE

SETTALKON

RETURN

3.使用SCAN……ENDSCAN循环来显示”教员”表中职称为”讲师”的所有教师。

SETTALKOFF

OPENDATABASE教学管理

USE教员

CLEAR

SCANFOR职称=“讲师”

DISPLAY

ENDSCAN

CLOSEDATABASE

SETTALKON

RETURN

实验7?

VisualFoxPro6.0程序设计2

一、实验目的

1.熟练掌握分支结构的程序设计方法。

2.熟练掌握循环结构的程序设计方法。

二、实验内容与操作步骤

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.prg

2.2.?

循环结构程序设计

(1)编写一程序,程序文件名为P8.prg,计算1+2+3+…+100之和。

程序文件如图7.5所示。

图7.5程序文件P8.prg

(2)编写一个程序,程序文件名为P9.prg,求出3~100之间的所有素数。

程序文件如图7.6所示。

图7.6程序文件P9.prg

(3)编写一个查询学生情况的程序,程序文件名为P10.prg,要求根据给定的学号查找并显示学生的姓名及各门课的成绩。

程序文件如下:

&&程序文件P10.prg

setsafetyoff?

?

?

?

?

&&当产生已存在的文件或索引标记时,直接覆盖,不给出确认对话框

setdefaulttoe:

\vfp6.0

opendatabaselizx

use学生

sele2

use成绩

indeon学号tagxhn

sele1

indeon学号tagxh

setrelationto学号into成绩

setskipto成绩

dowhile.t.

?

?

clear

?

?

accept'请输入学号:

'toixh

?

?

seekixh

?

?

if!

eof()

?

?

mess='学号:

'+学号+'?

姓名:

'+姓名

?

?

dowhile成绩.学号=ixh

?

?

?

?

disp学号,姓名,b->课程号,b->成绩

?

?

?

?

mess=mess+chr(10)+chr(13)+'课程号:

'+成绩.课程号+'成绩:

'+str(成绩.成绩,5,1)

?

?

?

?

skip

?

?

enddo

?

?

mess=mess+chr(10)+chr(13)+'按任意键继续...'

?

?

else

?

?

?

?

mess='查无此人,按任意键继续...'

?

?

endif

?

?

waitmesswindow

?

?

wait'继续查询吗?

(Y/N)'tom

?

?

ifupper(m)<>'y'

?

?

?

?

?

?

?

?

exit

?

?

endif

?

?

enddo

?

?

closedatabase

?

?

setsafetyon

(4)利用SELECT—SQL语句实现本实验(3)中的自动查询。

?

?

?

程序文件如图7-7所示。

图7.7用SQL语句实现查询

7编写一个判断任意某年是否为闰年的程序。

判断某年是闰年的方法为:

年份能被4整除但不能被100整除,或者能被400整除。

运行程序时,分别用1800、1958、2000、2004等年份进行测试,检查程序的正确性。

【上机步骤】

本题的知识点是双分支选择语句及IF语句的嵌套使用,程序代码如下:

CLEAR

SETTALKOFF

INPUT‘年份:

’TOye

flag=.F.

IFMOD(YE,400)=0

flag=.T.

ELSE

IF MOD(ye,4)=0ANDMOD(ye,25)!

=0

flag=.T.

ENDIF

ENDIF

IFflag

?

ye,’年是闰年’

ELSE

?

ye,’年不是闰年’

ENDIF

SETTALKON

RETURN

【上机题四】

编写程序,要求输入某学生某门课程的成绩,按成绩大小归类到A、B、C、D、E等5个等级之一,并打印成绩所属级别。

成绩标准如下:

E级:

0~60(不含60)

D级:

60~70(不含70)

C级:

70~80(不含80)

B级:

80~90(不含90)

A级:

90~100

【上机步骤】

本题的知识点是多分支选择语句的使用,程序代码如下:

CLEAR

SETTALKOFF

INPUT‘学生成绩:

’TOgrade

DOCASE

CASEgrade>=90

?

’A’

CASEgrade>=80

?

’B’

CASE grade>=70

?

’C’

CASE grade>=60

?

’D’

OTHERWISE

?

’E’

ENDCASE

SETTALKON

RETURN

实验十    SQL查询语句的使用

一、实验目的

1.掌握SQL语言中SELECT语句的格式,掌握WHERE、GROUPBY、ORDERBY等子句的用法。

2.掌握简单查询、连接查询、嵌套查询的应用。

3.了解各种查询条件的表达方法。

4.学会解决复杂查询的思路与方法。

二、实验内容及上机步骤

【上机题一】

用SQL语言查询所有在2000年以前参加工作并且职称是讲师的职工。

【上机步骤】

本题的知识点是带WHERE子句的SELECT查询语句。

在命令窗口中执行如下命令:

SELECT*FROM职工表whereyear(工作日期)<2000AND职称=’讲师’

【上机题二】

用SQL语言实现查询职工表中所有姓名里有一个“利”字的职工信息。

【上机步骤】

本题的知识点是带有WHERE子句的SELECT查询语句及like模式匹配条件与通配符的使用。

在命令窗口中执行如下命令:

SELECT*FROM职工表WHERE姓名like‘%利%’

说明:

查询条件是“姓名里有一个利字”,这个“利”字可以是姓,也可以是名,因此它可在最前,也可在中间或最后。

Like通配符只有两个:

?

和%,?

表示任意一个字符,%表示任意多个字符,因此表达式应该为‘%利%’。

【上机题三】

用SQL语言实现将工资表中所有记录按职称津贴的值升序输出,如职称津

贴值相同,再按基本工资的值降序输出。

【上机步骤】

本题的知识点是带有ORDERBY子句的SELECT语句。

在命令窗口中执行如下命令:

select*from工资表orderby职称津贴ASC,基本工资DESC

说明:

注意排序的次序,第一排序字段写在前面,第二排序字段写在后面,然后要说明排序方式。

升序用ASC表示,也可省略不写;降序用DESC表示。

【上机题四】

用SQL语言实现统计职工表中各部门的男职工人数。

【上机步骤】

本题的知识点是GROUPBY子句与WHERE子句的SELECT语句。

在命令窗口中执行如下命令:

SELECT部门编号,COUNT(*)AS人数FROM职工表WHERE性别=’男’;

groupby部门编号

说明:

先用where子句将职工表中的所有男职工筛选出来,然后对部门进行分组,统计出各部门的男职工人数。

【上机题五】

用SQL语言实现统计职工表中各部门的男职工人数,只输出人数大于1人

的部门与人数。

【上机步骤】

本题的知识点是带有HAVING子句的GROUPBY子句及WHERE子句的SELECT语句。

在命令窗口中执行如下命令:

SELECT部门编号,COUNT(*)as人数FROM职工表WHERE性别='男';

GROUPBY部门编号HAVINGCOUNT(*)>1

【上机题六】

用SQL语言实现从职工表、部门表和工资表中查询部门编号为“01”的职

工信息,要求输出职工编号、姓名、部门编号、部门名称、基本工资字段的值。

【上机步骤】

本题的知识点多表联合查询操作。

在命令窗口中执行如下命令:

      

SELECTa.职工编号,a.姓名,a.部门编号,b.部门名称,c.基本工资;

FROM职工表a,部门表b,工资表c;

WHEREb.部门编号=a.部门编号ANDa.职工编号=c.职工编号AND;

a.部门编号='01'

【上机题七】

使用嵌套查询,输出基本工资大于1000的职工的编号、姓名、职称字段的值。

【上机步骤】

本题的知识点是嵌套查询操作。

在命令窗口中执行如下命令:

SELECT职工编号,姓名,职称FROM职工表;

WHERE职工编号IN(SELECT职工编号F

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1