- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
说 明
在对以C++为代表的面向对象的程序设计语言进行考查时,其考查的侧重点与面向过程的C语言有着较大差异,在程序阅读题目中更注重对面向对象方法的掌握与理解,而对编程技巧方面的考查难度有所下降。学习C++语言应着重理解书中的概念并熟练和灵活应用。
下文中的程序阅读题目为结合往年考试中考查的知识点筛选整理而成。大多出自《C++答疑解惑与典型题解》(汪名杰,北京邮电大学出版社)和《C++程序设计习题集和实验指导》(闵联营,清华大学出版社),在此对两本书的编者及出版单位致以诚挚的感谢。因对本年度教学情况不甚了解,编者对考查的范围和知识点并不十分清楚,不能保证所选题目与考试要求完全契合。但对于开阔程序设计思路,灵活运用书中知识与概念方面必然有所裨益。受编者时间精力限制,仅对部分题目的结题过程进行了注释,其余题目还需各位观者自行思索求解。
程序设计题目在此未作整理,通常文件操作、内存空间的申请与释放、类的继承、友元函数、虚函数、运算符重载都为程序设计时的重点考察内容。类模板也经常在程序设计题目中占有一席之地(如果教学大纲中包含此内容的话)。可结合书后习题进行程序设计题目的复习备考。
编者不排除题目中存在错误和纰漏的可能性,请观者在阅读时予以注意。如有问题欢迎讨论或咨询。最后祝所有参加考试的同学都能取得自己满意的成绩。阅读下列程序,并写出程序的运行结果
(在未做说明的情况下,所有程序一律省略头文件说明部分)
1. class sample
{
int x,y;
public:
void init(int a,int b) {x=a;y=b;}
int differ() {return (x-y); }
};
int main()
{
sample s1,s2,s3; int sum=0;
s1.init(0,0); s2.init(1,2); s3.init(10,20);
sample *pa[3]={s1,s2,s3};
for(int i=0;i3;i++)
sum+=pa[i]-differ();
coutsum;
}
答:-11
2. class sample{
int x,y;
public:
void init(int i,int j){x=i;y=j;}
void copy(sample s);
void setxy(int i,int j){x=i;y=j;}
void print() {coutxy;}
};
void sample::copy(sample s)
{ x=s.x ; y=s.y; }
void func(sample s1,sample s2)
{ s1.setxy(10,20); s2.setxy(30,40);}
int main()
{
sample p, m, q;
p.init(1,2);q.init(0,0);
q.copy(p);func(p,q);
p.print(); q.print();
}
答:123040
深刻理解函数参数传递时引用传递与普通值传递的差异,并注意输出格式。
3. class sample{
int x;
public:
void init(int x){ this-x=x;}
void setx(int x){x=x;}
void print(){coutx;}
};
int main()
{
sample s;
s.init(10); s.setx(20); s.print();
}
答:10
深刻理解this指针的作用和用法,并注意程序中变量的作用域。
4. class sample{
int x;
public:
sample() { x=0; }
sample(int val) { x=val;}
void disp(){coutx;}
};
int main()
{
sample a,b(10);
a.disp();b.disp();
}
答:010
5. class sample{
public:
sample(){cout构造endl;}
~sample(){cout析构endl;}
};
void fn(int i)
{
static sample c;
coutiendl;
}
int main()
{
fn(10); fn(20);
}
答:构造
10
20
析构
本题考察静态对象的生命周期及静态对象中构造函数与析构函数的调用。
6. class sample{
int x;
public:
sample() {x=0;}
sample(int a) {cout(x=a);}
~sample()
文档评论(0)