首页 > 就业 > 笔试

普天C++笔试题及答案

普天C++笔试题及答案



普天C++笔试题及答案

  1.实现双向链表删除一个节点P,在节点P后插入一个节点,写出这两个函数。

  void DeleteNode(DuNode *p)

  {

  p->prior->next=p->next;

  p->next->prior=p->prior;

  free(p);

  }

  void InsertNode(DuNode *p, DuNode *s)//Node "s" is inserted after "p"

  {

  s->next=p->next;

  p->next->prior=s;

  p->next=s;

  s->prior=p;

  }

  2.写一个函数,将其中的/t都转换成4个空格.

  /* Name: Copyright: Author: 52coder

  Date: 12-07-03 16:40

  Description: 写一个函数,将其中的/t都转换成4个空格

  */

  #include

  using namespace std;

  char* Convert_t(char *des,char *src)

  {

  char *temp;

  des=new char[100];

  temp=des;

  while(*src!='/0')

  {

  if(*src=='/t')

  {

  src++;

  *des++=' ';

  *des++=' ';

  *des++=' ';

  *des++=' ';

  continue;

  }

  *des++=*src++;

  }

  *des='/0';

  des=temp;

  return des;

  }

  int main()

  {

  char *t="asdf/tasd/tasasddas//tdfasdf",*d;

  cout<

  cout<

  getchar();

  }

  3.Windows程序的入口是哪里?写出Windows消息机制的流程。

  WINDOWS入口是WinMain函数

  消息机制的流程:

  系统中发生了某个事件

  Windows把这个事件翻译为消息,然后把它放到消息队列中

  应用程序从消息队列中接收到这个消息,把它存放在TMsg记录中

  应用程序把消息传递给一个适当的窗口的窗口过程

  窗口过程响应这个消息并进行处理

  4.如何定义和实现一个类的成员函数为回调函数?

  如果类的成员函数是一个callback函数, 必须宣告它为”static”,才能把C++ 编译器加诸于函数的一个隐藏参数this去掉。

  5.C++里面是不是所有的动作都是main()引起的?如果不是,请举例。

  不是的,C++里面有些动作不是引起的,比如,全局对象的实例化、全局变量的动态空间申请,等等.

  下面是一个例子:

  #include

  using namespace std;

  //全局变量的动态空间申请在程序运行之后,main运行之前完成。所以不是所有的.动作都是main引起的

  char *des=new char[100];

  int main()

  {

  char *des="abc";

  cout<

  getchar();

  }

  6.C++里面如何声明const void f(void)函数为C程序中的库函数?

  extern “C” const void f(void);

  这样声明之后,相当于告诉C, 函数const void f(void)是在C++语言的文件中声明或者实现的,c程序可以使用这个C++中的函数了,从而实现C++和c的混合编程。

  7.下列哪两个是等同的

  int b;

  A const int *a = &b; //指针a所指内容是常量,等同于int const *a,

  B const * int a = &b; //没有这种写法 ,只有int *const a,指针a是常量

  C const int* const a = &b; //指针a是常量,所指的内容也是常量

  D int const* const a = &b; //指针a是常量,所指的内容也是常量

  所以C和D是一样的

  8.内联函数在编译时是否做参数类型检查?

  内联函数和普通函数都要做类型检查,宏不做类型检查。

相关内容

热门阅读
随机推荐