1、国家二级 VF机试(程序设计基础)模拟试卷 8及答案与解析 一、选择题 1 下列叙述中正确的是 ( A)程序执行的效率与数据的存储结构密切相关 ( B)程序执行的效率只取决于程序的控制结构 ( C)程序执行的效率只取决于所处理的数据量 ( D)以上都不正确 2 下列选项中不属于结构化程序设计方法的是 ( A)自顶向下 ( B)逐步求精 ( C)模块化 ( D)可复用 3 下列选项中属于面向对象设计方法主要特征的是 ( A)继承 ( B)自顶向下 ( C)模块化 ( D)逐步求精 4 在面向对象 方法中,实现信息隐蔽是依靠 ( A)对象的继承 ( B)对象的多态 ( C)对象的封装 ( D)对象
2、的分类 5 关于内存变量的调用,下列说法正确的是 ( A)局部变量不能被本层模块程序调用 ( B)私有变量只能被本层模块程序调用 ( C)局部变量能被本层模块和下层模块程序调用 ( D)私有变量能被本层模块和下层模块程序调用 6 在 Visual FoxPro中,如果希望内存变量只能在本模块 (过程 )中使用,不能在上层或下层模块中使用,说明该种内存变量的命令是 ( A) PRIVATE ( B) LOCAL ( C) PUBLIC ( D)不用说明,在程序中直接使用 7 在 Visual FoxPro中,宏替换可以从变量中替换出 ( A)字符串 ( B)数值 ( C)命令 ( D)以上三种都
3、可能 8 要将显示日期值时所用的分隔符设置为竖杠 “|”,错误的设置命令是 ( A) SET MARK TO“|“ ( B) SET MARK TO| ( C) SET MARK TO| ( D) SET MARK TO| 9 下面命令的输出结果是: DIMENSIONa(10)?a(1) ( A) F ( B) T ( C) O ( D)未定义 10 设 X=10,语句 ?VARTYPE(“X”)的输出结果是 ( A) N ( B) C ( C) 10 ( D) X 11 以下正确的赋值语句是 ( A) A1, A2, A3=10 ( B) STORE 10 TO A1, A2, A3 (
4、C) LOCAL 10 TO A1, A2, A3 ( D) SET 10 TO A1, A2, A3 12 设 a=“计算机等级考试 “,结果为 “考试 “的表达式是 ( A) Left(a, 4) ( B) Right(a, 4) ( C) Left(a, 2) ( D) Right(a, 2) 13 要想将日期型或日期时间型数据中的年份用 4位数字显示,应当使用设置命令 ( A) SET CENTURY ON ( B) SET CENTURY OFF ( C) SET CENTURY TO 4 ( D) SET CENTURY OF 4 14 计算结果不是字符串 “Teacher”的语句
5、是 ( A) at(“MyTeacher“, 3, 7) ( B) substr(“MyTeacher“, 3, 7) ( C) right(“MyTeacher“, 7) ( D) left(“Teacher“, 7) 15 设 X=“123“, y=123, k=“y“,表达式 x+&k的值是 ( A) 123123 ( B) 246 ( C) 123y ( D)数据类型不匹配 16 假设变量 a的内容是 “计算机软件工程师 ”,变量 b的内容是 “数据库管理员 ”,表达式的结果为 “数据库工程师 ”的是 ( A) left(b, 6)-right(a, 6) ( B) substr(b,
6、 1, 3)-substr(a, 6, 3) ( C) A和 B都是 ( D) A和 B都不是 17 下列 Visual FoxPro表达式中,运算结果为逻辑真的是 ( A) EMPTY( NULL ) ( B) LIKE(xy?, xyz) ( C) AT(xy, abcxyz) ( D) ISNULL(SPACE(0) 18 在 Visual Foxero中,有如卞程序,函数 IIF()返回值是 *程序 PRIVVATE X, Y STORE“男 “TO X Y=LEN(X)+2 ?IIF(Y 4, “男 “, “女 “) RETURN ( A)女 ( B)男 ( C) T ( D) F
7、19 下列程序段执行后,内存变量 s1的值是 s1=“奥运会游泳比赛 “ s1=stuff(s1, 7, 4, “田径 “) ?s1 ( A)奥运会游泳比赛 ( B)奥运会田径比赛 ( C)奥运会田径 ( D)奥运会游泳 20 Modify Command命令建立的文件的默认扩展名是 ( A) prg ( B) app ( C) cmd ( D) exe 21 下列命令中,不会创建文件的是 ( A) CREATE ( B) CREATE VIEW ( C) CREATE FORM ( D) CREATE QUERY 22 下列程序段的执行结果是 DIME a(8) a(1)=1 a(2)=1
8、for i=3 to 8 a(i)=a(i-1)+a(i-2) next ?a(7) ( A) 5 ( B) 8 ( C) 13 ( D) 21 23 下程序段执行以后,内存变量 y的值是 CLEAR x=12345 y=0 DO WHILE x 0 y=y+x 10 x=int(x 10) ENDDO ?y ( A) 54321 ( B) 12345 ( C) 51 ( D) 15 24 下列程序段的输出结果是 ACCEPT TO A IF A=123 S=0 ENDIF S=1 ?S ( A) 0 ( B) 1 ( C) 123 ( D)由 A的值决定 25 下列程序段执行以后,内存变量
9、X和 Y的值是 CLEAR STORE 3 TO X STORE 5 TO Y PLUS(X), Y) ?X Y PROCEDURE PLUS PARAMETERS A1, A2 A1=A1+A2 A2=A1+A2 ENDPROC ( A) 8 13 ( B) 3 13 ( C) 3 5 ( D) 8 5 26 下面程序的运行结果是: SET TALK OFF n=1 proc1(n) ?n+2 PROCEDURE proc1 PARAMETERS n FOR k=2 TO 4 n=n+k ENDFOR RETURN ( A) 3 ( B) 10 ( C) 11 ( D) 12 国家二级 VF
10、机试(程序设计基础)模拟试卷 8答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 影响程序执行效率的因素有很多,如数据的存储结构、程序处理的数据量、程序的算法等。顺序存储结构和链式存储结构在数据插入和删除操作上的效率就存在差别。其中,链式存储结构的效率要高一些。 【知识模块】 程序设计基础 2 【正确答案】 D 【试题解析】 结 构化程序设计方法的主要原则可以概括为:自顶向下,逐步求精,模块化,限制使用 goto语句。自顶向下是指程序设计时应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。逐步求精是指对复杂问题应设计一些子目标过渡,逐步细化。模块化是把程序要解决的总目标先分解
11、成分目标,再进一步分解成具体的小目标,把每个小目标称为一个模块。可复用性是指软件元素不加修改成稍加修改便可在不同的软件开发过程中重复使用的性质。软件可复用性是软件工程追求的目标之一,是提高软件生产效率的最主要方法,不属于结构化程序设计方法。 【知识模 块】 程序设计基础 3 【正确答案】 A 【试题解析】 面向对象设计方法的主要特征有封装性、继承性和多态性。而结构化程序设计方法的主要原则有自顶向下,逐步求精,模块化,限制使用 goto语句。 【知识模块】 程序设计基础 4 【正确答案】 C 【试题解析】 对象的封装性是指从外部看只能看到对象的外部特征,即只需知道数据的取值范围和可以对该数据施加
12、的操作,而不需要知道数据的具体结构以及实现操作的算法。对象的内部,即处理能力的实行和内部状态,对外是不可见的。从外面不能直接使用对象的处理能 力,也不能直接修改其内部状态,对象的内部状态,只能由其自身改变。 【知识模块】 程序设计基础 5 【正确答案】 D 【试题解析】 公共变量可以被整个程序调用;私有变量只能被本层模块和下层模块程序调用;而局部变量,只能被本层模块调用,其它模块都不能调用局部变量。 【知识模块】 程序设计基础 6 【正确答案】 B 【试题解析】 Visual FoxPro中的内存变量分为公共变量、私有变量和局部变量。其中,局部变量只能在建立它的模块中使用,不能在上层和下层模块
13、中使用, LOCAL命令定义局部变量,格式是: LOCAL内存变量表。 【知识模块】 程序设计基础 7 【正确答案】 D 【试题解析】 宏替换函数是替换出字符型变量的内容,格式为: &字符变量 。宏替换的内容可以是字符串,也可以是数值变量的值,或者执行的某条命令。如果该函数与其后面的字符没有明显的分界,则要用 “ ”作为函数结束的标志。宏替 换可以嵌套使用。 【知识模块】 程序设计基础 8 【正确答案】 D 【试题解析】 在 VFP中,设置显示日期值时所用的分隔符的命令为: SET MARK TO日期分隔符 ,指定日期分隔符为 “ ”、 “ ”等。如果仅执行 SET MARK TO命令,没有指
14、定任何分隔符,表示恢复系统默认的斜杠分隔符。 【知识模块】 程序设计基础 9 【正确答案】 A 【试题解析】 本题考查用 DIMENSION定义一维数组。在 VFP中,DIMENSION a(10)语句定义了一维数组 a(10),并且 其每个数组元素的值被默认地赋予逻辑假 ( F )。 【知识模块】 程序设计基础 10 【正确答案】 B 【试题解析】 函数 VARTYPE(表达式 )用来测试函数内表达式的类型。字母C表示字符型或者备注型。本题测试的是 “X”,这是一个字符型表达式,因此其返回值为字符型。 【知识模块】 程序设计基础 11 【正确答案】 B 【试题解析】 给内存变量的赋值的格式为
15、: 格式 1: STORE表达式 TO内存变量名表 格式 2:内存变量名:表达式 在这里要注意他们的区别, “等号 ”一次只能给一个内存变量赋值。 STORE命令可以同时给若干个变量赋予相同的值,各内存变量名之间必须用逗号隔开。所以选项 B)正确。 【知识模块】 程序设计基础 12 【正确答案】 B 【试题解析】 left()数从指定字符串的左端取一个指定长度的子串作为函数值,right()函数从指定字符串的右端取一个指定长度的子串做函数值。一个汉字占两个单位的长度,故 “考试 ”两个字应该从 “计算机等级考试 ”字符串的右边取四个单位长度。 【知识模块】 程序设计基础 13 【正确答案】 A
16、 【试题 解析】 VisualFoxPro通过 SETCENTURY命令设置显示日期型数据时是否显示世纪。其命令格式是: SET CENTURY ON |OFF|(TO世纪值 ROLLOVER年份参照值 )。其中, ON为 4位数年份; OFF为 2位数年份; TO选项确定用 2位数字表示年份所处的世纪。具体地说,如果该日期的 2位数字年份大于等于 年份参照值 ,则它所处的世纪即为 世纪值 ,否则为 世纪值 +1。 【知识模块】 程序设计基础 14 【正确答案】 A 【试题解析】 AT()函数的格式为: AT(字符表达式 1,字符表达式 2 ,数值表达式 )达式 1值的首字符在字符表达式 2值
17、中位置;若不是子串,则返回 0。 【知识模块】 程序设计基础 15 【正确答案】 D 【试题解析】 &字符型变量为宏替换函数,用来替换字符型变量的内容,即函数值是变量中的字符串。由此可知,题中 &k=&“123“=123,也就是说 &的值为数值型,而 x=“123“,为字符型数据,故 x和 &k数据类型不匹配,不能做运算。 【知识模块】 程序设计基础 16 【正确答案】 A 【试题解析 】 LEFT()函数功能是从字符表达式左端截取指定长度子串; RIGHT()函数功能是从字符表达式右端截取指定长度子串; SUBSTR()函数功能是从字符串指定位置截取指定长度子串。以上三个函数在截取中文时要注
18、意,一个中文字符占 2个长度。 【知识模块】 程序设计基础 17 【正确答案】 B 【试题解析】 选项 A)中的 EMPTY()函数判断表达式的计算结果是否为 “空 ”值,这里 EMPTY( NULL )的返回值为逻辑假:选项 C)中的 AT()函数是求子串位置的函数,其函数值为数值型,本选项函数的返回值 为 0;选项 D)中的 ISNULL()函数是空值 (NULL值 )测试函数,判断一个表达式的运算结果是否为 NULL值,本选项该函数的返回值为逻辑假,即 F;选项 B)中的 LIKE()函数是比较两个字符串对应位置上的字符是否匹配,选项 B)中的两个表达式对应的字符都匹配,其中问号 (?)
19、是通配符,可表示一个任意字符,因此函数返回 T。 【知识模块】 程序设计基础 18 【正确答案】 A 【试题解析】 根据题意,变量 X的值为 “男 ”, LEN()函数用来返回指定字符串的长度,由于一个汉字占两个字符,所以 LEN(X)=2, Y=4。 IIF()是条件测试函数,基本命令格式如下: IIF(逻辑表达式,表达式 1,表达式 2 ) 其中,测试逻辑表达式的值,若为逻辑真 ( T ),则返回表达式 1的值,若为逻辑真 ( F ),则返回表达式 2的值。表达式 1和表达式 2的值不要求相同。 本题中,由于 Y=4,所以逻辑表达式 “Y 4”为假, IIF函数应该返回 “女 ”。 【知识
20、模块】 程序设计基础 19 【正确答案】 B 【试题解析】 本题考查字符串替换函数 STUFF()的应用。表达式 stuff(s1, 7,4, ”田径 ”)是用字符串 “田径 ”,替换字符串 “奥运会游泳比赛 ”中的 “游泳 ”。 【知识模块】 程序设计基础 20 【正确答案】 A 【试题解析】 可用命令方式建立和修改程序文件。命令格式为 modify command文件名。执行该命令时,如果指定文件存在,则打开修改;否则,建立一个指定名字的程序文件,而程序文件的扩展名是 prg。 App是应用程序的扩展名,exe是可执行文件的扩展名。 【知识模块】 程序设计基础 21 【正确答案】 B 【试
21、题解析】 本题考查用命令创建 文件。 CREATE FORM是创建表单文件,CREATE OUERY是创建查询文件。 CREATE VIEW命令是创建视图,其不能建立文件。 【知识模块】 程序设计基础 22 【正确答案】 C 【试题解析】 For循环中的语句 a(i)=a(i-1)+a(i-2)是指定每个元素的值为它的前两项的和,这个元素必须只能从第 3项开始指定。由于前两项分别是 1、 1,所以数组 a的 8个元素分别是 1, 1, 2, 3, 5, 8, 13, 21;元素 a(7)的值是 13。 【知识模块】 程序设计基础 23 【正确答案 】 D 【试题解析】 本题考查的是 DO WH
22、ILE循环语句的使用,其中涉及到一个累加的计算,依次对变量 x的值,即本题中的 12345,从后向前对各位数进行相加,最后输出,即输出 5+4+3+2+1的计算值。 【知识模块】 程序设计基础 24 【正确答案】 B 【试题解析】 ACCEPT命令格式: ACCEPT字符表达式 to内存变量 当程序执行到该命令时,暂停往下执行,等待用户从键盘输入字符串。当用户以同车键结束输入时,系统将该字符串存入指定的内存变量,然后继续往下执行程序。 程 序结构是指程序中命令或语句执行的流程结构。顺序结构、选择结构和循环结构是程序的三种基本结构。 IFENDIF 语句是选择结构中的条件语句。按照顺序执行的原则
23、无论是否执行 IF语句,语句 S=1赋值语句都会执行。所以本程序段的返回值是 1。 【知识模块】 程序设计基础 25 【正确答案】 C 【试题解析】 调用模块程序一般有两种格式: 格式 1通过 DO命令调用,格式 2是在过程名或文件名后面加括号,括号中包括若干个实参变量。本题采用的是利用格式 2的方式调用模块程序。采用格式 2调用模块程序时,默认情况下都以 按值方式传递参数,如果要改变传递方法,必须通过 SET UDFPARMS命令进行设置。但是,有一点需要注意,不论是设置何种传递方式,凡是用括号括起来的实参,全部都是按值传递,它不受SETuDFPARMS语句的影响。 本题中 X和 Y都是按值传递,形参值的变化不会影响到实参值的, X值等于 3, Y值等于 5。 【知识模块】 程序设计基础 26 【正确答案】 A 【试题解析】 本题考查形参与实参的传递及变量的作用。本题中的 proc1(n)模块调用是采用按值传递的方式,形参变量值的改变不会影响实参变量的值,因 此, n的值在实参中还是等于 1, n+1的输出结果为 3。 【知识模块】 程序设计基础