- 40
- 0
- 约4.97千字
- 约 8页
- 2018-03-26 发布于河南
- 举报
C 面试题目(带答案)
1)
#includestdafx.h
classhuman{
public:
~human()
{
std::couthuman over...... std::endl;
}
voidDisp()
{
std::couthuman disp ... ... std::endl;
}
};
classman : publichuman{
public:
~man()
{
std::coutman over......std::endl;
}
voidDisp()
{
std::coutman disp ..... std::endl;
}
};
inttest()
{
human* p = new man;
p-Disp();
delete p;
}
human disp ...
human over ...
2)
某32位系统下, C++程序,请计算sizeof的值(5分).
charstr[] = “”
charsstr[10];
char *p = str ;
int n = 10;
请计算
sizeof (str ) = ?1)
sizeof ( p ) = ?(2)
sizeof ( n ) = ?(3)
void Foo ( char str[100]){
请计算
sizeof( str ) = ?(4)
}
void *p = malloc( 100 );
请计算
sizeof ( p ) = ?(5)
17;4,4,4,4,10
3)
分别给出BOOL,int,float,指针变量与“零值”比较的if 语句(假设变量名为var);
If(!var);
If(0 == var)或者 if(var==0)
Const float ESPISON = 0.00001;
If(( var = -ESPISON) (var = ESPISON))
4)C语言同意一些令人震惊的结构,下面的结构是合法的吗,如果是它做些什么?
int a = 5, b = 7, c;
c = a+++b;
a=6;b=7;c=12;
5)
#includeiostream
classA
{
private:
intn1;
intn2;
public:
A(): n2(0), n1(n2 + 2)
{
}
voidPrint()
{
std::coutn1: n1, n2: n2std::endl;
}
};
int_tmain(intargc, _TCHAR* argv[])
{
Aa;
a.Print();
return 0;
}
N1是一个随机数;
6)
main()
{
union{ /*定义一个联合*/
int i;
struct{ /*在联合中定义一个结构*/
char first;
char second;
}half;
}number;
number.i=0x4241; /*联合成员赋值*/
printf(%c%c\n, number.half.first, mumber.half.second);
number.half.first=a; /*联合中结构成员赋值*/
number.half.second=b;
printf(%x\n, number.i);
getch();
}
AB
0x6261
7:
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?
E是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用
C与C++编译器产生的函数名称是不一致的;所以extern C是连接申明(linkage declaration),extern C修饰的变量和函数是按照C语言方式编译和连接的
关联、聚合(Aggregation)以及组合(Composition)的区别?
关联是表示两个类的一般性联系,比如“学生”和“老师”就是一种关联关系;聚合表示has-a的关系,是一种相对松散的关系,聚合类不需要对被聚合类负责组合表示contains-a的关系,关联性强于聚合:组合类与被组合类有相同的生命周期,组合类要对被组合类负责
9:
面向对象的三个基本特征,并简单叙述之?1. 封装:将客观事物抽象成类,每个类对自身的数据和方法实行protection(private, protected,public)
2. 继承:广义的继承有三种实现形式:实现继承(指使用基类的属性和方法而无需额外编码的能力)、可视继承(子窗体使用父窗体的外观和实现代码)、接口继承(仅使用属性和方法,实现滞后到子类实现)。前两种
原创力文档

文档评论(0)