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...

面试题 相关文章推荐
PHP数据运算类型都有哪些
Nov 05 面试题
如何将字串String转换成整数int
Feb 21 面试题
Jar包的作用是什么
Mar 30 面试题
一家外企的面试题目(C/C++面试题,C语言面试题)
Mar 24 面试题
上海奥佳笔试题面试题
Nov 16 面试题
SQL Server面试题
Oct 17 面试题
什么是Rollback Segment
Apr 22 面试题
北京RT科技有限公司.net工程师面试题
Feb 15 面试题
.NET程序员的数据库面试题
Oct 10 面试题
软件测试工程师笔试题带答案
Mar 27 面试题
什么是SCM(软件配置管理)
Aug 16 面试题
EJB需直接实现它的业务接口或Home接口吗,请简述理由
Nov 23 面试题
C有"按引用传递"吗
Sep 06 #面试题
求高于平均分的学生学号及成绩
Sep 01 #面试题
上海方立数码笔试题
Oct 18 #面试题
在C中是否有模拟继承等面向对象程序设计特性的好方法
May 22 #面试题
main 主函数执行完毕后,是否可能会再执行一段代码,给出说明
Dec 05 #面试题
在C语言中实现抽象数据类型什么方法最好
Jun 26 #面试题
main 函数执行以前,还会执行什么代码
Apr 17 #面试题
You might like
ThinkPHP验证码使用简明教程
2014/03/05 PHP
php实现二进制和文本相互转换的方法
2015/04/18 PHP
PHP如何通过传引用的思想实现无限分类(代码简单)
2015/10/13 PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
2019/10/15 PHP
网页开发中的容易忽略的问题 javascript HTML中的table
2009/04/15 Javascript
jQuery ajax dataType值为text json探索分享
2013/09/23 Javascript
Javascript 拖拽雏形(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
javascript中callee与caller的区别分析
2015/04/20 Javascript
jQuery简单实现日历的方法
2015/05/04 Javascript
jquery实现美观的导航菜单鼠标提示特效代码
2015/09/06 Javascript
node.js连接mongoDB数据库 快速搭建自己的web服务
2016/04/17 Javascript
jQuery EasyUI右键菜单实现关闭标签/选项卡
2016/10/10 Javascript
js中动态创建json,动态为json添加属性、属性值的实例
2016/12/02 Javascript
js canvas实现QQ拨打电话特效
2017/05/10 Javascript
Bootstrap 表单验证formValidation 实现远程验证功能
2017/05/17 Javascript
Vue.js基础指令实例讲解(各种数据绑定、表单渲染大总结)
2017/07/03 Javascript
BootStrap下的弹出框加载select2框架失败的解决方法
2017/08/31 Javascript
微信小程序request请求后台接口php的实例详解
2017/09/20 Javascript
vue-cli系列之vue-cli-service整体架构浅析
2019/01/14 Javascript
JavaScript实现无限级递归树的示例代码
2019/03/29 Javascript
JavaScript手写数组的常用函数总结
2020/11/22 Javascript
python for 循环获取index索引的方法
2019/02/01 Python
解决Pyinstaller打包软件失败的一个坑
2021/03/04 Python
CSS3中文字镂空、透明值、阴影效果设置示例小结
2016/03/07 HTML / CSS
html5版canvas自由拼图实例
2014/10/15 HTML / CSS
原生 JS+CSS+HTML 实现时序图的方法
2019/07/31 HTML / CSS
微软台湾官方网站:Microsoft台湾
2018/08/15 全球购物
final, finally, finalize的区别
2012/03/01 面试题
大专毕业生自我鉴定
2013/11/21 职场文书
石油工程专业毕业生求职信
2014/04/13 职场文书
教师先进工作者事迹材料
2014/05/01 职场文书
2014党员批评和自我批评思想汇报
2014/09/21 职场文书
高一学年自我鉴定范文(3篇)
2014/09/26 职场文书
HTML5中 rem适配方案与 viewport 适配问题详解
2021/04/27 HTML / CSS
mysql查询结果实现多列拼接查询
2022/04/03 MySQL
python​格式化字符串
2022/04/20 Python