笔试部分
一、选择题
1.栈和队列的共同特点是( )
A.都是先进先出
B.都是先进后出
C.只允许在端点处插入和删除元素
D.没有共同点
【参考答案】 C
2.链表不具有的特点是( )
A.不必事先估计存储空间 B.可随机访问任一元素
C.插入删除不需要移动元素 D.所需空间与线性表长度成正比
【参考答案】 B
3.为了提高测试的效率,应该( )
A.随机选取测试数据 B.取一切可能的输入数据作为测试数据
C.在完成编码以后制定软件的测试计划 D.集中对付那些错误群集的程序
【参考答案】 D
4.软件生命周期中所花费用最多的阶段是( )
A.详细设计 B.软件编码 C.软件测试 D.软件维护
【参考答案】 D
5.下列有关数据库的描述,正确的是( )
A.数据库是一个DBF文件
B.数据库是一个关系
C.数据库是一个结构化的数据集合
D.数据库是一组文件
【参考答案】 C
6.算法的空间复杂度是指( )
A.算法程序的长度 B.算法程序中的指令条数
C.算法程序所占的存储空间 D.执行过程中所需要的存储空间
【参考答案】 D
7.数据结构中,与所使用的计算机无关的是数据的( )
A.存储结构 B.物理结构 C.逻辑结构 D.物理和存储结构
【参考答案】 C
8.软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指( )
A.模块间的关系 B.系统结构部件转换成软件的过程描述
C.软件层次结构 D.软件开发过程
【参考答案】 B
9.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是( )
A.控制流 B.加工 C.数据存储 D.源和潭
【参考答案】 A
10.在数据库设计中,将E-R图转换成关系数据模型的过程属于( )
A.需求分析阶段 B.逻辑设计阶段
C.概念设计阶段 D.物理设计阶段
【参考答案】 B
11.以下C++语言中用于单行注释的是( )
A.// B./* C.*/ D.|
【参考答案】 A
12.若变量已正确定义并赋值,以下符合C++语言语法的表达式是( )
A.a:=b+1 B.a=b=c+2 C.int 18.5%3 D.a=a+7=c+b
【参考答案】 B
13.有以下程序
#include″iostream.h″
void main()
{int i=1,j=1,k=2;
if((j++||k++)&&i++)
cout<
cout<
执行后输出结果是( )
A.1,1,2 B.2,2,1 C.2,2,2 D.2,2,3
【参考答案】 C
14.若有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是( )
A.a,point,*&a
B.&*a,&a,*point
C.*&point,*point,&a
D.&a,&*point,point
【参考答案】 D
15.若运行时给变量x输入12,则以下程序的运行结果是( )
#include
void main()
{
int x,y;
cin>>x;
y=x>12?x+10:x-12;
cout<
cout<
}
A.0 B.22 C.12 D.10
【参考答案】 A
16.以下关于C++类的说法中正确的是( )
A.C++语言的默认访问权限是private
B.C++语言中的类定义,用户一定要自己定义一个构造函数用于实例化类
C.C++语言中的成员函数的实现部分一定要写在类定义外
D.C++语言中的类不能够嵌套定义
【参考答案】 A
17.派生类对象对其基类中的什么成员是可访问的?( )
A.公有继承的私有成员 B.私有继承的公有成员
C.私有继承的保护成员 D.保护继承的保护成员
【参考答案】 D
18.下列关于运算符重载不正确的是( )
A.运算符重载不能改变运算符的操作数个数
B.运算符重载不能改变运算符的优先级
C.运算符重载不能改变运算符的结合性
D.运算符重载能改变对预定义类型数据的操作方式
【参考答案】 D
19.对于重载的运算符>>,它是一个( )
A.用于输入的友元函数 B.用于输入的成员函数
C.用于输出的友元函数 D.用于输出的成员函数
【参考答案】 A
20.若调用一个函数,且此函数中没有return语句,则正确的说法是该函数( )
A.没有返回值
B.返回若干个系统默认值
C.有返回值,但返回一个不确定的值
D.能返回一个用户所希望的函数值
【参考答案】 C
21.以下能对二维数组a进行正确初始化的语句是( )
A.int a[2][]={{1,0,1},{5,2,3}}; B.int a[][3]={{1,2,3},{4,5,6}};
C.int a[2][4]={{1,2,3},{4,5},{6}}; D.int a[][3]={{1,0,1},{},{1,1}};
【参考答案】 B
22.有如下程序
#include
void main()
{float x=2.0,y;
if(x<0.0) y=0.0;
else if(x<10.0) y=1.0/x;
else y=1.0;
cout<
该程序的输出结果是( )
A.0 B.0.25 C.0.5 D.1.0
【参考答案】 C
23.C++中,表示一条语句结束的标号是( )
A.# B.; C.// D.}
【参考答案】 B
24.已知有定义
const int D=5;
int i=1;
double f=0.32;
char c=15;
则下列选项错误的是( )
A.++i; B.D--; C.c++; D.--f;
【参考答案】 B
25.下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,在划线处应填入的选项是( )
#include
void main()
{int i=0,j,k;
do{i++;k=316-13*i;} while(___);
j=k/11;
cout<<″316=13*″<
A.k/11 B.k%11 C.k/11==0 D.k%11=0
【参考答案】 B
26.若已定义:
int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;
其中o≤i≤9,则对a数组不正确的引用是( )
A.a[p-a] B.*(&a[i])
C.p[i] D.a[10]
【参考答案】 D
27.函数fun的返回值是( )
fun(char *a,char *b)
{int num=0,n=0;
while(*(a+num)!=′\0′)num++;
while(b[n]){*(a+num)=b[n];num++;n++;}
return num;}
A.字符串a的长度 B.字符串b的长度
C.字符串a和b的长度之差 D.字符串a和b的长度之和
【参考答案】 D
28.下面程序的结果为( )
#include
int c;
class A{
private:
int a;
static int b;
public:
A() {a=0;c=0;}
void seta() {a++;}
void setb() {b++;}
void setc() {c++;}
void display() {cout<
int A::b=0;
void main()
{A a1,a2;
a1.seta();
a1.setb();
a1.setc();
a2.seta();
a2.setb();
a2.setc();
a2.display();}
A.1 2 1 B.1 2 2 C.1 1 2 D.2 2 2
【参考答案】 B
29.下列关于构造函数说法不正确的是( )
A.构造函数必须与类同名
B.构造函数可以省略不写
C.构造函数必须有返回值
D.在构造函数中可以对类中的成员进行初始化
【参考答案】 C
30.在重载一个运算符时,如果其参数表中有一个参数,则说明该运算符是( )
A.一元成员运算符 B.二元成员运算符
C.一元友元运算符 D.选项B和选项C都可能
【参考答案】 D
[NextPage]
31.表示在输出时显示小数位,和在文件输入时判断文件尾的函数分别是( )
A.showbase()和eof() B.showpoint()和eof()
C.showpoint()和bad() D.showpoint()和good()
【参考答案】 B
32.下列程序中画线处应填入的语句是( )
class Base
{public:
void fun() {cout<<″Base of fun″<
class Derived:public Base
{
void fun()
{
____//显示基类的成员函数fun
cout<<″Derived of fun″<
}
};
A.fun(); B.Base.fun(); C.Base::fun(); D.Base->fun();
【参考答案】 C
33.在位运算中,操作数每右移一位,其结果相当于( )
A.操作数乘以2 B.操作数除以2 C.操作数乘以4 D.操作数除以4
【参考答案】 B
34.一个类的友元函数能够访问该类的( )
A.私有成员 B.保护成员 C.公有成员 D.所有成员
【参考答案】 D
35.下面程序的输出结果是( )
#include
#include
void main()
{
char p1[10],p2[10];
strcpy(p1,″abc″);
strcpy(p2,″ABC″);
char str[50]″xyz″;
strcpy(str+2,strcat(p1,p2));
cout<
}
A.xyzabcABC B.zabcABC C.xyabcABC D.yzabcABC
【参考答案】 C
二、填空题
1.算法的基本特征是可行性、确定性、【1】和拥有足够的情报。
【参考答案】
【1】有穷性
2.在面向对象的程序设计中,类描述的是具有相似性质的一组【2】。
【参考答案】
【2】对象
3.数据库管理系统常见的数据模型有层次模型、网状模型和【3】3种。
【参考答案】
【3】关系模型
4.一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【4】。
【参考答案】
【4】可重用性
5.关系操作的特点是【5】操作。
【参考答案】
【5】集合
6.C++语言中关键字运算符有new,delete和【6】。
【参考答案】
【6】sizeof
7.以下程序的输出结果是【7】。
#include
class object
{private:
int val;
public:
object();
object(int i);
~object();};
object::object()
{val=0;
cout<<″Default constructor for object″<
object::object(int i)
{val i;
cout<<″Constructor for object″<
object::~object()
{cout<<″Destructor for object″<
class container { private:
object one;
object two;
int data;
public:
container();
container(int i,int j,int k);
~container();};
container::container()
{cata=0;
cout<<″Default constructor for container″<
container::container(int i,int j,int k):two(i),one(j)
{data=k;
cout<<″Constructor for container″<
container::~container()
{cout<<″Destructor for container″<
void main()
{container anObj(5,6,10);}
【参考答案】
【7】Constructor for object6
Constructor for object5
Constructor for container
Destruct
8.静态成员函数可以直接访问类的【8】成员,不能直接访问类的【9】成员。
【参考答案】
【8】静态 【9】非静态
9.表达式x.operator+(y.operator++(0))还可以写成【10】。
【参考答案】
【10】x+y++或x+(y++)
10.在C++语言的结构化程序设计中,【11】是程序的基本组成单元;在C++语言的面向对象设计框架中,【12】是程序的基本组成单元。
【参考答案】
【11】函数 【12】类
11.C++语言提供的基本控制结构可以分为3种类型:顺序结构、【13】和循环结构。
【参考答案】
【13】选择结构
12.C++语言的参数传递机制包括传值和传地址两种,如果调用函数时,需要改变实参或者返回多个值,应该采取【14】方式。
【参考答案】
【14】传地址
13.继承的方式有公有继承、私有继承和【15】3种。
【参考答案】
【15】保护继承
上机部分
一、改错题
使用VC6打开考生文件夹下的工程kt7_1,此工程包含一个源程序文件kt7_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:
Constructor1
Constructor1
Constructor1
Destructor
Constructor2
Destructor
x=0
x=5
Destructor
Destructor
源程序文件kt21_1.cpp清单如下:
#include
classB
{intx;
public:
B(){x=0;cout<<"Constructor1"<
B(inti){x=i;cout<<"Constructor2"<
~B(){cout<<"Destructor"<
/**********found**********/
~B(inti){cout<
voidprint(){cout<<"x="<
voidmain()
{B*ptr;
ptr=newB[2];
/**********found**********/
ptr[0]=B(0);
ptr[1]=B(5);
/**********found**********/
for(inti=0;i<2;)
ptr[i].print();
delete[]ptr;}
【参考答案】
(1)将~B(int i){cout<
(2)将ptr[0]=B(0);改为:ptr[0]=B();
(3)将for (int i=0;i<2;)改为:for(int i=0;i<2;i++)
【试题解析】
(1)主要考查对析构函数特性的掌握,析构函数不能带参数也不能重载,一个类中只能定义一个析构函数,因为析构函数在删除对象的时候被默认调用,如果含有多个析构函数则可能引起多次删除产生的意外错误;
(2)主要考查对构造函数与函数重载的掌握,由输出结果可知其应该调用不带参数的构造函数B();
(3)主要考查对for循环语句的使用,如果在for循环中不写第三个表达式就意味着该循环一直会执行下去,因为i的值总是小于2。
[NextPage]
二、简单应用题
编写一个函数intcharnum(charfn[10]),该函数以只读方式打开文件fn,,通过统计,返回文件中字符的个数,请使用while循环实现计数功能。
注意:部分源程序已存在文件kt7_2.cpp中。
请勿修改主函数main和其他函数中的任何内容,仅在函数charnum的花括号中填写若干语句。
文件kt7_2.cpp的内容如下:
#include
#include
#include
intcharnum(charfn[10]);
voidmain()
{intnum;
num=charnum("abc.txt");
cout<<"num="<
intcharnum(charfn[10])
{
}
【参考答案】
int charnum(char fn[10])
{fstream file;
file.open(fn,ios::in);
if(!file)
{cout<<"abc.txt can't open"<
abort();}
char ch;
int i=0;
while(!file.eof())
{file.get(ch);
i++;}
file.close();
return i-1;}
【试题解析】
本题主要考查对文件相关操作的熟练程度。首先定义文件流类的变量,然后使用该对象的open方法打开一个文件,接着使用while循环和getch方法每次读入一个字符并统计字符个数,最后使用close方法关闭文件,返回i值。
三、综合应用题
使用VC6打开考生文件夹下的工程kt7_3,此工程包含一个源程序文件kt7_3.cpp,其中含有一个类Circle的定义,但该类的定义并不完整。请按要求完成下列操作,将类Circle的定义补充完整。
(1)为类Circle增加一个构造函数,该函数有一个参数,并在构造时将该参数值赋给成员radius。将该函数实现为一个非内联函数,并且使用参数列表的方式将类成员赋值。请在注释“//**1**”之后添加适当的语句。
(2)为类Circle增加一个成员函数print(),使得可以输出有关圆的信息,比如下列程序
Circlec;
c.SetRadius(5);
c.Print();
将输出:Thecirclehasradiusof5!
请在注释“//**2**”之后添加适当的语句。
(3)完成友元函数voidCompareR(Circle*c1,Circle*c2)的定义,在屏幕中输出c1与c2比较radius大小结果,要求使用if-else结构完成。请在注释“//**3**”之后添加适当的语句。
输出结果如下:
Thecirclehasradusof5!
Thecirclehasradiusof10!
c1
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
源程序文件kt7_3.cpp清单如下:
#include
classCircle{
public:
Circle():radius(5){}
//**1**
voidSetRadius(intr){radius=r;}
intGetRadius(){returnradius;}
//**2**
friendvoidCompareR(Circle*c1,Circle*c2);
private:
intradius;};
voidCompareR(Circle*c1,Circle*c2)
{//**3**
cout<<"c1>c2"<
else
if((c1->GetRadius())==(c2->GetRadius()))
cout<<"c1=c2"<
else
if((c1->GetRadius())<(c2->GetRadius()))
cout<<"c1
voidmain()
{Circlec1;
c1.SetRadius(5);
c1.Print();
Circlec2(10);
c2.Print();
CompareR(&c1,&c2);}
【参考答案】
(1)Circle(int rad):radius(rad){}
(2)void Print(){cout<<"The circle has radius of "<
(3)if ((c1->GetRadius())>(c2->GetRadius()))
【试题解析】
本题考查成员函数的定义与实现,友元函数,if分支语句等知识点。友元函数的类体外的定义与一般函数一样,其中if-else的使用,else总是与其最近的那个if配对使用的,书写时最好使用缩进格式,将配对的if-else对齐,以免出错。
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|