- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
部分习题解答
第2章习题
2. 读程序,写出程序的执行结果
(1)若输入数据“12 345 634 3214”并按Enter
(2)
第三章习题
9. 指出下面程序的错误。
int &f1(int x=0,int y){ //y应该有缺省值
return x*y; //只能返回整型变量名,因函数返回的是引用
}
int *f2(int a;int b=1){ //应以逗号为参数间隔符
int t=a*b;
return &t; //t的生命期短于f2函数名,程序会因此出现不定的函数值
}
void main(){
const r; //r是常量,当在定义是初始化
int &a,*p; //引用a当在定义时初始化
r=10;
a=r;
const char *pc1="dukang";
char *const pc2="dukang";
char const *pc3="dukang";
const char const*pc4="dukang";
pc1[2]='t'; //pc1所指容为常量,不能修改
pc2[2]='t';
pc3[2]='t'; // pc3所指容为常量,不能修改
pc4[2]='t'; //pc4所指容为常量,不能修改
cout<<f1(3);
cout<<f2(2,3);
}
10. 读程序,写出程序的执行结果。
(1)
(2)
第4章习题
6. 分析下面程序中的错误。
class X{
private:
int a=0; //数据成员不能在声明类时赋初值
int &b;
const int c;
void setA(int i){ a=i; }
X(int i){ a=i; } //构造函数必须在列表中提供b,c的初如化
public:
int X(){a=b=c=0;} //与类同名的函数只能是构造和析构函数,不能有返回类型
//b,c只能在构造函数初始化列表中初始化
X(int i,int j,int k){ a=i;b=j;c=k; }//b,c只能在构造函数初始列表中初始化
static void setB(int k){ b=k; } //静态成员函数不能访问非静态成员b
setC(int k)const{ c=c+k; } //const成员函数不能修改数据成员c
};
void main(){
X x1; //默认构函数为private,不能定义对象
X x2(3);
X x3(1,2,3); //应用X类的私有构造函数定义对象,不允许
x1.setA(3); //访问调用私有成员,不允许
}
7. 读程序,写出程序运行结果。
(1)
}
(2)
(3)
第5章 习题
6. 指出下面程序中的错误。
#include <iostream>
//应增加using namespace std;
class A{
int x;
A(int a){ x=a; }
public:
setA(int y){ x=y; }
};
class B:private A{
public:
B(){ cout<<"B"<<endl; } //B的构造函数应当提供对其类A的构造函数初始化列表
};
void main(){
A a1(2), a2; //不能定义a1,没有默认构造函数
A a3=a1;
B b;
b.setA(3); //在B中,setA被private继承方式更改为私有成员,不能访问
}
7. 读程序,分析程序的运行结果。
(1)
(2)
第6章习题
6. 读程序,写出程序运行的结果。
(1)
写出本程序的结果,并指出本程序存在的错误。
本程序执行过程中,由于x1,x2,x3三个对象的指针数据成员s都指向同一存区域,在它们的生存期结束时,将调用析构函数,同一存区域(即s所指向的区域)将被delete 3次,产生指针悬挂问题。
(2)
3)
第8章
4-1
4-2
第9章
6-1
6-2
6-3
6-4
文档评论(0)