文档库 最新最全的文档下载
当前位置:文档库 › VFP7程序填空

VFP7程序填空

VFP7程序填空
VFP7程序填空

*题目:显示输出图形:

*

***

*****

CLEA

I=1

DO WHILE I<=3

?SPAC(10-I)

J=1

DO WHILE J<=2*I-1

***********SPACE**********

【?】

***********SPACE**********

【?】

ENDDO

***********SPACE**********

【?】

ENDDO

答案:

1).??"*" 或??[*]

2). J=★J+1 或J=★1+J 或SOTR★J★+★1★TO★J

3). I=★I+1 或I=★1+I 或STOR★I★+★1★TO★I

*题目:通过循环程序输出图形:

*

* *

* * *

* * *

* * *

* * *

* * *

* * *

* * *

* *

SET TALK OFF

CLEAR

FOR N=1 TO 9

IF N<=5

***********SPACE**********

M1=【?】

ELSE

***********SPACE**********

M1=【?】

ENDIF

?

***********SPACE**********

FOR M=1 TO ABS(【?】)

?? " "

ENDFOR

FOR M=1 TO ABS(M1-2*N+1)

IF M=1 OR M=ABS(M1-2*N+1)

?? "*"

ELSE

?? " "

ENDIF

ENDFOR

ENDFOR

SET TALK OFF

答案:

1).0 或2+(n-1)*4 或2+4*(n-1) 或(n-1)*4+2 或4*(n-1)+2

2). 18 或4*(n-5) 或(n-5)*4

3). 5-N 或-N+5

*题目:复制表XSDA.DBF,生成新表XS.DBF,在新表中查找所有

*男同学的记录,并将男同学的记录逻辑删除。

SET TALK OFF

USE XSDA

***********SPACE**********

【?】

USE XS

LOCATE FOR 性别="男"

DO WHILE FOUND() ***********SPACE**********

【?】

***********SPACE**********

【?】

ENDDO

USE

SET TALK ON

答案:

1). COPY★TO★XS

2). DELETE 或DELE

3). CONTINUE 或CONT

*题目: 给定年号与月份,编写程序判断该年

是否是闰年,并根据给出的月份来判断该月

有多少天。

SET TALK OFF

CLEAR

INPUT "请输入年号:" TO Y

INPUT "请输入月号:" TO M

IF Y%4=0 AND Y%100<>0 OR Y%400=0

LYEAR=.T.

? '是闰年'

ELSE

***********SPACE**********

LYEAR=【?】

? '不是闰年'

ENDIF

N=M%7

DO CASE

CASE M=2

IF LYEAR

DAYS=29

ELSE

DAYS=28

ENDIF

***********SPACE**********

CASE M=7 OR INT(N/2)!=【?】

DAYS=31

***********SPACE**********

CASE N%2【?】

DAYS=30

ENDCASE

? STR(Y,4)+'年'+IIF(LYEAR,"是","不是")+"

闰年,"

? STR(M,2)+'月份有'+STR(DAYS,2)+'天'

SET TALK ON

CANC

答案:

1). .F.

2). 0

3). =0

*题目:列出XSDB.DBF数据表中法律系学生

记录,将结果显示输出。

***********SPACE**********

【?】

DO WHILE .T.

IF 系别="法律"

DISP

ENDIF

***********SPACE**********

【?】

IF EOF()

***********SPACE**********

【?】

ENDIF

ENDDO

RETURN

答案:

1).USE★XSDB 或USE★XSDB★.DBF

2). SKIP 或SKIP★1

3). EXIT 或Quit

*题目:依次显示XSDB.DBF数据表中的记录

内容。

***********SPACE**********

【?】

***********SPACE**********

DO WHILE【?】

DISP

***********SPACE**********

【?】

ENDDO

USE

RETURN

答案:

1). use★xsdb 或use★xsdb★.dbf

2). .not.★eof() 或!eof() 或not★

eof() 或Eof()★<>★.T.

3). SKIP 或SKIP★1

*题目: 企业发放的奖金根据利润提成。利润

(I)低于或等于10万元时,奖金可提10%;利

润高于10万元,低于20万元时,低于10万

元的部分按10%提成,高于10万元的部分,

可提成7.5%;20万到40万之间时,高于20

万元的部分,可提成5%;40万到60万之间

时高于40万元的部分,可提成3%;60万到

100万之间时,高于60万元的部分,可提成

1.5%,高于100万元时,超过100万元的部

分按1%提成,从键盘输入当月利润I,求应

发放奖金总数?

SET TALK OFF

clear

input "请输入当月的利润:" to i

b1=100000*0.1

b2=b1+100000*0.75

b4=b2+200000*0.5

b6=b4+200000*0.3

b10=b6+400000*0.15

do case

case i<=100000

***********SPACE**********

b=i*【?】

case i<=200000

b=b1+(i-100000)*0.075

case i<400000

b=b2+(i-200000)*0.05

case i<600000

b=b4+(i-400000)*0.03

case i<1000000

b=b6+(i-600000)*0.015

***********SPACE**********

【?】

b=b10+(i-1000000)*0.01

endcase

***********SPACE**********

? "应发奖金总数为:", 【?】

set talk on

canc

答案:

1). 0.1 2). Other 3). b

*题目:从键盘输入一个表的文件名,将该表

的第一条记录和最后一条记录的"姓名"字段

内容互换。(设表中有固定字段"姓名")。

SET TALK OFF

ACCEPT TO A

USE &A

GO 1

XM1=姓名

GO BOTTOM

***********SPACE**********

【?】

***********SPACE**********

REPL 姓名WITH 【?】

***********SPACE**********

【?】

REPL 姓名WITH XM2

USE

SET TALK ON

答案:

1). XM2=★姓名

2). XM1

3). GO 1 或GO TOP

*题目: 输入一个学生的生日(年:y0、月:m0、日:d0),并输入当前日期(年:y1、月:m1、日:d1)。求出该学生的年龄(实足年龄)。

SET TALK OFF

clear

input "请输入学生出生的年份:"to year input "请输入学生出生的月份:" to month input "请输入学生出生的日期:" to day

***********SPACE**********

age=year(【?】)-year

if month>month(date())

age=age-1

endif

***********SPACE**********

if month=month(date()) .and. 【?】

***********SPACE**********

【?】

endif

? "该学生的实足年龄为:",age

答案:

1). date★()

2). day★<★day(★date★()) 或day(★date★())>★day

3). age=★age★-★1

*题目: 已知X、Y、Z分别表示0~9中不同的数字,编程求出使算式XXXX+YYYY+ZZZZ=YXXXZ成立时X、Y、Z的值,并要求打印该算式。

SET TALK OFF

for x=0 to 9

for y=0 to 9

***********SPACE**********

if 【?】

for z=0 to 9

if z!=x and z!=y

***********SPACE**********

if 1111*(x+y+z)=10000*y+ 【?】

? "x=" ,x ,"y=" ,y,"z=",z

?

1111*x,'+',1111*y,'+',1111*z,'=',10000*y+1110 *x+z

endif

endif

***********SPACE**********

【?】

endi

endf

endf

set talk on

cancel

答案:

1). y!=x

2). 1110*x+z 或z+1110*x 或z+x*1110 或x*1110+z

3). endf

*题目: 计算一元二次方程的根。

SET TALK OFF

clear

input "a=" to a

input "b=" to b

input "c=" to c

if abs(a)<0

? "不是二次方程t"

else

deta=b*b-4*a*c

***********SPACE**********

if deta=【?】

? "有两个相等的实根:",-b/(2*a)

else

***********SPACE**********

if deta【?】

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

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

? "有两个不等的实根:",x1,x2

else

r1=-b/(2*a)

***********SPACE**********

r2=【?】/(2*a)

? "r2=",r2

wait

?"有两个虚根:",str(r1,5,2)+'+'+str(r2,5,2)+'i'

,";",str(r1,5,2)+'-'+str(r2,5,2)+'i'

endif

endif

endif

set talk on

canc

答案:

1). 0 2). >0 3). sqrt(-deta)

*题目: 一个自然数被8 除余1 ,所得的商

被8 除也余 1 ,再将第二次的商被8 除后

余7 ,最后得到一个商为a。又知这个自然

数被17除余4 ,所得的商被17除余15,最

后得到一个商是a的2倍。编写程序求这个

自然数。

SET TALK OFF

clear

i=1

do while .t.

***********SPACE**********

if i%8=【?】

n=int(i/8)

if n%8=1

n=int(n/8)

if n%8=7

a=int(n/8)

***********SPACE**********

if i%17=【?】

n=int(i/17)

if n%17=15

n=int(n/17)

***********SPACE**********

if 2*a= 【?】

? 'result=',i

exit

endif

endif

endi

endif

endi

endi

***********SPACE**********

i=i+【?】

endd

set talk on

canc

答案:

1). 1 2). 4

3). N 4). 1

*题目: 已知数据库文件P.DBF和Q.DBF,要

求修改Q.DBF文件中N2字段的值,使其成

为该字段的原来值与P.DBF文件中相应记录

N1字段值的乘积

SET TALK OFF

CLEAR

SELE 1

USE P

INDE ON M TO MN

***********SPACE**********

SELE 【?】

USE Q

***********SPACE**********

SET RELA TO 【?】INTO A

***********SPACE**********

REPL 【?】N2 WITH N2*A->N1

LIST

SET TALK ON

RETURN

答案:

1). 2

2). M

3). ALL

*题目:对表xscj.dbf,如下程序可以完全成:

1.显示全体同学的记录,

2.显示全体男同学的

记录,3. 显示全体女同学的记录,0.退出。

SET TALK OFF

CLEAR

***********SPACE**********

【?】

DO WHILE .T.

@10,10 SAY "1. 显示全体同学的记录,

2.显示全体男同学的记录"

@14,10 SAY "3. 显示全体女同学的记

录,0.退出"

@ 16,16 SAY " "

WAIT "请输入选择(0-3):" TO x

DO CASE

CASE X="1"

LIST

CASE X="2"

LIST ALL FOR 性别="男"

CASE X="3"

LIST ALL FOR 性别="女"

CASE X="0"

***********SPACE**********

【?】

ENDCASE

***********SPACE**********

【?】

USE

RETURN

答案:

1). use xscj

2). exit

3). enddo 或endd

*题目: 输入某年某月某日,判断这一天是这

一年的第几天?

SET TALK OFF

clear

input "请输入年份:" to year

input "请输入月份:" to month

input "请输入日:" to day

do case

case month=1

***********SPACE**********

sum= 【?】

case month=2

sum=31

case month=3

sum=59

case month=4

sum=90

case month=5

sum=120

case month=6

sum=151

case month=7

sum=181

case month=8

sum=212

case month=9

sum=243

case month=10

sum=273

case month=11

sum=304

case month=12

sum=334

otherwise

? "数据输入错误"

endcase

***********SPACE**********

sum=sum+【?】

if year%400=0 .or. year%4=0 .and.year%100!=0

n=1

else

n=0

endif

if n=1 .and. month>2

***********SPACE**********

sum= 【?】

endif

? "这是这一年的第"+str(sum,4)+"天。"

set talk on

canc

答案:

1). 0

2). day

3). sum+1 或1+sum

*题目: 三角形的面积为:area=sqrt(s*(s-a)*(s-b)*(s-c)).其中s=(a+b+c)/2,a、b、c为三角形三条边的长。SET TALK OFF

clear

input "a=" to a

input "b=" to b

input "c=" to c

***********SPACE**********

【?】a+b>c and a+c>b and b+c>c

s=(a+b+c)/2

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

else

? '不能构成三角形'

***********SPACE**********

【?】

endif

***********SPACE**********

? "area="【?】area

canc

答案:

1). If 2). cancel 或return

3). ,

*题目: 编写程序,输出1000 以内的所有完数及其因子。所谓完数是指一个整数的值等于它的因子之和。例如 6 的因子是1、2、3 ,而6=1+2+3,故 6 是一个完数。

SET TALK OFF

clear

dime a(100)

for i=1 to 1000

m=i

s=0

k=1

j=1

do while j

if m%j=0

s=s+j

a(k)=j

k=k+1

endif

***********SPACE**********

【?】

endd

***********SPACE**********

if s!=0 【?】s=m

j=1

? '因子是:'

do while j

?? a(j),' '

***********SPACE**********

【?】

endd

? '完数是',i

?

endif

endf 答案:

1). j=j+1 或j=1+j

2). and

3). j=j+1 或j=1+j

*题目: 求出N×M整型数组的最大元素及其

所在的行坐标及列坐标(如果最大元素不唯

一,选择位置在最前面的一个)。例如:输入

的数组为:

* 1 2 3

* 4 15 6

* 12 18 9

* 10 11 2

求出的最大数为18,行坐标为3,列坐标为2

SET TALK OFF

clear

dime aa(4,3)

for i=1 to 4

for j=1 to 3

input "insert a num:" to aa(i,j)

endf

endf

***********SPACE**********

max= 【?】

row=1

col=1

for i=1 to 4

for j=1 to 3

if max

***********SPACE**********

【?】

row=i

col=j

endi

endf

endf

***********SPACE**********

? '最大数为:' , 【?】

? '行坐标为:',row

? '列坐标为:',col

set talk on

canc

答案:

1). aa(1,1) 2). max=aa(i,j) 3). max

*题目: 一个40磅重的板碎成4块,每块正

好是一个整数磅,且用这4块当砝码能称出

1~40磅的整数重量的物体。编程求这4块的

各自重量。

SET TALK OFF

CLEAR

FOR I=1 TO 37

***********SPACE**********

FOR J=I TO 【?】-I

***********SPACE**********

FOR 【?】=J TO 38-I-J

***********SPACE**********

L=【?】-I-J-K

FOR P=1 TO 39

T1=-1

DO WHILE T1<2

T2=-1

DO WHILE T2<2

t3=-1

do while t3<2

t4=-1

do while t4<2

if

i*t1+j*t2+k*t3+l*t4=40

***********SPACE**********

【?】i,j,k,l

endif

t4=t4+1

ENDD

T3=T3+1

ENDD

T2=T2+1

ENDD

t1=T1+1

ENDD

ENDF

ENDF

ENDF

ENDF

答案:

1). 37 2). K 3). 40 4). ?

*题目: 共有两个表CJ.DBF,ZF.DBF。按照成

绩表的成绩修改总分表的成绩,并计算出总

分表的总分字段

SET TALK OFF

CLOSE ALL

SELE 2

USE CJ

INDEX ON 学号TO XHCJ

SELE 1

USE ZF

***********SPACE**********

INDEX ON 【?】TO XHZF

***********SPACE**********

【?】ON 学号FROM B REPL 语文WITH

B.语文,数学WITH B.数学

***********SPACE**********

REPL ALL 总分WITH 【?】

LIST

SET TALK ON

答案:

1). 学号

2). UPDA

3). 数学+语文或语文+数学

*题目: 计算

Y=1+3^3/3!+5^5/5!+7^7/7!+9^9/9!的值

SET TALK OFF

CLEAR

S=0

***********SPACE**********

FOR I=1 TO 9 【?】

T=1

***********SPACE**********

FOR J=1 TO 【?】

T=T*J

endf

***********SPACE**********

s=s+【?】

endf

? 's=',s

set talk on

canc

答案:

1). STEP★2

2). I

3). i^i/★t 或i**i★/t

*题目:从键盘输入一个表的文件名,在该表

的第1条记录之前插入一条空记录,然后查

找"姓名"为"王丽"的记录。如果找到,输出"

姓名"为"王丽"的记录。

SET TALK OFF

ACCEPT TO A

USE &A

GO 1

***********SPACE**********

【?】

***********SPACE**********

【?】FOR 姓名= "王丽"

IF NOT EOF( )

***********SPACE**********

【?】TO A FOR 姓名= "王丽"

? "共",A, "条"

ELSE

? "没有找到"

ENDIF

USE

SET TALK ON

答案:

1). INSERT★BLANK ★BEFORE 或INSE BLAN BEFO

2). LOCATE 或LOCA

3). COUNT

*题目: 实现字符型数据到数值型数据转换。现有CJ.DBF数据库,显示CJ.DBF数据库中总分在上限与下限之间的记录内容。SET TALK OFF

CLEAR

USE CJ

X=SPACE(3)

***********SPACE**********

Y=【?】(3)

@10,20 SAY "请输入总分下限:" GET X @12,20 SAY "请输入总分上限:" GET Y ***********SPACE**********

【?】

***********SPACE**********

SET FILTER TO 总分>=&X .AND. 总分<=【?】

CLEAR

LIST

USE

RETURN

答案:

1). SPACE 2). READ 3). &Y

*题目: 在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。SET TALK OFF

clear

dime a(10)

input "请为参赛的选手打分:" to a(1)

max=a(1)

min=a(1)

***********SPACE**********

for i=【?】to 10

input to a(i)

if max

max=a(i)

endif

if min>a(i)

min=a(i)

endif

endf

s=0

for i=1 to 10

***********SPACE**********

s=s+ 【?】

endf

***********SPACE**********

? "选手最后得分为:",【?】

set talk on

canc

答案:

1). 2

2). a(i)

3). (s-max★-min)★/8

*题目: 算式:?2*7?=3848中缺少一个十位数和一个个位数。编程求出使该算式成立时的这两个数,并输出正确的算式。

SET TALK OFF

clear

***********SPACE**********

for x=【?】to 9

***********SPACE**********

for y=【?】to 9

***********SPACE**********

if (10*X+2)*(70+Y)=【?】

? 10*X+2,'*',70+Y,"=",3848

ENDIF

ENDF ENDF

SET TALK ON

CANC

答案:

1). 1

2). 0

3). 3848

*题目: 给定库文件ABC.DBF,含如下字段内

容:AA(C,2)、BB(C,2)、CC(C,2),编程完成如

下功能:AA字段用01,02,03...... 50依次

填入,BB字段用A,B,C,......Z循环填入,CC

字段用A,D,G,...Z每隔两个字母依次循环填

入,共追加50条记录。

SET TALK OFF

SET SAFE OFF

CLEAR

USE ABC

ZAP

I=50

DO WHILE I>0

APPE BLANK

I=I-1

ENDD

GO TOP

M=65

N=65

***********SPACE**********

DO WHILE 【?】

IF RECNO()<10

REPL AA WITH "0"+STR(RECNO(),1)

ELSE

***********SPACE**********

REPL AA WITH STR(RECNO(),【?】)

ENDIF

REPL BB WITH CHR(M)

REPL CC WITH CHR(N)

IF M=90

M=65

ELSE

M=M+1

ENDIF

DO CASE

CASE N=88

N=65

CASE N=89

N=66

CASE N=90

N=67

OTHERWISE

***********SPACE**********

【?】

ENDCASE

SKIP

ENDD

DISP ALL

USE

SET SAFE ON

SET TALK ON

CANC

答案:

1). .NOT.EOF() 或! EOF()

2). 2

3). N=N+3 或N=3+N

*题目:设表AAA.DBF包括学号、姓名、成

绩,下列程序完成显示

* 最高成绩记录的学号、姓名、成绩。

SET TALK OFF

USE AAA.DBF

NN=1

MAX1=成绩

***********SPACE**********

DO WHILE NOT 【?】

IF 成绩>MAX1

MAX1=成绩

NN=RECNO()

ENDIF

***********SPACE**********

【?】

ENDDO

***********SPACE**********

【?】

?"最高成绩:学号="+学号+",姓名="+姓名

+",成绩="

??成绩

USE

SET TALK ON

答案:

1). EOF()

2). SKIP 或SKIP★1

3). GO NN

*题目:对表XSDB.DBF中的计算机和英语都

大于等于90分以上的学生奖学金进行调整:

法律系学生奖学金增加12元、英语系学生奖

学金增加15元、中文系学生奖学金增加18

元,其他系学生奖学金增加20元。

USE XSDB

***********SPACE**********

【?】

DO WHILE FOUN()

DO CASE

CASE 系别="法律"

ZJ=12

CASE 系别="英语"

ZJ=15

CASE 系别="中文"

ZJ=18

***********SPACE**********

【?】

ZJ=20

ENDCASE

REPL 奖学金WITH 奖学金+ZJ

***********SPACE**********

【?】

ENDDO

USE

答案:

1). LOCA★FOR★计算机★>=90 ★.AND.

★英语★>=90 或LOCA★FOR★90<=★计

算机★.AND.★90<=英语或LOCA★FOR

★90<=★计算机★.AND.★英语★>=90 或

LOCA★FOR★计算机★>=90 ★.AND.★

90<=★英语

2). OTHERWISE 或Case★Not★(★系别

★=★"法律"★OR★系别★=★"英语"★OR

★系别★=★"中文"★) 或CASE★.T.

3). CONT

*题目:求0-100之间的偶数之和,超出范围则

退出。请在【】处添上适当的内容,使程序

完整

clea

***********SPACE**********

stor 0 to 【?】

***********SPACE**********

do whil【?】

i=i+1

if mod(i,2)=0

***********SPACE**********

【?】

endif

enddo

?S

答案:

1). I★,S

2). I<★100 或100★>I 或I<=★99 或

99★>=I

3). S=★S+I 或S=★I+S 或STOR★S★+

★I★TO★S

*题目:统计300到600之间(包括300和600)

能被3整除的数的个数。请在【】处添上适当的内容,使程序完整。

GS=0

N=300

***********SPACE**********

DO WHILE 【?】

IF MOD(N,3)=0

***********SPACE**********

【?】

ENDIF

***********SPACE**********

【?】

ENDDO

? "300到600之间(包括300和600)能被3整除的数的个数为",GS

RETURN

答案:

1). N<★=600 或N<★601 或600★>=N 或601★>N

2). GS=★GS+1 或GS=★1+GS 或STOR★GS★+★1★TO★GS

3). N=★N+1 或N=★1+N 或STOR★N★+★1★TO★N

*题目: 数据表文件DA.DBF存放的是某单位职工的档案.在下面程序中,用户通过按A 键或者B键,可分别显示出全体女职工的或全体男职工的记录.已知A键的ASCII为65, B键的ASCII为66,ESC键的ASCII为27. SET TALK OFF

clear

JP1='LIST FOR 性别="男"'

JP2='LIST FOR 性别="女"'

USE DADO WHILE .T.

CLEAR

@1,10 SAY "A-全体女职工B-全体男职工ESC-退出"

K=INKEY(0)

DO CASE

CASE K=65

***********SPACE**********

【?】

WAIT

CASE K=66

***********SPACE**********

【?】

WAIT

***********SPACE**********

【?】

EXIT

ENDCASE

ENDDO

USE

RETURN

答案:1). &jp2

2). &jp1 3). CASE★k=27

*题目:从键盘输入一个表的文件名,查找"姓名"为"刘洪"的记录。如果有该记录,则将该表结构及"姓名"为"刘洪"的记录一起复制成一个新表(表名为"A1");否则,仅复制表结构。(设,表中有固定字段"姓名")。SET TALK OFF

ACCEPT TO A

USE &A

***********SPACE**********

【?】FOR 姓名="刘洪"

IF NOT EOF( )

***********SPACE**********

【?】TO A1 FOR 姓名="刘洪"

ELSE

***********SPACE**********

【?】TO A1

ENDIF

USE

SET TALK ON

答案:

1). LOCATE 或LOCA 2). COPY

3). COPY★STRUCTURE

*题目: 求出二维数组周边元素之和。

SET TALK OFF

clear

dime aa(3,3)

m=1

for i=1 to 3

for j=1 to 3

aa(i,j)=m

m=m+1

endf

endf

***********SPACE**********

s=【?】

***********SPACE**********

for i=1 to 【?】

s=s+aa(i,1)+aa(i,3)

endf

s=s+aa(1,2)+aa(3,2)

***********SPACE**********

? 's='【?】s

set talk on

canc

答案:

1). 0 2). 3 3). ,

*题目:通过循环程序,输出"九九"表

*1X1= 1

*1X2= 2 2X2= 4

*1X3= 3 2X3= 6 3X3= 9

*1X4= 4 2X4= 8 3X4=12 4X4=16

*1X5= 5 2X5=10 3X5=15 4X5=20 5X5=25

*1X6= 6 2X6=12 3X6=18 4X6=24 5X6=30

6X6=36

*1X7= 7 2X7=14 3X7=21 4X7=28 5X7=35

6X7=42 7X7=49

*1X8= 8 2X8=16 3X8=24 4X8=32 5X8=40

6X8=48 7X8=56 8X8=64

*1X9= 9 2X9=18 3X9=27 4X9=36 5X9=45

6X9=54 7X9=63 8X9=72 9X9=81

SET TALK OFF

FOR N=1 TO 9

***********SPACE**********

【?】

***********SPACE**********

【?】

***********SPACE**********

?? STR(M,1)+ "×"+STR(N,1)+ "="+【?】

+ " "

ENDFOR

ENDFOR

SET TALK ON

答案:

1). ?

2). FOR★M=1★TO★N

3). STR((★N★*★M★),2) 或STR(★(M

★*★N),2)

*题目: 编程求某年第n天的日期。用数组表

示月天数

SET TALK OFF

clear

dimension a(12)

a(1)=31

a(2)=28

a(3)=31

a(4)=30

a(5)=31

a(6)=30

a(7)=31

a(8)=31

a(9)=30

a(10)=31

a(11)=30

a(12)=31

input "year=" to y

input "n=" to n

if y%4=0 .and. y%100!=0 .or. y%400=0

***********SPACE**********

f= 【?】

else

f=0

endif

***********SPACE**********

a(2)=a(2)+ 【?】

if n<1 .or. n>365+f

? "输入错误。"

***********SPACE**********

【?】

endif

m=1

do while n>a(m)

***********SPACE**********

n=n-【?】

m=m+1

enddo

? 'y=',y,'m=',m,'d=',n

set talk on

canc

答案:

1). 1 2). f

3). Cancel 4). a(m)

*题目: 若有库文件aaa.dbf,其中字段ab和cd

为组合型主关键字,由于录入数据时没有严

格检验,存在一些主关键字相同的重复纪录,

编程序其功能是从aaa.dbf中删除主关键字相

同的重复纪录,但为避免数据丢失应把删除

的记录存放到结构相同的bbb.dbf中,以备人

工检查。

SET TALK OFF

set safe off

clear

use aaa

***********SPACE**********

inde on 【?】to aaasy

go top

do while not eof()

qq=ab+cd

skip

do while not eof() and qq=ab+cd

***********SPACE**********

【?】

skip

endd

endd

***********SPACE**********

copy to bbb for 【?】

pack

list

use bbb

list

set talk on

set safe on

cance

答案:

1). ab+cd

2). dele

3). dele()

*题目: 下面的程序是将“计算机等级考试”

显示为“计算机等级考试”。

SET TALK OFF

CLEAR

X="计算机等级考试"

***********SPACE**********

Y=【?】

***********SPACE**********

DO WHILE LEN(X)>= 【?】

Y=Y+SUBS(X,1,2)+' '

***********SPACE**********

X=【?】

ENDD

?Y

SET TALK ON

RETURN

答案:

1). "" 或" " 或SPACE(1) 或[] 或[ ]

2). 2

3). SUBS★(X,3)

*题目:求1到50的累加和(S=1+2+3+ (50)

并显示。请在【】处添上适当的内容,使程序完整。

***********SPACE**********

【?】

I=1

***********SPACE**********

DO WHILE 【?】

H=H+I

***********SPACE**********

【?】

ENDDO

? H

RETURN

答案

1). H=0 或STOR 0 TO H

2). I<=★50 或51>★I 或50>=★I 或I<★51

3). I=★I+1 或I=★1+I 或STOR★I★+★1★TO★I

*题目:求1到100之间的奇数之和、偶数之和,并将奇数之和存入S1、偶数之和存入S2显示输出。请在【】处添上适当的内容,使程序完整。

i=1

stor 0 to s1,s2

do whil i<=100

***********SPACE**********

if 【?】

s1=s1+i

***********SPACE**********

【?】

s2=s2+i

endif

***********SPACE**********

【?】

ENDD

?S1,S2

答案:

1). MOD★(I,2)★<>0 或INT★(I,2)★<>★I/2 或I%2★<>0 或MOD★(I,2)★#0 或INT★(I,2)★#I/2 或I%2★#0

2). ELSE 3).I=I+1 或I=1+I 或STOR★I★+★1★TO★I

* 题目:显示输出图形:

*****

***

*

CLEA

I=1

***********SPACE**********

DO WHILE 【?】

J=1

DO WHILE J<=7-2*I

***********SPACE**********

【?】

j=j+1

ENDDO

***********SPACE**********

【?】

?

ENDDO

答案:

1). I<4 或4>I 或I★<=3 或3★>=I

2). ??"*" 或??[*]

3). I=★I+1 或I=★1+I 或STOR★I★+★1★TO★I *题目: 下面是计算1+3+5+…+99之和的程

序。

SET TALK OFF

***********SPACE**********

【?】

***********SPACE**********

FOR I=1 TO 99 【?】

S=S+I

ENDFOR

***********SPACE**********

?"结果=",【?】

RETURN

SET TALK ON

答案:

1). s=0 或Store★0★To★s

2). step★2

3). s 或str(s) 或str(s,4) 或str★(s★)

*题目:将输入的字符串按照正序存放到变量

T中,再按照逆序连接到变量T的末尾。SET

TALK OFF

CLEAR

***********SPACE**********

【?】"请输入一个串:" TO SS

T=""

FOR I=1 TO LEN(SS)

T=T+SUBS(SS,I,1)

ENDF

***********SPACE**********

FOR J= 【?】TO 1 STEP -1

***********SPACE**********

T=T+【?】

ENDF

? "生成的新串为:",T

SET TALK ON

CANC

答案:

1). ACCEPT 或INPUT

2). LEN(SS)

3). SUBS★(SS,★J,1)

*题目: 已知一个设备帐数据库文件sbk.dbf

和设备销售帐库文件sbxs.dbf,要求用

sbxs.dbf更新sbk.dbf。

SET TALK OFF

clear

sele 1

***********SPACE**********

use 【?】

sele 2

use sbk

***********SPACE**********

inde on 【?】to sbi

***********SPACE**********

upda on 设备名from a repl 台数with a->台

数,金额with 单价*台数【?】

list

set talk on

canc

答案:

1). sbxs

2). 设备名

3). rand

*题目: 如果整数A的全部因子(包括1,不

包括A本身)之和等于B;且整数B的全部

因子( 包括1,不包括B本身)之和等于A,

则将整数A和B称为亲密数。求3000 以内

的全部亲密数。

SET TALK OFF

clear

a=1

***********SPACE**********

do while a<【?】

b=0

i=1

do while i<=a/2

if a%i=0

b=b+i

endif

i=i+1

endd

n=0

i=1

do while i<=b/2

if b%i=0

n=n+i

endi

i=i+1

endd

***********SPACE**********

if n=a and 【?】

? a,'-',b

endif

***********SPACE**********

【?】

endd

set talk on

canc

答案:

1). 3000

2). a

3). a=a+1 或a=1+a

*题目: 两个乒乓球队进行比赛,各出三人。

甲队为a,b,c三人,乙队为x,y,z三人。已抽

签决定比赛名单。有人向队员打听比赛的名

单。a说他不和x比,c说他不和x,z比,请

编程序找出三队赛手的名单。。

SET TALK OFF

clear

*i是a的对手,j是b的对手,k是c的对手

for i=asc('x') to asc('z')

for j=asc('x') to asc('z')

if j!=i

for k=asc('x') to asc('z')

if k!=i .and. k!=j

***********SPACE**********

if i!=asc('x') .and.

k!=asc('x') .and.k!=asc(【?】)

?

"a--"+chr(i),"b--"+chr(j),"c--"+chr(k)

endif

***********SPACE**********

【?】

endf

endi

endf

***********SPACE**********

【?】

set talk on

retu

答案:

1). 'z'

2). endif

3). endf

*题目:求出1到100之间的奇数积、偶数和。

SET TALK OFF

***********SPACE**********

【?】

s2=1

FOR I=1 to 100

***********SPACE**********

IF MOD(i,2)=【?】

s1=s1+I

Else

***********SPACE**********

s2=【?】

ENDIF

NEXT

?" 奇数积为:",s2

?"偶数和为:",s1

SET TALK ON

答案:

1). s1=0 或STOR 0 TO s1

2). 0

3). s2=s2*I 或s2=I*s2 或STOR★s2★*★I★TO★s2

*题目:实现:求0-100之间的奇数之和,超出范围则退出。请在【】处添上适当的内容,使程序完整。

X=0

Y=0

DO WHILE .T.

X=X+1

DO CASE

***********SPACE**********

CASE 【?】

LOOP

CASE X>=100

***********SPACE**********

【?】

OTHERWISE

Y=Y+X

ENDCASE

***********SPACE**********

【?】

? "0-100之间的奇数之和为: ", Y

RETURN

答案:1). MOD(★X,2)★=0 或INT★(X/2)★=X/2 或X%2★=0 或0=MOD★(X,2) 或X/2★=★INT(X/2) 或0=★X%2 或MOD(★X,2)★<>1 或MOD(★X,2)★!=1

2). EXIT 或Quit

3). ENDDO 或ENDD

*题目: 将字母转换成密码,转换规则是将当前字母变成其后的第四个字母,但W变成A、X变成B、Y变成C、Z变成D。小写字母的转换规则同样。

* SET TALK OFF

clear

accept "请输入一个字符串:"to pp

? pp

p=""

***********SPACE**********

for i=1 to 【?】

m=asc(subs(pp,i,1))

***********SPACE**********

if m<=ASC("z").and.m>=asc("a")【?】m>=asc("A") and m<=asc("Z")

do case

case m=asc("w")

m=asc("a")

case m=asc("W")

m=asc("A")

case m=asc("x")

m=asc("b")

case m=asc("X")

m=asc("B")

case m=asc("y")

m=asc("c")

case m=asc("Y")

m=asc("C")

case m=asc("z")

m=asc("d")

case m=asc("Z")

m=asc("D")

otherwise

***********SPACE**********

【?】

endcase

p=p+chr(m)

endif

endfor

? p

set talk on

canc

答案:

1). len(pp)

2). or

3). m=m+4 或m=4+m

*题目:从键盘输入某设备的名称,如果找到

显示其编号和价格,找不到时给出"无此设

备"的提示。

SET TALK OFF

CLEAR

USE SB

MC=space(4)

@ 10,10 SAY "输入设备名称:" GET MC

***********SPACE**********

【?】

***********SPACE**********

LOCA FOR 名称=【?】

***********SPACE**********

IF 【?】

DISP 编号,价格

ELSE

? "无此设备" WINDOW

ENDIF

USE

答案:

1). Read 2). mc

3). found() 或!eof() 或foun() 或

found★() 或not eof()

*题目:查找XSDB表中计算机成绩最高分的

学生,将其姓名和计算机字段的内容显示出

来,如:王迪98。请在【】处添上适当的内

容,使程序完整。

USE XSDB

MAX=计算机

***********SPACE**********

【?】

do while .NOT.EOF()

IF MAX<计算机

MAX=计算机

***********SPACE**********

【?】

ENDIF

***********SPACE**********

【?】

enddo

?XM,MAX

USE

答案:

1). XM=★姓名或STOR 姓名TO XM

2). XM=★姓名或STOR 姓名TO XM

3). SKIP 或SKIP★1

*题目: 百鸡问题:100元买100只鸡,公鸡

一只5元钱,母鸡一只3 元钱,小鸡一元钱

三只,求100元钱能买公鸡、母鸡、小鸡各

多少只?

SET TALK OFF

clear

for hb=0 to 100

***********SPACE**********

for hm=0 to 100-【?】

***********SPACE**********

hs=【?】

***********SPACE**********

if hb*5+hm*3+【?】=100

? "公鸡有:",hb,"母鸡有:",hm,"小

鸡有:",hs

endif

endf

endf

set talk on

canc

答案:

1). hb

2). 100-hb-hm

3). hs/3

*题目: 给出一个正整数,找到一组连续的

数,使之累加和等于给定的正整数。输出存

在多少组这样连续的数,及每组的左右边界。

例如:15=1+2+3+4+5 15=4+5+6

15=7+8所以结果有3组值分别是1->5, 4->6,

7->8

SET TALK OFF

clear

input "n= " to n

sum=0

count=0

right=1

do while sum

sum=sum+right

right=right+1

endd

left=1

right=right-1

do while left<=int(n/2)

if sum>n

sum=sum-left

left=left+1

else

***********SPACE**********

if sum=【?】

? n,'=一组连续的数从',left,'t0',right

count=count+1

endif

right=right+1

sum=sum+right

endif

***********SPACE**********

【?】

if count>0

***********SPACE**********

? ' 总共有',【?】,'组'

else

? '一组也没有'

endif

set talk on

canc

答案:

1). N 2). Enddo 3). Count

*题目:表RSDA.DBF结构为:姓名(C,6);

性别(C,2),年龄(N,2),出生日期(D,

8)。判断表中是否有"李明",查询此人的性

别及年龄,确定参加运动会的项目。

SET TALK OFF

USE RSDA

***********SPACE**********

【?】FOR 姓名= "李明"

***********SPACE**********

IF .NOT. 【?】

DO CASE

CASE 性别= "男"

?"请参加爬山比赛"

CASE 年龄<=50

? "请参加投篮比赛"

CASE 年龄<=60

? "请参加老年迪斯科比"

***********SPACE**********

【?】

ELSE

? "查无此人"

BROWSE

ENDIF

USE

SET TALK ON

RETURN

答案:

1). LOCATE 或LOCA 或LOCATE★All

2). EOF()

3). ENDCASE 或ENDC

*题目: 在数据表学生.DBF中,将"姜冰"同

学的名字修改成"江冰"

SET TALK OFF

clear

use 学生

***********SPACE**********

locate for 姓名=【?】

if found()

***********SPACE**********

【?】

list memo like x

x(2)="江冰"

gather from x

clear

list

***********SPACE**********

【?】

?"对不起,没有江冰这个人"

endif

close all

SET TALK ON

RETURN

答案:

1). "姜冰" 或'姜冰'

2). scat to x

3). else

*题目:通过循环程序输出图形:

* 1

* 321

* 54321

* 7654321

SET TALK OFF

FOR N=1 TO 4

***********SPACE**********

【?】

***********SPACE**********

FOR M=1 TO 【?】

?? " "

ENDFOR

FOR M=1 TO 2*N-1

***********SPACE**********

?? STR(【?】,1)

ENDFOR

ENDFOR

SET TALK OFF

答案:

1). ?

2). 8-N*2 或8-2*N

3). 2*N-★M,1 或N*2-★M,1

*题目: 有三个数据表文件:学生入学情况xsqk.dbf、学生成绩xscj.dbf、教师情况jsqk.dbf。下面程序时生成一个新数据表文件xsqk2.dbf,包括四个字段:姓名、班级、任课教师、课程。记录是入学时为保送生且本学期计算机成绩在90分以上(包括90分)的全部学生

set talk off

clear

sele 3

use jsqk

sele 2

use xscj

sele 1

use xsqk

***********SPACE**********

join with c to xsqk1 for 【?】fields 姓名,班级,c.任课教师,c.课程

***********SPACE**********

【?】4

use xsqk1

***********SPACE**********

join with b to xsqk2 for 姓名=b->姓名.and. b->计算机>=90 field 【?】

答案:

1).班级=★c->★班级★and★保送生或保

送生★and★班级=★c.★班级

2). sele

3). 姓名★,★班级★,★任课教师★,★b->数学★,★b->计算机或姓名★,★班级

★,★任课教师★,★b.数学★,★b.计算机

*题目: 现有数据库BM.DBF。首先将

BM.DBF拷贝生成一个BMK.DBF库文件,

用程序方法修改BMK.DBF库文件结构,将

XM字段宽度修改为10,BMDM字段类型修

改为C型,在增加一个BZ (M,10)备注字段。

最后显示修改后的数据库结构及记录内容

SET TALK OFF

SET SAFE OFF

CLEAR

USE BM

COPY TO BMK

***********SPACE**********

COPY TO LS STRU 【?】

USE LS

2

REPL FIELD_LEN WITH 10

4

REPL FIELD_TYPE WITH 'C'

APPE BLANK

REPL FIELD_NAME WITH 'BZ'

REPL FIELD_TYPE WITH 'M'

REPL FIELD_LEN WITH 10

***********SPACE**********

CREA BMK 【?】

USE BMK

***********SPACE**********

APPE FROM 【?】

LIST STRU

DISP ALL

USE

RETURN

答案:

1). EXTE 2). FROM LS 3). BM

*题目: 计算

Y=2^2/2!+4^4/4!+6^6/6!+8^8/8!+10^10/10!的

SET TALK OFF

CLEAR

S=0

***********SPACE**********

FOR I=2 TO 10 【?】

T=1

***********SPACE**********

FOR J=1 TO 【?】

T=T*J

endf

***********SPACE**********

s=s+【?】

endf

? 's=',s

set talk on

canc

答案:

1). STEP★2

2). I

3). i^i★/t 或i**i★/t

*题目: 下面程序的功能是输出1到100之间

每位数的乘积大于每位数的和的数。例如数

字26,数位上数字的乘积12大于数字之和8。

SET TALK OFF

clear

***********SPACE**********

for n=1 to 【?】

k=1

s=0

m=n

do while m>0

k=k*(m%10)

***********SPACE**********

s=s+【?】

***********SPACE**********

m=【?】(m/10)

endd

***********SPACE**********

if k>【?】

? 'n=',n

endif

endf

set talk on

canc

答案:

1). 100 2). m%10

3). Int 4). s

*题目: 共有三个表tb1.dbf tb2.dbf tb3.dbf 。

下面程序功能是把每个表的末尾记录删除。

SET TALK OFF

CLEAR

n=1

***********SPACE**********

do while n<=【?】

***********SPACE**********

tb=【?】

use &tb

go bottom

dele

pack

***********SPACE**********

【?】

enddo

SET TALK ON

RETURN

答案:

1). 3

2). "TB"★+STR★(N,1)

3). N=N+1 或N=1+N

*题目: 编写程序,实现矩阵(3行3列)的

转置(即行列互换)。例如,输入下面的矩阵:

* 1 2 3 程序输出:1 4 7

* 4 5 6 2 5 8

* 7 8 9 3 6 9

SET TALK OFF

clear

dime a(3,3)

m=1

for i=1 to 3

for j=1 to 3

***********SPACE**********

a(i,j)= 【?】

***********SPACE**********

【?】

endf

endf

for i=1 to 3

for j=1 to 3

***********SPACE**********

??【?】,' '

endf

?

endf

答案:

1). M 2). m=★m★+★1

3). a(j,i)

*题目:找出XSDB.DBF中奖学金最高的学生

记录并输出。

***********SPACE**********

【?】

MAX=0

***********SPACE**********

DO WHILE 【?】

IF MAX<奖学金

***********SPACE**********

【?】

JLH=RECN()

ENDIF

SKIP

