全国计算机二级VFP历年真题及解析整理版

更新时间:2023-05-10 02:44:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1. 算法的时间复杂度取决于(D)

A).问题的规模 B).待处理的数据的初态 C).问题的难度 D).(A)和(B)

2. 数据在计算机内存中的表示是指 :数据的存储结构

3. 在数据结构中,与所使用的计算机无关的数据结构是(A )

A).逻辑性 B).存储 C).逻辑和存储 D).物理

4. 在数据结构中,从逻辑上可以把数据结构分成: 线性结构和非线性结构

5. 以下不是栈的基本运算的是(B )

A).删除栈顶元素 B).删除栈底元素 C).判断栈是否为空 D).将栈置为空栈

6. 若进栈序列为1,2,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序列是(C )

A).1,4,3,2 B).2,3,4,1 C).3,1,4,2 D).3,4,2,1

7. 若进栈序列是1,2,3,4,假定进栈和出栈可以穿插进行,则可能的出栈序列是(D )

A).2,4,3,1 B).3,1,4,2 C).3,4,1,2 D).1,2,3,4

8. 链表不具备的特点是( A)

A).可随机访问任意一个结点 B).插入和删除不需要移动任何元素

C).不必事先估计存储空间 D).所需空间与其长度成正比

9. 对线性表,在下列情况下应当采用链表表示的是(B )

B).经常需要进行插入和删除操作

10. 如果最常用的操作是取第I个结点及其前驱,最节省时间的存储方式是:顺序表

11.与单链表相比,双向链表的优点之一是:顺序访问相邻结点更加灵活

12. 栈和队列的共同点是: 只允许在端点处插入和删除元素

13. 判断一个栈ST(最多元素为MaxSize)为满的条件是:ST->top== MaxSize-1

14. 不带头结点的单链表head为空的判定条件是 :head=NULL

15. 在带头结点的单链表head为空的判定条件是 :head->next=NULL

16. 可以用带表头结点的链表表示线性表,也可用不带表头结点的链表表示线性表,前者最主要的好处是(B) 使空表和非空表的统一

17.带头结点的双向循环链表L为空的条件是 :L->next==L

18.一个链式队列中,假设f和r分别为队头和队尾指针,则插入结点的运算是 :r->next=s;r=s

19. 在一个链式队列中,假设f 和r分别为队头和队尾指针,则删除结点的运算是 :f=f->next

20.下列关于线性表、栈和队列的描述,错误的是()答案:A

A).线性表是给定的N(N必须大于零)个元素组成的序列 B).线性表允许在表的任何位置进行插入和删除操作

C).栈只允许在一端进行插入和删除操作 D).队列允许在一端进行插入在另一端进行删除

21.一个队列的入队序列是1,2,3,4,则队列的输出序列是 :1,2,3,4

23.设初始输入序列为1,2,3,4,5,利用一个栈产生输出序列,下列()序列是不能通过栈产生的。

A).1,2,3,4,5 B).5,3,4,1,2 C).4,3,2,1,5 D).3,4,5,2,1 答案:B

24.设栈S的初始状态为空,6个元素入栈的顺序为e1,e2,e3,e4,e5,e6。若出栈的顺序是e2.e4.e3,e6,e5,e1则栈S的容量至少应该是 :3

25.树最适合用来表示 :元素之间具有分支层次关系的数据

26.下列有关树的概念错误的是(B)

A).一棵树中只有一个无前驱的结点 B).一棵树的度为树中各个结点的度数之和

C).一棵树中,每个结点的度数之和等于结点总数减1 D). 一棵树中每个结点的度数之和与边的条数相等

27.下面关于二叉树描述正确的是(A)

A).一棵二叉树中叶子结点的个数等于度为2的结点的个数加1

28.在一棵非空二叉树的中序遍历序列中,根结点的右边 :只有右子树上的所有结点

29.设n,m为一棵二叉树上的两个结点,在中序遍历中,n在m前的条件是 :n在m 左树上

30.对线性表进行折半查找时,要求线性表必须 :以顺序方式存储,且结点按关键字有序排列

31.下列有关线性表描述错误的是(答案:D )

A).若用数组表示,表中诸元素的存储位置是连在一起的 B).若用链表表示,便于插入和删除操作

C).若用链表表示,不需要占用一片相邻的存储空间D).表的插入和删除操作仅允许在表的一端进行

32.下面关于线性表的叙述中,错误的是( )。答案:B

A) 线性表采用顺序存储,必须占用一片连续的存储单元 B)线性表采用顺序存储,便于进行插入和删除操作

C)线性表采用链接存储,不必占用一片连续的存储单元D)线性表采用链接存储,便于进行插入和删除操作

33.用数组表示线性表的优点是 :便于随机存取

34.已知某二叉树的后序遍历序列是DACBE,中序遍历序列是DEBAC,则它的前序遍历序列是:EDBAC

35.一棵二叉树的前序遍历序为ABDGCFK,中序遍历序列为DGBAFCK,则结点的后序遍历序列是( )。 GDBFKCA

36.如果一棵二叉树中所有结点的值都大于其左子树中所有结点的值,且小于其右子树中所有结点的值,现欲得到各个结点值的递增序列,采用的方法是 :中序遍历

37.对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为: n+1

39.在顺序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找关键码值11,所需的关键码比较次数为 :4

40.设二叉树根结点的层次为0,一棵树深为h的满二叉树中结点的个数是 :2h+1

41.有关二叉树的下列说法正确的是 :一棵二叉树的度可以小于2

42.深度为5的二叉树至多有(31)个结点。

43.假定根结点的层次是0,含有15个结点的二叉树的最小树深是 :3

44.在一非空二叉树的中序遍历序列中,根结点的右边 :只有右子树上的所有结点

45.任何一棵二叉树的叶子结点在先序、中序和后序遍历序列中的相对次序 :不发生改变

46.对一个满二叉树,m个树叶,n个结点,深度为h,则 :n=2h-1

47.顺序查找适合于存储结构为(B)的线性表。 B)顺序存储或链式存储

1.数据的逻辑结构包括(线性结构 )和非线性结构。

2.线性结构中元素之间存在着( 一对一 ) 关系,树型结构中元素之间存在着( 一对多) 关系。

