求解答C++编程题
14、下面程序的输出结果是()#include<iostream>usingnamespacestd;inti=0;intfun(intn){staticinta=2;a...
14、下面程序的输出结果是( )
#include <iostream>
using namespace std;
int i = 0;
int fun(int n)
{
static int a = 2;
a++;
return a+n;
}
void main()
{
int k = 5;
{
int i = 2;
k += fun(i);
}
k += fun(i);
cout << k;
}
A)13 B)14 C)15 D)16
16、下面程序的输出结果是( )
#include <iostream>
using namespace std;
class A
{
public:
A (int i) { x = i; }
void dispa () { cout << x << “,”; }
private :
int x ;
};
class B : public A
{
public:
B(int i) : A(i+10) { x = i; }
void dispb() { dispa(); cout << x << endl; }
private :
int x ;
};
void main()
{
B b(2);
b.dispb();
}
A)10,2 B)12,10 C)12,2 D)2,2
求详细分析过程,最好每一步都有分析 展开
#include <iostream>
using namespace std;
int i = 0;
int fun(int n)
{
static int a = 2;
a++;
return a+n;
}
void main()
{
int k = 5;
{
int i = 2;
k += fun(i);
}
k += fun(i);
cout << k;
}
A)13 B)14 C)15 D)16
16、下面程序的输出结果是( )
#include <iostream>
using namespace std;
class A
{
public:
A (int i) { x = i; }
void dispa () { cout << x << “,”; }
private :
int x ;
};
class B : public A
{
public:
B(int i) : A(i+10) { x = i; }
void dispb() { dispa(); cout << x << endl; }
private :
int x ;
};
void main()
{
B b(2);
b.dispb();
}
A)10,2 B)12,10 C)12,2 D)2,2
求详细分析过程,最好每一步都有分析 展开
2个回答
展开全部
14题 14 16题 12,2
#include <iostream>
using namespace std;
int i = 0;(全局变量,从此以后的程序涉及到i的如果不是有特殊定义都默认为0)
int fun(int n)
{
static int a = 2;(静态变量,第一次调用,第二次忽略~~~~~)
a++; 第一次调用到这步就是 3,第二次调用到这步就是4……
return a+n; a+n(n既函数变量,输进来那个)
}
void main()
{
int k = 5;
{
int i = 2;(局部变量)
k += fun(i); k=5+(a(=3)+i)=5+3+2=10
}
k += fun(i);(没定义i,i默认为0) k=10+(a(=4)+i)=14第二次调用a=4
cout << k;
}
够详细麽
16、下面程序的输出结果是( )
#include <iostream>
using namespace std;
class A
{
public:
A (int i) { x = i; }
void dispa () { cout << x << “,”; }
private :
int x ;
};
class B : public A 这里表示B继承A,且是公有继承(public),这时A类的所有public
和protected成员都被B类继承,且public/protected权限不变;
{
public:
B(int i) : A(i+10) 这里表示将子类构造函数的参数传递给父类的构造函数
{ x = i; }
void dispb() { dispa(); cout << x << endl; }
private :
int x ;
};
void main()
{
B b(2); 相当于子类B构造参数i=2,传递给父类A的构造参数为i+10=12
b.dispb();
}输出答案为什么是 12,2而不是2,12呢?因为子类是从父类继承来的肯定先有父才有子,先调用父类的构造函数 输出12 在调用子类的构造函数 输出2 ~~~~~
这下你懂没呢?
#include <iostream>
using namespace std;
int i = 0;(全局变量,从此以后的程序涉及到i的如果不是有特殊定义都默认为0)
int fun(int n)
{
static int a = 2;(静态变量,第一次调用,第二次忽略~~~~~)
a++; 第一次调用到这步就是 3,第二次调用到这步就是4……
return a+n; a+n(n既函数变量,输进来那个)
}
void main()
{
int k = 5;
{
int i = 2;(局部变量)
k += fun(i); k=5+(a(=3)+i)=5+3+2=10
}
k += fun(i);(没定义i,i默认为0) k=10+(a(=4)+i)=14第二次调用a=4
cout << k;
}
够详细麽
16、下面程序的输出结果是( )
#include <iostream>
using namespace std;
class A
{
public:
A (int i) { x = i; }
void dispa () { cout << x << “,”; }
private :
int x ;
};
class B : public A 这里表示B继承A,且是公有继承(public),这时A类的所有public
和protected成员都被B类继承,且public/protected权限不变;
{
public:
B(int i) : A(i+10) 这里表示将子类构造函数的参数传递给父类的构造函数
{ x = i; }
void dispb() { dispa(); cout << x << endl; }
private :
int x ;
};
void main()
{
B b(2); 相当于子类B构造参数i=2,传递给父类A的构造参数为i+10=12
b.dispb();
}输出答案为什么是 12,2而不是2,12呢?因为子类是从父类继承来的肯定先有父才有子,先调用父类的构造函数 输出12 在调用子类的构造函数 输出2 ~~~~~
这下你懂没呢?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询