当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机二级VFP考试第九章课后练习题及答案
发布时间:2011/9/14 16:49:14 来源:城市学习网 编辑:ziteng

第九章

  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  [NextPage] 

  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

 [NextPage]

  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

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved