国家二级VF机试(程序设计基础)模拟试卷10

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

国家二级VF机试(程序设计基础)模拟试卷10
(总分:52.00,做题时间:90分钟)
一、选择题(总题数:26,分数:52.00)
1.结构化程序所要求的基本结构不包括
(分数:2.00)
A.顺序结构
B.GOTO跳转√
C.选择(分支)结构
D.重复(循环)结构
解析:解析:结构化程序的基本结构有:顺序结构、选择结构和循环结构,没有GOTO跳转结构。

2.下列选项中不符合良好程序设计风格的是
(分数:2.00)
A.源程序要文档化
B.数据说明的次序要规范化
C.避免滥用goto语句
D.模块设计要保证高耦合、高内聚√
解析:解析:一般来讲,程序设计风格是指编写程序时所表现出的特点、习惯和逻辑思路。

程序设计风格总体而言应该强调简单和清晰,程序必须是可以理解的。

可以认为,著名的“清晰第一、效率第二”的论点已成为当今主导的程序设计风格。

良好的程序设计风格主要应注重和考虑下列几个因素:①源程序文档化,包括下列三个方面:A)符号的命名应具有一定的含义;B)正确的注释能够帮助读者理解程序;C)视觉组织,可以在程序中利用空格、空行、缩进等技巧使程序层次清晰。

②数据说明的方法,包括下列三个方面:A)数据说明的次序规范化;B)说明语句中变量安排有序化;C)使用注释来说明复杂数据的结构。

③语句的结构应该简单直接,不应该为提高效率而把语句复杂化。

④输入和输出方式和风格应尽可能方便用户的使用。

3.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是
(分数:2.00)
A.-369
B.369 √
C.0.369
D.整数集合{1,2,3,4,5}
解析:解析:UInt表示的是无符号整数类,所以它的每个实例都是一个无符号整数,所以排除选项A)和选项C),选项D)是整数集合,所以也排除。

4.在程序中不需要用public等命令明确声明和建立,可直接使用的内存变量是
(分数:2.00)
A.局部变量
B.公共变量
C.私有变量√
D.全局变量
解析:解析:变量的作用域指的是变量在什么范围内是有效或能够被访问的,也就是说变量在哪个程序段里有效。

在Visaul FoxPro中,根据变量的作用域,可以将内存变量分为公共变量、私有变量和局部变量3种。

公共变量又称全局变量,是指在任何模块中都可使用的变量,一旦建立就一直有效,其定义格式为:PUBLIC<内存变量表>:局部变量只能在建立它的模块中使用,不能在上层或下层模块中使用;其定义格式为:LOCAL<内存变量表>:在程序中直接使用(没有通过PUBLIC和LOCAL命令事先声明)而由系统自动隐含建立的变量都是私有变量。

私有变量的作用域是建立它的模块及其下属的各层模块。

一旦建立它的模块程序运行结束,这些私有变量将自动清除。

5.在Visual FoxPro中,要想将日期型或日期时间型数据中的年份用4位数字显示,应当使用设置命令(分数:2.00)
A.SET CENTURY ON √
B.SET CENTURY TO 4
C.SET YEAR TO 4
D.SET YAER TO yyyy
解析:解析:用于决定如何显示或解释一个日期数据年份。

格式为: SET CENTURY ON|OFF|TO[<世纪值>[ROLLOVER<年份参照值>/]/] 说明:ON显示世纪,即用4位数字表示年份。

OFF不显示数字,即用2位
数字表示年份。

它是系统默认的设置。

TO决定如何解释一个用2位数字表示年份的日期所处的世纪。

具体地说,如果该日期的2位数字年份大于等于<年份参照值>,则它所处的世纪即为<世纪值>;否则为<
世纪值>+l。

6.如果有定义LOCAL,data,data的初值是
(分数:2.00)
A.整数0
B.不定值
C.逻辑真
D.逻辑假√
解析:解析:LOCAL命令定义局部变量,其格式是:LOCAL<内存变量表>,LOCAL命令建立指定的局部变量,并为它们赋初始值逻辑假(.F.)。

