VFP笔试练习题2013-6

VFP笔试练习(120分钟 ) 2013-6

一、单选题

1.执行下列命令序列后,A(3)的值为()

DIMENSION A(3,3)

A(1,1)="ABC"

A(1,2)=234

A(2,1)=.T.

A(2,3)={^2013-3-8}

(A) .T. (B) {^2013-3-8} (C) .F. (D) 变量没有赋值

2.Visual FoxPro中,下面关于属性、方法和事件的叙述错误的

...是()。

(A)属性用于描述对象的状态,方法用于表示对象的行为

(B)基于同一个类产生的两个对象可以分别设置自己的属性值

(C)事件代码也可以象方法一样被显式调用

(D)在创建一个表单时,可以添加新的属性、方法和事件

3.当X=23时,表达式10

(A) .T. (B) .F. (C) 10 (D)非法表达式

4.当如下代码执行后,表单Form1中的文本框text1显示的内容为()。

a=17%-5=-3 OR "程序"$"计算机程序设计" and not "VFP">"VB"

thisform.text1.value=a

(A)0 (B)2 (C).f. (D).t.

5.当如下代码执行后,表单Form1中的标签label1显示结果为()。

n=0

For x=1 to 20

If mod(x,3)=0

n=n+1

Endif

Endfor

https://www.360docs.net/doc/fb16109921.html,bel1.caption=alltrim(str(n))

(A) 3 (B) 18 (C) 6 (D) 20

6.Visual FoxPro 中APPEND BLANK 命令的作用是()。

(A) 在表的任意位置添加记录 (B) 在当前记录之前插入新记录

(C) 在表的尾部添加记录 (D) 在表的首部添加记录

7.输入一个数X,判断其为3位正整数的正确表达式为()。

(A) X>=100 AND X<1000 OR X=INT(X) (B) X>=100 AND X<1000 AND X=INT(X)

(C) X>=100 OR X<1000 OR X/2=INT(X/2) (D) X>=100 OR X<1000 AND X/2=INT(X/2)

8.如图所示命令按钮组:,当单击“结束”按钮时,命令按钮组的值为( )。

(A)结束(B)1 (C)2 (D) 3

9.在查询设计器中,“分组依据”选项卡对应( )语句。

(A)JOIN ON (B)WHERE (C)ORDER BY (D)GROUP BY 10.在系统默认状态下,以下表达式为.T.的是()。

(A) "春暖花开"="花开" (B)"花开"="春暖花开"

(C) "春暖花开"="春暖" (D)"春暖"="春暖花开"

11.在创建表单时,用()控件创建的对象用于保存不希望用户改动的文本。

(A)标签 (B)文本框 (C)编辑框 (D) 组合框

12.设成绩表文件已经打开,其中有成绩字段,要把指针定位在成绩大于95的第一条记录上,应使用命令()。

(A) FIND FOR 成绩>95 (B)SEEK成绩>95

(C) LOCATE FOR成绩>95 (D)LIST FOR成绩>95

13.在表单运行时,要改变表单的标题为:“欢迎界面”,需要执行事件代码()。

(A)https://www.360docs.net/doc/fb16109921.html,="欢迎界面" (B)Thisform.Caption="欢迎界面"

(C)Thisform.Caption=欢迎界面(D)Thisform.Value="欢迎界面"

14.在建立学生数据库表时,将“性别”字段值限制在“男”、“女”之间的约束属于()。

(A)实体完整性 (B) 记录(域)完整性

(C)参照完整性 (D) 以上都不正确

15.函数ROUND(1263.645,-3)的返回值是()。

(A)-1263.65 (B) 1263.65 (C)1300 (D)1000

16.如 X="1", Y="2", B12="BOOK", A="STORE" 。表达式A+b&X&Y的结果是()。

(A)BOOKSTORE (B)STOREBOOK (C)STOREBOOK12 (D)BOOK12

17~20题用vfp-sql实现,基于如下数据表:

学生表(文件名为:ST.dbf):学号(C,5),姓名(C,6),专业班级(C,20)。

选课表(文件名为:XK.dbf):学号(C,5),课程号(C,3),成绩(N,5,1)。注:选课表中一条记录代表一名学生选择的一门课程,一名学生可以选择多门课程。

17.查询选课表中课程号为“011”这门课程成绩排在前3名的学生,正确的SQL语句是()。

(A)SELECT 学号,成绩 TOP 3 FROM XK WHERE课程号="011" ORDER BY 成绩 DESC

(B)SELECT 学号,成绩 TOP 3 FROM XK WHERE课程号="011" ORDER BY 成绩 ASC

