- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C上机期末考题答案
一 改错 阅读下列程序,改正程序中的错误。
(1)
class A
{private:
int x,y;
public:
void fun(int i,int j=0)
{x=i;y=j;}
void show()
{coutx“”yendl;}
};
void main()
{A a1;
a1.fun(2);
a1.show();
}
(2)
#include iostream
class Date;
class Time
{public:
Time(int h,int m,int s)
{hour=h,minute=m,sec=s;}
void show(Date d);
private:
int hour,minute,sec;
};
class Date
{public:
Date(int m,int d,int y)
{month=m,day=d,year=y;}
friend void Time::show(Date );
private:
int month,day,year;
};
void Time::show(Date d)
{coutd.month -d.day-d.yearendl;
couthour:minute:secendl;}
void main()
{Time t1(9,23,50);
Date d1(12,20,2008);
t1.show(d1);}
(3)
#include iostream.h
class Test
{private:
int x,y=20;
static int m;
public:
Test(int i,int j){x=i,y=j;}
int getx(){return x;}
int gety(){return y;}
static int f(){return m;}
};
int Test::m=0;
void main()
{Test mt(10,20);
coutmt.x endl;
coutmt.y endl;
}
二.填空题
1.一个类的头文件如下所示,num初始化值为5,程序产生对象T,且修改num为10,并使用show()函数输出num的值10。
#include iostream.h
class Test
{private:
static int num;
public:
Test(int);
void show();
};
_________
Test::Test(int n)
{num=n;}
void Test::show()
{coutnumendl;}
void main()
{Test t(10);
_________
}
答案:int Test::num=5;,t.show();
(2)在下划线处填上缺少的部分。
#include iostream.h
class A
{int a,b;
public:
_____;//定义构造函数,使参数i和j的默认值为0
{a=i;b=j;}//在函数体中用i初始化a,用j初始化b
};
main()
{A *p;
_____;//调用带参构造函数生成由p指向的动态对象
//使a和b成员分别被初始化为4和5
}
答案:A(int i=0,int j=0),p=new A(4,5)
解析]构造函数带默认参数为0,使用new运算符动态分配对象空间,同时初始对象成员值4,5。
三读程序结果
1. 给出下面程序输出结果。
#include iostream.h
class example
{int a;
public:
example(int b=5){a=b++;}
void print(){a=a+1;cout a;}
void print()const
{coutaendl;}
};
void main()
{example x;
const example y(2);
x.print();
y.print();
}
答案:62[解析]x是普通对象,调用普通的print函数;而y常对象,调用常成员函数。
(2)
#include iostream.h
class My
{public:
My(){coutA;}
My (char c){coutc;}
~My (){coutB;}};
int main()
{My p1,*p2;
p2=new Myclass[2];
delete p2;
return 0;}
答案
AAAXXB
(3)
class A
{float x;
public:
A(int a) { x=a; cout调用了A的构造函数\n; }
~A() { cout调用了A的析构函数\n; }};
class B{
float
文档评论(0)