1.关于 C++语言,下列说法不正确的是
A.C++具有简洁、高效和接近汇编语言的特点BC++本身几乎没有支持代码重用的语言结构CC++语言不是一种纯面向对象的语言
DC++支持面向对象的程序设计,这是它对 C 的重要改进
B
2.使用关键字    说明的函数为内联函数inline
3.C++支持两钟多态性,即        编译时的多态性    运行时的多态性
4.在下面横线处填上适当字句,使程序输出结果为 510 # include <iostream.h>
void main(){    int n=5;
int&    =n; ref=ref+5; cout<<n<<”,”<<ref;}
const    ref
5.const int *p;表明
A.p 本身是常量
Bp 指向一个固定的 int 类型的地址,而 p 的内容可以修改
Cp 只能指向一个整型常量
Dp 只能指向一个被 const 修饰的 int 类型的常量C
6.数据封装给数据提供了与外界联系的    只有通过这些    使用规的方式,才能访问数据。
标准接口    接口
7.在下面横线处填上适当字句,使程序完整。int arr[]={1,2,3,4,5};
    index(int i){return a[i];} void main(){
index(3)=    ;//a[3]改为 6
}
int &    6
8.#include <iostream.h>
void main(){int *p,i,j; cin>>j;// 输 入 4 p=new int[j];
if(!p){cout<<”Allocation error\n”;} for(i=0;i<j;i++)p[i]=i; for(i=0;i<j;i++)cout<<p[i]<<“ “; cout<<endl;
delete []p;
}

输出为:4(这是输入的数据)
0    1    2    3
9.#include <iostream.h>
void comp(const int&,int&); int main(){int n=6,t=10;
cout<<”n=”<<n<<”,t=”<<t<<endl; comp(n,t); cout<<”n=”<<n<<”,t=”<<t<<endl; return 0;
}
void comp(const&in1,int &in2){in2=in1*10+in2;}
输出为:n=6, t=10
n=6,t=70
10.下列属于 C++头文件约定使用的扩展名的是
i..cpp
ii..hpp
iii..c
iv..c++
B
11.C++提供了一种新的注释方式:从“//”开始,直到    ,都被计算机做注释。
行尾
12. C++中,多态性被直观地称为“    一个名字,多个函数
13.#include <iostream.h>
void addsub(int&,int&); void main(){int a=10,b=15;
addsub(a,b); cout<<”a=”<<a<<”,b=”<<b;
}
void addsub(int &m,int &n)
{int temp=m; m=m*n; n=temp-n;}
输出为:a=150,b=-5
14.#include <iostream.h>
void main(){int a[2][2]={{2,4},{6,8}}; int *pa[2];
pa[0]=a[0];
pa[1]=a[1];
for(i=0;i<2;i++)
for(j=0;j<2;j++,pa[i]++)
cout<<“a[”<<i<<“][ ”<<j<<“]=”<<*pa[i]<<endl;
}

输出为:a[0][0]=2
a[0][1]=4
a[1][0]=6
a[1][1]=8
15.#include <iostream.h>
#include <iomanip.h> main(){cout<<setfill(‘*’)<<setw(2)<<21<<endl<<setw(3)<<21<<endl<
<setw(4)<<21<<endl;
}
输出为:21
*21
**21
16.C++有几种联编
i.1
ii.2
iii.3
iv.4
B
17.由于引用不是变量所以不能说明引用的    也不能说明数据类型为用数组或是指向引用的指针。
引用
18.函数原型标识一个函数的    ,同时也标识该函数参数的   
   
返回类型    个数    类型
19.#include <iostream.h>
void f(){static int i=15; i++;
cout<<”i=”<<i<<endl;
}
void main()
{    for(int k=0;k<2;k++)
f();
}
输出为:i=16
i=17
20.#include <iostream.h>
#include <iomanip.h> main(){cout<<hex<<20<<endl;
cout<<oct<<10<<endl; cout<<setfill(‘x’)<<setw(10); cout<<100<<”aa”<<endl; return 0;
}
输出为:14

12
xxxxxxx144aa
21.#include <iostream.h>
int fun(int n1,int n2){return n1*n2;} float fun(int f1,float f2){return f1*f2;} void main(){int a=10;
int b=2.5; float c=2.55; float d=5.52;
cout<<fun(a,b)<<endl; cout<<fun(c,d)<<endl;
}
输出为:20
11.04
指针调用成员函数
22.与标准错误输出设备相关联 缓冲方式 的, 由 C++流库预定义的流是
   
clog
23.C++的流类库预定义的,与标准输出设备相关联的流是
i.cin
ii.cout
iii.cerr
iv.clog
B
第三章习题及答案
9.缺省的析构函数的函数体是
A.不存在的B.随机产生的C.空的
D. 无法确定的
C
10.以下说法中正确的是
A.一个类只能定义一个构造函数,但可以定义多个析构函数B.一个类只能定义一个析构函数,但可以定义多个构造函数C.构造函数与析构函数同名,只是名字前加了一个波浪号~
D. 构造函数可以指定返回类型;而析构函数不能指定任何返回类型,即使是 void
类型也不可以
B
11.不能在 C++中提供封装的关键字是
A.class Bstruct Ctype
Dunion

C
12.由于数据隐藏的需要,静态数据成员通常被说明为
A.私有的B.保护的C.公有的
D. 不可访问的
A
13.在类中说明的任何成员都不能用            关键字进行饰。
extern    auto    regist
14.构造函数是和    同名的函数 但要在后者的名字之前冠有一
    ,以区别于前者析构函数        波浪号 ~
15.用关键字 static 修饰的成员称为    静态成员
16.已知 AA 是一个类,则 AA *a[2];声明了一个    数组类对象指针
17.拷贝初始化构造函数用对它所在类的    作为参数引用
18.指出下面程序段中的错误,并说明出错原因。
//str1.h
#include <iostream.h> #include <string.h>
class str{private:char *string;
public:str(char* s){string=new char[strlen(s)+1];strcpy(string,s);}
~str(){cout<<”Delete…”<<endl;delete string;} void print(){cout<<string<<endl;}};
#include “str1.h”
void main(){str s1=”student”;str s2=s1; s1.print();s2.print();}
指针悬挂问题
24.指出下面程序段中的错误,并说明出错原因。
class Location{
public:void init(int initX,int initY); private:int X=1;
public:int getX(); private:int y;
};
不能采用这种方式初始化
25.指出下面程序段中的错误,并说明出错原因。
class Test{
private: int num; protected: int p;
};