面向过程基础知识习题.docx
《面向过程基础知识习题.docx》由会员分享,可在线阅读,更多相关《面向过程基础知识习题.docx(24页珍藏版)》请在冰豆网上搜索。
面向过程基础知识习题
一、选择题
1、假定Y=2,执行了?
Y=Y+2后,其结果是:
A、3B、4C、.F.D、.T.
2、在VFP中,下列数据属于常量的是:
A、.N.B、FC、07/08/99D、ALL
3、将逻辑假值赋给变量DY的正确方法是:
A、DY=FALSEB、STORE.F.TODY
C、DY=“.F.”D、STORE“F”TODY
4、执行了?
TYPE(“DY”)后,得到的是日期型结果,给变量DY赋值的方法可能是:
A、DY={11/08/99}B、DY=“11/08/99”
C、DY=CTOD(11/08/99)D、DY=11/08/99
5、设系统日期是1999年2月5日
?
VAL(SUBSTR(“全省计算机等级考试2级”,19,1)+RIGHT(STR(YEAR(DATE())),2))+3
A、301B、302.00C、2+1999D、出错信息
6、?
IIF(LEN(SPACE
(1))-1=2,1,-1)
A、0B、2C、-1D、1
7、下面应用宏代换函数正确的是:
A、X=“我们”B、X=“我们”
Y=“热爱”Y=“热爱”
?
X+&Y祖国?
X+“&Y.祖国”
C、X=“我们”D、X=“我们”
Y=“热爱”Y=“热爱”
?
X+&Y.祖国?
X+“&Y祖国”
8、在下列函数中,函数值为数值类型的是:
A.SUBSTR(DTOC(DATE()),7,2)B.CTOD(“10/01/99”)
C.CHR(65)D.AT(“人民”,“中国人民银行”)
9、命令
S1=‘ABCDEFG’
S2=RIGHT(STUFF(S1,4,2,‘123’),3)
?
S2
执行后,其结果为_____
A.EFGB.123C.3FGD.ABC
10、命令系列
ML=DATE()
ML=.NULL.
.?
TYPE(“ML”)
执行后,所得到的值为_____
A..NULL.B.DC.UD.当前日期
11、表达式CTOD(“09/08/98”)-CTOD(“09/01/98”)的值为_____
A.00/07/00B.7C.错误信息D.CTOD(“00/07/00”)
12、执行下列命令序列:
ABC=“伟大祖国”
?
SUBSTR(ABC,LEN(ABC)/2+1,4)
结果是:
A.伟大B.祖国C.大祖D.变量未找到
13、若当前表文件刚刚执行过LIST命令,再接着执行REPLACE命令,且其范围子句及条件子句均缺省,则该命令完成了_____的替换。
A.首记录B.末记录C.所有记录D.零个记录
14、打开一个空表文件,分别用函数EOF()和BOF()测试,其结果是_____。
A.T.、.T.B.F.、.F.C.T.、.F.D.F.、.T.
15、在下列命令中,省略“范围”选择项时,默认“范围”为ALL的命令是_____。
A.DISPLAYB.REPLACEC.RECALLD.AVERAGE
16、删除学生表中姓王的学生,应使用命令_____
DELETEFOR“王”$姓名
DELETEFORSUBSTR(姓名,1,2)=“王”
DELETEFOR姓名=王
DELETEFORRIGHT(姓名,1)=“王”
17、若表中记录10条,若有3条记录已加删除标记,此时执行设置命令SETDELETEDON,再执行?
RECCOUNT(),结果为_____
A.3B.7C.10D.0
18、表ST.DBF中有字段:
姓名/C,出生年月/D,总分/N等,要建立姓名,总分,出生年月的组合索引,其索引关键字表达式是_____
A)姓名+总分+出生年月
B)“姓名”+”总分”+”出生年月”
C)姓名+STR(总分)+STR(出生年月)
D)姓名+STR(总分)+DTOC(出生年月)
19、如果一个数据表中有8个记录,且该表的某个索引文件已打开,则当执行命令GOBOTTOM后,当前记录指针在第____号记录。
A.8B.9C.不确定D.1
20、在命令窗口中,已打开职工简况表,要将记录指针定位在第一个工资大于1000元的记录上,用命令:
A.LOCATEFOR工资>1000
B.FINDFOR工资>1000
C.SEEKFOR工资>1000
D.LISTFOR工资>1000
21、表文件与相应索引文件已经打开,内存变量XM=“王平”,检索时将产生逻辑错误的命令是:
A.LOCATEFOR姓名=XM
B.FIND&XM
C.SEEKXM
D.LOCATEFOR姓名=&XM
22、设数据库STUDENT共有100条记录,执行下面程序后X1,X2,X3值分别是_____。
SETDELETEDOFF
USESTUDENT
DELETE
COUNTTOX1
PACK
COUNTTOX2
ZAP
COUNTTOX3
A.100,99,0B.100,99,99C.99,99,0D.100,100,0
23、对学生成绩表文件按总分(N,6,2)降序、姓名(C,8)升序索引。
应当使用命令__________。
A.INDEXTOABCON总分+姓名
B.INDEXTOABCON–总分+姓名
C.INDEXTOABCONSTR(-总分,5,1)+姓名
D.INDEXTOABCONSTR(1000-总分)+姓名
24、在打开表的同时已经打开了姓名索引文件,下列命令中作用相同的两个命令是__________。
A.SEEK“张”和FIND张
B.SEEK马和FIND“马”
GOTOP和GO1
DISPLAYFOR姓名=“李”和DISPLAYWHILE姓名=“李”
25、计算所有职称为正、副教授的工资总额,将结果赋予变量W中,应使用命令__________。
A.SUM工资TOWFOR职称=“副教授”AND“教授”
B.SUM工资TOWFOR职称=“副教授”OR“教授”
C.SUM工资TOWFOR职称=“副教授”AND职称=“教授”
D.SUM工资TOWFOR“教授”$职称
26、要将数据表学生.DBF的内容复制到文本文件XS.TXT中,应使用命令_____。
A.USE学生
COPYSTRUCTURETOXS
B.USE学生
APPENDFROMXS
C.USE学生
COPYTOXSTYPEDELIMITED
D.USE学生
COPYFILETOXSSDF
27、TOTAL命令在使用前要求表文件必须__________。
A.未打开B.按关键字进行索引或排序
C.所有字段为数值型D.以上三种都对
28、某表文件有字符型、数值型、逻辑型和备注型4个字段,其中字符型字段的宽度为6,数值型字段的宽度为8,小数位为2,表文件共有100条记录,则全部记录需要占用的存储字节数目为__________。
A.1900B.2000C.2600D.2500
29、执行如下命令之后,当前打开的表名是__________。
N=“6”
FILENAME=“FILENAME”+N
USE&FILENAME
A.FILENAMEB.FILENAMEN
C.&FILENAMED.FILENAME6
30、在索引文件打开的情况下,要索引查找第二个职称为工程师的记录,应使用_________。
A.SEEK“工程师”
SEEK“工程师”
CONTINUE
SEEK“工程师”NEXT2
SEEK“工程师”
SKIP
31、若一数值型字段宽度是7,小数位是2,此字段整数部分最小值是:
A.-999B.999C.9999D.-99
32、表记录的总宽度比其它各字段宽度的和多一个字节,这个字节是_____
A.无用B.放序号C.放记录号D.放删除标记
33、一个VFP表文件中有四个备注型字段,这些字段的内容放在_____
A.4个.FPT文件中B.4个.DBF文件中
C.同一个.DBF文件中D.同一个.FPT文件中
34、如果一个VFP表文件中有200条记录,当前记录号是176,执行命令SKIP30后,再执行命令?
RECNO(),其结果是_____。
A.200B.206C.错误提示D.201
35、已打开表文件,其中出生年月字段为日期型,年龄字段为数值型,要计算每人今年的年龄并把其值填入年龄字段中,应使用命令_____
A.REPLACEALL年龄WITHYEAR(DATE())-YEAR(出生年月)
B.REPLACEALL年龄WITHDATE()-出生年月
C.REPLACEALL年龄WITHDTOC(DATE())-DTOC(出生年月)
D.REPLACEALL年龄WITHVAL(SUBS(DTOC(DATE()),7,2)-SUBS(DTOC(出生年月),7,2))
36、设表中有一个字符型字段W,打开表文件后,要把内存变量W的字符串内容输入到当前记录的W字段,应当使用命令__________。
A.W=W
B.REPLACEWWITHW
C.REPLACEWWITHM.W
D.REPLACEALLWWITHM->W
37、若当前工作区为W,且表不空,执行下列命令序列后结果为__________。
USE学生
REPLACE奖学金WITH180
STORE“一级”TO奖学金
?
奖学金,M.奖学金
A、180,一级B、一级,180C、180,180D、一级,一级
38、VisualFoxPro是一个数据库管理系统,它的主要功能是__________。
A.数据定义,数据操作,程序设计
B.建立数据库,统计数据库,数据库索引
C.数据库建立,程序编制,文字编辑
D.程序编制,程序编译,联接编译
39、执行下列命令序列后,屏幕显示的结果是__________。
A=“9*(18+99)”
A=.NULL.
?
TYPE(“A”),TYPE(“&A”)
A.NUB.CUC.CND.NC
40、要删除当前表文件中“奖学金“字段的全部值,应当使用命令__________。
A.MODIFYSTRUCTUREB.REPLACE
C.ERASED.ZAP
二、判断题
1.一个变量或常量也是一个表达式。
T
2.函数的自变量类型和函数值的类型必须一致。
F
3.字段变量和内存变量不能同名。
F
4.关系数据库对关系有三种基本操作:
选择、条件、投影。
F
5.当EOF()为.T.时,RECNO()一定等于RECCOUNT()+1。
T
6.在同一个表文件中,所有记录的长度均相等。
T
7.在建立表文件时,一定产生同名的备注文件。
F
8.SKIP2和DISPNEXT2指针移动是相同的,都是从当前记录开始向后移动两条记录。
F
9.设当前表文件UD.DBF的记录数为10个,记录指针在第7条记录,执行了APPENDBLANK后,该表共有11条记录,其中第8条记录为空记录。
F
10.ZAP命令只删除表的记录,不删除表的结构。
T
11.当BOF()为真时,RECNO()永远是1。
F
12.REPLACE、STORE命令可以修改字段变量的值。
F
13.索引文件和排序文件均可单独使用。
F
14.结构复合索引文件和独立复合索引文件都可以在创建表结构时建立。
F
15.命令GOTOP和GO1执行结果相同。
F
16.排序和结构复合索引都能对关键字进行升序和降序排列。
T
17.可以用“=“命令给字段变量赋值。
F
18.数组变量可以用PUBLIC代替DIMENSION来定义。
T
19.自定义函数与过程文件的不同在于自定义函数必须返回一个值。
T
20.主程序与子程序之间的参数传递既可以传值方式又可用引用方式。
T
三、程序阅读题
1.数值运算
(1).程序1(输出3~10[3,10)之间的质数)
SETTALKOFF
M=3
DOWHILEM<10
N=2
DOWHILENIFINT(M/N)=M/N
EXIT
ENDIF
N=N+1
ENDDO
IFN=M
?
M
ENDIF
M=M+1
ENDDO
SETTALKON
(2).程序2:
设M的值分别为:
12345,205354,105075,123450(检验M的每个数码是否为0,当0的个数超过1后即输出)
SETTALKOFF
S=0
DOWHILE.T.
CLEAR
INPUT"M="TOM
N=M
DOWHILE.T.
R=N-INT(N/10)*10
IFR=0
S=S+1
ENDIF
N=INT(N/10)
IFN=0
EXIT
ENDIF
ENDDO
IFS>1
EXIT
ENDIF
ENDDO
?
S
SETTALKON
(3).程序3:
设N的输入值为12,M的输入值为8(求最大公约数和最小公倍数)
SETTALKOFF
CLEAR
INPUT"N="TON
INPUT"M="TOM
X=MIN(N,M)&&X=MAX(N,M)
FORI=XTO1STEP–1&&FORI=XTOM*N
IFM/I=INT(M/I)ANDN/I=INT(N/I)&&IFMOD(I,M)=0AND…
P=I
EXIT
ENDIF
ENDFOR
?
"P="+ALLTRIM(STR(P,19))+",R="+ALLTRIM(STR(M*N/P,19))
SETTALKON
(4).程序4:
设X的输入值为:
-4235.569(求整数位数和小数位数)
SETTALKOFF
CLEAR
INPUT"X="TOX
M=X
ZS=INT(ABS(X))
ZSW=0
DOWHILEZS>0
ZS=INT(ZS/10)
ZSW=ZSW+1
ENDDO
XSW=0
DOWHILEINT(X)#X
X=X*10
XSW=XSW+1
ENDDO
FJW=IIF(X<0,1,0)+IIF(XSW=0,0,1)
?
"W1="+STR(ZSW,5)
?
"W2="+STR(XSW,5)
?
"W="+STR(FJW+ZSW+XSW,5)
SETTALKON
(5).程序5:
***设变量X的输入值为36***
SETTALKOFF
CLEAR
INPUT"X="TOX
S=STR(X,5)+"="
FORI=2TOX
IFMOD(X,I)=0
S=S+STR(I,3)+"*"
X=INT(X/I)
I=I-1
ENDIF
ENDFOR
?
LEFT(S,LEN(S)-1)
SETTALKON
2.字符处理
(1).程序1:
设N的值为4,字符“A”的ASCII码为65(显示用字母构成的菱形)
SETTALKOFF
CLEAR
INPUT"N="TON
FORI=1TON
?
SPACE(N-I+1)
FORJ=1TO2*I-1
?
?
CHR(ASC("A")+J-1)
ENDFOR
ENDFOR
FORP=N-1TO1STEP-1
?
SPACE(N-P+1)
FORK=1TO2*P-1
?
?
CHR(ASC("A")+K-1)
ENDFOR
ENDFOR
SETTALKON
(2).程序2:
设输入的字符串P为RzNopytQdnpvgAjsKmj
SETTALKOFF
CLEAR
ACCEPT"请任意输入一串字符:
"TOP
L=LEN(P)
C=""
FORI=1TOL
A=SUBSTR(P,I,1)
DOCASE
CASEASC(A)>=ASC("a")ANDASC(A)<=ASC("u")OR;
ASC(A)>=ASC("A")ANDASC(A)<=ASC("U")
A=CHR(ASC(A)+5)
CASEASC(A)>=ASC("v")ANDASC(A)<=ASC("z")OR;
ASC(A)>=ASC("V")ANDASC(A)<=ASC("Z")
A=CHR(ASC(A)-21)
ENDCASE
C=C+A
ENDFOR
?
P+"---->"+C
SETTALKON
(3).程序3:
注:
字符A的ASCII码为65(A-Z顺排)
注:
字符a的ASCII码为97(a-z顺排)
注:
字符0的ASCII码为48(0-9顺排)
设0的输入值为:
ykcuFdooA.392806
SETTALKOFF
CLEAR
ACCEPT"P="TOP
L=LEN(P)
C="!
"-"!
"
FORI=1TOL
ZF=SUBSTR(P,I,1)
IF(ASC(ZF)>=ASC("A")ANDASC(ZF)<=ASC("T"));
OR(ASC(ZF)>=ASC("0")ANDASC(ZF)<=ASC("3"))
ZF=CHR(ASC(ZF)+6)
ENDIF
C=ZF+C
ENDFOR
?
C
SETTALKON
3.自定义函数/过程文件的使用
程序1:
(输出1到5之间的质数及其个数)
*****主程序文件MAIN.PRG*****
SETTALKOFF
SETPROCTOF.PRG
S=0
FORK=1TO10
IFF(K)
IFK<=5
?
K
S=S+1
ELSE
EXIT
ENDIF
ENDIF
ENDFOR
?
S
SETTALKON
*****过程文件F.PRG*****
FUNCF
PARAX
FORN=2TOX/2
IFINT(X/N)=X/N
RETURN.F.
ENDIF
ENDFOR
RETURN.T.
ENDFUNC
4.参数传递
(1)程序1:
SETTALKOFF
CLEAR
A=1
B=2
C=3
DOP1WITH10,B,A+C
?
"A="+STR(A,2)
?
"B="+STR(B,2)
?
"C="+STR(C,2)
SETTALKON
PROCP1
PARAX,Y,Z
X=X+3
A=Y+4
Z=C+5
?
"X="+STR(X,2)
?
"Y="+STR(Y,2)
?
"Z="+STR(Z,2)
RETURN
答案:
X=13
Y=2
Z=8
A=6
B=2
C=3
(2)程序2:
书P157
SETTALKOFF
CLEAR
PUBLICI,J
I=1
DOA1
STORE1TOJ,K
DOA2
?
"I="+STR(I,2)
?
"J="+STR(J,2)
?
"K="+STR(K,2)
SETTALKON
PROCA1
I=I*2+1
RETURN
PROCA2
PRIVATEJ
J=I*2+K
K=K*2+I+J
DOA3
RETURN
PROCA3
LOCALI
I=J+K
DOA4WITHK,J+I,J
RETURN
PROCA4
PARAX,Y,Z
X=X+Y+Z
Z=X+Y+Z
Y=2*Z
I=1
RETURN
答案:
I=1
J=1
K=45
(3)程序3
SETTALKOFF
CLEAR
STORE0TOJ,K
DOP1
?
"I="+STR(I,2)
?
"J="+STR(J,2)
?
"K="+STR(K,2)
SETTALKON
PROCP1
PUBLICI
STORE1TOI,J
I=I+J+K
J=I+J+K
K=I+J+K
DOP2WITHI,K-J,(K)
RETURN
PROCP2
PARAX,Y,Z
I=0
J=I+K
K=I+J
X=I+Y+Z+J+K
DOP3
RETURN
PROCP3
PRIVATEJ,K
J=X
K=Y+Z
K=I+J+K
J=I+J+K
I=J-K-1
RETURN
答案:
I=17
J=5
K=5
四、程序填空
1、下面程序用自定义函数计算多项式1/1!
+1/2!
+……+1/9!
的值。
SETTALKOFF
SETPROCTOP1.PRG
S=0
FORN=1TO9
K=__
(1)__&&JC(N)
S=S+1/K
__
(2)__&&ENDFOR
?
“S=”,S
__(3)__&&SETPROCTO
SETTALKON
*****过程文件P1.PRG*****
FUNCJC
PARAX
M=1
FORL=2TOX
__(4)__&&M=M*L
ENDFOR
__(5)__&&RETURNM
ENDFUNC
2、本程序求出4*4矩阵中最大元素值。
SETTALKOFF
CLEAR
DIMENSIONA(4,4)
MAX=__
(1)__&&A(1,1)
FORI=1TO4
FORJ=1TO__
(2)__&&4
IF__(3)__&&A(I,J)>MAX
MAX=__(4)__&&MAX=A(I,J)
ENDIF
__(5)__&&ENDFOR
ENDFOR
?
MAX
SETTALKON
3、从键盘输入n个无序数(n由键盘输入确定),去掉一个最大数,去掉一个最小数,然后求平均值。
SETTALKOFF
CLEAR
INPUT“N=”TON
INPUT“A=”TOA
STOREATOX,Y
__
(1)__&&S=A
P=N-2
__
(2)__&&FORI=2TON
INPUT“B=”TOB
S=S+B
__(3)__&&IFX
X=B
ENDIF
__(4)__&&IFY>B
Y=B
ENDIF
ENDFOR
__(5)__&&R=S-X-Y
?
R/P
SETTALKON
4、计算下列算式的值。
m,ai为正整数,从键盘输入。
其中∑ai=1+2+…+ai,ai!
=1*2*…*ai(i=1,2…m)。
(∑a1+∑a2+…+∑am)/(a1!
+a2!
+…+