百度C语言面试题
问题1,用C语言实现一个revert函数,它的功能是将输入的'字符串在原串上倒序后返回。
答案:
char *revert(char * str)
{
int n=strlen(str);
int i=0;
char c;
for(i=0;i
{
c=str;
str=str[n-i];
str[n-i]=c;
}
return str;
}
问题2 编程:
用C语言实现函数void * memmove(void *dest,const void *src,size_t n)。memmove函数的功能是拷贝src所指的内存内容前n个字节到dest所指的地址上。
答案:
void * memmove(void *dest,const void *src,size_t n)
{
assert((dest!=0)&&(src!=0));
char * temp=(char * )dest;
char * ss=(char * )src;
int i=0;
for(;i
{
*temp++=*ss++;
}
return temp;
}
问题3 英文拼写纠错:在用户输入英文单词时,经常发生错误,我们需要对其进行纠错。假设已经有一个包含了正确英文单词的词典,请你设计一个拼写纠错的程序。(1)请描述你解决这个问题的思路;(2)请给出主要的处理流程,算法,以及算法的复杂度;(3)请描述可能的改进(改进的方向如效果,性能等等,这是一个开放问题)。
答案:
(1)思路 :
字典以字母键树组织,在用户输入同时匹配
(2)
流程:
每输入一个字母:
沿字典树向下一层,
a)若可以顺利下行,则继续至结束,给出结果;
b)若该处不能匹配,纠错处理,给出拼写建议,继续至a);
【百度C语言面试题】相关文章:
c语言基础面试题05-31
c语言面试题及答案02-27
华为面试题 c语言02-06
c语言编程面试题及答案05-31
西安华为c语言面试题02-18
C语言中内存相关面试题01-25
12个有趣的C语言面试题及答案08-08
12个常见C语言面试题及答案01-19
华为C语言软件工程师面试题02-08