(C)SELECT 学号,成绩 FROM XK WHERE课程号="011" ORDER BY 成绩 DESC

(D)SELECT 学号,成绩 FROM XK WHERE课程号="011" ORDER BY 成绩

18.查询选课表中成绩有不及格的学生学号和专业班级,正确的SQL语句是()。

(A)SELECT ST.学号,专业班级FROM ST,XK WHERE ST.学号=XK.学号AND成绩≤60

(B)SELECT ST.学号,专业班级 FROM ST,XK WHERE ST.学号=XK.学号AND成绩<=60

(C)SELECT 学号,专业班级 FROM ST,XK WHERE ST.学号=XK.学号AND成绩≤60

(D)SELECT 学号,专业班级 FROM ST,XK WHERE ST.学号=XK.学号AND成绩<=60

19.将选课表中的全部记录存储于临时表文件 TEMP 中的 SQL 命令是()。

(A)SELECT * FROM XK INTO CURSOR TEMP

(B)SELECT * FROM XK TO CURSOR TEMP

(C)SELECT * FROM XK INTO CURSOR DBF TEMP

(D)SELECT * FROM XK TO CURSOR DBF TEMP

20.查询成绩在80分至89分之间学生的学号、课程号和成绩,正确的SQL语句是()。

(A)SELECT 学号,课程号,成绩 FROM XK WHERE 成绩>=89 OR <=80

(B)SELECT 学号,课程号,成绩 FROM XK WHERE 成绩>=80 OR成绩<=89

(C)SELECT 学号,课程号,成绩 FROM XK WHERE 成绩 BETWEEN 80 AND 89

(D)SELECT 学号,课程号,成绩 FROM XK WHERE 成绩>=89 AND <=70

二、判断题

1.基于同一个类产生的两个对象可以分别设置自己的属性值。

2."Visual"-space(1)+"FoxPro"和"Visual"+space(1)-"FoxPro"表达式的结果相同。3.若要访问用户在文本框中所输入的数据,可从文本框的Value属性获得。

4.在使用键盘或鼠标更改对象中的内容时,将发生GotFocus事件,在对象接受焦点时将发生InteractiveChange事件。

5.在运行表单时,表单事件引发的次序依次是Activate、Init、Load。

6.分别定义“public A”和“private B”,则有 A=.f. , B=.F.。

7.DTOC(DATE())+YEAR((DATE())是一个正确的表达式。

8.列表框的AddListItem(3,1,2)方法表示把2这个数显示在列表框的第3行第1列。9.视图是在数据表的基础上建立的一种虚拟表。

10.在DO CASE-ENDCASE中,多个条件同时成立时,则这些分支都要执行。

三、程序填空题

1.表单中有一命令按钮和一编辑框edit1,表单运行后,单击命令按钮,可以从1~99之间选出能被5整除,且含有数码5的那些数,在编辑框edit1中输出,每行显示4个数。命令按钮的click事件代码如下。请填空完善程序。

X=0

For n=1 to 99

if N%5=0 and ______①_______

thisform.edit1.value=thisform.edit1.value+ _______②_______

x=x+1

if _______③_______

thisform.edit1.value=thisform.edit1.value+chr(13)

endif

endif

endfor

2.将数据表:图书.dbf (字段有:书号C/3,书名C/6,价格n/5/1等字段) 添加到表单的数据环境中,执行如下代码后,可以统计出计算机类图书的平均价格,并在标签Label1中显示。请填空完善程序。

N=0

S=0

Do while not eof()

if "计算机"$书名

n=n+1

s=s+价格

Endif

______④________

Enddo

https://www.360docs.net/doc/fb16109921.html,bel1.caption=______⑤_______

3.有2个数据表:

学生信息表(文件名为:XX.dbf):(学号(C,5),姓名(C,6),专业班级(C,20))

培训班报名表(文件名为:PX.dbf):(学号(C,5),培训项目(C,10),培训费(N,6,2))。

下面的SQL语句实现的功能是:查询报名参加培训项目在3个以上(含3个)的学生的学号、姓名、专业班级和总的培训费,并按总的培训费升序排列。请将下面的SQL语句补充完整。

SELECT XX.学号,姓名,专业班级,sum(培训费) FROM XX,PX ;

WHERE XX.学号=PX.学号;

GROUP BY PX.学号 HAVING _____⑥______ ORDER BY _____⑦______

4.已知一订货管理数据库,其中包含如表1、2所示的数据表:

表1 仓库表.dbf 表2 职工表.dbf

1)查询职工工资大于2000的职工号及职工所在仓库的城市。请将下面的SQL 语句补充完整。

