1 、【
单选题
】
软件是指
[2分]
、
程序
、
程序和文档
、
算法加数据结构
、
程序、数据与相关文档的完整集合
答案:
2 、【
单选题
】
软件调试的目的是
[2分]
、
发现错误
、
改正错误
、
改善软件的性能
、
验证软件的正确性
答案:
3 、【
单选题
】
在面向对象方法中,实现信息隐蔽是依靠
[2分]
、
对象的继承
、
对象的多态
、
对象的封装
、
对象的分类
答案:
4 、【
单选题
】
下列叙述中,不符合良好程序设计风格要求的是
[2分]
、
程序的效率第一, 清晰第二
、
程序的可读性好
、
程序中要有必要的注释
、
输入数据前要有提示信息
答案:
5 、【
单选题
】
下列叙述中正确的是
[2分]
、
程序执行的效率与数据的存储结构密切相关
、
程序执行的效率只取决于程序的控制结构
、
程序执行的效率只取决于所处理的数据量
、
以上三种说法都不对
答案:
6 、【
单选题
】
下列叙述中正确的是
[2分]
、
数据的逻辑结构与存储结构必定是一一对应的
、
由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构
、
程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构
、
以上三种说法都不对
答案:
7 、【
单选题
】
冒泡排序在最坏情况下的比较次数是
[2分]
、
n(n+1)/2
、
nlog2 n
、
n(n-1)/2
、
n/2
答案:
8 、【
单选题
】
一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为
[2分]
答案:
9 、【
单选题
】
下列叙述中正确的是
[2分]
、
数据库系统是一个独立的系统,不需要操作系统的支持
、
数据库技术的根本目标是要解决数据的共享问题
、
数据库管理系统就是数据库系统
、
以上三种说法都不对
答案:
10 、【
单选题
】
下列叙述中正确的是
[2分]
、
为了建立一个关系,首先要构造数据的逻辑关系
、
表示关系的二维表中各元组的每一个分量还可以分成若干数据项
、
一个关系的属性名表称为关系模式
、
一个关系可以包括多个二维表
答案:
11 、【
单选题
】
在函数中,可以用auto、extern、register和static这四个关键字中的一个来说明变量
的存储类型,如果不说明存储类型,则默认的存储类型是
[2分]
、
auto
、
extern
、
register
、
static
答案:
12 、【
单选题
】
对于一个类定义,下列叙述中错误的是
[2分]
、
如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数。
、
如果没有定义缺省的构造函数,编译器将一定生成一个缺省的构造函数。
、
如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数。
、
如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数。
答案:
13 、【
单选题
】
如果派生类以protected方式继承基类,则原基类的protected成员和public成员在派
生类中的访问属性分别是
[2分]
、
public和public
、
public和protected
、
protected和public
、
protected和protected
答案:
14 、【
单选题
】
下列运算符函数中肯定不属于类FunNumber的成员函数的是
[2分]
、
int operator-(FunNumber);
、
FunNumber operator -();
、
FunNumber operator -(int);
、
int operator -(FunNumber,FunNumber);
答案:
15 、【
单选题
】
C++中的模板包括
[2分]
、
对象模板和函数模板
、
对象模板和类模板
、
函数模板和类模板
、
变量模板和对象模板
答案:
16 、【
单选题
】
如果利用C++流进行输入输出,下面的叙述中正确的是
[2分]
、
只能借助于流对象进行输入输出。
、
只能进行格式化输入输出。
、
只能借助于cin和cout进行输入输出。
、
只能使用运算符>>和<<进行输入输出。
答案:
17 、【
单选题
】
下列符号中不属于C++关键字的是
[2分]
、
friend
、
namespace
、
continue
、
byte
答案:
18 、【
单选题
】
下列各组类型声明符中,含义想通的一组是
[2分]
、
unsigned long int 和 long
、
signed short int 和 short
、
unsigned short 和 short
、
short int 和 int
答案:
19 、【
单选题
】
必须用一对大括号括起来的程序段是
[2分]
、
switch语句中的case标号语句。
、
if语句的分支。
、
循环语句的循环体。
、
函数的函数体。
答案:
20 、【
单选题
】
语句 int *p=&k;定义了指针p,与这个语句等效的语句序列是
[2分]
、
int *p;p=&k;
、
int *p;p=k;
、
int *p;*p=&k;
、
int *p;*p=k;
答案:
21 、【
单选题
】
关于函数重载,下列叙述中错误的是
[2分]
、
重载函数的函数名必须相同。
、
重载函数必须在参数个数或类型上有所不同。
、
重载函数的返回值类型必须相同。
、
重载函数的函数体可以有所不同。
答案:
22 、【
单选题
】
有如下头文件:
int f1();
static int f2();
class MA{
public:
int f3();
static int f4();
}
在所描述的函数中,具有隐含的this指针的是
[2分]
答案:
23 、【
单选题
】
派生类的成员函数不能访问基类的
[2分]
、
公有成员和保护成员
、
公有成员
、
私有成员
、
保护成员
答案:
24 、【
单选题
】
下列关于运算符重载的描述中,正确的是
[2分]
、
运算符重载为成员的函数时,若参数表中无参数,重载的是一元运算符
、
一元运算符只能作为成员函数重载
、
二元运算符重载为非成员函数是,参数表中有一个参数
、
C++中可以重载所有的运算符
答案:
25 、【
单选题
】
下列关于类木不安的模板参数的叙述中,错误的是
[2分]
、
模板参数可以作为数据成员的类型
、
模板参数可以作为成员函数的返回类型
、
模板参数可以作为成员函数的参数类型
、
模板参数不能作为成员函数的局部不按量的类型
答案:
26 、【
单选题
】
已知一程序运行后执行的第一个输出操作是
cout<<setw(10)<<setfill('*')<<1234;
此操作的输出结果是
[2分]
、
1234
、
******1234
、
**********1234
、
1234******
答案:
27 、【
单选题
】
有如下程序:
#include <iostream>
using namespace std;
class MyClass{
public:
MyClass(){++count;}
~MyClass(){--count;}
static int getCount(){return count;}
private:
static int count;
};
int MyClass::count=0;
int main(){
MyClass obj;
cout<<obj.getCount();
MyClass *ptr=new MyClass;
cout<<MyClass:getCount();
delete ptr;
cout<<MyClass::getCount();
return 0;
}
程序的输出结果是
[2分]
答案:
28 、【
单选题
】
有如下程序:
#include <iostream>
using namespace std;
class MyClass{
public:
MyClass(int x):val(x){}
void Print() const {cout<<"const:val="<<val<<'\t';}
void Print(){cout<<"val="<<val<<'\t';}
private:
int val;
};
int main(){
const MyClass obj1(10);
MyClass obj2(20);
obj1.Print();
obj2.Print();
return 0;
}
程序的输出结果是
[2分]
、
val=10 const:val=20
、
const:val=10 const:val=20
、
const:val=10 val=20
、
val=10 val=20
答案:
29 、【
单选题
】
有如下程序:
#include <iostream>
using namespace std;
class Part{
public:
Part(int x=0):val(x){cout<<val;}
~Part(){cout<<val;}
private:
int val;
};
class Whole{
public:
Whole(int x,int y, int z=0):p2(x),p1(y),val(z){cout<<val;}
~Whole(){cout<<val;}
private:
Part p1,p2;
int val;
};
int main(){
Whole obj(1,2,3);
return 0;
}
程序的输出结果是
[2分]
、
123321
、
213312
、
213
、
123123
答案:
30 、【
单选题
】
有如下程序:
#include <iostream>
using namespace std;
class Base{
public:
Base(int x=0){cout<<x;}
};
class Derived:public Base{
public:
Derived(int x=0){cout<<x;}
private:
Base val;
};
int main(){
Derived d(1);
return 0;
}
程序的输出结果是
[2分]
答案:
31 、【
单选题
】
若有如下类定义
class B{
void fun1(){}
protected:
double var1;
public:
void fun2(){}
};
class D:public B{
protected:
void fun3(){}
};
已知obj是类D的对象,下列语句中不违反类成员访问控制权限的是
[2分]
、
obj.fun1();
、
obj.var1;
、
obj.fun2();
、
obj.fun3();
答案:
32 、【
单选题
】
有如下程序:
#include <iostream>
using namespace std;
class Base{
public:
void output(){cout<<1;}
virtual void Print(){cout<<'B';}
};
class derived:public Base{
public:
void output(){cout<<2;}
void Print(){cout<<'D';}
};
int main(){
Base *ptr=new Derived;
ptr->output();
ptr->Print();
delete ptr;
return 0;
}
程序的输出结果是
[2分]
答案:
33 、【
单选题
】
下列是重载惩罚运算符的函数原型生命,其中错误的是
[2分]
、
MyClass operator *(double,double);
、
MyClass operator * (double,MyClass);
、
MyClass operator * (MyClass,double);
、
MyClass operator * (MyClass,MyClass);
答案:
34 、【
单选题
】
如下函数的作用是以双倍行距输出文件:
void double_space(ifstream& f,ofstream& t){
char c;
while (__________){
____________;
if(c=='\n') t.out(c);
}
}
画线处缺失的部分是
[2分]
、
f.get(c)与t.put(c)
、
f.put(c)与t.get(c)
、
t.get(c)与f.put(c)
、
t.put(c)与f.get(c)
答案:
35 、【
单选题
】
有如下程序:
#include <iostream>
using namespace std;
class B{
public:
virtual void show(){cout<<"B";}
};
class D:public B{
public:
void show(){cout<<"D";}
};
void fun1(B *ptr){ptr->show();}
void fun2(B &ref){ref.show();}
void fun3(B b){b.show();}
int main(){
B b,*p=new D;
D d;
fun1(p);
fun2(b);
fun3(d);
return 0;
}
程序的输出结果是
[2分]
答案:
36 、【
填空题
】
软件需求规格说明书应具有完整性,无岐义性、正确性、可验证性、可修改性等特征,其中最重要的是
。
[每空2分]
答案:
["无歧义性"]
37 、【
填空题
】
在两种基本测试方法中,
测试的原则之一是保证所测模块中每一个独立路径至少执行一次。
[每空2分]
答案:
["路径覆盖"]
38 、【
填空题
】
线性表的存储结构主要分为顺序存储结构和链式存储结构。队列是一种特殊的线性表,循环队列是队列的
存储结构。
[每空2分]
答案:
["顺序存储结构"]
40 、【
填空题
】
在E-R图中,矩形表示
。
[每空2分]
答案:
["实体集"]