C++程序面试笔迹四

1填空 
1)32位C/C++程序
 sizeof(int)= 4 。
 sizeof(long)= 4 。 
 
2)x86兼容机 请给出函数结果htonl(0x03) =  。
 
3)  堆栈是针对?
     默认情况堆是属于?
     CPU调度时针对?
     答案 : 进程。
 
 4)请给出表达式结果5《2= 20。
 
 5)请给出以下程序结果
   #define NUMBER 1*2+3*4 
   int val = 1 + 3 * NUMBER * 2;
   则 val = 1+3*1*2+3*4*2=  ? 
 
2 程序题
 
 1)请写一个函数重载的例子。
	void A(int i);
	void A(int i,float f);
 
 2)请写一个C++多态的例子。	
class A
{
public:
    A() {};
    virtual ~A() {};
 
    virtual void Print() { cout << "This is A!" << endl; };
};
 
class B : public A
{
public:
    B() {};
    ~B() {cout << "Output from the destructor of class B!" << endl;}; 
 
    void Print() { cout << "This is B!" << endl; };
};
然后再main入口函数调用如下:
A *pTest = new B;
pTest->Print();
delete pTest;
输出结果是:
This is B!
Output from the destructor of class B!
如果将A类中析构函数前virtual去掉,输出结果则是:This is B! 也就是说类B的析构函数没有被调用.
 
 3)请写一个代码片段完成以下功能,平台不限。
    动态加载(My.dll或者My.so)调用 My 的导出函数 extern “ C” , float Function(fIoat , float)。
 3 简述题
 1)请简述stdcall cdcel pasecal的区别
    1、_stdcall是Pascal程序的缺省调用方式,通常用于Win32 Api中,函数采用从右到左的压栈方式,自己在退出时清空堆栈。VC将函数编译后会在函数名前面加上下    划线前缀,在函数名后加上"@"和参数的字节数。 int f(void *p) -->> _f@4(在外部汇编语言里可以用这个名字引用这个函数)

2、C调用约定(即用__cdecl关键字说明)(The C default calling convention)按从右至左的顺序压参数入栈,由调用者把参数弹出栈。对于传送参数的内存 栈是由调用者来维护的(正因为如此,实现可变参数 vararg的函数(如printf)只能使用该调用约定)。另外,在函数名修饰约定方面也有所不同。 _cdecl是C和C++ 程序的缺省调用方式。每一个调用它的函数都包含清空堆栈的代码,所以产生的可执行文件大小会比调用_stdcall函数的大。函 数采用从右到左的压栈方式。VC将函数 编译后会在函数名前面加上下划线前缀。

 

 2)请简述C/C++的整个编译流程
    编译、链接
 
 3)请简述vector list map的基本功能以及注意事项
   vector:支持动态数组,可通过标准数组来访问其元素
   list类支持双向线性列表。注:list不能像vector那样支持随机访问,只支持顺序访问,由于list是双向的,所以可以从前向后也可以从后向前访问列表。
   map类支持关联式容器。一个值映射到唯一一个关键字。可以通过关键字来查找值。注:map容器中的关键字是唯一的,不可以重复使用。
map类支持关联式容器。一个值映射到唯一一个关键字map类支持关联式容器。一个值映射到唯一一个关键字map类支持关联式容器。一个值映射到唯一一个关键字map类支持关联式容器。一个值映射到唯一一个关键字
 4)请简述某平台各种进程间通讯以及优缺点
 5)请简述C和C++的区别
  C面向过程编程, C++面向对象编程     
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值