《2010年9月计算机等级考试二级VF笔试真题答案doc》由会员分享,可在线阅读,更多相关《2010年9月计算机等级考试二级VF笔试真题答案doc(6页珍藏版)》请在金锄头文库上搜索。
1、一、选择 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) 解析
2、:链式存储结构克服了顺序存储结构的缺点:它的结点空间可以动态申请和释放;它的数据元素的逻辑次序靠结点的指针来指示,不需要移动数据元素。故链式存储结构下的线性表便于插入和删除操作。(3)答案:(B) 解析:栈操作原则上“后进先出”,栈底至栈顶依次存放元素A、B、C、D,则表明这4个元素中D是最后进栈,B、C处于中间,A最早进栈。所以出栈时一定是先出D,再出C,最后出A。(4)答案:(A) 解析:从平均时间性能而言,快速排序最佳,其所需时间最少,但快速排序在最坏情况下的时间性能不如堆排序和归并排序。当序列中的记录基本有序或元素个数较少时,冒泡排序和简单选择排序为最佳排序方法,故本题答案应该为选项A
3、)。(5)答案:(D)解析: 滥用GOTO 语句将使程序流程无规律,可读性差,因此A)不选;注解行有利于对程序的理解,不应减少或取消,B)也不选;程序的长短要依照实际情况而论,而不是越短越好,C)也不选。(6)答案:(D) 解析:软件工程包括3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。(7)答案:(A)解析:软件的白盒测试方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。(8)答案:(C) 解析:关系模型较之格式化模型
4、(网状模型和层次模型)有以下方面的优点,即数据结构比较简单、具有很高的数据独立性、可以直接处理多对多的联系,以及有坚实的理论基础。(9)答案:(C) 解析:数据库(DataBase,简称DB)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。数据库中的数据具有“集成”、“共享”之特点。(10)答案:(C) 解析:数据模型所描述的内容有3个部分,它们是数据结构、数据操作和数据约束。其中,数据模型中的数据结构主要描述数据的类型、内容、性质,以及数据库的联系等;数据操作主要是描述在相应数据结构上的操作类型与操作方式。(11)答案:(B)解析:
5、 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。注意“=”与
6、“=”的用法。(14)答案: (C) 解析: 选项A)中,赋值表达式左边应该是一个变量,而“a b=b ”中赋值号左边是一个表达式;选项B)中,取余运算符“%”两侧应都是整型数据,而“(int)a b)”是float类型;选项C)中,“%”两侧都是整型数据,所以正确;选项D)最后有一个分号,所以不是表达式,而是一条语句。(15)答案:(C) 解析:由于在switch语句中,没有break语句,所以当变量i的值等于case后面的常量表达式的值时,将执行此case后面的所有switch语句。(16)答案:(B) 解析: 本题中,“!”表示逻辑非运算符,逻辑非运算符比等于运算符的优先级低。(17)答
7、案:(C) 解析:选项A)中定义函数时,形参的类型说明应该放在形参表列内说明。老版本C语言中,对形参类型的声明是放在函数定义的第2行,也就是不在第1行的括号内指定形参的类型,而在括号外单独指定。选项B)中return后面的值可以是一个表达式。选项D)中实参与形参的类型应相同或赋值兼容。如果实参为整型而形参为实型,或者相反,则按不同类型数值的赋值规则进行转换,以形参类型为准。(18)答案:(D) 解析: C语言在函数中说明的变量为局部变量,只在函数内起作用但不会影响到其他函数。所以在不同的函数中使用相同的函数名不代表是同一函数。在函数定义时声明的参数只在函数内部起作用,是函数的局部变量。在一个函
8、数中定义的变量是这个函数的局部变量,所以只在这个函数内起作用。复合语句中定义的变量其作用域是这个复合语句,不会扩大到整个函数。(19)答案:(A) 解析: 该题是if语句的嵌套,else总是与它上面最近的if配对。因为a p(20)答案:(D) 解析:本题考查数组指针的应用。选项D)第一层括号中为数组a中第i项元素的值,外面再加指针运算符没有意义。(21)答案:(C)解析:p=&a3将指针指向数组a的第4个元素,p5指向数组a的第9个元素,而a8=9,所以b=9。(22)答案:(D) 解析:定义一个结构的一般形式为:struct 结构名成员列表;本题中,stutype是在声明类型的同时定义的s
9、truct 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的
10、地址赋给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) 解析:本题考查的函数形
11、参与实参的传递规则,当形参与实参都是简单的数据类型时,形参值的改变不能影响实参值的改变,即本题中c的值未改变,仍然是6。(28)答案:(B) 解析: 本题中,a12是二维数组中的第6个元素,对应for循环中i的值为5,p5=5 1。(29)答案:(C) 解析: fun()函数的功能是从数组的头尾开始,将第一个元素和最后一个元素对换,将第二个元素和倒数第二个元素对换,直到数组的中间。调用fun函数后,再将对换了元素的数组依次输出。(30)答案:(B)解析:函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中去。在本题解析中,我们试图将这一问
12、题解释清楚!大家可以考虑一下利用下面这函数可不可以实现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函数所用,不能采取上述把要改变值的变量作为参数的办法,而应该用指针变量做函数参数。在函数执行过程中使指针变量所指向的变量值发生变化,函数调用结束后,这些变量值的变
13、化被保留下来,这样就实现了调用函数改变变量的值,在主调函数中使用这些改变了的值的目的。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;程序的原意是交换两个指针的值。但是语言中实参变量和形参变量之间的数据传递是单向的“值传递”方式。指针变量做函数参数也要遵循这一规则。调用函数不能改变实参指针变量的值,但可以改变实参指针变量所指向变量的值