SELECT 职工号,城市 FROM 仓库表 x1,职工表 x2; WHERE 工资>2000 AND (_____⑧______) 2)求重庆和上海的仓库职工的工资总和。请将下面的SQL 语句补充完整。 SELECT SUM(工资) FROM 职工表 WHERE 仓库号_____⑨______; (SELECT 仓库号 FROM 仓库表 WHERE ______⑩_____)

四、阅读分析下面程序,写出程序的运行结果

1.设计如图所示表单,表单运行后单击“显示”按钮,标签List1将显示什么?

“显示”命令按钮的“click ”事件代码如下: Thisform.list1.clear DIME A(5) B="*" A=""

FOR I=1 TO 5 FOR J=1 TO I A(I)=A(I)+B ENDFOR

THISFORM.LIST1.ADDITEM(A(I))

ENDFOR

2.如图所示一表单。已知标签label1(左)、label2(右)初始均显示为1,请写出当第3次单击“计算”按钮时,表单上的两个标签显示的数值是什么?

“计算”按钮的Click事件代码如下:

x=val(https://www.360docs.net/doc/fb16109921.html,bel1.caption)

y=val(https://www.360docs.net/doc/fb16109921.html,bel2.caption)

if x>5 or y>5

y=y+x

x=x+y

endif

x=x+y

y=y+x

https://www.360docs.net/doc/fb16109921.html,bel1.caption=str(x,3)

https://www.360docs.net/doc/fb16109921.html,bel2.caption=str(y,3)

3.有两个表文件,其内容如下:

学生成绩表(文件名为:cj.dbf)学生学号、姓名对照表(文件名为:xm.dbf)学号科目成绩学号姓名

12015 外语 70 12015 汪伟

15013 外语 84 12012 刘灿

12012 外语 95 15013 赵静

12012 计算机 88

12015 计算机 80

15013 计算机 70

设计如图所示表单,将cj.dbf和xm.dbf添加到表单的数据环境中,表单运行后,单击命令按钮“Command1”,表格grid1将显示什么?

command1控件的click事件代码:

select姓名,科目,成绩 from cj,xm where cj.学号=xm.学号 and ;

at("5",cj.学号)>0 and 成绩>80 into cursor lsb

thisform.grid1.recordsource="lsb"

4.设计如图a所示表单,运行表单后,如图b所示,单击“command1”按钮,标签Label2中显示什么?

(a)

(b)

Form1的Activate事件:

PUBLIC A(10)

X=""

FOR I=1 TO 8

A(I)=INT(RAND()*90)+10

X=X+STR(A(I),5)

ENDFOR

https://www.360docs.net/doc/fb16109921.html,bel1.Caption=X

Command1的Click事件代码:

Y=""

Thisform.xy()

FOR I=3 TO 6

Y=Y+STR(A(I),5)

ENDFOR

https://www.360docs.net/doc/fb16109921.html,bel2.Caption=Y

自定义方法程序XY:

FOR I=1 TO 3

T=A(I)

A(I)=A(7-I)

A(7-I)=T

ENDFOR

五、程序设计

有3个数据表:学生.dbf(学号/C,姓名/C);课程.dbf(课程号/C,课程名/C);选课.dbf(课程号/C,学号/C,成绩/N),设计如图所示表单,组合框与学号字段绑定,表单运行时,在组合框combo1中选择学号,则在标签label3中输出学生姓名,在列表框中输出该学生选课的课程名和成绩。请编写组合框combo1的“InteractiveChange”事件代码。

VFP练习题参考答案2013-6

一、单选题

二、判断分析题

三、程序填空题

①"5"$str(n,2) 或(INT(n/10)=5 OR N%10=5) ②Str(n,4) ③X%4=0 ④Skip ⑤Str(s/n,5,1)

⑥Count(*)>=3 ⑦ 4

⑧x1.仓库号=x2.仓库号

⑨IN ⑩城市="重庆" OR 城市="上海"

四、阅读分析下面程序,写出程序的运行结果

1. *

2. 31 44

**

***

****

*****

3. 赵静外语 84

4. 51 41 55 17

五、程序设计

组合框combo1的“interactivechange”事件代码:

*输出姓名(3分);列表框输出(7分)

Thisform.list1.clear

Xh=alltrim(this.value)

Select 姓名 from 学生 where 学号=xh into array a

https://www.360docs.net/doc/fb16109921.html,bel3.caption=a(1)

Select 课程名,成绩 from 选课,课程 ;

where选课.课程号=课程.课程号and学号=xh into cursor xkxx

thisform.list1.additem("课程名成绩")

scan

thisform.list1.additem(课程名+str(成绩,3))

endscan

相关文档
最新文档