3.在单链表中设置头结点的作用是 :简化插入、删除算法

4.访问单链表中的结点,必须沿着 (指针域或next域) 依次进行。

5.在双向链表中,每个结点有两个指针域,一个指向(前驱结点 ) ,另一个指向(后继结点) 。

6.在一个单链表中的p所指结点之前插入一个s所指的结点时,可以执行如下操作:

(1)s→next= ;

(2)p→next=s;

(3)t=p→data;

(4)p→data= ;

(5)s→data=( ) ; 答案是:p->next s->data t

7.栈和队列的区别在于 :删除运算不同

8.通常元素进栈的顺序是:先移动栈顶指针,然后存入元素

9.通常元素出栈的顺序是:先取出栈顶元素,然后移动栈顶指针

10.从一个循环队列中删除一个元素,通常的操作是:先取出元素,然后移动队头指针

11.向一个循环队列中插入一个元素,通常的操作是:先存入元素,然后移动队尾指针

12.针对线性链表的基本操作有很多,但其中最基本的4种操作分别为( 插入 ) 、删除、查找和排序。

05年真题

(1) C)程序经调试改错后还应进行再测试

(2) A)顺序存储的有序线性表

(3) C栈是特殊的线性表,只能在一端插入或删除元素

(4) D)一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率

(5) C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则

(6)在软件设计中,不属于过程设计工具的是 A)PDL(过程设计语言) B)PAD图 C)N-S图 D)DFD图

(7) )软件交付使用后还需要进行维护

(8)数据库设计的根本目标是要解决 A)数据共享问题

(9)设有如下关系表:

R S T

A B C A B C A B C

1 1 2 3 1 3 1 1 2

2 2 3 2 2 3

3 1 3

则下列操作中正确的是

A)T=R∩S B)T=R∪S C)T=R×S D)T=R/S

(10)数据库系统的核心是 B)数据库管理系统

(11)Visual FoxPro是一种关系型数据库管理系统,这里关系通常是指

C)表文件(dbf文件)

(12)扩展名为mnx的文件是 D)菜单文件

(13)报表的数据源可以是 A)表或视图

(14)如果添加到项目中的文件标识为“排除”,表示 A)此类文件不是应用程序的一部分

(15)“项目管理器”的“运行”按钮用于执行选定的文件,这些文件可以是 C)查询、表单或程序

(16)允许出现重复字段值的索引是 B)普通索引和惟一索引

(17)以纯文本形式保存设计结果的设计器是 A)查询设计器

(18)以下关于视图的描述正确的是 B)视图保存在数据库文件中

(19)下面有关表间永久联系和关联的描述中,正确的是 B)无论是永久联系还是关联,子表一定有索引

(20)下面关于类、对象、属性和方法的叙述中,错误的是

A)类是对一类相似对象的描述,这些对象具有相同种类的属性和方法

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

C)基于同一个类产生的两个对象可以分别设置自己的属性值D)通过执行不同对象的同名方法,其结果必然是相同的

(21)在下面的Visual FoxPro表达式中,运算结果为逻辑真的是

A)EMPTY(.NULL.) B)LIKE('xy? ', 'xyz') C)AT('xy', 'abcxyz') D)ISNULL(SPACE(0))

(22)依次执行以下命令后的输出结果是

SET DATE TO YMD

SET CENTURY ON

SET CENTURY TO 19 ROLLOVER 10

SET MARK TO "."

? CTOD("49-05-01")

A)49.05.01 B)1949.05.01 C)2049.05.01 D)出错

(23)假设职员表已在当前工作区打开,其当前记录的“姓名”字段值为“张三”(字符型,宽度为6)。在命令窗口输入并执行如下命令:

姓名=姓名-"您好"

? 姓名

那么主窗口中将显示 A)张三 B)张三 您好 C)张三您好 D)出错

(24)有一学生表文件,且通过表设计器已经为该表建立了若干普通索引。其中一个索引的索引表达式为姓名字段,索引名为XM。现假设学生表已经打开,且处于当前工作区中,那么可以将上述索引设置为当前索引的命令是

A)SET INDEX TO 姓名 B)SET INDEX TO XM C)SET ORDER TO 姓名 D)SET ORDER TO XM

(25)当前打开的图书表中有字符型字段“图书号”,要求将图书号以字母A开头的图书记录全部打上删除标记,通常可以使用命令

A)DELETE FOR 图书号="A" B)DELETE WHILE 图书号="A"

C)DELETE FOR 图书号="A*" D)DELETE FOR 图书号 LIKE "A%"

(26)在Visual FoxPro中,要运行查询文件query1.qpr,可以使用命令

A)DO query1 B)DO query1.qpr C)DO QUERY query1 D)RUN query1

(27)下列程序段的输出结果是

ACCEPT TO A

IF A=[123456]

S=0

ENDIF

S=1

? S

RETURN

A)0 B)1 C)由A的值决定 D)程序出错

(28)如果在命令窗口输入并执行命令:“LIST 名称”后在主窗口中显示:

记录号 名称

1 电视机

2 计算机

3 电话线

4 电冰箱

5 电线

假定名称字段为字符型、宽度为6,那么下面程序段的输出结果是

GO 2

SCAN NEXT 4 FOR LEFT(名称,2)="电"

IF RIGHT(名称,2)="线"

LOOP

ENDIF

?? 名称

ENDSCAN

A)电话线 B)电冰箱 C)电冰箱电线 D)电视机电冰箱

第(29)—(35)题使用如下三个表:

职员.DBF:职员号 C(3),姓名 C(6),性别 C(2),组号 N(1),职务 C(10)

客户.DBF:客户号 C(4),客户名 C(36),地址 C(36),所在城市 C(36)

订单.DBF:订单号 C(4),客户号 C(4),职员号 C(3),签订日期 D,金额 N(6.2)

(29)查询金额最大的那10%订单的信息。正确的SQL语句是

A)SELECT * TOP 10 PERCENT FROM 订单 B)SELECT TOP 10% * FROM 订单 ORDER BY 金额

C)SELECT * TOP 10 PERCENT FROM 订单 ORDER BY 金额

D)SELECT TOP 10 PERCENT * FROM 订单 ORDER BY 金额 DESC