ENDDO

?MAX

DISP FOR RECN()=JLH

USE

答案:

1).USE★XSDB 或USE★XSDB★.DBF

2). !EOF() 或.NOT.★EOF() 或NOT★EOF() 或EOF()★<>★.T.

3). STOR★奖学金TO★MAX 或MAX=★奖学金

*题目:以下程序通过键盘输入4个数字,找出其中最小的数。

SET TALK OFF

***********SPACE**********

【?】

INPUT "请输入第一个数字" TO X

DO WHILE I<=3

M=X

INPUT "请输入数字" TO X

***********SPACE**********

IF 【?】

M=X

ENDIF

***********SPACE**********

【?】

ENDDO

? "最小的数是",M

SET TALK ON

答案:

1). I=0 或STOR 0 TO I

2). XX 或X<=M 或M>=X

3). I=I+1 或I=1+I 或STOR★I★+★1★TO★I

*题目:在XSDB.DBF数据表中查找学生王迪,如果找到,则显示:学号、姓名、英语、生年月日,否则提示"查无此人!"。

***********SPACE**********

【?】

XM="王迪"

***********SPACE**********

【?】姓名=XM

IF FOUN()

***********SPACE**********

【?】学号, 姓名, 英语, 生年月日

ELSE

? "查无此人!"

ENDIF

USE

RETURN

答案:

1).USE★XSDB 或USE★XSDB★.DBF

2). locate★for 或locate★All★for

3). display 或? 或display ★off

*题目: 1982年我国第三次人口普查,结果全国人口为10.3亿,假如人口增长率为5%。编写一个程序求在公元多少年总人口翻了一番。

SET TALK OFF

CLEAR

P1=10.3

N=1

R=0.05

P2=P1*(1+R)

***********SPACE**********

DO WHILE P2<=【?】

***********SPACE**********

N=【?】

***********SPACE**********

P2=P2【?】(1+R)

ENDD

N=1982+N

? N,"年人口总数翻了一番"

SET TALK ON

CANC

答案:

1). 2★*★P1 或20.6

2). * *题目: 百马百担问题:有100匹马,驮100

担货,大马驮三担,中马驮2担,两匹小马

驮一担,求大、中、小马各多少匹?。

SET TALK OFF

clear

for hb=0 to 100

***********SPACE**********

for hm=0 to 100-【?】

***********SPACE**********

hs=【?】

***********SPACE**********

if hb*3+hm*2+【?】=100

? "大马有:",hb,"中马有:",hm,"小马有:

",hs

endif

endf

endf

set talk on

canc

答案:

1). hb

2). 100-hb-hm

3). hs/2

*题目: 共有三个表tb1.dbf tb2.dbf tb3.dbf 。

下面程序功能是把每个表的首记录删除。

SET TALK OFF

CLEAR

n=1

***********SPACE**********

do while n<=【?】

***********SPACE**********

tb=【?】

use &tb

go TOP

dele

pack

***********SPACE**********

【?】

enddo

SET TALK ON

RETURN

答案:

1). 3

2). "TB"★+STR★(N,1)

3). N=N+1 或N=1+N

*题目: 用二分法求方程2X^3+4X^2+3X-6=0

在(-10,10)之间的根,其中X^n代表X的

n次方。SET TALK OFF

clear

do while .t.

input "x1=" to x1

input "x2=" to x2

fx1=x1*((2*x1-4)*x1+3)-6

fx2=x2*((2*x2-4)*x1+3)-6

if fx1*fx2<=0

***********SPACE**********

【?】

endif

enddo

***********SPACE**********

do while 【?】

x0=(x1+x2)/2

fx0=x0*((2*x0-4)*x0+3)-6

if fx0*fx1<0

x2=x0

fx2=fx0

else

x1=x0

fx1=fx0

endif

if abs(fx0)<=1e-5

exit

endif

endd

***********SPACE**********

? "x=", 【?】

答案:

1). exit

2). .t.

3). x0

*题目: 将字母转换成密码,转换规则是将当

前字母变成其后的第三个字母,但X变成A、

Y变成B、Z变成C。小写字母的转换规则

同样。

SET TALK OFF

clear

accept "请输入一个字符串:"to pp

? pp

p=""

***********SPACE**********

for i=1 to 【?】

m=subs(pp,i,1)

***********SPACE**********

if m<="z" .and. m>= "a" 【?】m>="A" and

m<="Z"

do case

case m="x"

m="a"

case m="X"

m="A"

case m="y"

m="b"

case m="Y"

m="B"

case m="z"

m="c"

case m="Z"

m="C"

otherwise

***********SPACE**********

【?】

m =chr(m)

endcase

p=p+m

endif

endfor

? p

set talk on

canc

答案:

1). len(pp)

2). or

3). m=★ASC★(m)★+★3

*题目: 有文具库WJ.DBF和销售库XS.DBF

要求用XS.DBF库更新WJ.DBF库。

SET TALK OFF

CLEAR

SELE 1

***********SPACE**********

USE 【?】

SELE 2

USE XS

***********SPACE**********

INDE ON 【?】TO I1

***********SPACE**********

UPDA ON 品名FROM A REPL 数量

WITH A.数量,金额WITH 【?】rand

LIST

SET TALK ON

CANC

答案:

1). WJ

2). 品名

3). 数量*A.单价

*题目: 现有结构相同的两个数据库,计算机

二级库JSJ.DBF和英语四级库YY.DBF,含如

下字段内容:学号(C,4),姓名(C,8),性别(C,2),

专业(C,16)。要求编一程序,将两个数据库中

关键字段学号相同的记录从YY.DBF中删除

掉,并将其存放到结构相同的ER.DBF库文

件中,最后显示ER.DBF库中的记录内容SET TALK OFF

SET SAFE OFF

SELE 1

USE JSJ

***********SPACE**********

COPY 【?】TO ER

INDE ON 学号TO ER

SELE 2

USE YY

SET RELA TO 学号INTO A

GO TOP

SELE 3

USE ER

SELE 2

DO WHILE .NOT. EOF()

***********SPACE**********

IF 学号=【?】

SCAT TO M

SELE 3

APPE BLANK

***********SPACE**********

【?】FROM M

SELE 2

DELE

ENDIF

SKIP

ENDD

PACK

SELE 3

LIST

CLOSE DATA

RETURN

答案:

1). STRU

2).A->学号或 A.学号或JSJ.学号或JSJ->学号

3). GA THER

*题目:十个小孩围成一圈分糖果,老师分给第一个小孩10 块,第二个小孩 2 块,第三个小孩8 块,第四个小孩22 块,第五个小孩16 块,第六个小孩4块,第七个小孩10 块,第八个小孩 6 块,第九个小孩14 块,第十个小孩20 块。然后所有的小孩同时将自己手中的糖分一半给左边的小孩;糖块数为奇数的人可向老师要一块。问经过这样几次调整后大家手中的糖的块数都一样?每人各有多少块糖?

SET TALK OFF

clear

dime a(12)

a(1)=0

a(2)=10

a(3)=2

a(4)=8

a(5)=22

a(6)=16

a(7)=4

a(8)=10

a(9)=6

a(10)=14

a(11)=20

s=0

do while .t.

for i=2 to 11

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

endf

a(11)=int(a(11)/2)+a(1)

for i=2 to 11

if a(i)%2=1

a(i)=a(i)+1

endif

endf

i=2 ***********SPACE**********

do while i<【?】

if a(i)!=a(i+1)

exit

endif

i=i+1

endd

if i=11

***********SPACE**********

【?】

else

a(1)=0

***********SPACE**********

s=s+【?】

endif

endd

? 's=',s,'num=',a(2)

set talk on

canc

答案:

1). 11

2). exit

3). 1

*题目: 从读入的整数数据中,统计大于零的

整数个数和小于零的整数个数。用输入零来

结束输入,程序中用变量i统计大于零的整

数个数,用变量j统计小于零的整数个数。

SET TALK OFF

clear

input "输入整数:"to n

***********SPACE**********

store 【?】to i,j

***********SPACE**********

do while 【?】

if n>0

i=i+1

endif

if N<0

j=j+1

endif

input "输入整数:" to n

***********SPACE**********

【?】

? "i=",i

? "j=",j

set talk on

retu

答案:

1). 0

2). n★<>★0 或n★#★0 或n★!=★0

3). enddo

*题目:下面程序根据XSDB.DBF数据表中的

计算机和英语成绩对奖学金做相应调整:双

科90分以上(包括90)的每人增加30元;

双科75分以上(包括75)的每人增加20元;

其他人增加10元。

USE XSDB

***********SPACE**********

DO WHILE 【?】

DO CASE

CASE计算机>=90.AND.英语>=90

REPLACE 奖学金WITH 奖学金+30

CASE计算机>=75.AND.英语>=75

REPLACE 奖学金WITH 奖学金+20

***********SPACE**********

【?】

REPLACE 奖学金WITH 奖学金+10

ENDCASE

***********SPACE**********

【?】

ENDDO

答案:

1).not.eof() 或not eof() 或!eof() 或eof()

★<>★.T.

2). OTHERWISE 或CASE★.NOT.★(计

算机>=90★.AND★.英语★>=90)★.OR.★

NOT.★(计算机★>=75★.AND.★英语

★>=75)

3). SKIP 或SKIP★1

*题目: 有如下程序段,其功能是将汉字信息

“全国计算机等级考试”从屏幕底部移至顶

部。

SET TALK OFF

SET STATUS OFF

CLEAR

X="全国计算机等级考试"

K=23

***********SPACE**********

DO WHILE K>【?】

@ K,26 SAY SPACE(34)

***********SPACE**********

@ 【?】,26 SAY X

P=INKEY(1)

***********SPACE**********

【?】

ENDD

SET STATUS ON

SET TALK ON

RETURN

答案:

1). 0 或Input

2). K-1

3). K=K-1

*题目:下面是计算1+1+2+2+…+n+n之和的

平方根的程序。

SET TALK OFF

INPUT TO N

***********SPACE**********

【?】

FOR I=1 TO N

***********SPACE**********

S=【?】

ENDFOR

***********SPACE**********

?"结果是",【?】

RETURN

SET TALK ON

答案:

1). S=0 或Store★0 To S

2). s+2*i 或2*i+s 或i*2+s 或s+i*2

3) SQRT(S)

vf程序设计课后填空题

