2010年9月计算机等级考试二级VF笔试真题试题及详解答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2010年9月计算机二级VFP笔试试题
这一套题不会的话:就上这个网站看一下讲解:
/v/b/38500069-1393879097.html
希望所有做完这些题的同学都能顺利通过。
2011.3.6号
一、选择题(每小题2分,共70分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。
请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
(1)下列叙述中正确的是B
A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的
B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构
C)线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构
D)上述三种说法都不对
(2)下列叙述中正确的是C
A)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化
B)在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化
C)在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化
D)上述三种说法都不对
(3)软件测试的目的是D
A)评估软件可靠性
B)发现并改正程序中的错误
C)改正程序中的错误
D)发现程序中的错误
(4)下面描述中,不属于软件危机表现的是A
A)软件过程不规范
B)软件开发生产率低
C)软件质量难以控制
D)软件成本不断提高
(5)软件生命周期是指A
A)软件产品从提出、实现、使用维护到停止使用退役的过程
B)软件从需求分析、设计、实现到测试完成的过程
C)软件的开发过程
D)软件的运行维护过程
(6)面向对象方法中,继承是指D
A)一组对象所具有的相似性质
B)一个对象具有另一个对象的性质
C)各对象之间的共同性质
D)类之间共享属性和操作的机制
(7)层次型、网状型和关系型数据库划分原则是D
A)记录长度一
B)文件的大小
C)联系的复杂程度
D)数据之间的联系方式
(8)一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员、与实体计算机之间的联系是c
A)一对一
B)一对多
C)多对多
D)多对一
(9)数据库设计中反映用户对数据要求的模式是C
A)内模式
B)概念模式
C)外模式
D)设计模式
(10)有三个关系R、S和T如下:A
则由关系R和S得到关系T的操作是
A)自然连接
B)交
C)投影
D)并
(11)在Visual FoxPro中,要想将日期型或日期时间型数据中的年份用4位数字显示,应A
当使用一设置命令
A)SET CEN TURY ON
B)SET CENTURY TO 4
C)SET YEAR TO 4
D)SET YAER TO yyyy
(12)设A=[6*8-2〕、B=6*8-2, C="6*8-2",属于合法表达式的是C
A)A+B
B)B+C
C)A-C
D)C-B
(13)假设在数据库表的表设计器中,字符型字段“性别”己被选中,正确的有效性规则设置是D
A)=”男".OR."女”
B)性别二”男”.oR.”女”
C)$‟‟男女”
D)性别$“男女"
(14)在当前打开的表中,显示“书名”以“计算机”打头的所有图书,正确的命令是:A A)list for书名=”计算*"
B)list for书名=”计算机”
C)list for书名="计算%"
D)list where书名="计算机"
(15)连续执行以下命令,最后一条命令的输出结果是C
SET EXACT OFF
a="北京”
b=(a=“北京交通”).‟
?b
A)北京
B)北京交通
C).F.
D)出错
(16)设x="123",y=123,k="y",表达式x+&k的值是D
A)123123
B)246
C)123y
D )数据类型不匹配
(17)运算结果不是2010的表达式是C
A)int(2010.9)
B)round(2010.1,0)
C)c eiling(2010.1)
D)floor(2010.9)
(18)在建立表间一对多的永久联系时,主表的索引类型必须是A
A)主索引或候选索引
B)主索引、候选索引或唯一索引
C)主索引、候选索引、唯一索引或普通索引
D)可以不建立索引
(19)在表设计器中设置的索引包含在C
A)独立索引文件中
B)唯一索引文件中
C)结构复合索引文件中
D)非结构复合索引文件中
(20)假设表“学生.dbf”己在某个工作区打开,且取别名为student。
选择“学生”表所在工作区为当前工作区的命令是D
A)SELECT 0
B)USE学生
C)SELECT学生
D)SELECT student
(21)删除视图myview的命令是C
A)DELETE myview
B)DELETE VIEW myview
C)DROP VIEW myview
D)REMOVE VIEW myview
(22)下面关于列表框和组合框的陈述中,正确的是A
A)列表框可以设置成多重选择,而组合框不能
B)组合框可以设置成多重选择,而列表框不能
C)列表框和组合框都可以设置成多重选择
D)列表框和组合框都不能设置成多重选择
(23)在表单设计器环境中,为表单添加一选项按钮组:男O女。
默认情况下,第一个选项按钮“男”为选中状态,此时该选项按钮组的Value属性值为B
A)0 B)1 C)"男" D).T.
(24)在Visual Foxpro中,属于命令按钮属性的是D
A)Parent B)This
C)ThisForm D)Click
(25)在Visual Foxpro中,可视类库文件的扩展名是C
A).dbf B).scx C).vcx D).dbc
(26)为了在报表中打印当前时间,应该在适当区域插入一个D
A)标签控件B)文本框
C)表达式D)域控件
(27)在菜单设计中,可以在定义菜单名称时为菜单项指定一个访问键。
指定访问键为“x"的菜单项名称定义是C
A)综合查询(\>X)B)综合查询(/>x)
C)综合查询(\<X)D)综合查询(/<X)
(28)假设新建了一个程序文件myProc.prg(不存在同名的.exe, .app和.fxp文件),然后在命令窗口输入命令DO myProc,执行该程序并获得正常的结果。
现在用命令ERASE myProc.prg删除该程序文件,然后再次执行命令DO myProc,产生的结果是B A)出错(找不到文件)
B)与第一次执行的结果相同
C)系统打开“运行”对话框,要求指定文件
D)以上都不对
(29)以下关于视图描述错误的是:B
A)只有在数据库中可以建立视图
B)视图定义保存在视图文件中
C)从用户查询的角度视图和表一样
D)视图物理上不包括数据
(30)关闭释放表单的方法是:C
A)shut
B)closeForm
C)release
D)close
(31)-(35 )题使用如下数据表:
学生.DBF:学号(C,8),性名(C,6),性别(C,2)
选课.DBF:学号(C,8),课程号(C,3),成绩(N,3)
(31)从“选课”表中检索成绩大于等于60并且小于90的记录信息,正确的SQL命令是A
A)SELECT*FROM选课WHERE成绩BETWEEN 60 AND 89
B)SELECT*FROM选课WHERE成绩BETWEEN 60 TO 89
C)SELECT*FROM选课WHERE成绩BETWEEN 60 AND 90
D)SELECT*FROM选课WHERE成绩BETWEEN 60 TO 90
(32)检索还未确定成绩的学生选课信息,正确的SQL命令是C
A)SELECT学生.学号,姓名,选课.课程号FROM学生JOIN选课
WHERE学生.学号=选课.学号AND选课.成绩IS NULL
B)SELECT学生.学号,姓名,选课.课程号FROM学生JOIN选课
WHERE学生.学号=选课.学号AND选课.成绩=NULL
C)SELECT学生.学号,姓名,选课.课程号FROM学生JOIN选课
ON学生.学号=选课.学号WHERE选课.成绩IS NULL
D)SELECT学生.学号,姓名,选课.课程号FROM学生JOIN选课
ON学生.学号=选课.学号WHERE选课.成绩=NULL
(33)假设所有的选课成绩都已确定。
显示“101”号课程成绩中最高的10%记录信息,正D
确的SQL命令是
A)SELECT*TOP 10 FROM选课ORDER BY成绩WHERE课程号="101”
B)SELECT*PERCENT 10 FROM选课ORDER BY成绩DESC
WHERE课程号=”101”
C)SELECT*TOP 10 PERCENT FROM选课ORDER BY成绩
WHERE课程号="101”
D)SELECT*TOP 10 PERCENT FROM选课ORDER BY成绩DESC
WHERE课程号="101”
(34)假设所有学生都己选课,所有的选课成绩都己确定。
检索所有选课成绩都在90分以B
上(含)的学生信息,正确的SQL命令是
A)SELECT*FROM学生WHERE学号IN (SELECT学号FROM选课WHERE成绩> =90)
B)SELECT*FROM学生WHERE学号NOT IN (SELECT学号FROM选课
C)WHERE成绩<90)C)SELECT…FROM学生WHERE学号!=ANY (SELECT学号FROM选课WHERE成绩<90)
D)SELECT* FROM学生WHERE学号一ANY (SELECT学号FROM选课WHERE 成绩>=90)
(35)为“选课”表增加一个“等级”字段,其类型为C、宽度为2,正确的SQL命令是C A)ALTER TABLE选课ADD FIELD等级C(2)
B)ALTER TABLE选课ALTER FIELD等级C(2)
C)ALTER TABLE选课ADD等级C(2)
D)ALTER TABLE选课ALTER等级C(2)
二、填空题(每空2分,共30分)
请将每一个空的正确答案写在答题卡【1】-【15】序号的横线上,答在试卷上不得分。
注意:以命令关键字填空的必须拼写完整。
(1)一个栈的初始状态为空。
首先将元素5,4,3,2,1 依次入栈,然后退栈一次,再将元素A,B,C,D依次入栈,之后将所有元素全部退栈,则所有元素退栈(包括中间退栈的元素)的顺序为__【1】_12345DCBA_。
(2)在长度为n的线性表中,寻找最大项至少需要比较___【2】___n次。
(3)一棵二叉树有10个度为1的结点,7个度为2的结点,则该二叉树共有__【3】2 5___个
结点。
(4)仅由顺序、选择(分支)和重复(循环)结构构成的程序是_【4】结构化__程序。
(5)数据库设计的四个阶段是:需求分析,概念设计,逻辑设计和_【5】_物理设计。
(6)Visual Foxpro索引文件不改变表中记录的__物理【6】__顺序。
(7)表达式score<=100 AND score>=0的数据类型是_【7】逻辑型_。
(8)A=10
B=20
?IF(A>B,"A大于即B"A不大于B")
执行上述程序段,显示的结果是__【8】A不大于B_
(9)参照完整性规则包括更新规则、删除规则和__【9】插入__规则。
(10)如果文本框中只能输入数字和正负号,需要设置文本框的_【10】_InputMask_
属性。
(11)在SQL Select语句中使用Group By进行分组查询时,如果要求分组满足指定条件,则需要使用_【11】having_子句来限定分组。
(12)预览报表myreport的命令是REPORT FORM myreport_【12】preview_。
(13)将"学生"表中学号左4位为"2010"的记录存储到新表new中的命令是SELECT*F ROM学生WHEREE_【13】_left(学号,4)_="2010"_【14】into__DBF new
(14)将“学生”表中的学号字段的宽度由原来的10改为12(字符型),应使用的命令是:ALTER TABLE学生__【15】_alter 学号C(12)_。
一、选择ACDCA BDCCA ACDBC DCACD CABDC DCBBC ACDBC
二、填空【1】DCBA2345【2】N【3】25【4】结构化【5】详细设计【6】存储结构【7】逻辑型【8】A不大于B【9】插入【10】INPUTMASK 【11】HAVING【12】PREVIEW【13】LEFT(学号,4)【14】INTO【15】ALTER 学号C(12)
一、选择题
(1)答案:(C)解析:算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。
所谓算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度一般是指执行这个算法所需要的内存空间。
(2)答案:(B)解析:链式存储结构克服了顺序存储结构的缺点:它的结点空间可以动态申请和释放;它的数据元素的逻辑次序靠结点的指针来指示,不需要移动数据元素。
故链式存储结构下的线性表便于插入和删除操作。
(3)答案:(B)解析:栈操作原则上“后进先出”,栈底至栈顶依次存放元素A、B、C、D,则表明这4个元素中D是最后进栈,B、C处于中间,A最早进栈。
所以出栈时一定是先出D,再出C,最后出A。
(4)答案:(A)解析:从平均时间性能而言,快速排序最佳,其所需时间最少,但快速排序在最坏情况下的时间性能不如堆排序和归并排序。
当序列中的记录基本有序或元素个数较少时,冒泡排序和简单选择排序为最佳排序方法,故本题答案应该为选项A)。
(5)答案:(D)解析:滥用GOTO 语句将使程序流程无规律,可读性差,因此A)不选;注解行有利于对程序的理解,不应减少或取消,B)也不选;程序的长短要依照实际情况而论,而不是越短越好,C)也不选。
(6)答案:(D)解析:软件工程包括3个要素,即方法、工具和过程。
方法是完成软件工程项目的技术手段;工具支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。
(7)答案:(A)解析:软件的白盒测试方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。
(8)答案:(C)解析:关系模型较之格式化模型(网状模型和层次模型)有以下方面的优点,即数据结构比较简单、具有很高的数据独立性、可以直接处理多对多的联系,以及有坚实的理论基础。
(9)答案:(C)解析:数据库(DataBase,简称DB)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。
数据库中的数据具有“集成”、“共享”之特点。
(10)答案:(C)解析:数据模型所描述的内容有3个部分,它们是数据结构、数据操作和数据约束。
其中,数据模型中的数据结构主要描述数据的类型、内容、性质,以及数据库的联系等;数据操作主要是描述在相应数据结构上的操作类型与操作方式。
(11)答案:(B)解析: C程序是由函数构成的。
一个C源程序至少包括一个main函数,也可以包含一个main函数和若干个其他函数。
因此,函数是C程序的基本单位,被调用的函数可以是系统提供的库函数,也可以是用户根据需要自己编制设计的函数。
(12)答案:(C)解析:在C语言中,实数有两种形式表示,即十进制数形式和指数形式,在指数形式中e3,2.1e3.5,.e3,e等都是不合法的指数形式。
再如123e3或123E3都代表123乘以10的3次方。
注意,字母e的前面必须有数字,且e的后面必须是整数。
(13)答案:(B)解析: t=1是将t赋值为1,所以循环控制表达式的值为1,而判断t 是否等于1时的语句为t==1。
注意“=”与“==”的用法。
(14)答案:(C)解析:选项A)中,赋值表达式左边应该是一个变量,而“a b=b ”中赋值号左边是一个表达式;选项B)中,取余运算符“%”两侧应都是整型数据,而“((int)a b)”是float类型;选项C)中,“%”两侧都是整型数据,所以正确;选项D)最后有一个分号,所以不是表达式,而是一条语句。
(15)答案:(C)解析:由于在switch语句中,没有break语句,所以当变量i的值等于case后面的常量表达式的值时,将执行此case后面的所有switch语句。
(16)答案:(B)解析:本题中,“!”表示逻辑非运算符,逻辑非运算符比等于运算符的优先级低。
(17)答案:(C)解析:选项A)中定义函数时,形参的类型说明应该放在形参表列内说明。
老版本C语言中,对形参类型的声明是放在函数定义的第2行,也就是不在第1行的括号内指定形参的类型,而在括号外单独指定。
选项B)中return后面的值可以是一个表达式。
选项D)中实参与形参的类型应相同或赋值兼容。
如果实参为整型而形参为实型,或者相反,则按不同类型数值的赋值规则进行转换,以形参类型为准。
(18)答案:(D)解析: C语言在函数中说明的变量为局部变量,只在函数内起作用但不会影响到其他函数。
所以在不同的函数中使用相同的函数名不代表是同一函数。
在函数定义时声明的参数只在函数内部起作用,是函数的局部变量。
在一个函数中定义的变量是这个函数的局部变量,所以只在这个函数内起作用。
复合语句中定义的变量其作用域是这个复合语句,不会扩大到整个函数。
(19)答案:(A)解析:该题是if语句的嵌套,else总是与它上面最近的if配对。
因为a《 p》
(20)答案:(D)解析:本题考查数组指针的应用。
选项D)第一层括号中为数组a中第i项元素的值,外面再加指针运算符没有意义。
(21)答案:(C)解析:p=&a〔3〕将指针指向数组a的第4个元素,p〔5〕指向数组a
的第9个元素,而a〔8〕=9,所以b=9。
(22)答案:(D)解析:定义一个结构的一般形式为:
struct 结构名
{
成员列表
};
本题中,stutype是在声明类型的同时定义的struct stu类型的变量,而不是用户定义的结构体类型名。
我们需要注意以下几点:①类型与变量是不同的概念;②对结构体中的成员,可以单独使用,它的作用与地位相当于普通变量;③成员也可以是一个结构体变量;④成员名可以与程序中的变量名相同,二者不代表同一对象。
(23)答案:(C)解析:最初,指针变量p和q分别指向整型变量a和b,然后借助第三个指针变量r,使p和q的内容进行交换,此时p和q分别指向整型变量b和a,而变量a 和b并没有进行交换。
(24)答案:(C)解析: int a,b,k=4,m=6,*p1=&k,*p2=&m;声明整型变量a,b,k,m和指针p1,p2,并分别将4和6赋给k和m,将k和m的地址赋给p1和p2;a=p1==&m;等价于a=(p1==&m);将p1是否等于地址m的值(0)赋给变量a,b=(*p1)/(*p2) 7;该句的含义是将后面表达式的的值7赋给变量b。
(25)答案:(B)解析:本题考查函数的递归调用。
fib(3)=fib(2) fib(1),而fib(2)的返回值为2,fib(1)的返回值也为2,故输出的fib(3)的值为4。
(26)答案:(C)解析:由于()优先级高于*,所以void *fun()说明了一个函数,该函数的返回值是无值型的指针类型,而void(*fun)()说明指针fun指向一个函数,该函数无返回值。
(27)答案:(B)解析:本题考查的函数形参与实参的传递规则,当形参与实参都是简单的数据类型时,形参值的改变不能影响实参值的改变,即本题中c的值未改变,仍然是6。
(28)答案:(B)解析:本题中,a〔1〕〔2〕是二维数组中的第6个元素,对应for
循环中i的值为5,p〔5〕=5 1。
(29)答案:(C)解析: fun()函数的功能是从数组的头尾开始,将第一个元素和最后一个元素对换,将第二个元素和倒数第二个元素对换,直到数组的中间。
调用fun函数后,再将对换了元素的数组依次输出。
(30)答案:(B)解析:函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型。
它的作用是将一个变量的地址传送到另一个函数中去。
在本题解析中,我们试图将这一问题解释清楚!
大家可以考虑一下利用下面这函数可不可以实现a和b的互换。
swap(int x, int y)
{ int t;
t=x;
x=y;
y=t;
}
如果在main函数中用swap(a,b),会有什么结果呢?在函数调用开始时,a的值传送给x,b的值传递给y 。
执行完swap函数后,x和y的值是互换了,但main函数中的a和b 并未互换。
也就是说由于“单向传递”的“值传递”方式,形参值的改变无法传递给实参。
为了使在函数中改变了的变量值能被main函数所用,不能采取上述把要改变值的变量作为参数的办法,而应该用指针变量做函数参数。
在函数执行过程中使指针变量所指向的变量值发生变化,函数调用结束后,这些变量值的变化被保留下来,这样就实现了调用函数改变变量的值,在主调函数中使用这些改变了的值的目的。
swap(int *p1,int*p2)
{ int p;
p=*p1;
*p1=*p2;
*p2=p;
}
注意交换*p1和*p2的值是如何实现的,如果写成下面这样就有问题了!
swap(int *p1,int*p2)
{ int *p;
*p=*p1;
*p1=*p2;
*p2=*p;
}
*p1就是a,是整型变量。
而*p是指针变量p所指向的变量,但p中并无确切地址,用*p 可能会造成破坏系统的正常工作状态。
应该将*p1的值赋给一个整型变量,用整型变量作为过渡变量实现*p1和*p2的交换。
请注意,不能企图通过改变指针形参的值而使指针实参的值也改变
swap(int *p1,int*p2)
{ int *p;
p=p1;
p1=p2;
p2=p;
}
程序的原意是交换两个指针的值。
但是C语言中实参变量和形参变量之间的数据传递是单向的“值传递”方式。
指针变量做函数参数也要遵循这一规则。
调用函数不能改变实参指针变量的值,但可以改变实参指针变量所指向变量的值……。