1、国家二级 VF机试(程序设计基础)模拟试卷 10及答案与解析 一、选择题 1 结构化程序所要求的基本结构不包括 ( A)顺序结构 ( B) GOTO跳转 ( C)选择 (分支 )结构 ( D)重复 (循环 )结构 2 下列选项中不符合良好程序设计风格的是 ( A)源程序要文档化 ( B)数据说明的次序要规范化 ( C)避免滥用 goto语句 ( D)模块设计要保证高耦合、高内聚 3 定义无符号整数类为 UInt,下面可以作为类 UInt实例化值的是 ( A) -369 ( B) 369 ( C) 0 369 ( D)整 数集合 1, 2, 3, 4, 5 4 在程序中不需要用 public等命
2、令明确声明和建立,可直接使用的内存变量是 ( A)局部变量 ( B)公共变量 ( C)私有变量 ( D)全局变量 5 在 Visual FoxPro中,要想将日期型或日期时间型数据中的年份用 4位数字显示,应当使用设置命令 ( A) SET CENTURY ON ( B) SET CENTURY TO 4 ( C) SET YEAR TO 4 ( D) SET YAER TO yyyy 6 如果有定义 LOCAL, data, data的初值是 ( A)整数 0 ( B)不定值 ( C)逻辑真 ( D)逻辑假 7 语句 LIST MEMORY LIKE a*能够显示的变量不包括 ( A) a
3、( B) a1 ( C) ab2 ( D) ba3 8 设 d=len(time(),命令 ?VARTYPE(d)的输出值是 ( A) L ( B) C ( C) N ( D) D 9 表示 2012年 9月 10目的日期常量是 ( A) 2012-09-10 ( B) -2012-09-10 ( C) 2012-09-10) ( D) 2012-09-10 10 执行如下命令序列后,最后一条命令的显示结果是 DIMENSION M(2, 2) M(1, 1)=10 M(1, 2)=20 M(2, 1)=30 M(2, 2)=40 ?M(2) ( A)变量未定义的提示 ( B) 10 ( C)
4、 20 ( D) F 11 有如下赋值语句: a=“计算机 “, b=“微型 “,结果为 “微型机 “的表达式是 ( A) b+LEFT(a, 3) ( B) b+RjGHT(h, 1) ( C) b+LEFT(a, 5, 3) ( D) b+RIGHT(a, 2) 12 命令 ?VARTYPE(TIME()的 结果是 ( A) C ( B) D ( C) T ( D)出错 13 设 X=“11“, Y=“1122“,下列表达式结果为假的是 ( A) NOT(X=Y)AND(X$Y) ( B) NOT(X$Y)OR( Y) ( C) NOT(X =Y) ( D) NOT(X$Y) 14 在下面
5、的 Visual FoxPro表达式中,运算结果为逻辑真的是 ( A) EMPTY( NULL ) ( B) LIKE(xy?, xyz) ( C) AT(xy, abcxyz) ( D) ISNULL(SPACE(0) 15 表达式 LEN(TRIM(SPACE(2)+abc-SPACE(3)的计算结果是 ( A) 3 ( B) 5 ( C) 6 ( D) 8 16 运算结果不是 2015的表达式是 ( A) int(2015 9、 ) ( B) round(2015 1, 0) ( C) ceiling(2015 1、 ) ( D) floor(2015 9) 17 某数据库有 20条记录
6、,若用函数 EOF()测试结果为 T,那么此时函数RECNO()值是 ( A) 20 ( B) 21 ( C) 19 ( D) 1 18 下列程序段执行 后,内存变量 e的值是 a=10 b=20 c=30 d=IIF(a b, a, b) e=IIF(c d, c, d) ( A) 10 ( B) 20 ( C) 30 ( D) 550 19 在 Visual FoxPro中,下列程序段执行后,内存变量 s1的值是 s1=“奥运开幕日期 “ s1=substr(s1, 5, 4)+left(s1, 4)+right(s1, 4) ?s1 ( A)开幕日期奥运 ( B)奥运日期 ( C)开幕日
7、期 ( D)开幕奥运日期 20 在 Visual FoxPro中可以用 DO命令执行的文件不包 括 ( A) prg文件 ( B) mpr文件 ( C) frx文件 ( D) qpr文件 21 假设表 S中有 10条记录,其中字段 b小于 20的记录有 3条,大于等于 20、并且小于等于 30的记录有 3条,大于 30的记录有 4条。执行下面的程序后,屏幕显示的结果是 SET DELETE ON DELETE FROM s WHERE b BETWEEN 20 AND 30 ?RECCOUNT() ( A) 10 ( B) 7 ( C) 0 ( D) 3 22 下列程序段执行以后,内存变量 y
8、的值是 x=76543 y=0 DO WHILE x 0 y=x 10+y*10 x=int(x 10) ENDDO ( A) 3456 ( B) 34567 ( C) 7654 ( D) 76543 23 下列的程序段中 y的计算结果为 76543的是 ( A) x=34567 y=0 flag= T DO WHILE flagy=x 10+y*10 x=int(x 10) IF x 0 flag= F ENDIF ENDDO ( B) x=34567 y=0 flag= T DO WHILE flagy=x 10+y*10 x=int(x 10) IF x=0 flag= E ENDIF
9、ENDDO ( C) x=34567 y=0 flag= T DO WHILE!flagy=x 10+y*10 x=int(x 10) IF x 0 flag= E ENDIF ENDDO ( D) x=34567 y=0 flag= T DO WHILE!flagy=x 10+y*10 x=int(x 10) IF x=0 flag= T ENDIF ENDDO 24 在 Visual FoxPro中,如果希望跳出 SCANENDSCAN 循环体外执行ENDSCAN后面的语句,应使用 ( A) LOOP语句 ( B) EXIT语句 ( C) BREAK语句 ( D) RETURN语句 25
10、下列程序段执行时在屏幕上显示的结果是 x1=20 x2=30 SET UDFPARMS TO VALUE 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 26 如果一个过程不包含 RETURN语句,或者 RETURN语句中没有指定表达式,那么该过程: ( A)没有返回值 ( B)返回 0 ( C)返回 F ( D)返回 T 国家二级 VF机试(程序设计基础)模拟试卷 10答案与解析 一、选择题 1 【正
11、确答案】 B 【试题解析】 结构化程序的基本结构有:顺序结构、选择结构和循环结构,没有GOTO跳转结构。 【知识模块】 程序设计基础 2 【正确答案】 D 【试题解析】 一般来讲,程序设计风格是指编写程序时所表现出的特点、习惯和逻辑思路。程序设计风格总体而言应该 强调简单和清晰,程序必须是可以理解的。可以认为,著名的 “清晰第一、效率第二 ”的论点已成为当今主导的程序设计风格。良好的程序设计风格主要应注重和考虑下列几个因素: 源程序文档化,包括下列三个方面: A)符号的命名应具有一定的含义; B)正确的注释能够帮助读者理解程序; C)视觉组织,可以在程序中利用空格、空行、缩进等技巧使程序层次清
12、晰。 数据说明的方法,包括下列三个方面: A)数据说明的次序规范化; B)说明语句中变量安排有序化; C)使用注释来说明复杂数据的结构。 语句的结构应该简单直接,不应该为提高效率而把语句复杂化 。 输入和输出方式和风格应尽可能方便用户的使用。 【知识模块】 程序设计基础 3 【正确答案】 B 【试题解析】 UInt表示的是无符号整数类,所以它的每个实例都是一个无符号整数,所以排除选项 A)和选项 C),选项 D)是整数集合,所以也排除。 【知识模块】 程序设计基础 4 【正确答案】 C 【试题解析】 变量的作用域指的是变量在什么范围内是有效或能够被访问的,也就是说变量在哪个程序段里有效。 在
13、Visaul FoxPro中,根据变量的作用域,可以将内存变量分为公共变量、私有变量和局部变量 3种。 公共变量又称全局变量,是指在任何模块中都可使用的变量,一旦建立就一直有效,其定义格式为: PUBLIC内存变量表: 局部变量只能在建立它的模块中使用,不能在上层或下层模块中使用;其定义格式为: LOCAL内存变量表: 在程序中直接使用 (没有通过 PUBLIC和 LOCAL命令事先声明 )而由系统自动隐含建立的变量都是私有变量。私有变量的作用域是建立它的模块及其下属的各层模块。一旦建立它的模块程序运行结束,这些私有变量将自动清除。 【知识模块】 程序设计基础 5 【正确答案】 A 【试题解析
14、】 用于决定如何显示或解释一个日期数据年份。格式为: SET CENTURY ON|OFF|TO世纪值 ROLLOVER年份参照值 说明: ON显示世纪,即用 4位数字表示年份。 OFF不显示数字,即用 2位数字表示年份。它是系统默认的设置。 TO决定如何解释一个用 2位数字表示年份的日期所处的世纪。具体地说,如果该日期的 2位数字年份大于等于年份参照值,则它所处的世纪即为世纪值;否则为世纪值 +l。 【知识模块】 程序设计基础 6 【正确答案】 D 【试题解析】 LOCAL命令定义局部变量,其格式是: LOCAL内存变量表, LOCAL命令建立指定的局部变量,并为它们赋初始值逻辑假 ( F
15、)。 【知识模块】 程序设计基础 7 【正确答案】 D 【试题解析】 内存变量显示有两种格式 格式 1: LIST MEMORYLIKE通配符 TO PRINTERITO FILE文件名 1 格式 2: DISPLAYMEMORYLIKE通配符 TO PRINTERffO FILE文件名 1 格式 1表示一次性显示所有与通配符匹配的内存变量,在显示内存变量时不暂停,直到所有变量显示结束。 格式 2和格式 1的区别是格式 2分屏显示变量,每显示一屏就暂停,等待用户按任意键继续显示。 LIKE短语只显示与和通配符相匹配的内存变量。 Visual FoxPro命令中的通配符包括 “*”和 “?”,其
16、中, “+”表示多个字符, “?”表示一个字符。 例如: a*可以表示 ab、 ac、 abc等所有以字母 a开头的变量。 【知识模块】 程序设计基础 8 【正确答案】 C 【试题解析】 在 VFP中, LEN(字符表达 式 )函数的返回指定字符表达式的长度,即所包含的字节数,需要注意的是一个汉字占两个字节,而其他的字符只占一个字节,返回值为数值型。 【知识模块】 程序设计基础 9 【正确答案】 A 【试题解析】 本题考查日期常量的合法格式。在 vfp中,日期型常量其界定符都是一对花括号。花括号中包括年、月、日 3部分,各部分之间用分隔符分隔。常用的分隔符有斜杠 ( )、连字符 (-)、句点
17、( )和空格等。日期型数据用 8个字节表示。日期型常量关键是要有定界符 和托字符。 【知识模块】 程序设计基础 10 【正确答案】 C 【试题解析】 创建数组的命令格式有两种 DIMENSION数组名 (下标上限1 ,上标上限 2) , DECLARE数组名 (下标上限 1 ,上标上限2) 两种格式的功能完全相同。数组创建后,系统自动给每个数组元素赋以逻辑值 F 可以用一维数组的形式访问二维数组。本题中 M(2)与 M(1, 2)是同一变量,所以 M(2)的值为 20。 【知识模块】 程序设计基础 11 【正确答案】 D 【试题解析】 本题主要考查的是取子串函数的使用,其中 LEFT()表示从
18、 给定字符串的左端取制定长度的子串,而 RIGHT()函数是从给定字符串的右侧取指定长度的子串,另外,一个汉字在计算机中占两个字符,因此,要取得一个完整的汉字字符,必须指定字符长度为 2。 从字符串 “计算机 ”中,利用 RIGHT()函数,从右侧取得 “机 ”字符,注意, LEFT和 RIGHT函数只能从左边或右边第一个字符开始截取指定长度的字符串,而不能从指定位置开始截取指定长度的字符串。 【知识模块】 程序设计基础 12 【正确答案】 A 【试题解析】 VARTYPE(表达式 )函数用于测试表达式的 类型,返回一个大写字母; TIME()函数是一个时间函数,以 24小时制的 hh: mm
19、: ss格式返回当前系统时间,函数值为字符型。在 Visual FoxPro中,字母 C表示字符型数据。 【知识模块】 程序设计基础 13 【正确答案】 D 【试题解析】 =是字符串精确比较关系运算符, $是子串包含测试关系运算符,表示不等于, =表示大于等于。选项 D)中 X$Y求的是字符串 “11”是否包含在 “1122”中,结果为 T, NOT是逻辑非运算符,所以 NOT(X$Y)的值为 F。 【知识模块】 程 序设计基础 14 【正确答案】 B 【试题解析】 EMPTY(表达式 ),返回值:逻辑型。 功能:根据指定表达式的运算结果是否为 “空 ”值,返回逻辑真 ( T )或返回逻辑假
20、( F )。 LIKE(字符表达式 1,字符表达式 2 ),返回值:逻辑型。 功能:比较两个字符串对应位置上的字符,若所有对应字符都相匹配,函数返回逻辑真 ( T ),否则返回逻辑假 ( F )。字符表达式 1中可以包含通配符 *和 ?,其中, *可以与任何数目的字符相匹配, ?可以与任何单个字符相匹配。 AT(字符表达式 1, 字符表达式 2 ,数值表达式 1 1),返回值:数值型。 功能:如果字符表达式 1是字符表达式 2的子串,则返回字符表达式 1值的首字符在字符表达式 2值中的位置;若不是子串,则返回 0。 ISNULL(表达式 ),返回值:逻辑型。 功能:判断一个表达式的运算结果是否
21、是 NULL值,若是 NULL值则返回逻辑真( T ),否则返回逻辑假 ( F )。 【知识模块】 程序设计基础 15 【正确答案】 B 【试题解析】 本题考查 VFP中函数的运用和字符串连接符 “+”、 “-”。在本题的表达式 中, SPACE(2)+abc SPACE(3)的运算结果为字符串 abc前连 2个空格,再连接 3个空格。 TRIM(字符串表达式 )删除字符串的右侧空格表达式。再用函数LEN()求字符串的长度。 【知识模块】 程序设计基础 16 【正确答案】 C 【试题解析】 本题考查 VFP中的常用函数。取整函数 INT(数值表达式 ),计算数值表达式的值,返回该值的整数部分。
22、 CEILING(数值表达式 )函数是上界函数,计算数值表达式的值,返回一个大于或等于该值的最小整数。FLOOR(数值表达式 )函数下 界函数,计算数值表达式的值,返回一个小于或等于该值的最大整数。四舍五入函数 ROUND(数值表达式 1,数值表达式 2 ),返回数值表达式 1四舍五入的值,数值表达式 2表示保留的小数位数。 【知识模块】 程序设计基础 17 【正确答案】 B 【试题解析】 函数 EOF()的作用是测试文件尾。其值为逻辑值真 ( T )时,表示记录指针指向文件尾,文件尾是指最后一条记录之后的位置,该数据库共有 20条记录,故此时当前记录号是 21。 【知识模块】 程序设计基础
23、18 【正确答案】 C 【试 题解析】 本题考查 IIF函数的使用。逻辑判断函数 iif(表达式 1,表达式 2,表达式 3),如果表达式 1值为真就返回表达式 2的值,反之,如果表达式 1值为假就返回表达式 3的值。在这段程序中,执行 d=IIF(a b, a, B)语句时,因为 a b的值为假,所以 d=20再执行 e=IIF(c d, c, D)语句,因为 c d为真,所以 e=30。 【知识模块】 程序设计基础 19 【正确答案】 D 【试题解析】 本题考查字符串函数 RIGHT(), SUBSTR()和 LEFT的使用。LEFT(c, n),取字符串 C左 边 n个字符: RIGHT
24、(c, n),取字符串 c右边的 n个字符: SUBSTR(c, n1, n2),取字符串 C第 n1个字符起的 n2个字符,返回值类型是字符型,对于本题来说, SUBSTR(s1, 5, 4)的值为 “开幕 ”, LEFT(s1, 4)的值为 “奥运 ”, RIGHT(s1, 4)的值为 “日期 ”。 【知识模块】 程序设计基础 20 【正确答案】 C 【试题解析】 利用 DO命令可以执行 prg程序文件、 mpr菜单程序和 qpr查询程序等。其中程序文件为默认执行的文件,可省略文件扩展名,而执行菜单文件和查询文 件时扩展名不能少。 frx文件是报表文件,打印报表时可先打开报表文件,然后再单
25、击 “打印 ”按钮打印报表。 【知识模块】 程序设计基础 21 【正确答案】 A 【试题解析】 DELETE表示逻辑删除,逻辑删除不影响 RECCOIJNT()函数的统计结果。 【知识模块】 程序设计基础 22 【正确答案】 B 【试题解析】 题目给出的程序段中,用到了 DO WHILEENDDO 循环结构。执行该语句时,先判断 DO、 WHILE处的循环条件是否成立,如果条件为真,则执行 DO WHILE和 ENDDO之间的命令序列。当执行到 ENDDO时,返回到 DO WHILE,再次判断循环条件是否为真,以确定是否再次执行循环体。若条件为假,则结束该循环语句,执行 ENDDO后面的语句。
26、循环体中还用到了两个算术运算符和,其中是求余运算,是取整运算。根据所给初值和循环条件,可以判断出第一次循环后 y=3, x=7654;第二次后 y=34, x=765;第三次后,y=345; x=76,第四次后 y=3456, x=7:第五次后 y=34567, x=0;第六次对条件 x 0进行判断,结果为假,故退出循环,执行结束,最终 y的值即为 34567。 【知识模块】 程序设计基础 23 【正确答案】 B 【试题解析】 本题考查对简单的循环语句、 Visual FoxPro操作符及函数的掌握。在此程序中,首先为将变量 X和 Y分别赋值为 34567和 0,然后进入循环。而表示去余数,则
27、 34567 10的结果为 7,并将其值赋给 Y,接下来,将 X值除10取整后的值 (3456)赋值给 X,此时 X的值 0,再次进行循环。此时 Y的值为7,执行 Y=X 10+Y*10语句后, Y的值为 76,而 X的值经除 10取整后,为 345再次进行循环,依次类推,直至 X的值 等于 0时退出循环,此时 Y的值为76543。 【知识模块】 程序设计基础 24 【正确答案】 B 【试题解析】 LOOP和 EXIT都可以出现在循环体内。 LOOP表示结束本次循环,开始下一次循环; EXIT表示结束循环语句的执行,跳出循环执行后面的语句。 【知识模块】 程序设计基础 25 【正确答案】 B
28、【试题解析】 带参数程序的调用有两种格式: 格式 1: DO文件名 |过程名 wITH实参 1 f,实参 2, 1 格式 2:文件名 (实参表 )|过程名 (实参 1 ,实 参 2, 1) 采用格式 1调用模块程序时,如果实参是常量或一般形式的表达式,则为按值传递。如果实参是变量,则为按引用传递。该格式不受 UDFPARMS值的设置影响。 依据题干, PROCEDRE test实现两个变量的交换。 【知识模块】 程序设计基础 26 【正确答案】 D 【试题解析】 本题考查 RETURN语句的语法。 RETURN语句的返回语句,其功能是返回程序调用处或命令窗口。该语句可省略,因为在每个程序执行的最后,系统都会自动执行 1个 return语句。 【知识模块】 程序设计基础