1数据管理阶段:人工管理阶段,文件管理阶段,数据库管理阶段 2数据库系统组成:数据库,计算机软件系统,计算机硬件系统和用户。 3客观存在并且可以相互识别的事物称为实体: 4实体的某一特性:属性 5数据库系统支持的主要数据模型:层次,网状,关系,面向对象 6关系是一种规范化的二维表,表格中一行称为:元组表格一列为:属性,属性的取值范围称为:域 7实体之间联系的三种类型:一对一,一对多,多对多 8可唯一标识元组的属性或属性集为关键字 9关系模型中三种规则:选择,投影,连接 10关系操作有三种:选择从关系中找出满足条件的元组,投影从关系某型中指定若干个属性组成新的关系,连接从两个关系中选取满足链接条件的元组组成新关系的操作。11对关系进行选择投影或连接操作之后结果仍然是一个:关系 12vf的两种工作方式:交互式和程序运行式 13用户界面组成:标题栏,菜单栏,工具栏,状态栏,工作区和命令窗口 14当用户在命令圈口输入命令时,可以用(j)作为续行符,表示该行的下一行仍然是同一命令的一部分。 15选项对话框的区域选项卡用于显示和管理日期和时间格式,设置默认目录使用文件位置选项卡。 16vf的表分为:数据库表和自由表,他们得扩展名均为:.dbcb。 17vf每个表都是由:结构和数据两个组成。 18表中输入空值的方法:Ctrl+o 19日期字段宽度:8,逻辑型字段宽度:1,备注型和通用型宽度:4 20删除表中记录通常分为两个步骤:物理删除和逻辑删除 21复合索引文件的扩展名:.cdx。 22使用total命令时表文件应先:排序 23一个工作区某一时刻只能打开:1个表,正在使用的工作区叫:当前工作区。 24在不适用索引的情况下,为了定位满足某个条件的记录应使用命令:Go,要继续查找可使用命令:continue。 25当数据表非空时,执行gotop命令后,函数bof()返回值是:.T.,当执行gobottom命令后,函数eof()返回值是:.T.。 26数据库表之间的永久关系有两种类型:一对一和一对多,关系类型取决于:子表的索引类型。 27参照完整性可以设置表的:更新、删除和插入。 28向数据库中添加的表应该是目前不属于:其他数据库的表。 29在vf中一个表只能属于1个数据库。 30插入触发器用于指定一个规则,每次向表中插入或追加记录时触发该规则,检查新输入记录:是否满足规则。 31规则表达式的类型是:字符型。 32主索引或候选索引的关键字的值必须是:唯一的,一个数据库表可以建立:1个主索引和:多个候选索引。 33数据库表之间的一对多关系是通过主表的:主索引和子表的:候选索引。 34sql的意思是:结构化查询语言 35在使用SQL SELECT语句时为了将查询结果存放到临时表中,应该使用:cursor 短语。

C语言程序的设计填空题及答案复习用

导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【3.1】下面程序的功能是不用第三个变量,实现两个数的对调操作。 #include main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); } 【3.2】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include double pi(long n) { double s=0.0; long i; for(i=1;i<=n;i++) s=s+ ①; return( ② ); } 【3.3】下面的程序的功能是求一维数组中的最小元素。findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;pamax) amax=x; if( ② ) amin=x; scanf("%f",&x); } printf("\namax=%f\namin=%f\n",amax,amin); } 【3.7】下面程序的功能是将形参x的值转换为二进制数, 所得的二进制数放在一个一维数组中返回,二进制数的 最低位放在下标为0的元素中。 fun(int x,int b[]) { int k=0,r; do { r=x% ①; b[k++]=r; x/= ②; }while(x); } 【3.8】下面程序的功能是输出1到100之间每位数的乘 积大于每位数的和的数。例如数字26,数位上数字的乘 积12大于数字之和8。 main() { int n,k=1,s=0,m; for(n=1;n<=100;n++) { k=1; s=0; ①; while( ② ) 页脚

程序阅读及填空(答案)

