class number {
private: int val; public:
number(int i){val=i;}
【1】 int(); //声明类型转换函数 };
number::operator int(){ 【2】 } 数
class num:public number {
public:
num(int i):number(i){} };
void main() {
num n(100); int i=n;
cout<
答案:【1】 operator 【2】 return val;
六、阅读程序,写出程序的输出结果 1-1.
#include
return x+y+1; }
double add(double x,double y) {
return x+y-1; }
void main()
- 36 -
//定义类型转换函
{
int a=2,b=4 ;
double c=2.7,d=7.4 ;
cout<<\ \
}
执行结果是: 答案:add(a,b)=7 add(c,d)=9.1 1-2.
#include
int b=0;
static int c=4; 第1次循环: b++;c--;
i=2,j=0,i+j=2,a=2,b=0,c=4,a+b+c=6 return (a+b+c);
}
第2次循环: void main()
{ i=2,j=1,i+j=3,a=3,b=0,c=3,a+b+c=6 int i=2;
for(int j=0;j<2;j++)
cout< 运行结果: 答案:6 6 1-3. #include i=1时,j=1, j不小于 i,不执行whilevoid main() 循环,没有输出; { int i,j; for(i=1;i<=3;i++) i=2时,j=1, j小于 i,执行while循环, {j=1; 执行cout< i=3时,j=1, j小于 i,执行while循环, } 执行cout< } 1; 然后j=2,j小于 i,执行while循环,- 37 - 执行cout< #include func(1,2,&x); //a=1,b=2,c指向 x,b=b-a=2-1=1,x=*c=b-a=1-1=0 func(3,x,&y); //a=3,b=x=0,c指向 y,b=b-a=0-3=-3,y=*c=b-a=-3-3=-6 func(x,y,&z); //a=0,b=-6,c指向 z,b=b-a=-6-0=-6,z=*c=-6-0=-6 cout< void func(int a,int b,int *c) { b-=a; *c=b-a; } 输出结果: 答案: 0 -6 -6 3-1. #include Sample(int i){n=i;} friend int add(Sample &s1,Sample &s2); - 38 - }; int add(Sample &s1,Sample &s2) { return s1.n+s2.n; } void main() { Sample s1(10),s2(20); cout< 执行结果是: 答案:30 3-2. #include int a,b; static int s; public: myclass(int x,int y) {a=x;b=y;s++;} void print() {cout< int myclass::s=0; void main() { myclass m1(1,2),m2(4,5),m3(6,7); m1.print(); m2.print(); m3.print(); } 执行结果是: 答案: 3 - 39 - 3 3 3-3. #include public: X(int i) {x=i;cout<<\ X(double i) {x=(int)i*2;cout<<\ ~X() {cout<<\ ~X(): \ private: int x; }; void main() { int a=8; double b=11.0; X x1(55),x2(a*5); X x3=X(2*a); X x4=X(b); } 输出结果为: 答案: Int:55,called Int:40,called Int:16,called double:11,called ~X():22,called ~X():16,called ~X():40,called ~X():55,called 3-4. - 40 -