计算机考试课后作业,2012年计算机二级VFP考试第九章课后练习题及答案

第九章

1..写出下列程序的执行结果。

(1).CLEAR

SET.TALK.OFF

..x=10

y=-3

FOR.n=29+x.TO.x.STEP.y

ENDFOR

?.n

RETURN

9

(2).主程序:t1.prg

SET.TALK.OFF

STORE.′AB′.TO.k1,k2

DO.t2

?.k1+k2

RETURN

子程序:t2prg

PRIVATE.k1

k1=k2+″250″

?.k1

RETURN.

“AB250”

“ABAB”

(3).SET.TALK.OFF

CLEAR

STORE.1.TO.x

STORE.20.TO.y

DO.WHILE.x<=y

IF.INT(x/2)<>x/2

x=1+x^2

y=y+1

LOOP

ELSE

x=x+1

ENDIF

ENDDO

?.x,y

SET.TALK.ON

RETURN.

122.00 23

(4).主程序:z.prg

SET.TALK.OFF

STORE.2.TO.x1,x2,x3

x1=x1+1

DO.z1

?.x1+x2+x3

RETURN

子程序:z1prg

x2=x2+1

DO.z2

x1=x1+1

RETURN

子程序:z2prg

x3=x3+1

RETURN.TO.MASTER.

9

(5).SET.TALK.OFF

x=15

y=7

DO.sub.WITH.x,(y)

?.x,y

RETURN

PROCEDURE.sub

PARAMETERS.a,b

a=a+b

b=a-b

RETURN.

(6).SET.TALK.OFF

x=9

y=13

z=fu(x,y)

?.z

RETURN

FUNCTION.fu

PARAMETERS.a,b

a=a*b

RETURN.(a).

117

2..输入一个三位整数,将其反向输出。如输入326,输出623。

set talk off

input "请输入一个三位数" to a

b=100*mod(a,10)+10*mod(int(a/10),10)+mod(int(a/100),10)

?b

return

3..输入学生成绩,若成绩大于80分,则输出“优良”,成绩小于60分,则输出“不及格”,否则输出“中等”。

set talk off

input "请输入学生成绩" to a

if a>80

?"优良"

else

if a<60

?"不及格"

else

?"中等"

endif

endif

return

4..在学生表中,分别统计汉族学生和少数民族学生的人数。

set talk off

use 学生表

count for 少数民族=.T. to a

count for 少数民族=.F. to b

?"少数民族学生人数为",a

?"汉族学生人数为",b

return

5..假定有包含若干个记录的表文件c1.dbf,其结构是:f1(N,3,0),f2(N,3,0)。编写程序,其功能是把各记录中所有大于40的字段值累加起来,最后把累加的结果存入第一个记录的f2字段中。

set talk off

use c1

a=0

do while .not. eof()

if f1>40

a=a+f1

endif

if f2>40

a=a+f2

endif

continue

enddo

go top

f2=a

use

return

6..一个自然数是素数,且它的数字位置经过任意对换后仍为素数,则称为绝对素数,例如13就是一个绝对素数。试求所有两位绝对素数。

set talk off

for m=11 to 99

n=mod(m,10)*10+mod(int(m/10),10)

if check(m) and check(n)

?m

endif

endfor

function check

parameters a

flag=.t.

k=int(sqrt(a))

j=2

do while j<=k and flag

if mod(a,j)=0

flag=.F.

endif

j=j+1

enddo

return flag

7..用过程方式求S=A!+B!+C!(其中A,B,C从键盘输入)。

set talk off

input "请输入第一个数到A" to a

input "请输入第一个数到B" to b

input "请输入第一个数到C" to c

?"S=A!+B!+C!=",ss(a)+ss(b)+ss(c)

function ss

parameter n

m=1

for i=1 to n

m=m*i

endfor

return m

return

8..根据题目要求完善程序。

(1).通过字符串操作竖向显示“伟大祖国”,横向显示“祖国伟大”。

SET.TALK.OFF

STORE.″伟大祖国″.TO.var

CLEAR

n=1

DO.WHILE.n<8

?.SUBSTR(①)

n=n+2

ENDDO

?.(②)

??.SUBSTR(var,1,4)

RETURN

① var,n,n+1

② substr(var,5,8)

(2).对学生表,按入学成绩降序显示前10名和按升序显示后10名学生的入学成绩。

SET.TALK.OFF

USE.学生

INDEX.ON.入学成绩.TAG.cjsy.DESC

n=1

CLEAR

@1,20.SAY.″前十名成绩:″

DO.WHILE.n<=10

DISP

n=n+1

(③) continue

ENDDO

WAIT.″″

CLEAR

@1,20.SAY.″后十名成绩:″

n=1

(④) go bottom

DO.WHILE.n<=10

DISP

n=n+1

SKIP.-1

ENDDO

USE

SET.TALK.ON

RETURN.

Continue

go bottom来源:考试大-计算机二级考试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值