一.程序阅读题 1.若运行时输入100↙,写出以下程序的运行结果。main ( ) { int a ; scanf(“%d”,&a); printf(“%s”,(a%2!=0)?”No”:”Yes”); } 答案: Yes 2.写出以下程序的运行结果。 main ( ) { int a=2,b=7,c=5; switch (a>0) { case 1: switch (b<0) { case 1: printf(“”); break ; case 2: printf(“!”); break ; } case 0: switch (c==5) { case 1: pritnf(“*”) ; break ; case 2: printf(“#”) ; break ; default : printf(“#”) ; break ; } default : p rintf(“&”); } printf(“\n”); } 答案: *& 3.写出下面程序运行的结果。 main ( ) { int i,b,k=0 ; for (i=1; i<=5 ; i++) { b=i%2; while (b--==0) k++ ; } printf(“%d,%d”,k,b); } 答案:2 0 4.写出下面程序运行的结果。 main ( ) { int k=1,n=263 ; do { k*= n%10 ; n/=10 ; } while (n) ; printf(“%d\n”,k); } 答案:36 5.写出下面程序运行的结果。

{ int a=10,y=0 ; do { a+=2 ; y+=a ; if (y>50) break ; } while (a=14) ; printf(“a=%d y=%d\n”,a,y) ; } 答案:a=16 y=60 数组部分: 1.写出下面程序的运行结果。 main ( ) 答案: { int a[6][6],i,j ; for (i=1; i<6 ; i++) for (j=1 ; j<6 ; j++) a[i][j]=(i/j)*(j/i) ; for (i=1;i<6 ; i++) { for (j=1 ; j<6 ; j++) printf(“%2d”,a[i][j]) ; printf(“\n”); } } 2.写出下面程序的运行结果。 main ( ) { int i=0; char a[ ]=”abm”, b[ ]=”aqid”, c[10]; while (a[i]!=’\0’ && b[i]!=’\0’) { if (a[i]>=b[i]) c[i]=a[i]-32 ; else c[i]=b[i]-32 ; i++; } c[i]=’\0’; puts(c); } 答案:AQM 3.当运行下面程序时,从键盘上输入AabD↙,则写出下面程序的运行结果。 main ( ) { char s[80]; int i=0; gets(s); while (s[i]!=’\0’) { if (s[i]<=’z’ && s[i]>=’a’) s[i]=’z’+’a’-s[i] ; i++;

vfp填空题

填空题 1、表单控件工具栏中的"标签"按钮代表的是标签_________。答题提示:类/对象 2、表打开后,记录指针指向的记录称为__________记录。 3、表单form1上有一个命令按钮组控件CG(容器控件),命令按钮组控件CG中包括两个命 令按钮Cmd1和Cmd2,若当前对象为Cmd1,则this.parent所指的控件是__________。答题 提示:表单/ 命令按钮组 4、常量$90比常量$100________。答题提示:大/小 5、用当前表单中的LABEL1控件来显示系统时间的语句是:https://www.wendangku.net/doc/3910288512.html,BEL1. =TIME() 6、VFP支持两种类型的菜单:条形菜单和式菜单。 7、颜色函数RGB(0,0,0)返回的颜色是色。 8、一个关系对应一张表,表中的一列称为一个字段,表中的一行称为一个。 9、VFP的三种程序结构是结构、选择结构、循环结构。 10、数据完整性包括域完整性、完整性和实体完整性。 11、在面向对象的程序设计中,类的实例又称为。 12、打开数据库表的同时,自动打开该表的索引。 13、执行命令A=$9000之后,内存变量A的数据类型是型。 14、 FONTBOLD属性,用来设置文字是否以体显示。 15、控件的属性,可用来设置文字的字号大小。 16、表达式"Visual FoxPro" $ "Fox"的结果是。 17、在Visual FoxPro中,最多允许同时打开个数据库表或自由表。 18、在Visual FoxPro中,打开表设计器来修改表结构的命令是(每个单词写四个 字母)。 19、在Visual FoxPro中,视图可以分为本地视图和视图。 20、用Ctrl+F2组合键,可以命令窗口。答题提示:打开/关闭 21、每一个数据表可以容纳的最大记录数是(用阿拉伯数字)亿个。 22、命令书写规则规定命令动词可以缩写为前(用阿拉伯数字)个字符。 23、表单文件的扩展名为。 24、数据表是由行和列组成的二维表格,每一列称为一个。 25、当删除父表中的记录时,若子表中的所有相关记录也能自动删除,则相应的参照完 整性的删除规则为。 26、在Visual FoxPro中运行表单时,表单的Activate事件发生在Init事件之。答 题提示:前/后 27、常量.n.表示的是型的数据。 28、菜单可以分组,插入分组线(分隔线)的方法是在"菜单名称"项中输入两个字符。 29、在Visual FoxPro中,参照完整性规则包括更新规则、删除规则和规则。 30、用二维表数据来表示实体及实体之间联系的数据模型称为模型。 31、在Visual FoxPro中说明数组后,数组的每个元素在未赋值之前的默认值是。 32、函数BETWEEN(40,34,50)的运算结果是。 33、 34、执行命令A=2005/4/2之后,内存变量A的数据类型是型。35、颜色函数RGB(255,0,0)返回的颜色是色。 36、颜色函数RGB(0,255,0)返回的颜色是色。 37、颜色函数RGB(0,0,255)返回的颜色是色。 38、VFP中,删除全部记录的命令是。 39、VFP中,物理删除所有带删除标记记录的命令是。 40、 41、自由表中允许字段名的最大长度为(用阿拉伯数字)个字符。 42、在记录浏览状态下,可用Ctrl+0组合键向某一字段输入(用汉字)值。 43、清除屏幕信息的语句命令是。 44、表单设计中,引用当前对象的关键字为。 45、子类可以自动继承父类的属性和方法,这种特性称为类的性。 46、MessageBox函数的返回值是一个型数据。 47、函数MessageBox的语法为:MESSAGEBOX(cMessageText [, nDialogBoxType [, cTitleBarText]]),则该函数的第二个参数省略。答题提示:可以/不可以 48、命令窗口中未加说明而直接定义的变量,是变量。提示:全局/私有/局部 49、程序中未加说明而直接定义的变量,是变量。提示:全局/私有/局部 50、作用范围最小的变量是变量。提示:全局/私有/局部 51、项目管理器的"移去"按钮有两个功能;一是把文件移去,二是______文件。 52、创建视图时,相应的数据库必须是______状态。(打开/关闭) 53、为图像控件指定图片(如.bmp文件)文件的属性是。 54、 55、在SQL查询语句中,显示部分结果的top短语必须要与短语一起来使用。(短语要写完全) 56、VFP中变量名的命名规则:只能使用汉字、字母、和数字。 57、time()函数的返回值的数据类型为型。 58、退出VFP的命令是。 59、定义全局变量的命令是。 60、定义局部变量的命令是。 61、定义私有变量的命令是。 62、wait 命令可以从键盘接收一个。(答题提示:字符/字符串) 63、Accept命令可以从键盘接收一个。(答题提示:字符/字符串) 64、VFP中支持的三种关系运算有选择、投影和。 65、数据表由表结构和两部分组成。 66、表分两种,表和数据库表。 67、报表的两个基本组成部分:数据源和。 68、当输入比较长的命令时,可加一个来续行,回车后继续在下一行输入。答题提示:逗号/分号/空格/括号 69、视图设计器比查询设计器多了一个选项卡。 70、过程文件中的每个子过程必须以(写前四个字母)开头。 71、对象的引用可分为相对引用和引用。 72、创建的菜单运行后,使用set sysmenu to 命令来退出用户菜单,并恢复系统原来的菜单。

VF第6章习题练习

Visual Foxpro练习6 一、单项选择题 1.在程序中定义局部变量的命令动词是()。 A.PUBLIC B.PRIVATE C.LOCAL D.DECLARE 2.VFP 6.0程序设计的三种基本结构是()。 A.顺序,选择,循环B.顺序,选择,逻辑C.模块,转 移,循环D.网状,选择,逻辑 3.在DO WHILE / ENDDO循环中,若循环条件设置为.T.,则下列说法中正确的 是()。 A.程序无法跳出循环B.程序不会出现死循环C.用LOOP 可跳出循环D.用EXIT可跳出循环 4.SCAN循环语句是( )扫描式循环。 A.数组B.数据表C.内存变量D.程序 5.在DO WHILE … ENDDO循环结构中,LOOP命令的作用是()。 A.退出过程,返回程序开始处 B.转移到DO WHILE语句行,开始下一个判断和循环 C.终止循环,将控制转移到本循环结构ENDDO后面的第一条语句继续执行 D.终止程序执行 6.下列程序段执行时在屏幕上显示的结果是()。 DIME A(6) A(1)=1 A(2)=1 FOR J=3 TO 6 A(J)=A(J-1)+A(J-2) NEXT ?A(6) A.5 B.6 C.8 D.7 7.执行如下程序 SET TALK OFF S=0 I=1 INPUT "N=" TO N DO WHILE S<=N S=S+I I=I+1 ENDDO

?S SET TALK ON 如果输入N值为5,则最后S的显示值是()。 A.1 B.3 C.5 D.6 8.下列程序段执行时在屏幕上显示的结果是()。 X1=20 X2=30 DO test With X1,X2 ?X1,X2 PROCEDURE test PARAMETERS a,b x=a a=b b=x ENDPRO A. 30 30 B.30 20 C.20 20 D.20 30 9.有程序如下 USE CJ M.ZF=0 SCAN M.ZF=M.ZF+ZF ENDSCAN ?M.ZF RETURN 其中数据库文件CJ.DBF中有2条记录,内容如下 XM ZF 1 李四500.00 2 张三600.00 运行该程序的结果应当是()。 A.1100.00 B.1000.00 C.1600.00 D.1200.00 10.如下程序段的输出结果是()。 DECLARE b(6) FOR i=1 TO 6 b(i)=i*10 NEXT FOR i=1 TO 6

C语言程序设计程序填空题库及答案

程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); }

【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p

VFP程序填空题的作业答案

程序填空题的应试技巧 程序填空题采用的是选择填空,在做题时可采用以下方法来寻找正确的答案。 1.找匹配语句。 (1)根据程序结构来填空。有DO WHILE,考虑有无ENDDO配对,有IF,有无ENDIF配对。 USE 学生……USE LOCATE FOR ……CONTINUE或FOUND()或!EOF() INDEX ON ……SET INDEX TO SET PROC TO 过程名……SET PROC TO (2)如果程序中有变量的使用语句,如S=S+1,X=X+1,检查程序开头处有无变量赋初值的语句,是否需填STORE 0 TO S, X。 (3)使用TOTAL命令,检查是否存在建索引或排序的语句。 (4)DO AAA(过程名) WITH …,检查过程中有无PARA。 2.边读程序边做题 用实例代入读程序,并结合语句含义和函数来考虑。 3.与表文件有关的函数有: (1)函数:EOF() BOF() FCOUNT() FIELDS() FOUND() FILE() RECNO()RECCOUNT() (2)命令REPLACE ……WITH LOCATE ……FOR DELETE FILE DISP ALL FOR …… APPEND BLANK COUNT TO 新变量名FOR …… SUM 数值型字段TO 新变量名FOR …… AVERAGE数值型字段TO 新变量名FOR …… SKIP n DISP NEXT N 4.输入和输出语句: 程序填空题 1:[程序说明]求1!+3!+5!+······N!的值。N由键盘输入,且为奇数。[程序] SET TALK OFF CLEAR __(5)__ STORE 0 TO S,T FOR I=1 TO N STEP 2 DO SUB __(6)__ ENDFOR ?S SET TALK ON

(完整版)VFP程序设计期末复习题(学生版)

VFP程序设计期末复习题(学生版) 一、基本知识点(含填空题、选择题、判断题) 1.在有关数据库的概念中,若干记录的集合称为表。 2.要计算职称为副教授或教授的工资总额,可用的命令有: (1)sum 工资 FOR 职称="副教授".OR.职称="教授" (2)SUM ALL 工资 FOR 职称="副教授".OR.职称="教授" (3)SUM 工资 FOR "教授"$职称 3.不允许记录中出现重复索引值的索引是主索引和候选索引。 4.在Visual FoxPro中,打开数据库的命令是OPEN DATABASE <数据库名>。 5.连续执行以下命令之后,最后一条命令的输出结果是A BCD。 SET EXACT OFF X="A " ?IIF("A"=X,X-"BCD",X+"BCD") 6. LEET("Visual FoxPro",6)与SUBSTR("Visual FoxPro",1,6)运算中,结果相同。 7.在Visual Foxpro中,用于建立或修改过程文件的命令是MODIFY COMMAND <文件名>或MODIFY PROCEDURE <文件名>。 8.使用命令DECLARE mm(2,3)定义的数组,包含的数组元素(下标变量)的个数为6。 9.APPEND命令的功能是在表的最后面插入一条记录。 10.打开学生数据库及(对成绩字段的)索引文件,假定当前记录号为200,欲使记录指针指向记录号为100的记录,应使用命令GOTO 100。 11.假定系统是期是2004年01月05日,有如下命令: NJ=YEAR(DATE()) 执行该命令后,NJ 的值是2004。 12.学生数据库文件中共10条记录,其姓名字段值均为学生全名,执行如下命令序列: USE STUDENT ?recno() 最后,recno()函数的显示值是1。 13.比较表达式的结果是逻辑型。 14.用COPY STRU TO <文件名> 形成的文件是表文件。 15. 数值型、日期型、字符型能作为索引关键字的数据类型而备注型则不能。 16.显示数据表当前记录内容的命令是LIST NEXT 1。 17.用命令DIMENSION A(4,5)定义后,A数组中共有20个数据元素。

C语言程序填空题及答案

C语言程序填空题及答 案 集团企业公司编码:(LL3698-KKI1269-TM2483-LUI12689-ITT289-

程序填空题 1、 #include void main() { int n,k=0; scanf("%d",&n); while( _____1_____ ) // 1)n 2) n!=0; { k++; _____2_____; n=n/10 } printf("%d\n",k); } 2、 #include #include #define f(x) x*x-5*x+sin(x) void main() { int x; float max; ______1______ // max=f(1); for(x=2;x<=10;x++) ______2______ // if(f(i)>max) max=f(i); printf("%f\n",max);

} 3、 #include void main() { char c; c=getchar(); if(______1______) // c>='a' && c<'v' c=c+5; else if (c>='v' && c<='z') ______2______ //c=c-21; putchar(c); } 4、 #include void Dec2Bin(int m) { int bin[32],j; for(j=0;m!=0;j++) { bin[j]= ______1______; // m%2

VFP填空题+答案

1.在VFP的默认状态下,表以________方式打开。 答案:独占 2.如果USED("XS")返回为T,则说明________。 答案:文件已打开 3.要实现对JS表所有记录的工龄(GL)增加1,其UPDATE-SQL命令为________。 答案:UPDATE JS SET GL=GL+1 4.在REPLACE命令中,保留字________仅对备注型字段有效,使用时表示替换的内容追加到原备注中,否则替换原备注内容。 答案:ADDITIVE 5.请写出删除JS表中基本工资(GZ)在400元以下所有记录的DELETE-SQL命令________。 答案:DELETE FROM JS WHERE GZ<400 6.如果要彻底删除当前工作区中打开表的所有记录,可以使用________命令。 答案:ZAP 7.打开一个表时,________索引文件将自动打开,表关闭时它将自动关闭。 答案:结构复合索引 8.数据库中的每一个表能建立________个主索引。 答案:1 9.除了自由表的字段名、表的索引名至多只有_____个字符以外,其余名称的长度可以达到100多个字符。 答案:10 10.________是保存在数据库中的过程代码,由用户自定义的函数和在创建表之间的参照完整性规则时系统创建的函数组成。 答案:存储过程 11.参照完整性的插入规则只有两个,________ 答案:删除和忽略 12.学生表和成绩表已经建立了参照完整性,如果删除学生表中的记录,该学生的所有成绩记录也自动全部删除,则两表之间的参照完整性设置为___________。 答案:删除级联 13.要设置当前数据库中js 表的gh字段的标题属性,可以dbsetprop(”_______”,”field”,”caption”,”工号”) 答案:js.gh 14.要获取当前数据库中xs表的xb字段的默认值,可以dbgetprop(”xs.xb”,”field”,”__________”) 答案:defaultvalue 15.对于已打开的多个索引,每次只有一个索引对表起作用,这个索引称为________。 答案:主控索引 16.在关系模型中实体之间的联系有三种:一对一关系、一对多关系和多对多关系。在VFP 数据库中,数据库表之间不能建立的关系是________。 答案:多对多关系 17.________是保存在数据库中的过程代码,它由一系列用户自定义函数或在创建表与表之间参照完整性规则时系统创建的函数组成。 答案:存储过程 18.在移动表或数据库后更新链接,可以使用VALIDATE DATABASE命令检查数据库的有效性和更新链接.该命令要求以________方式打开当前数据库。

VF程序设计典型题目

VF程序设计典型题目 1、求[10,1000]内所有能被被7和9中至少一个数整除的整数之个数。 答案:236 n=0 for i=10 to 1000 if mod(i,7)=0 or mod(i,9)=0 n=n+1 endi endf ?n 2、求[101,299]内所有能被2整除但不能同时被3和5整除的整数之和。 答案:18630 s=0 for i=101 to 299 if mod(i,2)=0 and not (mod(i,3)=0 and mod(i,5)=0) s=s+i endi endf

3、求100以内最大的自然数n,使得从1开始的连续n 个自然数的倒数之和小于3.5。 答案:18 s=0 for i=1 to 100 s=s+1/i if s>=3.5 exit endi endf ?i-1 4、求100以内最小的自然数n,使得从1开始的连续n 个自然数的立方之和大于30000。 答案:25 s=0 for i=1 to 100 s=s+i^3 if s>30000 exit endi endf

5、求出100以内使得算式1*2+2*3+…+n*(n+1)的值小于5000的最大的自然数n。 答案:23 s=0 for i=1 to 100 s=s+i*(i+1) if s>=5000 exit endi endf ?i-1 6、求出100以内使得算式1/(1*1)+1/(2*2)+…+1/(n*n)的值小于1.6的最大的自然数n。 答案:21 s=0 for i=1 to 100 s=s+1/i^2 if s>=1.6 exit endi endf

模块化程序设计练习题及答案

第四章模块化程序设计练习题及参考答案 一、填空题 1、以下程序的运行结果是(111),把x定义为静态变量运行结果是(123)。void increment(void) { int x=0; x+=1; printf("%d",x);} main() { increment(); increment(); increment(); } 2、若输入的值是-125,以下程序的运行结果是(-125=-5*5*5) #include "" main() { int n; void f(int n); scanf("%d",&n); printf("%d=",n); if(n<0) printf("-"); n=fabs(n); fun(n); } void fun(int n) { int k,r; for(k=2;k<=sqrt(n);k++) { r=n%k; while(r==0) { printf("%d",k); n=n/k; if(n>1)printf("*"); r=n%k; } } if(n!=1) printf("%d\n",n); } 3、设有以下宏定义: #define WIDTH 80 #define LENGTH WIDTH+40 则执行赋值语句:v=LENGTH*20;(v为int型)后,v的值是(880) 4、设有以下宏定义: #define WIDTH 80 #define LENGTH (WIDTH+40)

则执行赋值语句:k=LENGTH*20;(k为int型变量)后,k的值是(2400) 5、下面程序的运行结果是(5) #define DOUBLE(r) r*r main() { int x=1,y=2,t; t=DOUBLE(x+y); printf("%d\n",t);} 6、下面程序的运行结果是(36) #define MUL(z) (z)*(z) main() { printf("%d\n",MUL(1+2)+3); } 7、下面程序的运行结果是(212) #define POWER(x) ((x)*(x)) main() { int i=1; while(i<=4) printf("%d,",POWER(i++)); } 8、下面程序的运行结果是(9) #define MAX(a,b) (a>ba:b)+1 main() { int i=6,j=8,k; printf("%d\n",MAX(i,j)); } 二、选择题 1、以下正确的说法是(D)建立自定义函数的目的之一是: A)提高程序的执行效率 B)提高程序的可读性 C)减少程序的篇幅 D)减少程序文件所占内存 2、以下正确的说法是(B) A)用户若需调用标准库函数,调用前必须重新定义 B)用户可以重新定义标准库函数,若如此,该函数将失原有含义。 C)系统根本不允许用户重新定义标准库函数。 D)用户若需调用标准函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调用。 3、以下正确的函数定义形式是(C) A)double fun(int x,int y) B)double fun(int x;int y) C)double fun(int x,int y); D)double fun(int x,y) 4、以下正确的说法是(D)。在C语言中: A)实参与其对应的形参各占用独立的存储单元。 B)实参和与其对应的形参共占用一个存储单元。 C)只用当实参和与其对应的形参同名时才共占用存储单元。

-程序填空部分试题及答案

第1.题*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:下面的程序是求1!+3!+5!+……+n!的和。 -------------------------------------------------------*/ #include main() { long int f,s; int i,j,n; /***********SPACE***********/ 【?】; scanf("%d",&n); /***********SPACE***********/ for(i=1;i<=n; 【?】) { f=1; /***********SPACE***********/ for(j=1; 【?】;j++) /***********SPACE***********/ 【?】; s=s+f; } printf("n=%d,s=%ld\n",n,s); } 第2题./*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:以下程序是用选择法对10个整数按升序排序。 -------------------------------------------------------*/ #include /***********SPACE***********/ 【?】 main()

VFP练习题(精华哦!)

VFP程序设计练习题 一、选择题 1、 Visual FoxPro 是一个。 A. 数据库系统 B. 数据库管理系统 C. 数据库 D. 数据库管理员 2、实体是信息世界的术语,与之对应的数据库术语是。 A. 文件 B. 数据库 C. 记录 D. 字段 3、数据库系统与文件系统的最主要区别是。 A.数据库系统复杂,而文件系统简单 B.文件系统只能管理程序文件,而数据库系统能够管理各种类型的文件 C.文件系统管理的数据量较小,而数据库系统可以管理庞大的数据量 D.文件系统不能解决数据冗余和数据独立性问题,而数据库系统可以解决 4、目前三种基本的数据模型是 ________ 。 A. 层次模型、网络模型、关系模型 B. 对象模型、网络模型、关系模型 C. 网络模型、对象模型、层次模型 D. 层次模型、关系模型、对象模型 5、数据库管理系统是 ________ 。 A. 教学软件 B. 应用软件 C. 计算机辅助设计软件 D. 系统软件 6、关系型数据库采用 ________ 表示实体和实体间的联系。 A. 对象 B. 字段 C. 二维表 D. 表单 7、下列表达式中,合法的是。 A. Year(Date())-{2000/08/02} B. Date()-{2000/08/02} C. Date()+{2000/08/02} D. A、B、C 均对 8、表达式?round(123.456,0)

VF程序设计经典例题

1. 求园的面积(要求判断半径是否合理) Clea Inpu ‘r=’ to r If r>0 S=3.14*r*r ?s Else ?’半径错误!’ Endif 2. 求分段函数Y 的值 Clea Inpu ‘x=’If x>0 Y=2*x+5 Else If x=0 Y=x Else Y=abs(x) Endif Endif ?y 3. 输入一个百分制成绩判断其等级(优/良/中/及格/不及格) Clea Inpu ‘cj=’ to cj Do case Case cj>=90 ?’优’ Case cj>=80 ?’良’ Case cj>=70 ?’中’ Case cj>=60 ?’及格’ Orth ?’不及格’ Endcase 4. 输入若干个(个数不定)百分制成绩判断其等级(优/良/中/及格/不及格) Clea Inpu ‘请输入处理几个人的成绩:’ to n For i=1 to n Inpu ‘cj=’ to cj Do case 2x +5 x>0 x x=0 | x | x<0

Case cj>=90 ?’优’ Case cj>=80 ?’良’ Case cj>=70 ?’中’ Case cj>=60 ?’及格’ Orth ?’不及格’ Endcase endfor 5.求S=1+2+3. . . . . .+100 C lea S=0 For i=1 to 100 S=s+i Endfor ?s 6.求S=1×2×3. . . . . .×100 Clea p=1 For i=1 to 100 p=p*i Endfor ?p 7.求S=1+3+5.. . . . .+99 Clea S=0 For i=1 to 99 step 2 S=s+i Endfor ?s 8.求S=1-2+3-4. . . . . .-100 Clea S=0 For i=1 to 100 S=s+(-1)^(i+1)*i Endfor ?s 9.求S=1+1/2+2/3+3/5. . . . . .前10项之和Clea S=0 A=1

C++程序设计练习题与答案

C++程序设计练习题 一、填空题 1.对象的三大基本特性分别为多态性、( )、封装性。 2.赋值运算符应重载为( )函数。 3.用( )声明的基类称为虚基类。 4.用( )声明的函数称为虚函数。 5.派生类对基类继承控制访问有三种。派生类可以定义其基类中不具备的( )。 6.静态成员是对象的成员,( )函数不是类的成员。 7.在函数体之前加( )关键字可以防止覆盖函数改变数据成员的值。 8.一个const对象只能访问( )成员函数。 9.使用友元函数是为了提高程序效率,且节约了( )开销。 10.类名为“ClassName”的类,其拷贝构造函数的原型说明是( )。 11.由关键字private、public和protected限定成员的访问权限分别是( )、( )和( )。缺省关键字时成员的访问权限为( )。 12.如果想要公共基类在派生类中只有一个拷贝,就要将公共的基类说明为( );如果虚基类没有默认构造函数,就必须在每一个派生类的构造函数中都要调用虚基类的( )函数。 13.静态成员函数是使用关键字( )说明的成员函数。 14.一个函数的原型声明为“void FunName(int=0, double=0, char='x');”,则调用FunName函数的方法共有( )种。 15.编译时多态性是通过( )实现的;运行时多态性是通过( )实现的。 16.C++通过( )实现编译时多态性,通过( )实现运行时多态性。 17.在C++中,声明类的关键字是( )。 18.声明C++模板的关键字是( )。 19.调用函数原型声明为“void FunName(short, int=0, float=1.0);”的方法有( )种。 20.处理C++异常的方法:采用( )结构。 21.用关键字( )、( )和( )限定的成员,其访问权限分别为:公有的、私有的和保护的。缺省关键字时,成员的访问权限为( )。 22.在C++中,处理( )的方法是采用try-catch结构。 23.在C++中,用关键字( )说明内置函数。 24.在C++中,声明友元函数的关键字是( )。 25.将公共基类说明为( )时,多重派生过程中公共基类在派生类中就只有一个拷贝了。 26.在C++中,如果函数调用在前、定义在后,就必须先对函数进行( )。 27.在成员函数头之后、函数体之前加( )修饰的成员函数称为类的常成员函数。 28.包含纯虚函数的类称为抽象类,这种类只能用作( )来派生新类。由于抽象类的特殊性,我们可以说明抽象类的( ),但不能说明抽象类的( )。 29.说明函数类型为“double”、函数名为“virfun”且无参数的纯虚函数的表达形式为( )。 30.说明静态成员要使用关键字( )。 31.当函数调用在前定义在后时,必须先对函数进行( )说明。

VFP程序设计教程习题答案

第一章 1.试说明数据与信息的区别和联系。 数据是人们用于记录事物情况的物理符号。信息是数据中所包含的意义。数据与信息既有区别,又有联系。数据是表示信息的,但并非任何数据都能表示信息,信息只是加工处理后的数据,是数据所表达的内容。另一方面信息不随表示它的数据形式而改变,它是反映客观现实世界的知识,而数据则具有任意性,用不同的数据形式可以表示同样的信息,信息只是加工处理后的数据,是数据所表达的内容。 2.什么是数据库、数据库管理系统和数据库系统? 数据库是在数据库管理系统的集中控制之下,按一定的组织方式存储起来的、相互关联的数据集合。 数据库管理系统(Database Management System,DBMS)是对数据进行统一的控制和管理,从而可以有效地减少数据冗余,实现数据共享,解决数据独立性问题,并提供统一的安全性、完整性和并发控制功能的系统软件。 数据库系统是把有关计算机硬件、软件、数据和人员组合起来为用户提供信息服务的 系统。 3.简述数据库的三级模式结构。 为了有效地组织、管理数据,提高数据库的逻辑独立性和物理独立性,人们为数据库设 计了一个严谨的体系结构,数据库领域公认的标准结构是三级模式结构,它包括外模式、模 式和内模式。 模式又称概念模式或逻辑模式,对应于概念级。它是由数据库设计者综合所有用户的数 据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图(全局视图)。外模式又称子模式,对应于用户级。它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示。内模式又称存储模式,对应于物理级。它是数据库中全体数据的内部表示或底层描述。 4.数据库系统的特点是什么? 特点是数据共享,减少数据冗余,具有较高的数据独立性,增强了数据安全性和完整性保护。 5.实体之间的联系有哪几种?分别举例说明。

相关文档