C++ 面试题 三

1.用最简单的方法实现函数int strcmp(char *p1,char *p2)
2.a.请定义一个指向此函数的指针 int test(char *p1,int nTestCount)
b.声明此指针的数组,包含10个元素。
c.给数组的第一个元素赋值,使其指向test.
d.写出调用数组的第一个元素,执行test操作实例的语句。
3.表述应在什么情况下使用extern"C"声明。
4.对如下双链表
typedef struct _node
{
int iData;
struct _node *pPrev;
struct _node *pNext;
}node;
a.请写出代码,将node*n插入到node*p后。
b.如果多线程同时访问此链表,需要加锁,请说明以下步骤
(a)申请内存给n.
(b)N数据初始化。
(c)插入
注意加锁和解锁的时机。
5.简述C语言中可变长参数的实现原理,如int sprintf(char *buf,const char*format,..)
6.Big endian和Little endian的定义是什么?请用最简单方法(程序实现)判断某个CPU的类型。
7.子类B重写父类A的一个成员函数f,创建一个子类对象C,如果使用C调用父类A的成员函数。
8.C++中public,protect,private成员函数编译后的可执行代码有何区别?
9.对如下定义
typedef struct
{
int iData;
int iAge;
char*pName;
}STUDENT;
STUDENT arrStudent[10];
请写出使用qsort对arrStrudent数组按iAge由小到大的顺序排序。标准函数qsort声明如下:
void qsort(void *base,size_t num,size_t width,int(_cdecl*compare)(const void *elem1,const void *elem2));
关于 compare函数,返回<0表示elem1小于elem2,表示相等,>0表示elem1>elem2.
10.对于如下函数
int test(char* p1,int nTestCount)
{
int i,j;
i=nTestCount;...}
画出执行完i=nTestCount后的栈分布状况(你熟悉的CPU和编译器),并说明返回值是如何传递回父函数的。
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值