(30)查询订单数在3个以上、订单的平均金额在200元以上的职员号。正确的SQL语句是

A)SELECT 职员号 FROM 订单 GROUP BY 职员号 HAVING COUNT(*)>3 AND AVG_金额>200

B)SELECT 职员号 FROM 订单 GROUP BY 职员号 HAVING COUNT(*)>3 AND AVG(金额)>200

C)SELECT 职员号 FROM 订单 GROUP BY 职员号 HAVING COUNT(*)>3 WHERE AVG(金额)>200

D)SELECT 职员号 FROM 订单 GROUP BY 职员号 WHERE COUNT(*)>3 AND AVG_金额>200

(31)显示2005年1月1日后签订的订单,显示订单的订单号、客户名以及签订日期。正确的SQL语句是

A)SELECT 订单号,客户名,签订日期 FROM 订单 JOIN 客户

ON 订单.客户号=客户.客户号 WHERE 签订日期>{^2005-1-1}

B)SELECT 订单号,客户名,签订日期 FROM 订单 JOIN 客户

WHERE 订单.客户号=客户.客户号 AND 签订日期>{^2005-1-1}

C)SELECT 订单号,客户名,签订日期 FROM 订单,客户

WHERE 订单.客户号=客户.客户号 AND 签订日期<{^2005-1-1}

D)SELECT 订单号,客户名,签订日期 FROM 订单,客户

ON 订单.客户号=客户.客户号 AND 签订日期<{^2005-1-1}

(32)显示没有签订任何订单的职员信息(职员号和姓名),正确的SQL语句是

A)SELECT 职员.职员号,姓名 FROM 职员 JOIN 订单

ON 订单.职员号=职员.职员号 GROUP BY 职员.职员号 HAVING COUNT(*)=0

B)SELECT 职员.职员号,姓名 FROM 职员 LEFT JOIN 订单

ON 订单.职员号=职员.职员号 GROUP BY 职员.职员号 HAVING COUNT(*)=0

C)SELECT 职员号,姓名 FROM 职员 WHERE 职员号 NOT IN (SELECT 职员号 FROM 订单)

D)SELECT 职员.职员号,姓名 FROM 职员 WHERE 职员.职员号 <> (SELECT 订单.职员号 FROM 订单)

(33)有以下SQL语句:

SELECT 订单号,签订日期,金额 FROM 订单,职员

WHERE 订单.职员号=职员.职员号 AND 姓名="李二"

与如上语句功能相同的SQL语句是

A)SELECT 订单号,签订日期,金额 FROM 订单

WHERE EXISTS (SELECT * FROM 职员 WHERE 姓名="李二")

B)SELECT 订单号,签订日期,金额 FROM 订单 WHERE

EXISTS (SELECT * FROM 职员 WHERE 职员号=订单.职员号 AND 姓名="李二")

C)SELECT 订单号,签订日期,金额 FROM 订单

WHERE IN (SELECT 职员号 FROM 职员 WHERE 姓名="李二")

D)SELECT 订单号,签订日期,金额 FROM 订单 WHERE

IN (SELECT 职员号 FROM 职员 WHERE 职员号=订单.职员号 AND 姓名="李二")

(34)从订单表中删除客户号为“1001”的订单记录,正确的SQL语句是

A)DROP FROM 订单 WHERE 客户号="1001"

B)DROP FROM 订单 FOR 客户号="1001"

C)DELETE FROM 订单 WHERE 客户号="1001"

D)DELETE FROM 订单 FOR 客户号="1001"

(35)将订单号为“0060”的订单金额改为169元,正确的SQL语句是

A)UPDATE 订单 SET 金额=169 WHERE 订单号="0060"

B)UPDATE 订单 SET 金额 WITH 169 WHERE 订单号="0060"

C)UPDATE FROM 订单 SET 金额=169 WHERE 订单号="0060"

D)UPDATE FROM 订单 SET 金额 WITH 169 WHERE 订单号="0060"

二、填空题(每空2分,共30分)

(1)数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是 :数据库系统。

(2)算法复杂度主要包括时间复杂度和 空间 复杂度。

(3)在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中 驱动模块 的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。

(4)一棵二叉树第六层(根结点为第一层)的结点数最多为 32 个。

(5)数据结构分为逻辑结构和存储结构,循环队列属于 存储或物理 结构。

(6)在Visual FoxPro中,数据库表中不允许有重复记录是通过指定 主索引或候选索引 来实现的。

(7)在Visual FoxPro中,数据库表S中的通用型字段的内容将存储在 FPT 文件中。

(8)在Visual FoxPro中,可以使用 EXIT 语句跳出SCAN … ENDSCAN循环体外执行ENDSCAN后面的语句。

(9)在SQL的SELECT查询中使用 DISTINCT 子句消除查询结果中的重复记录。

(10)在Visual FoxPro中,如果要改变表单上表格对象中当前显示的列数,应设置表格的 COLUMNCOUNT 属性值。

(11)在Visual FoxPro中,使用SQL的SELECT语句将查询结果存储在一个临时表中,应该使用 INTO CURSOR 子句。

(12)在Visual FoxPro中,使用SQL的CREATE TABLE语句建立数据库表时,使用 primary key 子句说明主索引。

(13)在Visual FoxPro中,使用SQL的CREATE TABLE语句建立数据库表时,使用 CHECK子句说明有效性规则(域完整性规则或字段取值范围)。

(14)在SQL的SELECT语句进行分组计算查询时,可以使用 HAVING 子句来去掉不满足条件的分组。

(15)设有s(学号, 姓名, 性别)和sc(学号, 课程号, 成绩)两个表,下面SQL的SELECT语句检索选修的每门课程的成绩都高于或等于85分的学生的学号、姓名和性别。

SELECT 学号, 姓名, 性别 FROM s

WHERE NOT EXIST ( SELECT * FROM sc WHERE sc.学号 = s.学号 AND成绩 < 85 )

(1) 数据的存储结构是指 :数据的逻辑结构在计算机中的表示

(2) 下列关于栈的描述中错误的是

A)栈是先进后出的线性表B)栈只能顺序存储C)栈具有记忆作用D)对栈的插入与删除操作中,不需要改变栈底指针

