1、国家二级 VF机试(程序设计基础)模拟试卷 14及答案与解析 一、选择题 1 在 Visual FoxPro中,下列程序段执行后,内存变量 sl的值是 s1=奥运开幕日期 s1=substr(s1, 5,4)+left(s1, 4)+right(s1, 4) ?s1 ( A)开幕日期奥运 ( B)奥运日期 ( C)开幕日期 ( D)开幕奥运日期 2 创建新项目的命令是 ( A) CREATE PROJECT ( B) CREATE ITEM ( C) CREATE NEW ( D) CREATE NEW ITEW 3 Modify Command命令建立的文件的默认扩展名是 ( A) prg
2、( B) app ( C) cmd ( D) exe 4 欲执行程序 temp prg,应该执行的命令是 ( A) DO PRG temp prg ( B) DO temp prg ( C) DO CMD temp prg ( D) DO FORM temp prg 5 在 Visual FoxPro中可以用 DO命令执行的文件不包括 ( A) prg文件 ( B) mpr文件 ( C) frx文件 ( D) qpr文件 6 在 Visual FoxPro中,用于建立或修改程序文件的命令是 ( A) MODIFY ( B) MODIFY CoMMAND ( C) MODIFY PROCEDUR
3、E ( D) MODIFY PROGRAM 7 下列命令中,不会创建文件的是 ( A) CREATE ( B) CREATE VIEW ( C) CREATE FORM ( D) CREATE QUERY 8 下面的程序的功能是将 11到 2011之间的素数插入数据库 prime,程序中的错误语句是 CREATE TABLE prime(dat f) n=11 DO WHILE n =2011 f=0 i=2 DO WHILE i =INT(SQRT(n) IF MOD(n, i) 0 i=i+1 LOOP ELSE f=1 EXIT ENDIF ENDDO IF f=O INSERT TO
4、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 9 假设表 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 10 下列程
5、序段的输出 结果是 CLEAR STORE 10 TO A STORE 20 TO B SET UDFPARMS TO REFERENCG D0 SWAP WITH A, (B) ?A B PROCEDURE SWAP PARAMETERS X1 X2 TEMP=X1 X1=X2 X2=TEMP ENDPROC ( A) 10 20 ( B) 20 20 ( C) 20 10 ( D) 10 10 11 下列程序段的执行结果是 DIME a(8) a(1)=1 a(2)=1 for i=3 to 8 a(i)=a(i-1)+a(i-2) next ?a(7) ( A) 5 ( B) 8 ( C
6、) 13 ( D) 21 12 下面程序的运行结果是 SET EXACT ON s=ni+SPACE(2) IF s=ni IF s=ni ?one ELSE ?two ENDIF ELSE IF s=ni ?three ELSE ?four ENDIF ENDIF RETURN ( A) one ( B) two ( C) three ( D) four 13 下列程序段执行以后,内存变量 y的值是 x=76543 y=0 DO WHILE x 0 v=x 10+y*10 x=int(x 10) ENDDO ( A) 3456 ( B) 34567 ( C) 7654 ( D) 76543
7、14 下面程序计算一个整数的各位数字之和,在下划线处应填写的语句是 SET TALK OFF INPUTx=TO x s=0 DO WHILE x!=0 s=s+MOD(x, 10) _ ENDDO ?s SET TALK ON ( A) x=int(x 10) ( B) x=int(x 10) ( C) x=x-int(x 10) ( D) x=x-int(x 10) 15 下列程序段执行以后,内存变量 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
8、 ( D) 15 16 下列程序段执行以后,内存变量 y的值是 x=34567 y=0 DO WHILE x 0 y=x 10+y*10 x=int(x 10) ENDD ( A) 3456 ( B) 34567 ( C) 7654 ( D) 76543 17 下列的程序段中 y的计算结果为 76543的是 ( A) x=34567 y=0 flag=.T DO WHILE flag y=x 10+y*10 x=int(x 10) IF x 0 flag=.F. ENDIF ENDD0 ( B) x=34567 y=0 flag=.T. DO WHILE flag y=x 10+y*10 x=
9、int(x 10) IF x=0 flag=.F. ENDIF ENDDO ( C) x=34567 y=0 flag=.T. DO WHILE!flag y=x 10+y*10 x=int(x 10) IF x 0 flag=.F. ENDIF ENDD0 ( D) x=34567 y=0 flag=.T. DO WHILE!flag y=x 10+y*10 x=int(x 10) IF x=0 flag=.T. ENDIF ENDDO 18 下列程序段执行时在屏幕上显示的结果是 DIME a(6) a(1)=1 a(2)=l FOR i=3 TO 6 a(i)=a(i-1)+a(i-2)
10、NEXT ?a(6) ( A) 5 ( B) 6 ( C) 7 ( D) 8 19 下列程序段的输出结果是 ACCEPT TO A IF A=123 S=0 ENDIF S=1 ?S ( A) 0 ( B) 1 ( C) 123 ( D)由 A的值决定 20 有以下程序: INPUT TO A S=0 IF A=10 S=1 ENDIF S=2 ?S 假定从键盘输入的 A值是数值型,则程序的运行结果是 ( A) 0 ( B) 1 ( C) 2 ( D) 1或 2 21 在 Visual FoxPro中,如果希望跳出 SCANENDSCAN 循环体外执行ENDSCAN后面的语句,应使用 ( A)
11、 LOOP语句 ( B) EXIT语句 ( C) BREAK语句 ( D) RETURN语句 22 在 Visual FoxPro中,过程的返回语句是 ( A) GOBACK ( B) COMEBACK ( C) RETURN ( D) BACK 23 下列程序段执行以后,内存变量 X和 Y的值是 CLEAR STORE 3 TO X STORE 5 T0 Y PLUS(X), Y) ?X Y PROCEDURE PLUS PAR AMETERS A1 A2 A1=A1+A2 A2=A1+A2 ENDPROC ( A) 8 13 ( B) 3 13 ( C) 3 5 ( D) 8 5 24 下
12、列程序段执行以后,内存变量 A和 B的值是 CLEAR A=10 B=20 SET UDFPA RMS 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 25 下列程序段执行时在屏幕上显示的结果是 x1=20 X2=30 SET UDFPARMS TO VALUE DO test WITH x1 x2 ?x1 x2 PROCEDURE
13、 test PARAMETERS a b x=a a=b b=x ENDPR0 ( A) 30 30 ( B) 30 20 ( C) 20 20 ( D) 20 30 26 下面关于过程调用的陈述中,哪个是正确的 ( A)实参与形参的数量必须相等 ( B)当实参的数量多于形参的数量时,多余的实参被忽略 ( C)当形参的数量多于实参的数量时,多余的形参取逻辑假 ( D)当形参的数量多于实参的数量时,多余的形参取逻辑真 27 下面程序的运行结果是: SET TALK OFF n=1 proc1(n) ?n+2 PROCEDURE proc 1 PARAMETERS n FOR k=2 T0 4 n
14、=n+k ENDFOR RETURN ( A) 3 ( B) 10 ( C) 11 ( D) 12 28 下面程序的运行结果是: SET TALK OFF n=1 DO procl WITH(n) ?n+2 PROCEDURE proc 1 PARAMETERS n FOR k=2 TO 4 n=n+k ENDFOR RETURN ( A) 3 ( B) 10 ( C) 11 ( D) 12 29 如果一个过程不包含 RETURN语句,或者 RETURN语句中没有指定表达式,那么该过程: ( A)没有返回值 ( B)返回 0 ( C)返回 .F. ( D)返回 .T. 30 下列程序段执行以后
15、,内存变量 X和 Y的值是 CLEAR STORE 3 TO X STORE 5 TO Y SET UDFPA R MS TO REFERENCE D0 PLUS WITH(X), Y ?X Y PROCEDURE PLUS PARAMETERS A1, A2 A1=A1+A2 A2=A1+A2 ENDPROC ( A) 5 8 ( B) 8 13 ( C) 5 13 ( D) 3 13 国家二级 VF机试(程序设计基础)模拟试卷 14答案与解析 一、选择题 1 【正确答案】 D 【试题解析】 本题考查字符串函数 RIGHT(), SUBSTR()和 LEFT的使用。LEFT(c, n),取字
16、符串 C左边 n个字符; RIGHT(c, n),取字符串 c右边的 n个字符; SUBSTR(c,n1, n2),取字符串 C第 n1个字符起的 n2个字符,返回值类型是字符型,对于本题来说, SUBSTR(s1, 5,4)的值为 “开幕 ”, LEFT(s1, 4)的值为“奥运 ”, RIGHT(s1, 4)的值为 “日期 ”。 【知识模块】 程序设计基础 2 【正确答案】 A 【试题解析】 创建新项目的命令是,在命令窗口中输入命令: CREATE PROJECT 可以创建一个扩展名为 pjx的项目文件, 在 Visual FoxPro 6 0的系统窗口中就会出现一个 “项目管理器 ”窗口
17、。所以选项 A正确。 【知识模块】 程序设计基础 3 【正确答案】 A 【试题解析】 可用命令方式建立和修改程序文件。命令格式为 modifycommand。执行该命令时,如果指定文件存在,则打开修改;否则,建立一个指定名字的程序文件,而程序文件的扩展名是 prg。 App是应用程序的扩展名, exe是可执行文件的扩展名。 【知识模块】 程序设计基础 4 【正确答案】 B 【试题解析】 扩展名为 prg的文件是程序文件,而运行程序文件的命令是 “do程序文件名 ”。 【知识模块】 程序设计基础 5 【正确答案】 C 【试题解析】 利用 DO命令可以 执行 prg程序文件、 mpr菜单程序和 q
18、pt查询程序等。其中程序文件为默认执行的文件,可省略文件扩展名,而执行菜单文件和查询文件时扩展名不能少。 frx文件是报表文件,打印报表时可先打开报表文件,然后再单击 “打印 ”按钮打印报表。 【知识模块】 程序设计基础 6 【正确答案】 B 【试题解析】 本题考查建立修改程序文件的命令。在 Visual FoxPro中,程序文件可以通过两种方式建立。 菜单方式:执行【文件】菜单中的【新建】命令,打开程序文件编辑器,然后在编辑器窗口中输入程序内 容,最后保存文件。 程序文件的默认扩展名是 prg,如果指定其他扩展名,那么在打开和执行程序文件时都要显示指定扩展名。 命令方式: MODIFY CO
19、MMAND 用于建立或修改程序文件。 【知识模块】 程序设计基础 7 【正确答案】 B 【试题解析】 本题考查用命令创建文件。 CREATE FORM是创建表单文件,CREATE QUERY是创建查询文件。 CREATE VIEW命令是创建视图,其不能建立文件。 【知识模块】 程序设计基础 8 【正确答案 】 B 【试题解析】 本题考查向数据库中插入一个记录的 SQL命令 INSERT INTO。其语法格式如下: 格式 1: INSERT INTO dbf_name(fname1, fiaame2, ) VALuES(eXpression1, eXpression2, ) 格式 2: INSE
20、RT INTO dbf_name FROM ARRAY ArrayNamelFROM MEMVAR。 【知识模块】 程序设计基础 9 【正确答案】 A 【试题解析】 DELETE表示 逻辑删除逻辑删除不影响 RECCOUNT()函数的统计结果。 【知识模块】 程序设计基础 10 【正确答案】 B 【试题解析】 在这段程序代码中,定义了子过程 SWAP,其作用是交换两个变量 X1, X2的值。 在主程序中,首先定义了两个实参变量 A和 B,并分别赋值为 10和 20。用SETUDFPARMS TO REFERENCG语句设置变量传递方式为按引用传递。在DO SWAPWITH A, (B)语句中,
21、变量 B用一对括号括起来,使其变成一般形式的表达式,所以不管什么情况,总是按值传递。 所以结果就是变量 A按引用传递,变量 B按值传递。因此程序运行的结果是变量 A的值等于 20,而实参变量 B的值不变,仍为 20。所以答案为选项 B。 【知识模块】 程序设计基础 11 【正确答案】 C 【试题解析】 。 For循环中的语句 a(i)=a(i-1)+a(i-2)是指定每个元素的值为它的前两项的和,这个元素必须只能从第 3项开始指定。由于前两项分别是 1、 1,所以数组 a的 8个元素分别是 l, 1, 2, 3, 5,8, 13,21:元素 a(7)的值是 13。 【知识模块】 程序设计基础
22、12 【正确答案 】 C 【试题解析】 在用双等号 (=)比较两个字符串时,只有两个字符串完全相同时,运算结果才可能是逻辑真 T,在用单等号 (=)比较两个字符串时,运算结果与SET ExACT ONIOFF的设置有关: ON先在较短的字符串的尾部加上若干个空格,使两个字符串的长度相等,然后进行精确比较;当处于 OFF状态时,只要右边字符串与左边字符串的前面部分内容相匹配,即可得到逻辑真 T。根据程序的结构,最后的运行结果为 three。 【知识模块】 程序设计基础 13 【正确答案】 B 【试题解析】 题 目给出的程序段中,用到了 DO WHILEENDDO 循环结构。执行该语句时,先判断
23、DOWHILE处的循环条件是否成立,如果条件为真,则执行 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:第六次对条件x0进行判断,结果为假,故退出循环,执行结束,最终
24、 y的值即为 34567。 【知识模块】 程序设计基础 14 【正确答案】 A 【试题解析】 题干中给出的程序功能是将一个整数中的各位数字从个位数开始累加。每次循环中将个位数累加后,将该位从整数中删除,这样原来十位上的数字就成为个位数,直到所有数字累加完毕。其中, MOD(x, 10)语句是得到个位数字, x=int(x 10)语句是将个位数字删除。 【知识模块】 程序设计基础 15 【正确答案】 D 【试题解析】 本题考查的是 DO WHILE循环语句的使用,其中涉及到一个累加的计算,依次对变量 x的值,即本题中的 12345,从后向前对各位数进行相加,最后输出,即输出 5+4+3+2+1的
25、计算值。 【知识模块】 程序设计基础 16 【正确答案】 D 【试题解析】 本题中的循环条件是在 x值丈于零时就进行循环计算 y=x 10+y10和 x=int() 10)的操作,第一次循环 y=7, x=3456;第二次 y=76, x=345;第三次y=765, x=34;第四次 y=7654, x=3;第五次 y=76543, x=0。 Y的最终结果时76543。 【知识模块】 程序设计基础 17 【正确答案】 B 【试题解析】 本题考查对简单的循环语句、 Visual FoxPro操作符及函数的掌握。在此程序中,首先为将变量 X和 Y分别赋值为 34567和 0,然后进入循环。而表示去
26、余数,则 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。 【知识模块】 程序设计基础 18 【正确答案】 D 【试题解析】 根据题干中的程序可知,从第 3项开始,各项的数值等于前两项之和,所以 a(3)=2, a(4)=3, a(5)=5, a(6)=8。 【知识模块】 程序设计基础 19 【正确答案】 B 【试题
27、解析】 ACCEPT命令格式: ACCEPTto 当程序执行到该命令时,暂停往下执行,等待用户从键盘输入字符串。当用户以回车键结束输入时,系统将该字符串存入指定的内存变量,然后继续往下执行程序。 程序结构是指程序中命令或语句执行的流程结构。顺序结构、选择结构和循环结构是程序的三种基本结构。 IFENDIF 语句是选择结构中的条件语句。按照顺序执行的原则无论是否执行 IF语句,语句 S=1赋值语句都会执行。所以本程序段的返回值是 1。 【知识模块】 程序设计基础 20 【正确答案】 C 【试题解析】 本题考查程序的顺序结构和分支结构,基本语法 格式如下: IF条件表达式 命令组 ENDIF 在题
28、目的的程序中,如果变量 A的值等于 10,则把 1赋于变量 S,但在条件语句之外又重新定义 S的值为 2,因此,不管 IF语句是否成立, S的值始终为 2。 【知识模块】 程序设计基础 21 【正确答案】 B 【试题解析】 LOOP和 EXIT都可以出现在循环体内。 LOOP表示结束本次循环,开始下一次循环; EXIT表示结束循环语句的执行,跳出循环执行后面的语句。 【知识模块】 程序设计基础 22 【正确答案】 C 【试题解析】 visual FoxPro中过程式的返回语句为 RETURN。 RETURN结束当前程序的执行,返回到调用它的上级程序,若无上级程序则返回到命令窗口。 【知识模块】
29、 程序设计基础 23 【正确答案】 C 【试题解析】 调用模块程序一般有两种格式: 格式 1通过 DO命令调用,格式 2是在过程名或文件名后面加括号,括号中包括若干个实参变量。本题采用的是利用格式 2的方式调用模块程序。采用格式 2调用模块程序时,默认情况下都以按值方式传递参数,如果要改变传递方法,必须通过 SET UDFPARMS命令进行设置。但是,有一点需要注意,不论是设置何种传递方式,凡是用括号括起来的实参,全部都是按值传递,它不受 SET UDFPARMS语句的影响。 本题中 X和 Y都是按值传递,形参值的变化不会影响到实参值的, X值等于3, Y值等于 5。 【知识模块】 程序设计基
30、础 24 【正确答案】 D 【试题解析】 模块程序可以接收程序传递过来的参数,参数传递的方式有两种:按值传递和按引用传递。其中当按值传递时,形参变量值改变时,不会影响实参变量的取值,即形参变量的值不传回;当按引用传递时,形参 变量值改变时,实参变量也发生改变。题干中参数 A和 B都是按值传递,不会影响实参变量的取值, A和 B 的值不会改变。 【知识模块】 程序设计基础 25 【正确答案】 B 【试题解析】 带参数程序的调用有两种格式: 格式 1: DO WITH, 1 格式 2: (实参表 ) (, ) 采用格式 1调用模块程序时,如果实参是常量或一般形式的表达式,则为按值传递。如果实参是变
31、量,则为按引用传递。该格式 不受 UDFPARMS值的设置影响。 依据题干, PROCEDURE test实现两个变量的交换。 【知识模块】 程序设计基础 26 【正确答案】 C 【试题解析】 本题考查过程调用中实参与形参的关系。主要有以下四点: 实参可以是常量、变量,也可以是一般形式的表达式; 调用时,实参传递给形参; 形参数目不能少于实参数目; 形参多于实参时,多余的形参初值为逻辑假。 【知识模块】 程序设计基础 27 【正确答案】 A 【试题解析】 本题考查形参与实参的传递及变量的作用。本题中的 procl(n)模块调用是采用按值传递的方式,形参变量值的改变不会影响实参变量的值,因此,
32、n的值在实参中还是等于 1, n+1的输出结果为 3。 【知识模块】 程序设计基础 28 【正确答案】 A 【试题解析】 本题考查形参与实参的传递及变量的作用。在 DOprocl WITH(n)过程调用命令中,变量 n用圆括号括起来的,所以,不管什么情况下,都是按值传递方式,形参变量值的改变不会影响实参变量的值,程序的输出结果为 3。 【知识模块】 程序设计基础 29 【正确答案】 D 【试题解析】 本题 考查 RETURN语句的语法。 RETURN语句的返回语句,其功能是返回程序调用处或命令窗口。该语句可省略,因为在每个程序执行的最后,系统都会自动执行 1个 return语句。 【知识模块】 程序设计基础 30 【正确答案】 D 【试题解析】 本题考查带参数的过程调用,语句 SET UDFPARMS TO REFERENCE语句,表示内存变量是按引用传递。所以实参变量 Y是引用传递,(X)是按值传递。在执行过程 PLUS时, A1=3, A5=5,过程 PLUS运行完后,A1=8, A2=13,因为实参变量 Y是 引用传递, (X)是按值传递,所以实参变量 Y的值等 A2=13, X的值等于 3。 【知识模块】 程序设计基础
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1