联发笔试题

1、重写stricmp,比较两字符串,之后返回-1,0,1

int stricmp(const char *str1,const char *str2)
{
 char *p1,*p2;
 int  i=0,len=0;
 if(str1==NULL)
 { if(str2!=NULL) return -1;
  if(str2==NULL) return 0;
 }
 p1=str1;
 p2=str2;
 len=(strlen(str1) for(i=0;i {
  if(toupper(*p1)==toupper(*p2))
  { p1++;
   p2++;
  }
  else
  {
   i=toupper(*p1)-toupper(*p2);
   if(i<0) return -1;
   if(i>0) return 1;
   else return 0;
   }
 }


2、双重链表,多加一个孩子节点
    typedef struct DuLNode
    {
        struct DuLNode * next;
        struct DuLNode * prev;
        struct DuLNode * child;
        int data;
    }DuLNode;

子节点指向另一个双重链表,其为同样结构
要求将树状结构的双重链表连接成一个双重链表;何种顺序连接自定。
3、一个结构体,表示一个矩形
    typedef struct RECT
    {
        int left;
        int top;
        int right;
        int bottom;
    }RECT;
(left,top)为矩形左上角顶点坐标;(right,bottom)为右下角顶点坐标;
定义函数void abcd(RECT* prcDst, const RECT* prcSrc1, const RECT* prcSrc2);
求两矩形的相交矩形prcDst, 相交时返回1,不相交时返回0
4、从一篇文档中挑出电话号码和e-mail并放在链表中
电话号码:一串数字;
e-mail:字母、数字、下划线,中间为@;
5、ABCDE*4=EDCBA
输出这样的五位数

你可能感兴趣的:(联发笔试题)