(3) 对于长度为n的线性表,在最坏的情况下,下列各排序法所对应的比较次数中正确的是 D) 快速排序为n(n-1)/2

(4) 对于长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为 C) n

(5) 下列对于线性链表的描述中正确的是: 存储空间不一定是连续,且各元素的存储顺序是任意的

(6) 下列对软件测试的描述中正确的是: 软件测试的目的是尽可能多地发现程序中的错误

(7) 为了使模块尽可能独立,要求: 模块的内聚程度要尽量高,且各模块间的藕合程度要尽量弱

(8) 下列描述中正确的是 :软件是程序、数据与相关文档的集合

(9) 数据独立性是数据库技术的重要特点之一,所谓数据独立性是指

A) 数据与程序独立存放B) 不同的数据被存放在不同的文件中

C) 不同的数据只能被对应的应用程序所使用D) 以上三种说法都不对

(10) 用树型结构表示实体之间联系的模型是 A) 关系模型 B) 网络模型 C) 层次模型 D) 以上三个都是

(11) 在创建数据库表结构时,给该表指定了主索引,这属于数据完整性中的 :实体完整性

(12) 在创建数据库表结构时,为该表中一些字段建立普通索引,其目的是 :加快数据库表的查询速度

(13) 数据库系统中对数据库进行管理的核心软件是 A) DBMS

(14) 设有两个数据库表,父表和子表之间是一对多的联系,为控制子表和父表的关联,可以设置“参照完整性规则”,为此要求这两个表 :在父表连接字段上建立主索引,在子表连续字段上建立普通索引

(15) 关系运算中的选择运算是 : 从关系中找出满足给定条件的元组的操作

(16) 在指定字段或表达式中不允许出现重复值的索引是: D) 主索引候选索引

(17) 在Visual FoxPro中,以下关于删除记录的描述中,正确的是

A) SQL的DELETE命令在删除数据库表中的记录之前,不需要用USE命令打开表

(18) 在Visual FoxPro中,如果希望跳出SCAN…ENDSCAN循环体、执行ENDSCAN后面的语句,应使用 B) EXIT语句

(19) 打开数据库abc的正确命令是: OPEN DATABASE abc

(20) 在Visual FoxPro中,下列关于表的叙述正确的是: 在数据库表中,能给表中的字段定义有效性规则和默认值

(21) Visual FoxPro的“参照完整性”中“插入规则“包括的选择是 :限制和忽略

(22) 在Visual FoxPro中,关于查询和视图的正确描述是: 查询是一个预先定义好的SQL SELECT语句文件

(23) 在Visual FoxPro中,以下关于视图描述中错误的是

A) 通过视图可以对表进行查询 B) 通过视图可以对表进行更新C) 视图是一个虚表 D) 视图就是一种查询

(24) 使用SQL语句将学生表S中年龄(AGE)大于30岁的记录删除,正确的命令是 B) DELETE FROM S WHERE AGE > 30

(25) 在Visual FoxPro中,使用LOCATE FOR <expL>命令按条件查找记录,当查找到满足条件的第一条记录后,如果还需要查找下一条满足条件的记录,应使用 C) CONTINUE 命令

(26) 在Visual FoxPro中,删除数据库表S的SQL命令是: DROP TABLE S

(27) 下列表达式中,表达式返回结果为的是.F.的是 :“[信息]”$“管理信息系统”

(28) 使用SQL语句向学生表S(SNO,SN,AGE,SEX)中添加一条新记录,字段学号(SNO)、姓名(SN)、性别(SEX)、年龄(AGE)的值分别为0401、王芳、女、18,正确命令是

C) INSERT INTO S(SNO,SN,SEX,AGE)VALUES( 0401 , 王芳 , 女 ,18)

(29) 假设某个表单中有一个命令按钮cmdClose,为了实现当用户单击此按钮时能够关闭该表单的功能,应在该按钮的Click事件中写入语句 :ThisForm.Release

(30) 在SQL的SELECT查询结果中,消除重复记录的方法是:使用DISTINCT子句

(31) 在Visual FoxPro中,以下有关SQL的SELECT语句的叙述中,错误的是

A) SELECT子句中可以包含表中的列和表达式 B) SELECT子句中可以使用别名

C) SELECT子句规定了结果集中的列顺序D) SELECT子句中列的顺序应该与表中列的顺序一致

(32) 下列关于SQL中HAVING子句的描述,错误的是

A) HAVING子句必须与GROUP BY子句同时使用B) HAVING子句与GROUP BY子句无关

C) 使用WHERE子句的同时可以使用HAVING子句D) 使用HAVING子句的作用是限定分组的条件

(33) 在Visual FoxPro中,如果在表之间的联系中设置了参照完整性规则,并在删除规则中选择了“限制”,则当删除父表中的记录时,系统反应是 :若子表中有相关记录,则禁止删除父表中记录

第(34)-(35)题使用如下三个数据库表:

学生表:S(学号,姓名,性别,出生日期,院系) 课程表:C(课程号,课程名,学时)

选课成绩表:SC(学号,课程号,成绩)

在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,其他均为字符型。

(34) 用SQL命令查询选修的每门课程的成绩都高于或等于85分的学生的学号和姓名,正确的命令是

A) SELECT 学号,姓名 FROM S WHERE NOT EXISTS;

(SELECT * FROM SC WHERE SC.学号 = S.学号 AND成绩 < 85)

(35) 用SQL语言检索选修课程在5门以上(含5门)的学生的学号、姓名和平均成绩,并按平均成绩降序排列,正确的命令是: SELECT S.学号,姓名 AVG(成绩)平均成绩 FROM S,SC WHERE S.学号 = SC.学号;

GROUP BY S.学号 HAVING COUNT(*)>=5 ORDER BY 3 DESC

二、填空题( 每空2分,共30分)

(1) 某二叉树中度为2的结点有18个,则该二叉树中有【19】 个叶子结点。

(2) 在面向对象方法中,类的实例称为 【对象】 。

(3) 诊断和改正程序中错误的工作通常称为 【程序调试】 。

(4) 在关系数据库中,把数据表示成二维表,每一个二维表称为 【关系】 。

(5) 问题处理方案的正确而完整的描述称为 【算法】 。

