C语言面试题


Posted in 面试题 onMay 19, 2013
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; i return 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 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;
}
if ( ret ret = -1 ;
else if ( ret > 0 )
ret = 1 ;
return( ret );
}

3,求1000!的未尾有几个0(用素数相乘的方法来做,如72=2*2*2*3*3);
求出1->1000里,能被5整除的数的个数n1,能被25整除的数的个数n2,能被125整除的数的个数n3,
能被625整除的数的个数n4.
1000!末尾的零的个数=n1+n2+n3+n4;
#include
#define NUM 1000
int find5(int num){
int ret=0;
while(num%5==0){
num/=5;
ret++;
}
return ret;
}
int main(){
int result=0;
int i;
for(i=5;i {
result+=find5(i);
}
printf(” the total zero number is %d\n”,result);
return 0;
}

Tags in this post...

面试题 相关文章推荐
类的核心特性有哪些
Jan 01 面试题
附答案的Java面试题
Nov 19 面试题
编写一子程序,将一链表倒序,即使链表表尾变表头,表头变表尾
Feb 10 面试题
.NET里面如何取得当前的屏幕分辨率
Dec 06 面试题
面向对象概念面试题(.NET)
Nov 04 面试题
了解AppleTalk协议吗
Apr 01 面试题
维德科技C#面试题笔试题
Dec 09 面试题
Linux管理员面试经常问道的相关命令
Apr 29 面试题
数据库测试通常都包括哪些方面
Nov 30 面试题
UML设计模式笔试题
Jun 07 面试题
Unix控制后台进程都有哪些进程
Sep 22 面试题
C有"按引用传递"吗
Sep 06 #面试题
求高于平均分的学生学号及成绩
Sep 01 #面试题
上海方立数码笔试题
Oct 18 #面试题
在C中是否有模拟继承等面向对象程序设计特性的好方法
May 22 #面试题
main 主函数执行完毕后,是否可能会再执行一段代码,给出说明
Dec 05 #面试题
在C语言中实现抽象数据类型什么方法最好
Jun 26 #面试题
main 函数执行以前,还会执行什么代码
Apr 17 #面试题
You might like
玩转虚拟域名◎+ .
2006/10/09 PHP
用Php编写注册后Email激活验证的实例代码
2013/03/11 PHP
php中preg_match的isU代表什么意思
2015/10/01 PHP
JS对URL字符串进行编码/解码分析
2008/10/25 Javascript
用JavaScript实现单继承和多继承的简单方法
2009/03/29 Javascript
基于jquery可配置循环左右滚动例子
2011/09/09 Javascript
原生js实现半透明遮罩层效果具体代码
2013/06/06 Javascript
使用js实现数据格式化
2014/12/03 Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
2015/02/02 Javascript
使用JavaScript获取Request中参数的值方法
2016/09/27 Javascript
async/await与promise(nodejs中的异步操作问题)
2017/03/03 NodeJs
JS html时钟制作代码分享
2017/03/03 Javascript
JS 数组随机洗牌的实例代码
2018/09/12 Javascript
Nodejs对postgresql基本操作的封装方法
2019/02/20 NodeJs
Vue中错误图片的处理的实现代码
2019/11/07 Javascript
在Ubuntu系统下安装使用Python的GUI工具wxPython
2016/02/18 Python
Python中用post、get方式提交数据的方法示例
2017/09/22 Python
python之django母板页面的使用
2018/07/03 Python
Python可变和不可变、类的私有属性实例分析
2019/05/31 Python
wxpython绘制音频效果
2019/11/18 Python
使用Django搭建一个基金模拟交易系统教程
2019/11/18 Python
flask开启多线程的具体方法
2020/08/02 Python
python 获取字典特定值对应的键的实现
2020/09/29 Python
ET Mall东森购物网:东森严选
2017/03/06 全球购物
联想台湾官网:Lenovo TW
2018/05/09 全球购物
最新的小工具和卓越的产品设计:Oh That Tech!
2019/08/07 全球购物
巴西一家专门从事家居和装饰的连锁店:Camicado
2019/08/14 全球购物
市场营销大学生职业规划书
2014/02/25 职场文书
大龄毕业生求职别忘职业规划
2014/03/11 职场文书
班级寄语大全
2014/04/10 职场文书
小学教师师德演讲稿
2014/05/06 职场文书
我的中国心演讲稿
2014/09/04 职场文书
不听老师话的万能检讨书
2014/10/04 职场文书
学校体育节班级口号
2015/12/25 职场文书
详解Python牛顿插值法
2021/05/11 Python
使用Python拟合函数曲线
2022/04/14 Python