c++经典习题(附答案)(可编辑修改word版)
- 格式:docx
- 大小:32.68 KB
- 文档页数:25
1. 关于 C++语言,下列说法不正确的是
A. C++具有简洁、高效和接近汇编语言的特点B.C++本身几乎没有支持代码重用的语言结构C.C++语言不是一种纯面向对象的语言
D. C++支持面向对象的程序设计,这是它对 C 的重要改进
B
2. 使用关键字 说明的函数为内联函数。inline
3. C++支持两钟多态性,即 和 。编译时的多态性 运行时的多态性
4. 在下面横线处填上适当字句,使程序输出结果为 5,10
# include
void main(){ int n=5;
int& =n;
ref=ref+5;
cout<
const ref
5. const int *p;表明
A. p 本身是常量
B.p 指向一个固定的 int 类型的地址,而 p 的内容可以修改
C.p 只能指向一个整型常量
D. p 只能指向一个被 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
void main(){int *p,i,j;
cin>>j;// 输 入 4
p=new int[j];
if(!p){cout<<”Allocation error\n”;}
for(i=0;i
for(i=0;i
cout<
delete []p;
} 输出为:4(这是输入的数据)
0 1 2 3
9. #include
void comp(const int&,int&);
int main(){int n=6,t=10;
cout<<”n=”<
comp(n,t);
cout<<”n=”<
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
void addsub(int&,int&);
void main(){int a=10,b=15;
addsub(a,b);
cout<<”a=”<
}
void addsub(int &m,int &n)
{int temp=m;
m=m*n;
n=temp-n;}
输出为:a=150,b=-5
14. #include
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[”<
} 输出为:a[0][0]=2
a[0][1]=4
a[1][0]=6
a[1][1]=8
15. #include
#include
main(){cout<
}
输出为:21
*21
**21
16. C++有几种联编
i. 1 种
ii. 2 种
iii. 3 种
iv. 4 种
B
17. 由于引用不是变量,所以不能说明引用的 ,也不能说明数据类型为引用数组或是指向引用的指针。
引用
18. 函数原型标识一个函数的 ,同时也标识该函数参数的 和
。
返回类型 个数 类型
19. #include
void f(){static int i=15;
i++;
cout<<”i=”<
}
void main()
{ for(int k=0;k<2;k++)
f();
}
输出为:i=16
i=17
20. #include
#include
main(){cout<
cout<
cout<
cout<<100<<”aa”<
return 0;
}
输出为:14 12
xxxxxxx144aa
21. #include
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<
cout<
}
输出为: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
B.struct
C.type
D. union C
12. 由于数据隐藏的需要,静态数据成员通常被说明为
A. 私有的B.保护的C.公有的
D. 不可访问的
A
13. 在类中说明的任何成员都不能用 、 和 关键字进行修饰。
extern auto regist
14. 构造函数是和 同名的函数, 但要在后者的名字之前冠有一个
,以区别于前者。析构函数 波浪号 ~
15. 用关键字 static 修饰的成员称为 。静态成员
16. 已知 AA 是一个类,则 AA *a[2];声明了一个 数组。类对象指针
17. 拷贝初始化构造函数用对它所在类的 作为参数。引用
18. 指出下面程序段中的错误,并说明出错原因。
//str1.h
#include
#include
class str{private:char *string;
public:str(char* s){string=new char[strlen(s)+1];strcpy(string,s);}
~str(){cout<<”Delete…”<
void print(){cout<
#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;
};