(6) 在奥运会游泳比赛中,一个游泳运动员可以参加多项比赛,一个游泳比赛项目可以有多个运动员参加,游泳运动员与游泳比赛项目两个实体之间的联系是 【多对多】 联系。

(7) 执行命令A=2005/4/2之后,内存变量A的数据类型是 【数值】 型。

(8) 如下程序显示的结果是 【13】 。

s=1

i=0

do while i<8

s=s+i

i=i+2

enddo

?s

(9) 在Visual FoxPro 的中,可以在表设计器中为字段设置默认值的表是 【数据库】 表。

(10) Visual FoxPro 中数据库文件的扩展名(后缀)是 【.DBC】 。

(11)-(13)题使用如下三个数据库表:

金牌榜.DBF 国家代码C(3), 金牌数I, 银牌数I, 铜牌数I

获奖牌情况.DBF 国家代码C(3), 运动员名称C(20), 项目名称C(30), 名次I

国家.DBF 国家代码 C(3), 国家名称C(20)

“金牌榜”表中一个国家一条记录:“获奖牌情况”表中每个项目中的各个名次都有一条记录,名次只取前3名,例如:

国家代码 运动员名称 项目名称 名次

001 刘翔 男子110米栏 1

001 李小鹏 男子双杠 3

002 非尔普斯 游泳男子200米自由泳 3

002 非尔普斯 游泳男子400米个人混合泳 1

001 郭晶晶 女子三米板跳板 1

001 李婷/孙甜甜 网球女子双打 1

(11) 为表“金牌榜”增加一个字段“奖牌总数”,同时为该字段设置有效性规则:奖牌总数>=0,应使用SQL语句 ALTER TABLE金牌榜 【ADD】 奖牌总数I 【CHECK】 奖牌总数>=0

(12) 使用“获奖牌情况”和“国家”两个表查询“中国”所获金牌(名次为1)的数量,应使用SQL语句

SELECT COUNT(*) FROM 国家 INNER JOIN 获奖牌情况 【ON】 国家.国家代码 = 获奖牌情况.国家代码; WHERE 国家.国家名称 = “中国” AND 名次 = 1

(13) 将金牌榜.DBF中新增加的字段奖牌总数设置为金牌数、银牌数、铜牌数三项的和,应使用SQL语句

【UPDATE】 金牌榜 【SET】 奖牌总数 = 金牌总数+银牌数+铜牌数

选择题:

1.DBMS的含义是: A.数据库系统 B.数据库管理系统 C.数据库管理员 D.数据库

2.从关系模式中指定若干个属性组成新的关系的运算称为: A.联接 B.投影 C.选择 D.排序

3.对于“关系”的描述,正确的是:

a 同一个关系中允许有完全相同的元组 b 同一个关系中元组必须按关键字升序存放

c 在一个关系中必须将关键字作为该关系的第一个属性 d 同一个关系中不能出现相同的属性名

4.在表设计器的“字段”选项卡中可以创建的索引是 a.唯一索引 b.候选索引 c.主索引 d.普通索引

5.在程序中不需要用public等命令明确声明和建立,刻直接使用的内存变量

A.局部变量 B.公共变量 C.私有变量 D.全局变量

6.扩展名为dbf的文件是 A.表文件 B. 表单文件 C.数据库文件 D.项目文件

7.下列程序段的输出结果

Clear

store 10 to a

store 20 to b

set udfparms to reference

do 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

8.使用调试器调试第(7)小题的程序,如果想在过程SWAP执行时观察X1的值,可以在其中安置一条命令,程序执行到该命令时,系统将计算X1的值,并将结果在调试输出窗口中显示,这条命令的正确写法是:

A.DEBUGOUT X1 B.DEBUG X1 C.OUT X1 D.TEST X1

(9)—(11)使用下图:

9.如果在运行表单时,要使表单的标题显示“登录窗口”,则可以在Form1的Load事件中加入语句

A)THISFORM.CAPTION="登录窗口" B)FORM1.CAPTION="登录窗口"

C)="登录窗口" D)="登录窗口"

10.如果想在运行表单时,向Text2中输入字符,回显字符显示的是“*”是,则可以在Form1的Init事件中加入语句

A) FORM1.TEXT2.PASSWORDCHAR="*" B)FORM1.TEXT2.PASSWORD="*"

C)THISFORM.TEXT2.PASSWORD="*" D)THISFORM.TEXT2.PASSWORDCHAR="*"

11.假设用户名和口令存储在自由表“口令表”中,当用户输入用户名和口令并单击“登录”按钮时,若用户名输入错误,则提示“用户名错误”;若用户名输入正确,而口令输入错误,则提示“口令错误”。若命令按钮“登录”的Click事件中的代码如下:

USE 口令表

GO TOP

flag =0

DO WHILE .not.EOF()

IF Alltrim(用户名)==Alltrim(Thisform.Text1.value)

If Alltrim(口令)==Alltrim(Thisform.Text2.value)

WAIT"欢迎使用"WINDOW TIMEOUT2

ELSE

WAIT"口令错误"WINDOW TIMEOUT2

ENDIF

flag=1

EXIT

ENDIF

SKIP

ENDDO

IF

——————

WAIT"用户名错误"WINDOW TIMEOUT2

ENDIF

则在横线处应填写的代码是

A)flag=-1 B)flag=0 C)flag=1 D)flag=2

12. 设X=10, 语句 ?VARTYPE ("X")的输出结果是

A. N B. C C. 10 D. X

13.表达式LEN(SPACE(0))的运算结果是

A. 。NULL。 B. 1 C. 0 D. " "

14题为表单建立了快捷菜单MYMENU,调用快捷菜单的命令代码DO mymenu.mpr WITH THIS

应该放在表单的那个事件中?A.Desory B.Init 事件 C.load 事件 D.RIGHTCLICK事件

15.为“学院”表增加一个字段“教师人数”的SQL语句是

A)CHANGE TABLE学院ADD教师人数I B)ALTER STRU学院ADD教师人数I

C)ALTER TABLE学院ADD教师人数I D)CHANGE TABLE学院INSERT教师人数I

16.将“欧阳秀”的工资增加200元SQL语句是

A)REPLACE教师WITH工资=工资+200 WHERE 姓名=“欧阳秀”

B)UPDATE教师SET工资=工资+200 WHEN 姓名=“欧阳秀”

