没有合适的资源?快使用搜索试试~ 我知道了~
计算机常见算法面试题.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 165 浏览量
2023-03-28
21:45:09
上传
评论
收藏 39KB DOCX 举报
温馨提示
试读
13页
。。。
资源推荐
资源详情
资源评论
简介:计算机考研之家搜集的华为 C 语言经典面试题,来试试你的 C 语言水平吧。每道题
都附有详细解答和讲解,很有参考价值的 C 语言面试题。
怎么判断链表中是否有环?
bool CircleInList(Link* pHead)
{
if(pHead = = NULL || pHead—〉next = = NULL)//无节点或只有一个节点并且无自环
return (false);
if(pHead—〉next = = pHead)//自环
return (true);
Link *pTemp1 = pHead;//step 1
Link *pTemp = pHead—〉next;//step 2
while(pTemp != pTemp1 && pTemp != NULL && pTemp->next != NULL)
{
pTemp1 = pTemp1->next;
pTemp = pTemp—>next—〉next;
}
if(pTemp = = pTemp1)
return (true);
return (false);
}
两个字符串,s,t;把 t 字符串插入到 s 字符串中,s 字符串有足够的空间存放 t 字符串
void insert(char *s, char *t, int i)
{
memcpy(&s[strlen(t)+i],&s[i],strlen(s)-i);
memcpy(&s[i],t,strlen(t));
s[strlen(s)+strlen(t)]=' ’;
}
1.编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由
同一字符组成的。
char * search(char *cpSource, char ch)
{
char *cpTemp=NULL, *cpDest=NULL;
int iTemp, iCount=0;
while(*cpSource)
{
if(*cpSource == ch)
{
iTemp = 0;
cpTemp = cpSource;
while(*cpSource == ch)
++iTemp, ++cpSource;
if(iTemp > iCount)
iCount = iTemp, cpDest = cpTemp;
if(!*cpSource)
break;
}
++cpSource;
}
return cpDest;
}
2。请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置
索引值。
int search(char *cpSource, int n, char ch)
{
int i;
for(i=0; ireturn i;
}
一个单向链表,不知道头节点,一个指针指向其中的一个节点,问如何删除这个指针指向的节
点?
将这个指针指向的 next 节点值 copy 到本节点,将 next 指向 next—>next,并随后删除原 next
指向的节点.
#include
void foo(int m, int n)
{
printf("m=%d, n=%d\n”, m, n);
}
int main()
{
int b = 3;
foo(b+=3, ++b);
printf(”b=%d\n", b);
return 0;
}
输出:m=7,n=4,b=7(VC6.0)
这种方式和编译器中得函数调用关系相关即先后入栈顺序。不过不同
编译器得处理不同。也是因为 C 标准中对这种方式说明为未定义,所以
各个编译器厂商都有自己得理解,所以最后产生得结果完全不同。
因为这样,所以遇见这种函数,我们首先要考虑我们得编译器会如何处理
这样得函数,其次看函数得调用方式,不同得调用方式,可能产生不同得
结果。最后是看编译器优化。
2.写一函数,实现删除字符串 str1 中含有的字符串 str2.
第二个就是利用一个 KMP 匹配算法找到 str2 然后删除(用链表实现的话,便捷于数组)
/*雅虎笔试题(字符串操作)
给定字符串 A 和 B,输出 A 和 B 中的最大公共子串。
比如 A="aocdfe" B="pmcdfa" 则输出"cdf”
*/
//Author: azhen
#include
#include
#include
char *commanstring(char shortstring[], char longstring[])
{
int i, j;
char *substring=malloc(256);
if(strstr(longstring, shortstring)!=NULL) //如果……,那么返回 shortstring
return shortstring;
for(i=strlen(shortstring)—1;i〉0; i—-) //否则,开始循环计算
{
for(j=0; j〈=strlen(shortstring)—i; j++){
memcpy(substring, &shortstring[j], i);
substring[i]='\0’;
if(strstr(longstring, substring)!=NULL)
return substring;
}
}
return NULL;
}
main()
{
char *str1=malloc(256);
char *str2=malloc(256);
char *comman=NULL;
gets(str1);
gets(str2);
if(strlen(str1)>strlen(str2)) //将短的字符串放前面
comman=commanstring(str2, str1);
else
comman=commanstring(str1, str2);
printf("the longest comman string is: %s\n”, comman);
}
11。写一个函数比较两个字符串 str1 和 str2 的大小,若相等返回 0,若 str1 大于
str2 返回 1,若 str1 小于 str2 返回-1
int strcmp ( const char * src,const char * dst)
{
int ret = 0 ;
while( ! (ret = *(unsigned char *)src — *(unsigned char *)dst) && *dst)
{
++src;
++dst;
}
剩余12页未读,继续阅读
资源评论
คิดถึง643
- 粉丝: 3919
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- JSP基于WEB网上论坛设计与实现(源代码+lw+开题报告+答辩PPT+外文翻译).zip
- JSP基于WEB的图书馆借阅系统的设计与实现(源代码+lw).zip
- 数电实验三:74LS151逻辑功能测试、74LS153逻辑功能测试、74LS153全加器、三输入多数表决电路
- 基于python知识图谱抖音舆情数据可视化分析系统python + flask web + mysql + 知识图谱
- jsp基于Web的可维护的数据库浏览器(源代码+lw+答辩PPT).zip
- jsp基于WEB的考务管理系统的设计与实现(源代码+lw).zip
- jsp基于WEB操作系统课程教学网站的设计与实现(源代码+lw).zip
- 数据库课程实践在IDEA上使用java语言采用JDBC技术连接Mysql数据库,实现购物系统.zip
- JSP基于SSH2的网络在线问答系统.zip
- JSP基于Iptables图形管理工具的设计与实现(源代码+lw).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功