1、国家二级 VF机试(程序设计基础)模拟试卷 9及答案解析(总分:52.00,做题时间:90 分钟)一、选择题(总题数:26,分数:52.00)1.下列描述中,不符合良好程序设计风格要求的是(分数:2.00)A.程序的效率第一,清晰第二B.程序的可读性好C.程序中要有必要的注释D.输入数据前要有提示信息2.结构化程序设计中,下面对 goto语句使用描述正确的是(分数:2.00)A.禁止使用 goto语句B.使用 goto语句程序效率高C.应避免滥用 goto语句D.goto语句确实一无是处3.在面向对象方法中,不属于“对象”基本特点的是(分数:2.00)A.一致性B.分类性C.多态性D.标识惟一
2、性4.下列选项中不属于面向对象程序设计特征的是(分数:2.00)A.继承性B.多态性C.类比性D.封装性5.如果内存变量和字段变量均有变量名“姓名”,那么引用内存变量的正确方法是(分数:2.00)A.M姓名B.M-姓名C.姓名D.A和 B都可以6.从内存中清除内存变量的命令是(分数:2.00)A.ReleaseB.DeleteC.EraseD.Destroy7.在 Visual FoxPro中,程序中不需要用 PUBLIC等命令明确声明和建立,可直接使用的内存变量是(分数:2.00)A.局部变量B.私有变量C.公共变量D.全局变量8.下面命令的输出结果是:DECLARE a(10)?a(0)(
3、分数:2.00)A.FB.TC.0D.出错9.设 d=time(),命令?VARTYPE(d)的输出值是(分数:2.00)A.LB.CC.ND.D10.表达式 LEN(SPACE(0)的运算结果是(分数:2.00)A.NULLB.1C.0D.“ “11.表达式 AT(“IS“,“THIS IS A BOOK“)的运算结果是(分数:2.00)A.出错B.TC.1D.312.下列程序段执行后,内存变量 s1的值是 s1=“network“s1=stuff(s1,4,4,“BIOS“)?s1(分数:2.00)A.networkB.netBIOSC.netD.B10S13.设 X=6=65,命令?VA
4、RTYPE(X)的输出是(分数:2.00)A.NB.CC.LD.出错14.有如下赋值语句,结果为“大家好”的表达式是 a=“你好“b=“大家“(分数:2.00)A.b+AT(a,1)B.b+RIGHT(a,1)C.b+LEFT(a,3,4)D.b+RIGHT(a,2)15.运算结果不是 2010的表达式是(分数:2.00)A.int(20109)B.round(20101,0)C.ceiling(20101)D.floor(20109)16.下列表达式中,表达式返回结果为F的是(分数:2.00)A.AT(“A“,“BCD“、)B.信息$“管理信息系统“C.ISNULL(NULL)D.SUBST
5、R(“计算机技术“,3,2)17.函数 UPPER(“1a2B“)的结果(分数:2.00)A.1A2BB.1a2bC.1a2BD.1A2b18.下列函数返回类型为数值型的是(分数:2.00)A.STRB.VALC.DTOCD.TTOC19.在 Visual FoxPro中,下列程序段执行后,内存变量 s1的值是 s1=“奥运会体操比赛“s1=stuff(s1,7,4,“篮球“)?s1(分数:2.00)A.奥运会比赛体操B.奥运会比赛C.奥运会篮球D.奥运会篮球比赛20.欲执行程序 tempprg,应该执行的命令是(分数:2.00)A.DO PRG tempprgB.DO tempprgC.DO
6、 CMD tempprgD.DO FORM tempprg21.下面的程序的功能是将 11到 2011之间的素数插入数据库 prime,程序中的错误语句是 CREATE TABLE prime(dat f)n=11DO WHILE n=2011f=0i=2DO WHILE i=INT(SQRT(n)IF MOD(n,i)0i=i+1LOOPELSEf=1EXITENDIFENDDOIF f=0INSERT TO prime VALUES(n)ENDIFn=n+1ENDDO(分数:2.00)A.DO WHILE n=2011B.INSERT TO prime VALUES(n)C.i=i+1D.
7、EXIT22.下面程序的运行结果是 SET EXACT ONs=“ni“+SPACE(2)IF s=“ni“IF s=“ni“?“one“ELSE?“two“ENDIFELSEIF s=“ni“?“three“ELSE?“four“ENDIFENDIFRETURN(分数:2.00)A.oneB.twoC.threeD.four23.下列程序段执行以后,内存变量 y的值是 x=34567y=0DO WHILE x0y=x10+y*10x=int(x10)ENDDO(分数:2.00)A.3456B.34567C.7654D.7654324.有以下程序:PINUT TO AS=0IF A=10S=1
8、ENDIFS=2?S 假定从键盘输入的 A值是数值型,则程序的运行结果是(分数:2.00)A.OB.1C.2D.1或 225.下列程序段执行以后,内存变量 A和 B的值是 CLEARA=10B=20SET UDFPARMS TO REFERENCEDO SQ WITH(A),(B)&参数 A是值传递,B 是值传递?A,BPROCEDURE SQPARAMETERS X1,Y1X1=X1*X1Y1=2*X1ENDPROC(分数:2.00)A.10 200B.100 200C.100 20D.10 2026.下面程序的运行结果是:SET TALK OFFn=1DO proc1 WITH(n)?n+
9、2PROCEDURE proc1PARAMETERS nFOR k=2 TO 4n=n+kENDFORRETURN(分数:2.00)A.3B.10C.11D.12国家二级 VF机试(程序设计基础)模拟试卷 9答案解析(总分:52.00,做题时间:90 分钟)一、选择题(总题数:26,分数:52.00)1.下列描述中,不符合良好程序设计风格要求的是(分数:2.00)A.程序的效率第一,清晰第二 B.程序的可读性好C.程序中要有必要的注释D.输入数据前要有提示信息解析:解析:一般来讲,程序设计风格是指编写程序时所表现出的特点、习惯和逻辑思路。程序设计风格总体而言应该强调简单和清晰,程序必须是可以理
10、解的。著名的“清晰第一,效率第二”的论点已成为当今主导的程序设计风格。2.结构化程序设计中,下面对 goto语句使用描述正确的是(分数:2.00)A.禁止使用 goto语句B.使用 goto语句程序效率高C.应避免滥用 goto语句 D.goto语句确实一无是处解析:解析:滥用 goto语句确实有害,应尽量避免;完全避免使用 goto语句并非是明智的方法,有些地方使用 goto语句会使程序流程更清楚、效率更高;争论的焦点不应该放在是否取消 goto语句,而应该放在用在什么程序结构上。3.在面向对象方法中,不属于“对象”基本特点的是(分数:2.00)A.一致性 B.分类性C.多态性D.标识惟一性
11、解析:解析:对象具有如下特征:标识惟一性、分类性、多态性、封装性、模块独立性。4.下列选项中不属于面向对象程序设计特征的是(分数:2.00)A.继承性B.多态性C.类比性 D.封装性解析:解析:面向对象程序设计的三个主要特征是:封装性、继承性和多态性。封装性即只需知道数据的取值范围和可以对该数据施加的操作,而无需知道数据的具体结构以及实现操作的算法。继承性是指使用已有的类定义作为基础建立新类的定义技术。对象根据所接受的消息而做出动作,同样的消息被不同的对象接受时可导致完全不同的行动,该现象称为多态性。5.如果内存变量和字段变量均有变量名“姓名”,那么引用内存变量的正确方法是(分数:2.00)A
12、.M姓名B.M-姓名C.姓名D.A和 B都可以 解析:解析:当出现内存变量和字段变量同名时,如果要访问内存变量,则必须在变量名前加上前缀M(或 M-)。6.从内存中清除内存变量的命令是(分数:2.00)A.Release B.DeleteC.EraseD.Destroy解析:解析:内存变量的清除有四种格式:CLEAR MEMORY:RELEASE内存变量名表:RELEASE ALLEXTENDED;RELEASE ALLLINK通配符|EXCEPT通配符。7.在 Visual FoxPro中,程序中不需要用 PUBLIC等命令明确声明和建立,可直接使用的内存变量是(分数:2.00)A.局部变量
13、B.私有变量 C.公共变量D.全局变量解析:解析:在 Visual FoxPro中,根据变量的作用域来分,内存变量可分为私有变量、局部变量和全局变量。全局变量是指在任何模块中都可使用的变量,要用 public命令建立;私有变量是在程序中直接使用(没有通过 public和 local命令事先声明)而由系统自动隐含建立的变量,其作用域是建立变量的模块及其下属的各层模块;局部变量只能在建立它的模块中使用,不能在上层或下层模块中使用,用 local命令建立。8.下面命令的输出结果是:DECLARE a(10)?a(0)(分数:2.00)A.FB.TC.0D.出错 解析:解析:在 VFP中,DECLAR
14、E a(10)语句定义了一维数组 a(10),并且其每个数组元素的值被默认地赋予f 逻辑值。数组元素的下标变量起始值为 1。9.设 d=time(),命令?VARTYPE(d)的输出值是(分数:2.00)A.LB.C C.ND.D解析:解析:本题考查 time()函数。TIME()返回系统当前时间,时间为 24小时制,格式为:hh:mm:ss,函数值为字符型。10.表达式 LEN(SPACE(0)的运算结果是(分数:2.00)A.NULLB.1C.0 D.“ “解析:解析:本题考察两个函数的使用:LEN()和 SPACE()。函数 LEN(字符表达式)的功能是返回指定字符串的长度,SPACE(
15、数值表达式)的功能是返回由指定数目的空格组成的字符串,因此,函数LEN(SPACE(0)的功能是测试 0个空格的长度,故选项 D为正确答案。11.表达式 AT(“IS“,“THIS IS A BOOK“)的运算结果是(分数:2.00)A.出错B.TC.1D.3 解析:解析:求子串位置函数 AT格式为:AT(字符表达式 1),字符表达式 2,数值表达式),其函数值为数值型。如果字符表达式 l是字符表达式 2的子串,则返回字符表达式 1值的首字符在字符表达式 2值中的位置,若不是子串,则返回 0。题目 AT函数返回字符串“IS”的首字符“T”在字符串“THIS IS A BOOK”中的位置 3。所
16、以选项 D)正确。12.下列程序段执行后,内存变量 s1的值是 s1=“network“s1=stuff(s1,4,4,“BIOS“)?s1(分数:2.00)A.networkB.netBIOS C.netD.B10S解析:解析:本题考查的是一个子串替换函数,该函数的功能是在第一个字符串中,从指定位置开始,用第 2个字符串替换指定长度的字符。不难看出本题的答案选 B),即用 BIOS字符串替换 network字符串中,从第 4个字符开始的后面 4个字符。13.设 X=6=65,命令?VARTYPE(X)的输出是(分数:2.00)A.NB.CC.L D.出错解析:解析:本题表达式“X=65”中,
17、先计算 65 的关系运算,结果为逻辑假(F);然后将逻辑假的值赋给 X,所以 x为逻辑型,?VARTYPE(X)的输出值为 L(L表示逻辑型)。14.有如下赋值语句,结果为“大家好”的表达式是 a=“你好“b=“大家“(分数:2.00)A.b+AT(a,1)B.b+RIGHT(a,1)C.b+LEFT(a,3,4)D.b+RIGHT(a,2) 解析:解析:本题中,a 和 b是字符型变量,“+”为字符串连接运算符,用来将前后两个字符串首尾相接。LEFT(字符表达式,长度)从指定表达式值的左端取一个指定长度的子串作为函数值。RIGHT(字符表达式,长度)从指定表达式值的右端取一个指定长度的予串作为
18、函数值。函数 AT()的格式是:AT(字符表达式 1,字符表达式 2,数值表达式),功能是:如果字符表达式1是字符表达式 2的子串,则返回字符表达式 1值的首字符在字符表达式 2中的位置;若不是子串,则返回 0。函数值为数值型。一个汉字的长度为 2。15.运算结果不是 2010的表达式是(分数:2.00)A.int(20109)B.round(20101,0)C.ceiling(20101) D.floor(20109)解析:解析:INT(数值表达式):返回指定数值表达式的整数部分。 CEILING(数值表达式):返回大于等于指定数值表达式的最小整数。 FLOOR(数值表达式):返回小于等于指
19、定数值表达式的最大整数。 ROUND(数值表达式 1,数值表达式 2):返回指定表达式在指定位置四舍五入后的结果。 本题中,Int(20109)=2010,Round(20101,0)=2010,Ceiling(20101)=2011,Floor(20109)=2010。16.下列表达式中,表达式返回结果为F的是(分数:2.00)A.AT(“A“,“BCD“、)B.信息$“管理信息系统“ C.ISNULL(NULL)D.SUBSTR(“计算机技术“,3,2)解析:解析:选项 A)中的 AT()函数是求子串位置的函数,其函数值为数值型,本选项中函数的返回值为0;选项 C)中的 ISNULL()函
20、数是空值(NULL 值)测试函数,判断一个表达式的运算结果是否为 NULL值,本选项中函数的返回值为逻辑真,即T;选项 D)中的 SUBSTR()函数是从指定表达式值的指定起始位置取指定长度的子串作为函数值,本选项中函数的返回值为“算”;选项 B)“$”是一个子串包含测试运算符,检查第一个字符串的内容是否包含在第二个字符串中,如果包含则返回逻辑真,否则为逻辑假。选项 B)中字符串中包含两个字符串定界符,因此字符串的第二个定界符将视为字符串的一部分,“信息“”表示的字符串为“信息”,并不包含在第二个字符串中,所以返回逻辑假(F)。17.函数 UPPER(“1a2B“)的结果(分数:2.00)A.
21、1A2B B.1a2bC.1a2BD.1A2b解析:解析:字符串处理函数 LIPPER()将指定字符表达式的小字母转换成大写字母,其他字符不变。所以选项 A)为正确答案。18.下列函数返回类型为数值型的是(分数:2.00)A.STRB.VAL C.DTOCD.TTOC解析:解析:STR 函数是将数值转换成字符串,转换时根据需要自动进行四舍五入。VAL 函数将由数字符号(包括正负号、小数点)组成的字符型数据转换成相应的数值型数据。DTOC 函数将日期型数据或日期时间型数据的日期部分转换成字符串。TTOC 函数将日期时间型数据转换成字符串。19.在 Visual FoxPro中,下列程序段执行后,
22、内存变量 s1的值是 s1=“奥运会体操比赛“s1=stuff(s1,7,4,“篮球“)?s1(分数:2.00)A.奥运会比赛体操B.奥运会比赛C.奥运会篮球D.奥运会篮球比赛 解析:解析:本题考查字符串替换函数 STUFF()的应用。表达式 stuff(s1,7,4,”篮球”)是用字符串“篮球”,替换字符串“奥运会体操比赛”中的体操。20.欲执行程序 tempprg,应该执行的命令是(分数:2.00)A.DO PRG tempprgB.DO tempprg C.DO CMD tempprgD.DO FORM tempprg解析:解析:扩展名为 prg的文件是程序文件,而运行程序文件的命令是“
23、do 程序文件名”。21.下面的程序的功能是将 11到 2011之间的素数插入数据库 prime,程序中的错误语句是 CREATE TABLE prime(dat f)n=11DO WHILE n=2011f=0i=2DO WHILE i=INT(SQRT(n)IF MOD(n,i)0i=i+1LOOPELSEf=1EXITENDIFENDDOIF f=0INSERT TO prime VALUES(n)ENDIFn=n+1ENDDO(分数:2.00)A.DO WHILE n=2011B.INSERT TO prime VALUES(n) C.i=i+1D.EXIT解析:解析:本题考查向数据库
24、中插入一个记录的 SQL命令 INSERTINTO。其语法格式如下: 格式1:INSERT INTO dbf_name(fname1,fname2,) VALUES(eXpressionl,eXpression2,) 格式2:INSERT INTO dbf_name FROM ARRAY ArrayName|FROM MEMVAR。22.下面程序的运行结果是 SET EXACT ONs=“ni“+SPACE(2)IF s=“ni“IF s=“ni“?“one“ELSE?“two“ENDIFELSEIF s=“ni“?“three“ELSE?“four“ENDIFENDIFRETURN(分数:2
25、.00)A.oneB.twoC.three D.four解析:解析:在用双等号(=)比较两个字符串时,只有两个字符串完全相同时,运算结果才可能是逻辑真T,在用单等号(=)比较两个字符串时,运算结果与 SET EXACT ONIOFF的设置有关:ON 先在较短的字符串的尾部加上若干个空格,使两个字符串的长度相等,然后进行精确比较;当处于 OFF状态时,只要右边字符串与左边字符串的前面部分内容相匹配,即可得到逻辑真T。根据程序的结构,最后的运行结果为 three。23.下列程序段执行以后,内存变量 y的值是 x=34567y=0DO WHILE x0y=x10+y*10x=int(x10)ENDD
26、O(分数:2.00)A.3456B.34567C.7654D.76543 解析:解析:本题中的循环条件是在 x值大于零时就进行循环计算 y=x10+y*10 和 x=int(x10)的操作,第一次循环 y=7,x=3456;第二次 y=76,x=345;第三次 y=765,x=34;第四次 y=7654,x=3;第五次y=76543,x=0。Y 的最终结果时 76543。24.有以下程序:PINUT TO AS=0IF A=10S=1ENDIFS=2?S 假定从键盘输入的 A值是数值型,则程序的运行结果是(分数:2.00)A.OB.1C.2 D.1或 2解析:解析:本题考查程序的顺序结构和分支
27、结构,基本语法格式如下: IF 条件表达式 命令组 ENDIF 在题目的的程序中,如果变量 A的值等于 10,则把 1赋于变量 S,但在条件语句之外又重新定义 S的值为2,因此,不管 IF语句是否成立,S 的值始终为 2。25.下列程序段执行以后,内存变量 A和 B的值是 CLEARA=10B=20SET UDFPARMS TO REFERENCEDO SQ WITH(A),(B)&参数 A是值传递,B 是值传递?A,BPROCEDURE SQPARAMETERS X1,Y1X1=X1*X1Y1=2*X1ENDPROC(分数:2.00)A.10 200B.100 200C.100 20D.10
28、 20 解析:解析:模块程序可以接收程序传递过来的参数,参数传递的方式有两种:按值传递和按引用传递。其中当按值传递时,形参变量值改变时,不会影响实参变量的取值,即形参变量的值不传回;当按引用传递时,形参变量值改变时,实参变量也发生改变。题干中参数 A和 B都是按值传递,不会影响实参变量的取值,A 和 B的值不会改变。26.下面程序的运行结果是:SET TALK OFFn=1DO proc1 WITH(n)?n+2PROCEDURE proc1PARAMETERS nFOR k=2 TO 4n=n+kENDFORRETURN(分数:2.00)A.3 B.10C.11D.12解析:解析:本题考查形参与实参的传递及变量的作用。在 DOp roc1WITH(n)过程调用命令中,变量 n用圆括号括起来的,所以,不管什么情况下,都是按值传递方式,形参变量值的改变不会影响实参变量的值,程序的输出结果为 3。