就业数据资源平台
当前位置:首页 > 笔试题目
2013年华为招聘会笔试题



  笔试题目(机试,共两题)



   题目一:子串分离



  题目描述:



   通过键盘输入任意一个字符串序列,字符串可能包含多个子串,子串以空格分隔。请编写一个程序,自动分离出各个子串,并使用’,’将其分隔,并且在最后也补充一个’,’并将子串存储。



  如果输入“abc def gh i d”结果将是abc,def,gh,i,d,



  要求实现函数



  void DivideString(const char *pInputStr, long lInputLen, char *pOutputStr);



  【输入】 pInputStr: 输入字符串



  lInputLen: 输入字符串长度



  【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;



   【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出



  示例



  输入:“abc def gh i d”



  输出:“abc,def,gh,i,d,”



  题目二:逆序链表输出。



  题目描述:



   将输入的一个单向链表,逆序后输出链表中的值。链表定义如下:



   typedef struct tagListNode



  {



  int value;



  struct tagListNode *next;



  }ListNode;



  要求实现函数:



   void converse(ListNode **head);



  【输入】head: 链表头节点空间已经开辟好



  【输出】head: 逆序后的链表头节点



  【返回】无



  【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出



  参考答案:



   题目一:



   一个字符串里面包含了一些位置不定的空格符,把里面所有的非空格字符找出来,把空格用‘,’替换。



  替换后的句子末尾必须有一个‘,’存在。



  例如“this is an demo”替换后应该为:



   "this,is,an,demo,"



  [cpp] view plaincopyprint?



  01.#include



  02.



  03.char *ReplaceString(const char *pInString, char *pOutString)



  04.{



  05. char *cp = pOutString ;



  06. //去除字符串开头的若干空格



  07. while(*pInString == ' ')



  08. {



  09. pInString ++;



  10. }



  11.



  12. while(*pInString)



  13. {



  14. *cp = *pInString;



  15. cp++;



  16. pInString++;



  17.



  18. if(*pInString == ' ')



  19. {



  20. *cp= ',';



  21. cp++;



  22. pInString++;



  23. }



  24. }



  25.



  26. *cp = '\0';



  27.



  28. //最后一个字符用逗号结束



  29. if(*(cp - 1) != ',')



  30. {



  31. *cp = ',';



  32. *(++cp) = '\0';



  33. }



  34. return pOutString;



  35.}



  36.



  37.int main()



  38.{



  39. char *pin = " This is a demo";



  40. char pout[100];



  41. ReplaceString(pin, pout);



  42. printf("%s \n", pin);



  43. printf("%s \n", pout);



  44. return 0;



  45.}



  题目二参考答案



  link *Reversal(link *listhead)



  {



  link *p, *q, *head = NULL;



  p = listhead;



  while (p != NULL)



  {



  q = p->next;



  p->next = head;



  head = p;



  p = q;



  }



  return head;



  }



就业数据资源平台