C)UPDATE教师工资WITH工资+200 WHERE姓名=“欧阳秀”

D)UPDATE教师SET 工资=工资+200 WHERE姓名=“欧阳秀”

17.下列程序段的输出结果是CLOSE DATA

a=0

USE教师GO TOP

DO WHILE .NOT. EOF()

IF主讲课程="数据结构".OR.主讲课程="C语言"

a=a+1

ENDIF

SKIP

ENDDO

?a

A)4 B)5 C)6 D)7

18.有SQL语句:SELECT * FROM教师WHERE NOT(工资>3000 OR 工资<2000)

与如上语句等价的SQL语句是A)SELECT*FROM 教师 HWERE 工资 BETWEEN 2000 AND 3000

B)SELECT*FROM 教师 HWERE 工资 >2000 AND 工资<3000

C)SELECT*FROM 教师 HWERE 工资>2000 OR 工资<3000

D)SELECT*FROM 教师 HWERE 工资<=2000 AND 工资>=3000

19.为“教师”表的职工号字段添加有效性规则:职工号的最左边三位字符是110,正确的SQL语句是

A)CHANGE TABLE教师ALTER职工号SET CHECK LEFT(职工号,3)="110"

B)ALTERTABLE教师ALTER职工号SET CHECK LEFT(职工号,3)="110"

C)ALTER TABLE教师ALTER职工号CHECK LEFT(职工号,3)="110"

D)CHANGE TABLE教师ALTER职工号SET CHECK OCCURS(职工号,3)="110"

20.有SQL语句SELECT DISTINCT系号FROM教师WHERE工资><=;

ALL (SELECT工资FROM教师WHERE系号="02")该语句的执行结果是系号

A)"01"和"02" B)"01"和"03" C)"01"和"04" D)"02"和"03"

21.建立一个视图salary,该视图包括了系号和(该系的)平均工资两个字段,正确的SQL语句是:

A)CREATE VIEW salary AS系号,SVG(工资)AS平均工资FROM教师GROUP BY系号

B)CREATE VIEW salary AS SELECT系号,AVG(工资)AS平均工资FROM教师GROUP BY系名

C)CREATE VIEW Salary SELECT系号,AVG(工资)AS平均工资FROM教师GROUP BY系号

D)CREATE VIEW salary AS SELECT系号,AVG(工资)AS平均工资FROM教师GROUP BY系号

22.删除视图salary的命令是

A)DROP salary VIEW B)DROP VIEW salary C)DELETE salary VIEW D)DELETE salary

23.有SQL语句:SELECT主讲课程,COUNT(*)FROM教师GROUP BY主讲课程该语句执行结果含有记录个数是 A)3 B)4 C)5 D)6

24.有SQL语句SELECT COUNT(*)AS人数,主讲课程FROM教师 GROUPBY主讲课程 ORDER BY人数DESC 该语句执行结果的第一条记录的内容是 A) 4 数据结构 B)3 操作系统 C) 2 数据库 D)1 网络技术

25.有SQL语句:SELECT学院,系名,COUNT(*)AS教师人数FROM教师,学院;

WHERE教师.系号=学院.系号GROUP BY学院.系名与如上语句等价的SQL语句是:

A)SELECT学院.系名,COUNT(*)AS教师人数; B)SELECT学院.系名,COUNT(*)AS教师人数;

FROM教师INNER JOIN学院; FROM 教师INNER JOIN学院;

教师.系号= 学院.系号GROUP BY学院. 系名 ON 系号 GROUP BY学院.系名

C)SELECT学院.系名,COUNT(*) AS教师人数; D)SELECT 学院. 系名,COUNT(*)AS教师人数;

FROM教师INNER JOIN学院; FROM教师INNER JOIN学院;

ON 教师.系号=学院.系号GROUP BY学院. 系名 ON教师.系号 = 学院.系号

26. 有SQL语句:SELECT DISTINCT系号FROM教师WHERE 工资>=;

ALL (SELECT 工资FROM教师WHERE系号="02")

与如上语句等价的SQL语句是

A)SELECT DISTINCT系号FROM教师WHERE工资>= (SELECT MAX(工资)FROM教师WHERE 系号="02")

B)SELECT DISTINCT系号FROM教师WHERE工资>= (SELECT MIN(工资)FROM教师WHERE 系号="02")

C)SELECT DISTINCT系号FROM教师WHERE工资>=ANY(SELECT(工资)FROM教师WHERE 系号="02")

D)SELECT DISTINCT系号FROM教师WHERE工资>=SOME (SELECT(工资)FROM教师WHERE 系号="02") 27题使用SQL语句增加字段的有效性规则,是为了能保证数据的

A.实体完整性 B.表完整性 C.参照完整性 D.域完整性

28题向项目中添加表单,应该使用项目管理器的 A. “代吗“选项卡 B “类“选项卡 C."数据“选项卡 D"文当“选项卡

29题有关参照完整性的删除规定,正确的描述是

A 如果删除规则选择的是“限制“,则当用户删除父表中的记录时,系统将自动删除子表中的所有相关记录。

B 如果删除规则选择的是“级联“,则当用户删除父表中的记录时,系统将禁止删除子表相关的父表中的记录。

C 如果删除规则选择的是“忽略“,则当用户删除父表中的记录时,系统不负责做任何工作。

D 上面三种说法都不对

30题有关查询设计器,正确的描述是:

A “联接“选项卡与SQL语句的GROUP BY 短语对应 B “筛选“选项卡与SQL语句的HAVING 短语对应

C “排序依据"选项卡与SQL语句的ORDER BY 短语对应 D "分组依据“ 选项卡与SQL语句的JOIN ON 短语对应

31题使用“调试器“调试程序时,用于显示正在调试的程序文件的窗口是:

A局部窗口 B跟踪窗口 C调用堆栈窗口 D监视窗口

32 让控件获得焦点,使其成为活动对象的方法是 A.SHOW B. RELEASE C.SETFOCUS D.GOTFOCUS 33下面关于表单若干常用事件的描述中,正确的是

A 释放表单时,UNLOAD事件在DEXTROY事件之前引发 B 运行表单时,INIT事件在LOAD 事件之前引发

