王彦祺版vfp课后实验编程题答案.docx
- 文档编号:30556643
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:16
- 大小:21.99KB
王彦祺版vfp课后实验编程题答案.docx
《王彦祺版vfp课后实验编程题答案.docx》由会员分享,可在线阅读,更多相关《王彦祺版vfp课后实验编程题答案.docx(16页珍藏版)》请在冰豆网上搜索。
王彦祺版vfp课后实验编程题答案
一.顺序结构
1.从键盘输入长方体的长、宽、高,求长方体的表面积。
input“输入长方体的长:
”tox
input“输入长方体的宽:
”toy
input“输入长方体的高:
”toz
s=2*x*y+2*x*z+2*y*z
?
”长方体的表面积为:
”,s
2.从键盘输入圆的半径,计算圆的面积。
input“输入圆的半径:
”tor
s=3.14*r^2
?
”圆的面积为:
”,s
二.选择结构
1.从键盘输入一个数,若为正数则输出,非正数则结束。
input“输入一个数:
”tox
ifx>0
?
x
endif
return
2.求一元二次方程AX2+BX+C=0的实根。
input“输入系数A:
”toa
input“输入系数B:
”tob
input“输入系数C:
”toc
m=b^2-4*a*c
ifm>=0
x1=(-b+sqrt(m))/(2*a)
x2=(-b-sqrt(m))/(2*a)
?
”x1=”,x1,”x2=”,x2
else
?
”方程无实根!
”
endif
3.判断是否是闰年.
CLEAR
input"输入一个年份"toy&&请保证输入的是数字,不再做错误处理
IFy%4==0.and.y%100!
=0.or.y%400==0
MESSAGEBOX("是闰年")
ELSE
MESSAGEBOX("不是闰年")
ENDIF
4.从键盘输入一个待查学生的学号,在表XSQK.DBF中查找。
若能找到,则显示该记录,否则,显示信息“该学号不存在”。
usexsqk
accept“输入待查学生学号:
”tox
locatefor学号=x
ifnoteof()
display
else
?
“该学号不存在”
Endif
Use
5.从键盘输入一个自然数,若为偶数则输出信息“偶数”,若为奇数则输出信息“奇数”。
input“输入一个自然数:
”tox
ifx%2=0
?
”偶数”
else
?
”奇数”
endif
return
6.计算函数Y的值。
6.答案
input“输入X的值:
”tox
ifx>=0
y=3*x-1
else
y=2*x+5
endif
?
”y=”,y
return
7.计算运费。
车站从甲地到乙地托运行李,收费规定:
若行李重量不超过50公斤,每公斤收费0.5元;若行李重量超过50公斤,其超重部分加收0.4元。
编写计算运费的程序。
clear
input"请输入行李的重量:
"ton
ifn<50
s=n*0.5
else
s=n*0.5+(n-50)*0.4
endif
?
"应收费用为:
",s
return
8.编写根据当前日期显示当前季节的程序。
clear
input"请输入日期:
"tod
m=month(d)
docase
casem>=3andm<=5
?
"春季"
casem>=6andm<=8
?
"夏季"
casem>=9andm<=11
?
"秋季"
otherwise
?
"冬季"
endcase
return
9.编写程序,输入一个数字(0~7),显示其对应星期几的中英文信息。
clear
input"请输入一个数字:
"ton
docase
casen=1
M="星期一(Monday)"
casen=2
M="星期二(Tuesday)"
casen=3
M="星期三(Wednesday)"
casen=4
M="星期四(Thursday)"
casen=5
M="星期五(Friday)"
casen=6
M="星期六(Saturday)"
casen=0
M="星期日(Sunday)"
otherwise
M="重新输入"
endcase
?
"您输入的是:
"+M
return
10.设计个人纳税计算程序。
“税法”规定,使用超额累进税率,以每月收入额减去1600元后的余额,为应纳税所得额,其税率见下表:
级数
全月应纳税所得额
税率(%)
1
不超过500元
5
2
500~2000元
10
3
2000~5000元
15
4
5000~20000元
20
5
20000~40000元
25
6
40000~60000元
30
7
60000~80000元
35
8
80000~100000元
40
9
100000元以上
45
clear
input"请输入月收入:
"ton
s=n-1600
docase
cases<=500
r=s*0.05
cases<=2500
r=s*10
cases<=5000
r=s*15
cases<=20000
r=s*20
cases<=40000
r=s*25
cases<=60000
r=s*30
cases<=80000
r=s*35
cases<=100000
r=s*40
otherwise
r=r*0.45
endcase
?
"应纳税额为:
",r
return
三.循环结构
1.求S=1+2+3+……+100
settalkoff
clear
s=0
i=1
dowhilei<=100
s=s+i
i=i+1
enddo
?
"1~100的和为:
",s
Return
2.求N!
的值。
(N!
=1*2*3*……*N)
clear
input"请输入n的值:
"ton
s=1
fori=1ton
s=s*i
endfor
?
"n!
=",s
return
3.计算101~500之间的所有奇数之和。
clear
s=0
fori=101to500
ifi%2!
=0
s=s+i
endif
endfor
?
"101-500的奇数和为:
",s
return
4.输出100~1000之间能被37整除的数。
settalkoff
clear
fori=100to1000
ifi%37=0
?
i
endif
endfor
settalkon
return
5.求S=1!
+2!
+3!
+……+10!
clear
s=0
T=1
forI=1to10
T=T*i
S=S+1
endfor
?
"S=",S
return
6.求S=1+(1+2)+(1+2+3)+……+(1+2+3+……+N)
clear
input"请输入N的值:
"toN
s=0
t=0
fori=1toN
t=t+i
s=s+t
endfor
?
"总和为:
",s
7.求S(n)=a+aa+aaa+...+aaa....aaa(其中有n个a)之值,a是一个数字,n和
a由键盘键入(例如:
2+22+222+2222+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
8.求三位数中的所有水仙花数(即指一个三位数,其各位数字立方和等于该数本身)
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
9.输出Fibonacci(斐波那契)数列的前40项
Clear
Dimea(40)
a
(1)=1
a
(2)=1
Fori=3to40
a(i)=a(i-1)+a(i-2)
Endfor
Fori=1to40
?
?
A(i)
Endfor
10.输入两个正整数m和n求其最大公约数和最小公倍数
input"m="tom
input"n="ton
fori=min(m,n)to1step-1
ifm%i=0andn%i=0
y=m*n/i
exit
endif
endfor
?
"这两个数的最大公约数是:
",i
?
"这两个数的最小公倍数是:
",y
11.从键盘输入一个数,判断其是否为素数。
clear
input"请输入数字:
"ton
s=0
fori=2ton-1
ifn%i=0
s=1
endif
endfor
ifs=0
?
n,"是素数"
else
?
n,"不是素数"
endif
return
12.求第1000到2000
nr=0
forny=2000to3000
ifmod(ny,400)=0.or.(mod(ny,4)=0.and.mod(ny,100)<>0)
?
"闰年",ny
nr=nr+1
endif
endfor
?
"有"+str(nr)+"个闰年"
13.从键盘输入10个数到数组a(10)中,显示数组中所有元素值
dimea(10)
fori=1to10
input"请输入数字:
"toa(i)
endfor
fori=1to10
?
"a("+STR(i)+")=",a(i)
endfor
14.设计一个程序可以从键盘接收数据给数组a(3,4)中所有元素赋值,并计算所有数组元素的累加和,打印结果
dimensiona(3,4)
s=0
form=1to3
forn=1to4
input"请输入第"+str(m,1)+"行第"+str(n,1)+"列数据:
"toa(m,n)
s=s+a(m,n)
endfor
endfor
?
"所有数组元素的累加和是",s
15.在表BXCJ.DBF中,已经有数学、计算机、英语、物理四门课程的成绩,编写程序根据每人的平均成绩,在“总评”字段中填入对应的等级。
等级评定办法是:
90分以上为优,75~89为良,60~74为及格,60分以下为不及格。
clear
usebxcjexclusive
avgscore=0
scan
avgscore=(数学+计算机+物理+英语)/4
docase
caseavgscore>=90
M="优"
caseavgscore>=75
M="良"
caseavgscore>=60
M="及格"
caseavgscore<60
M="不及格"
endcase
?
replace总评withM
endscan
use
return
16.编写程序,分别统计表XSQK.DBF中男、女同学的人数。
clear
usexsqkexclusive
store0tom,n
scan
if性别='男'
m=m+1
else
n=n+1
endif
endscan
?
"男生人数:
"+str(m)
?
"女生人数:
"+str(n)
use
return
或者
use表
countfor性别="男"tols
countfor性别="女"tons
?
"男生人数:
",ls
?
"女生人数:
",ns
17.编写程序,输出如下乘法表。
1×1=1
2×1=22×2=4
3×1=33×2=63×3=9
…… …… ……
…… …… …… ……
9×1=99×2=18………………9×9=81
clear
forx=1to9&&外层循环
y=1
dowhiley<=x&&内层循环
z=x*y
?
?
str(y,1)+"*"+str(x,1)+"="+str(z,2)+""
y=y+1
enddo
?
endfor
18.马克思曾经做过这样一道趣味数学题:
有30个人在一家小饭馆里用餐,其中有男人、女人和小孩。
每个男人花了3先令,每个女人花了2先令,每个小孩花了1先令,一共花去了50先令。
问男人、女人和小孩各有几人?
SETTALKOFF
STORE0TOX,Y,Z
FORX=1TO16
FORY=1TO24
Z=30-X-Y
IF3*X+2*Y+Z=50
?
“男人:
”+STR(X,1)+”女人:
”+STR(Y,1)+”小孩:
”+STR(Z,1)
ENDIF
ENDFOR
ENDFOR
SETTALKON
RETU
19.任意输入n个数,按由小到大的顺序排列并显示输出。
(排序算法--选择法排序)
clear
input"请输入数组的个数:
"ton
dimensiona(n)
fori=1ton
input"请输入数值数据:
"toa(i)&&输入数组的元素
endfor
fori=1ton-1
forj=i+1ton
ifa(i)>a(j)
temp=a(i)
a(i)=a(j)
a(j)=temp
endif
endfor
endfor
fori=1ton&&输出排序以后的数组
?
?
a(i)
endfor
cancel
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 王彦祺版 vfp 课后 实验 编程 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)