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