C 单击表单的标题栏,引发表单的CLICK事件 D 上面的说法都不对

34如果文本框的INPUTMASK属性值是#99999,允许在文本况钟输入的是

A.+12345 B.abc123 C.$12345 D.abcdef

35连编应用程序不能生成的文件是 A. APP文件 B. EXE文件 C. DLL文件 D. PRG 文件

二、填空题目

1. 在关系模型中,“关系中不允许出现相同元组”的约束是通过______实现的。

2. 在visual foxpro中项目文件的扩展名是______

3. 是数据库表变为自由表的命令是_____TABLE

4. 在visual foxpro的查询设计器中______选项卡对应的SQL短语是WHERE

5. 在visual foxpro中,BUILD____命令连编生成的程序可以脱离开visual

foxpro在WINDOWS环境下运行。

6. 当删除父表中的记录时,若子表中的所有相关记录也能自动删除,则相应的参照完整性的删除规则为____

7. 在visual foxpro中释放和关闭表单的方法是_____.

8. 为了从用户菜单返回到默认的系统菜单应该使用命令SET______ TO DEFAULT。

9. 在VISUAL FOXPRO 的表单设计中,为表格控件指定数据源的属性是_______.

10 表示“1962年10月27日”的日期常量应改写为______

11. 为“学生”表增加一个“平均成绩”字段的正确命令是 ALTER TABLE 学生 ADD ______平均成绩 N(5,2)

12. 在将设计好的表单存盘时,系统生成扩展名分别是SCX和_____的两个文件。

13. 在VISUAL FOXPRO 中为表单指定表题的属性是_____

14. 在VISUAL FOXPRO 中表单的LOAD事件发生在INIT事件之______.

15. 在VISUAL FOXPRO 中如下程序的运行结果(即执行命令DO main后)是_____

*程序文件名:main.prg

SET TALK OFF

CLOSE ALL

CLEAR ALL

mX="Visual Foxpro"

mY="二级"

DO s1

?mY+mX

RETURN

*子程序文件名:s1.prg

PROCEDURE s1

LOCAL mX

mX="Visual FoxPro DBMS 考试"

mY="计算机等级"+mY

RETUREN

参考答案

选择题

1-5 B B D D C 6-10 A B A A D 11-15 B B C D C 16-20 D C A B A 21-25 D B D A C 26-30 A D D C C 31-35 B C D A D 填空题

1. 主关键字或候选关键字(或:主索引或候选索引) 2. PJX(或.PJX) 3. Remove 4. 筛选 5. EXE

6. 级联 7. Release方法 8. SysMenu 9. RecordSource 10 {^1962-10-27} 11. Column

12. SCT 13. Caption 14. 前 15. 计算机等级二级Visual FoxPro

03年真题

选择题((1)~(35)每小题2分,共70分)

下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)对于现实世界中事物的特征,在实体-联系模型中使用 A)属性描述 B)关键字描述 C)二维表格描述 D)实体描述

(2)把实体-联系模型转换为关系模型时,实体之间多对多联系在关系模型中是通过

A)建立新的属性来实现 B)建立新的关键字来实现 C)建立新的关系来实现 D)建立新的实体来实现

(3)专门的关系运算不包括下列中的 A)联接运算 B)选择运算 C)投影运算 D)交运算

(4)对关系S和关系R进行集合运算,结果中既包含S中元组也包含R中元组,这种集合运算称为

A)并运算 B)交运算 C)差运算 D)积运算

(5)关于Visual FoxPro的变量,下面说法中正确的是

A)使用一个简单变量之前要先声明或定义 B)数组中各数组元素的数据类型可以不同

C)定义数组以后,系统为数组的每个数组元素赋以数值0 D)数组元素的下标下限是0

(6)在下面的表达式中,运算结果为逻辑真的是

A)EMPTY(.NULL.) B)LIKE("edit","edi?") C)AT("a","123abc") D)EMPTY(SPACE(10))

(7)Visual FoxPro内存变量的数据类型不包括 A)数值型 B)货币型 C)备注型 D)逻辑型

(8)为了设置两个表之间的数据参照完整性,要求这两个表是

A)同一个数据库中的两个表 B)两个自由表 C)一个自由表和一个数据库表 D)没有限制

(9)数据库表可以设置字段有效性规则,字段有效性规则属于域完整性范畴,其中的"规则"是一个

A)逻辑表达式 B)字符表达式 C)数值表达式 D)日期表达式

(10)通过指定字段的数据类型和宽度来限制该字段的取值范围,这属于数据完整性中的

A)参照完整性 B)实体完整性 C)域完整性 D)字段完整性

(11)用命令"INDEX on 姓名 TAG index_name "建立索引,其索引类型是

A)主索引 B)候选索引 C)普通索引 D)惟一索引

(12)执行命令"INDEX on 姓名 TAG index_name "建立索引后,下列叙述错误的是

A)此命令建立的索引是当前有效索引 B)此命令所建立的索引将保存在.idx文件中

C)表中记录按索引表达式升序排序 D)此命令的索引表达式是"姓名",索引名是"index_name"

(13)查询订购单号(字符型,长度为4)尾字符是"1"的错误命令是

A)SELECT * FROM 订单 WHERE SUBSTR(订购单号,4)="1"

B)SELECT * FROM 订单 WHERE SUBSTR(订购单号,4,1)="1"

C)SELECT * FROM 订单 WHERE "1"$订购单号 D)SELECT * FROM 订单 WHERE RIGHT(订购单号,1)="1"

(14)以下关于空值(NULL)叙述正确的是

A)空值等同于空字符串 B)空值表示字段或变量还没有确定值 C)VFP不支持空值 D)空值等同于数值0

(15)两表之间"临时性"联系称为关联,在两个表之间的关联已经建立的情况下,有关"关联"的正确叙述是

A)建立关联的两个表一定在同一个数据库中B)两表之间"临时性"联系是建立在两表之间"永久性"联系基础之上的

C)当父表记录指针移动时,子表记录指针按一定的规则跟随移动 D)当关闭父表时,子表自动被关闭

(16)在SQL语句中,与表达式"工资 BETWEEN 1210 AND 1240"功能相同的表达式是

A)工资>=1210 AND 工资<=1240 B)工资>1210 AND 工资<1240

