2道C编程面试题
2013-07-10 16:08
176 查看
1 将链表翻转比如1-2-3-4-5 翻转5-4-3-2-1
2 从2个字符串中找到包含的最长的相同的字符串比如afaaahfasknjfasdhjj和fafaskfasdh最长的相同为fasdh
#include "slas_common.h" /* 将链表翻转比如1-2-3-4-5 翻转5-4-3-2-1 */ typedef struct _List_{ int num; struct _List_ *next; }List; List *ListRev() { return NULL; } int AddNode(List **head, int num) { List *pnode; pnode = *head; if(!*head){ *head = (List *)malloc(sizeof(List)); (*head)->num = num; (*head)->next = NULL; }else{ while(pnode->next){ pnode = pnode->next; } pnode->next = (List *)malloc(sizeof(List)); pnode = pnode->next; pnode->num = num; pnode->next = NULL; } return 0; } int walklist(List *list) { List *pnode; pnode = list; while(pnode){ printf("pnode->num:%d\n", pnode->num); pnode = pnode->next; } return 0; } /*1 2 3 4 5 -> 5 4 3 2 1*/ int main(int argc, char* argv[]) { int i = 0; List *list = NULL; for(i = 1; i < 6; i++){ AddNode(&list, i); } walklist(list); return 0; }
2 从2个字符串中找到包含的最长的相同的字符串比如afaaahfasknjfasdhjj和fafaskfasdh最长的相同为fasdh
#include "slas_common.h" /* 从2个字符串中找到包含的最长的相同的字符串 比如afaaahfasknjfasdhjj和fafaskfasdh 最长的相同为fasdh */ int fdmaxstr(char *mem, char *str){ char *p = NULL, *pmem = mem, *pstr = str, *pmax = NULL, *ppos = NULL; int len = strlen(str); int i = 0, max = 0, num = 0; while(*pmem != '\0'){ pstr = str; while(p = strchr(pmem, *pstr)){ ppos = p; num = 0; while(*p == *pstr){ p++; pstr++; num++; } if(num > max){ max = num; pmax = ppos; } pstr++; } pmem++; } printf("pmax:%s, max:%d\n", pmax, max); return 0; } int main(){ char mem[1024]; char str[100]; strcpy(mem, "afaaahfasknjfasdhjj"); strcpy(str, "fafaskfasdh"); fdmaxstr(mem, str); return 0; }
相关文章推荐
- 一个经典编程面试题的“隐退”
- 面试题之编程之美 求一个整数中二进制数1的个数
- 编程面试题
- java基础知识记录--算法与编程(摘自张孝祥整理java面试题)
- 一道JAVA编程面试题
- 考查C++/C程序员的基本编程技能面试题
- 给一个未毕业的同学出了2道编程习题
- Android 面试题之编程
- 多线程编程4---面试题解法3
- 透漏2道面试题 笔试
- 蛇形矩阵的打印;开拓思路与设计方法的面试题;编程技巧比较巧妙;转自CSDN论坛;
- 编程面试题:编写一个会造成数据库死锁的应用
- 一道面试题(Nim取子游戏)——如何将数学思维应用到编程中
- Android 面试题之编程
- 一个经典编程面试题的“隐退”
- 面试题:编程实现将字符串的各个单词翻转
- Socket编程面试题
- 考查C++/C程序员的基本编程技能面试题
- java网络编程面试题
- 嵌入式C编程经典面试题