7.语句LIST MEMORY LIKE a*能够显示的变量不包括
(分数:2.00)
A.a
B.a1
C.ab2
D.ba3 √
解析:解析:内存变量显示有两种格式格式1:LIST MEMORY[LIKE<通配符>][TO PRINTERITO FILE<文件名>1 格式2:DISPLAYMEMORY[LIKE<通配符>][TO PRINTERffO FILE<文件名>1 格式1表示一次性
显示所有与通配符匹配的内存变量,在显示内存变量时不暂停,直到所有变量显示结束。

格式2和格式1的区别是格式2分屏显示变量,每显示一屏就暂停,等待用户按任意键继续显示。

LIKE短语只显示与和
通配符相匹配的内存变量。

Visual FoxPro命令中的通配符包括“*”和“?”,其中,“+”表示多个字符,“?”表示一个字符。

例如:a*可以表示ab、ac、abc等所有以字母a开头的变量。

8.设d=len(time()),命令?VARTYPE(d)的输出值是
(分数:2.00)
A.L
B.C
C.N √
D.D
解析:解析:在VFP中,LEN(<字符表达式>)函数的返回指定字符表达式的长度,即所包含的字节数,需要注意的是一个汉字占两个字节,而其他的字符只占一个字节,返回值为数值型。

9.表示2012年9月10目的日期常量是
(分数:2.00)
A.{^2012-09-10} √
B.{-2012-09-10}
C.{/2012-09-10)
D.{2012-09-10}
解析:解析:本题考查日期常量的合法格式。

在vfp中,日期型常量其界定符都是一对花括号。

花括号中
包括年、月、日3部分,各部分之间用分隔符分隔。

常用的分隔符有斜杠(/)、连字符(-)、句点(.)和空格等。

日期型数据用8个字节表示。

日期型常量关键是要有定界符{}和托字符^。

10.执行如下命令序列后,最后一条命令的显示结果是DIMENSION M(2,2)M(1,1)=10M(1,2)=20M(2,1)=30M(2,2)=40?M(2)
(分数:2.00)
A.变量未定义的提示
B.10
C.20 √
D..F.
解析:解析:创建数组的命令格式有两种DIMENSION<数组名>(<下标上限1>[,<上标上限2])[…],DECLARE<数组名>(<下标上限1>[,<上标上限2])[…]两种格式的功能完全相同。

数组创建后,系统自动给每个数组元素赋以逻辑值…F可以用一维数组的形式访问二维数组。

本题中M(2)与M(1,2)是同一变量,所以M(2)的值为20。

11.有如下赋值语句:a="计算机",b="微型",结果为"微型机"的表达式是
(分数:2.00)
A.b+LEFT(a,3)
B.b+RjGHT(h,1)
C.b+LEFT(a,5,3)
D.b+RIGHT(a,2) √
解析:解析:本题主要考查的是取子串函数的使用,其中LEFT()表示从给定字符串的左端取制定长度的子串,而RIGHT()函数是从给定字符串的右侧取指定长度的子串,另外,一个汉字在计算机中占两个字符,因此,要取得一个完整的汉字字符,必须指定字符长度为2。

从字符串“计算机”中,利用RIGHT()函数,从右侧取得“机”字符,注意,LEFT和RIGHT函数只能从左边或右边第一个字符开始截取指定长度的字符串,而不能从指定位置开始截取指定长度的字符串。

12.命令?VARTYPE(TIME())的结果是
(分数:2.00)
A.C √
B.D
C.T
D.出错
解析:解析:VARTYPE(<表达式>)函数用于测试<表达式>的类型,返回一个大写字母;TIME()函数是一个时间函数,以24小时制的hh:mm:ss格式返回当前系统时间,函数值为字符型。

在Visual FoxPro中,字母C表示字符型数据。

13.设X="11",Y="1122",下列表达式结果为假的是
(分数:2.00)
A.NOT(X==Y)AND(X$Y)
B.NOT(X$Y)OR(<>Y)
C.NOT(X>=Y)
D.NOT(X$Y) √
解析:解析:==是字符串精确比较关系运算符,$是子串包含测试关系运算符,<>表示不等于,>=表示大于等于。

选项D)中X$Y求的是字符串“11”是否包含在“1122”中,结果为.T.,NOT是逻辑非运算符,所以NOT(X$Y)的值为.F.。

14.在下面的Visual FoxPro表达式中,运算结果为逻辑真的是
(分数:2.00)
A.EMPTY(.NULL.)
B.LIKE('xy?','xyz') √
C.AT('xy','abcxyz')
D.ISNULL(SPACE(0))
解析:解析:①EMPTY(<表达式>),返回值:逻辑型。

功能:根据指定表达式的运算结果是否为“空”值,返回逻辑真(.T.)或返回逻辑假(.F.)。

②LIKE(<字符表达式1>,<字符表达式2>),返回值:逻辑型。

功能:比较两个字符串对应位置上的字符,若所有对应字符都相匹配,函数返回逻辑真(.T.),否则返回逻辑假(.F.)。

<字符表达式1>中可以包含通配符*和?,其中,*可以与任何数目的字符相匹配,?可以与任何单个字符相匹配。

③AT(<字符表达式1>,<字符表达式2>[,<数值表达式1>1),返回值:数值型。

功能:如果<字符表达式1>是<字符表达式2>的子串,则返回<字符表达式1>值
的首字符在<字符表达式2>值中的位置;若不是子串,则返回0。

④ISNULL(<表达式>),返回值:逻辑型。

功能:判断一个表达式的运算结果是否是NULL值,若是NULL值则返回逻辑真(.T.),否则返回逻辑假(.F.)。

15.表达式LEN(TRIM(SPACE(2)+'abc'-SPACE(3)))的计算结果是
(分数:2.00)
A.3
B.5 √
C.6
D.8
解析:解析:本题考查VFP中函数的运用和字符串连接符“+”、“-”。

在本题的表达式中,
SPACE(2)+'abc'.SPACE(3)的运算结果为字符串abc前连2个空格,再连接3个空格。

TRIM(字符串表达式)删除字符串的右侧空格表达式。

再用函数LEN()求字符串的长度。

16.运算结果不是2015的表达式是
(分数:2.00)
A.int(2015.9、)
B.round(2015.1,0)
C.ceiling(2015.1、) √
D.floor(2015.9)
解析:解析:本题考查VFP中的常用函数。

取整函数INT(<数值表达式>),计算数值表达式的值,返回该值的整数部分。

CEILING(<数值表达式>)函数是上界函数,计算数值表达式的值,返回一个大于或等于该值的最小整数。

FLOOR(<数值表达式>)函数下界函数,计算数值表达式的值,返回一个小于或等于该值的最大整数。

四舍五入函数ROUND(<数值表达式1>,<数值表达式2>),返回数值表达式1四舍五入的值,数值表达式2表示保留的小数位数。

17.某数据库有20条记录,若用函数EOF()测试结果为.T.,那么此时函数RECNO()值是
(分数:2.00)
A.20
B.21 √
C.19
D.1
解析:解析:函数EOF()的作用是测试文件尾。

其值为逻辑值真(.T.)时,表示记录指针指向文件尾,文件尾是指最后一条记录之后的位置,该数据库共有20条记录,故此时当前记录号是21。

18.下列程序段执行后,内存变量e的值是a=10b=20c=30d=IIF(a>b,a,b)e=IIF(c>d,c,d)
(分数:2.00)
A.10
B.20
C.30 √
D.550
解析:解析:本题考查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.在Visual FoxPro中,下列程序段执行后,内存变量s1的值是s1="奥运开幕日期"s1=substr(s1,5,4)+left(s1,4)+right(s1,4)?s1
(分数:2.00)
A.开幕日期奥运
B.奥运日期
C.开幕日期
D.开幕奥运日期√
解析:解析:本题考查字符串函数RIGHT(),SUBSTR()和LEFT的使用。

LEFT(c,n),取字符串C左边n个字符:RIGHT(c,n),取字符串c右边的n个字符:SUBSTR(c,n1,n2),取字符串C第n1个字符起的n2个字符,返回值类型是字符型,对于本题来说,SUBSTR(s1,5,4)的值为“开幕”,LEFT(s1,4)的值为“奥运”,RIGHT(s1,4)的值为“日期”。

20.在Visual FoxPro中可以用DO命令执行的文件不包括
(分数:2.00)
A..prg文件
B..mpr文件
C..frx文件√
D..qpr文件
解析:解析:利用DO命令可以执行.prg程序文件、.mpr菜单程序和.qpr查询程序等。

其中程序文件为默认执行的文件,可省略文件扩展名,而执行菜单文件和查询文件时扩展名不能少。

.frx文件是报表文件,打印报表时可先打开报表文件,然后再单击“打印”按钮打印报表。

21.假设表S中有10条记录,其中字段b小于20的记录有3条,大于等于20、并且小于等于30的记录有3条,大于30的记录有4条。

执行下面的程序后,屏幕显示的结果是SET DELETE ONDELETE FROM s WHERE b BETWEEN 20 AND 30?RECCOUNT()
(分数:2.00)
A.10 √
B.7
C.0
D.3
解析:解析:DELETE表示逻辑删除,逻辑删除不影响RECCOIJNT()函数的统计结果。

22.下列程序段执行以后,内存变量y的值是x=76543y=0DO WHILE x>0y=x%10+y*10x=int(x/10)ENDDO (分数:2.00)
A.3456
B.34567 √
C.7654
D.76543
解析:解析:题目给出的程序段中,用到了DO WHILE…ENDDO循环结构。

执行该语句时,先判断DO、WHILE 处的循环条件是否成立,如果条件为真,则执行DO WHILE和ENDDO之间的命令序列。

当执行到ENDDO时,返回到DO WHILE,再次判断循环条件是否为真,以确定是否再次执行循环体。

若条件为假,则结束该循环语句,执行ENDDO后面的语句。

循环体中还用到了两个算术运算符%和/,其中%是求余运算,/是取整运算。

根据所给初值和循环条件,可以判断出第一次循环后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.下列的程序段中y的计算结果为76543的是
(分数:2.00)
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 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 解析:解析:本题考查对简单的循环语句、Visual FoxPro操作符及函数的掌握。

在此程序中,首先为将变量X和Y分别赋值为34567和0,然后进入循环。

而%表示去余数,则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.在Visual FoxPro中,如果希望跳出SCAN…ENDSCAN循环体外执行ENDSCAN后面的语句,应使用
(分数:2.00)
A.LOOP语句
B.EXIT语句√
C.BREAK语句
D.RETURN语句
解析:解析:LOOP和EXIT都可以出现在循环体内。

LOOP表示结束本次循环,开始下一次循环;EXIT表示结束循环语句的执行,跳出循环执行后面的语句。

25.下列程序段执行时在屏幕上显示的结果是x1=20x2=30SET UDFPARMS TO VALUEDO test WITH x1,
x2?x1.x2PROCEDURE testPARAMETERS a,bx=aa=bb=xENDPRO
(分数:2.00)
A.30 30
B.30 20 √
C.20 20
D.20 30
解析:解析:带参数程序的调用有两种格式:格式1:DO<文件名>|<过程名>wITH<实参1>f,<实参2>,…1 格式2:<文件名>(实参表)|<过程名>(<实参1>[,<实参2>,…1) 采用格式1调用模块程序时,如果实参是常量或一般形式的表达式,则为按值传递。

如果实参是变量,则为按引用传递。

该格式不受UDFPARMS值的设置影响。

依据题干,PROCEDRE test实现两个变量的交换。

26.如果一个过程不包含RETURN语句,或者RETURN语句中没有指定表达式,那么该过程:
(分数:2.00)
A.没有返回值
B.返回0
C.返回.F.
D.返回.T.√
解析:解析:本题考查RETURN语句的语法。

RETURN语句的返回语句,其功能是返回程序调用处或命令窗口。

该语句可省略,因为在每个程序执行的最后,系统都会自动执行1个return语句。

相关文档
最新文档