C)工资<=1210 AND 工资>1240 D)工资>=1210 OR 工资<=1240

(17)在SQL语句中,与表达式"仓库号 NOT IN("wh1","wh2")"功能相同的表达式是

A)仓库号="wh1" AND 仓库号="wh2" B)仓库号!="wh1" OR 仓库号# "wh2"

C)仓库号< >"wh1" OR 仓库号!="wh2" D)仓库号!="wh1" AND 仓库号!="wh2"

(18)打开表并设置当前有效索引(相关索引已建立)的正确命令是

A)ORDER student IN 2 INDEX 学号 B)USE student IN 2 ORDER 学号

C)INDEX 学号 ORDER student D)USE student IN 2

(19)查询设计器中"联接"选项卡对应的SQL短语是

A)WHERE B)JOIN C)SET D)ORDER BY

(20)在SQL SELECT语句中用于实现关系的选择运算的短语是

A)FOR B)WHILE C)WHERE D)CONDITION

(21)执行下列一组命令之后,选择"职工"表所在工作区的错误命令是

CLOSE ALL

USE 仓库 IN 0

USE 职工 IN 0

A)SELECT 职工 B)SELECT 0 C)SELECT 2 D)SELECT B

(22)在Visual FoxPro中有如下程序:

*程序名:TEST.PRG

*调用方法: DO TEST

SET TALK OFF

CLOSE ALL

CLEAR ALL

mX="Visual FoxPro"

mY="二级"

DO SUB1 WITH mX

?mY+mX

RETURN *子程序:SUB1.PRG PROCEDURE SUB1 PARAMETERS mX1 LOCAL mX mX=" Visual FoxPro DBMS 考试" mY="计算机等级"+mY RETURN 执行命令DO TEST后,屏幕的显示结果为

A)二级Visual FoxPro B)计算机等级二级Visual FoxPro DBMS 考试

C)二级Visual FoxPro DBMS 考试 D)计算机等级二级Visual FoxPro

(23)有关连编应用程序,下面的描述正确的是

A)项目连编以后应将主文件视做只读文件 B)一个项目中可以有多个主文件 C)数据库文件可以被指定为主文件

D)在项目管理器中文件名左侧带有符号?的文件在项目连编以后是只读文件

(24)新创建的表单默认标题为Form1,为了修改表单的标题,应设置表单的

A)Name属性 B)Caption属性 C)Closable属性 D)AlwaysOnTop属性

(25)有关控件对象的Click事件的正确叙述是

A用鼠标双击对象时引发B用鼠标单击对象时引发C用鼠标右键单击对象时引发D用鼠标右键双击对象时引发

(26)关闭当前表单的程序代码是ThisForm.Release,其中的Release是表单对象的

A)标题 B)属性 C)事件 D)方法

(27)以下叙述与表单数据环境有关,其中正确的是

A)当表单运行时,数据环境中的表处于只读状态,只能显示不能修改

B)当表单关闭时,不能自动关闭数据环境中的表

C)当表单运行时,自动打开数据环境中的表 D)当表单运行时,与数据环境中的表无关

(29)Visual FoxPro的报表文件.FRX中保存的是

A)打印报表的预览格式 B)已经生成的完整报表 C)报表的格式和数据 D)报表设计格式的定义

(30)在DO WHILE … ENDDO循环结构中,EXIT命令的作用是

A)退出过程,返回程序开始处 B)转移到DO WHILE语句行,开始下一个判断和循环

C)终止循环,将控制转移到本循环结构ENDDO后面的第一条语句继续执行 D)终止程序执行

(31)一条没有指明去向的SQL SELECT 语句执行之后,会把查询结果显示在屏幕上,要退出这个查询窗口,应该按的键是 A)ALT B)DELETE C)ESC D)RETURN

第(32)-(35)题使用如下三个表:

学生.DBF:学号 C(8) ,姓名 C(12),性别 C(2),出生日期 D,院系 C(8)

课程.DBF:课程编号 C(4) ,课程名称 C(10) , 开课院系C(8)

学生成绩.DBF:学号 C(8) ,课程编号 C(4) , 成绩 I

(32)查询每门课程的最高分,要求得到的信息包括课程名称和分数。正确的命令是

A)SELECT 课程名称, SUM(成绩) AS 分数 FROM 课程,学生成绩 ;

WHERE 课程.课程编号=学生成绩.课程编号 ;

GROUP BY 课程名称

B)SELECT 课程名称, MAX(成绩) 分数 FROM 课程, 学生成绩 ;

WHERE 课程.课程编号=学生成绩.课程编号 ;

GROUP BY 课程名称

C)SELECT 课程名称, SUM(成绩) 分数 FROM 课程, 学生成绩 ;

WHERE 课程.课程编号=学生成绩.课程编号 ;

GROUP BY 课程.课程编号

D)SELECT 课程名称, MAX(成绩) AS 分数 FROM 课程, 学生成绩 ;

WHERE 课程.课程编号=学生成绩.课程编号 ;

GROUP BY 课程编号

(33)统计只有2名以下(含2名)学生选修的课程情况,统计结果中的信息包括课程名称、开课院系和选修人数,并按选课人数排序。正确的命令是

A)SELECT 课程名称,开课院系,COUNT(课程编号) AS 选修人数;

FROM 学生成绩,课程 WHERE 课程.课程编号=学生成绩.课程编号 ;

GROUP BY 学生成绩.课程编号 HAVING COUNT(*)<=2;

ORDER BY COUNT(课程编号)

B)SELECT 课程名称,开课院系,COUNT(学号) 选修人数;

FROM 学生成绩,课程 WHERE 课程.课程编号=学生成绩.课程编号 ;

GROUP BY 学生成绩.学号 HAVING COUNT(*)<=2;

ORDER BY COUNT(学号)

C)SELECT 课程名称,开课院系,COUNT(学号) AS 选修人数;

FROM 学生成绩,课程 WHERE 课程.课程编号=学生成绩.课程编号 ;

GROUP BY 课程名称 HAVING COUNT(学号)<=2;

ORDER BY 选修人数

D)SELECT 课程名称,开课院系,COUNT(学号) AS 选修人数;

本文来源:https://www.bwwdw.com/article/ivxe.html

Top