1、重载插入运算符“<<”必须采用成员重载。对 错(可以外部重载,然后声明友元)
2、一个类中的保护成员和公有成员类似,在程序的任何地方都可以被访问。错
3、一旦自定义了构造函数,系统便不再提供缺省的构造函数。对
4、静态数据成员必须在类中进行定义和初始化。错(需要在类外进行初始化)
5、关于new运算符的下列描述中,(B)是错的。
A、使用它创建的对象和对象数组可以使用运算符delete删除
B、使用它创建对象数组时必须指定初始值
C、使用它创建对象时要调用构造函数
D、它可以用来动态创建对象和对象数组
6、在C++中使用流进行输入输出,其中专用于从键盘进行输入的流是(D)
A、cfile
B、cerr
C、cout
D、 cin
7、关于this指针的说法正确的是(A)。
A、成员函数拥有this指针
B、定义一个类后,this指针就指向该类
C、this指针必须显式说明
D、静态成员函数拥有this指针
8、关于虚函数的描述中,(B)是正确的。
A、派生类的虚函数与基类的虚函数具有不同的参数个数和类型
B、基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数
C、虚函数是一个static类型的成员函数
D、虚函数是一个非成员函数
9、在键盘上输入字符串时,应该(B)
A、使用双引号
B、不使用任何符号
C、以上均可
D、使用单引号
10、关于C++与C语言关系的描述中,(A)是错误的。
A、C++语言和C语言都是面向对象的
B、C语言与C++语言是兼容的
C、C++语言对C语言进行一些改进
D、C语言是C++语言的一个子集
11、已知下列语句中的x和y都是int型变量,其中错误的语句(D)
A、x=y++;
B、 ++x=y;
C、 x=++y;
D、(x+y)++;
12、若二维数组xxx有n列,则在a[i][j]之前的元素个数为(A)
A、 i*n+j
B、 i*n+j-1
D、j*n+i
C、i*n+j+1
13、C++源程序文件扩展名为(C)
A、.h
B、.obj
C、.cpp
D、.1ib
14、下列关于类和对象的说法中,正确的是(A)。
A、编译器为每个对象的数据成员分配内存
B、编译器为每个类和类的对象分配内存
C、类的成员函数由类来调用
D、类的对象具有成员函数的副本
15、当建立对象,程序自动调用该类的_ 构造 (注:两个字即可)函数。
16、面向对象程序设计的 继承 (注:两个字即可)机制提供了重复利用程序资源的一种途径。
17、每个对象都是所属类的一个_ 实例_。(注:两个字即可)
18、给出下列程序的运行结果。
class a2 {
public:
virtual void act1();
void act2() { act1(); }
};
void a2::act1() {
cout << "a2" << endl;
}
class c :public a2 {
public:
void act1();
};
void c::act1() {
cout << "c" << endl;
}
int main() {
c b;
b.act2();
}
输出:c
19、
int AD(int a[], int n) {
int x = 1;
for (int i = 0; i < n; i++)
x *= a[i];
return x;
}
int main() {
int a[] = { 2,8,6,5 };
cout << AD(a, 4) << endl;
}
输出:480
20、试论述:(限100字以内)
(1) struct和class的区别?
(2)在什么情况下,程序设计二者使用在功能上是相当?
struct
可以当成结构体去使用public
,private
,protected
数据成员21、数组与指针的区别?(限50字以内)
如下代码,sizeof(a)输出为多少字节? sizeof(p)输出为多少字节?
char a[] = "hello world";
char *p = a;
cout<< sizeof(a) << endl;
cout<< sizeof(p) << endl;
答:
sizeof(a)=12sizeof(p)=4;
22、
class A {
int a, b;
public:
A() { a = b = 0; }
A(int aa, int bb) :a(aa), b(bb) {
cout << "a=" << a << "," << "b=" << b << endl;
}
~A() { cout << "DESTRUCTOR!\n"; }
};
int main() {
A x, y(2, 3);
}
第一空:a=2,b=3
第二空:Destructor!
第三空:Destructor!
24、 试论述:进程和线程的区别。(限100字以内)(地址空间、开销、并发性、内存标准)
进程和线程主要的区别是他们是不同的操作系统资源管理方式。
25、冒泡排序算法的时间复杂度是多少?
O(n^2)
26、文件data.txt中有一组整数,试设计一段C++代码,要求排序后输出到另一个文件result.txt中。
#include
#include
#include
using namespace std;
void Sort(vector &data)
{
for(int i=1; i < data.size(); i++)
{
int tmp = data[i];
for(int j=i-1; j>=0 && tmp < data[j]; j--)
data[j+1] = data[j];
data[j+1] = tmp;
}
}
int main()
{
void Sort(vector &data);
ifstream in("data.txt");
if(!in)
{
cout << "file error" << endl;
exit(1);
}
int tmp;
vector data;
while(!in.eof())
{
in>>tmp;
data.push_back(tmp);
}
Sort(data);
ofstream out("result.txt");
if(!out)
{
cout << "file error!" << endl;
exit(1);
}
for(vector::iterator it=data.begin(); it != data.end(); it++)
out << *it << " ";
out.close();
return 0;
}
被老师背刺了,呜呜呜一道题没考,他真的,我哭死......