普天C++笔试题

转载 2006年06月04日 15:55:00

  普天是南京一家通信公司,全称为:南京普天通信股份有限公司,公司网址为:http://www.postel.com.cn 网上流传一套普天C++笔试题,网上搜集到的答案公布与此,仅供参考。

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

//假设线性表的双向链表存储结构
typedef struct DulNode{
    struct DulNode *prior;  //前驱指针
     ElemType data;    //数据
     struct DulNode *next;  //后继指针
}DulNode,*DuLinkList;
//删除操作
Status ListDelete_DuL(DuLinkList &L,int i,ElemType &e)
{
  if(!(p=GetElemP_DuL(L,i))) //此处得到i位置的节点指针,如果有需要也得写出具体函数实现
    return ERROR;
  e=p->data;
  p->prior->next=p->next;
  p->next->prior=p->pror;
  free(p);
  return OK;
}
//插入操作
Status ListInsert_DuL(DuLinkList &L,int i,ElemType &e)
{
  if(!(p=GetElemP_DuL(L,i)))
    return ERROR;
  if(!(s=(DuLinkList)malloc(sizeof(DuLNode)))) 
    return ERROR;

  s->data=e;
  s->prior=p->prior;
  p->prior->next=s;
  s->next=p;
  p->prior=s;
  return OK;
}


2.写一个函数,将其中的/t都转换成4个空格。
答:
该函数命名为convert,参数的意义为:
*strDest目的字符串,*strSrc源字符串,length源字符串的长度
函数实现为:

char* convert(char *strDest, const char *strSrc,int length)
{
  char * cp = strDest;
  int i=0;
  while(*strSrc && i<length)  // 跳出条件
  {
    if (*strSrc=='/t')  //将/t转换成4个空格
    {
      for(int j=0;j<4;j++)
        *cp++=' ';
    }
    else      //否则直接拷贝 
      *cp++=*strSrc;
    strSrc++;
    i++;
  }
  return strDest;
}


3.Windows程序的入口是哪里?写出Windows消息机制的流程
答:
Windows程序的入口是WinMain函数
消息机制:系统将会维护一个或多个消息队列,所有产生的消息都会被放入或是插入队列中。系统会在队列中取出每一条消息,根据消息的接收句柄而将该消息发送给拥有该窗口的程序的消息循环。每一个运行的程序都有自己的消息循环,在循环中得到属于自己的消息并根据接收窗口的句柄调用相应的窗口过程。而在没有消息时消息循环就将控制权交给系统。

4.如何定义和实现一个类的成员函数为回调函数?
答:
所谓的回调函数,就是预先在系统的对函数进行注册,让系统知道这个函数的存在,以后,当某个事件发生时,再调用这个函数对事件进行响应。
定义一个类的成员函数时在该函数前加CALLBACK即将其定义为回调函数,函数的实现和普通成员函数没有区别

----------------------------------------------
插播条广告:版权所有:朱科 欢迎光临我的网站:www.goodsoft.cn,转贴勿删哦
----------------------------------------------


5.C++里面是不是所有的动作都是main()引起的?如果不是,请举例。
答:不是,比如中断引起的中断处理不是直接由main()引起的,而是由外部事件引起的。

6.C++里面如何声明const void f(void)函数为C程序中的库函数?
答:在该函数前添加extern “C”声明

7.下列哪两个是等同的
int b;
A const int* a = &b;
B const* int a = &b;
C const int* const a = &b;
D int const* const a = &b;
答:
各式表示的意思分别为:
A const int* a = &b; //*a是const,但指针a可变
B const* int a = &b; //a是const,但*a可变
C const int* const a = &b; //a和*a都是const,常量和指针的值都不能改变
D int const* const a = &b; //a和*a都是const,常量和指针的值都不能改变
因此C,D两者是相同的。
总结个技巧:如果const位于星号的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于星号的右侧,const就是修饰指针本身,即指针本身是常量。

8. 内联函数在编译时是否做参数类型检查?
答:做类型检查,因为内联函数就是在程序编译时,编译器将程序中出现的内联函数的调用表达式用内联函数的函数体来代替。

网易2017内推C++笔试题目

[编程题] 分苹果 n 只奶牛坐在一排,每个奶牛拥有 ai 个苹果,现在你要在它们之间转移苹果,使得最后所有奶牛拥有的苹果数都相同,每一次,你只能从一只奶牛身上拿走恰好两个苹果到另一个奶牛上,问最少需...
  • damotiansheng
  • damotiansheng
  • 2016年08月09日 10:36
  • 7240

2016秋招笔试面试题一:Java及基础部分

1.面向对象的特征1) 抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方...
  • FZW_Faith
  • FZW_Faith
  • 2016年12月30日 00:09
  • 4036

C++笔试题目大全(笔试宝典)(不断完善中)

1.new 、 delete 、 malloc 、 free 关系 delete 会调用对象的析构函数 , 和 new 对应 free 只会释放内存, new 调用构造函数。 malloc 与 f...
  • Lina_ACM
  • Lina_ACM
  • 2016年06月07日 13:29
  • 21238

普天C++笔试题 很好的东西

  • 2010年05月06日 19:13
  • 24KB
  • 下载

C++笔试题汇总

  • 2013年08月09日 23:21
  • 266KB
  • 下载

c_c++笔试题汇总

  • 2013年11月26日 18:17
  • 126KB
  • 下载

c++笔试题——面试题

  • 2013年11月25日 21:11
  • 272KB
  • 下载

C++笔试题面试题

  • 2012年08月30日 17:51
  • 318KB
  • 下载

C\C++笔试题 经典的

  • 2011年07月29日 19:46
  • 51KB
  • 下载

C++笔试题大全

  • 2011年12月05日 23:04
  • 174KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:普天C++笔试题
举报原因:
原因补充:

(最多只允许输入30个字)