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如何自定义函数
Sep 16 面试题
List、Map、Set三个接口,存取元素时,各有什么特点?
Sep 27 面试题
什么是Deployment descriptors;都有什么类型的部署描述符
Jul 28 面试题
写一个方法1000的阶乘
Nov 21 面试题
Linux开机引导的步骤是什么
Oct 19 面试题
Linux开机引导的步骤是什么
Feb 26 面试题
JPA的特点
Oct 25 面试题
AJax面试题
Nov 25 面试题
中间件的定义
Aug 09 面试题
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
Jan 12 面试题
J2EE中的容器都包括哪些
Aug 21 面试题
JPA的优势都有哪些
Jul 04 面试题
C有"按引用传递"吗
Sep 06 #面试题
求高于平均分的学生学号及成绩
Sep 01 #面试题
上海方立数码笔试题
Oct 18 #面试题
在C中是否有模拟继承等面向对象程序设计特性的好方法
May 22 #面试题
main 主函数执行完毕后,是否可能会再执行一段代码,给出说明
Dec 05 #面试题
在C语言中实现抽象数据类型什么方法最好
Jun 26 #面试题
main 函数执行以前,还会执行什么代码
Apr 17 #面试题
You might like
用PHP和ACCESS写聊天室(三)
2006/10/09 PHP
解决控件遮挡问题:关于有窗口元素和无窗口元素
2007/01/28 PHP
用PHP的超级变量$_GET获取HTML表单(Form) 数据
2011/05/07 PHP
JavaScript Array Flatten 与递归使用介绍
2011/10/30 Javascript
js选取多个或单个元素的实现代码(用class)
2012/08/22 Javascript
js获取当前日期前七天的方法
2015/02/28 Javascript
jquery实现键盘左右翻页特效
2015/04/30 Javascript
javascript自动恢复文本框点击清除后的默认文本
2016/01/12 Javascript
基于Javascript实现倒计时功能
2016/02/22 Javascript
如何提高javascript加载速度
2016/12/26 Javascript
JS日程管理插件FullCalendar中文说明文档
2017/02/06 Javascript
JavaScript仿微信(电话)联系人列表滑动字母索引实例讲解(推荐)
2017/08/16 Javascript
详解Nodejs内存治理
2018/05/13 NodeJs
VUE兄弟组件传值操作实例分析
2019/10/26 Javascript
JS面向对象之单选框实现
2020/01/17 Javascript
vue实现购物车加减
2020/05/30 Javascript
vue 页面跳转的实现方式
2021/01/12 Vue.js
[47:42]Fnatic vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python基于Tkinter实现的记事本实例
2015/06/17 Python
Python文本相似性计算之编辑距离详解
2016/11/28 Python
python绘制条形图方法代码详解
2017/12/19 Python
Python数据类型中的“冒号“[::]——分片与步长操作示例
2018/01/24 Python
Python实现的三层BP神经网络算法示例
2018/02/07 Python
使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”
2018/03/23 Python
修复 Django migration 时遇到的问题解决
2018/06/14 Python
Python 找出英文单词列表(list)中最长单词链
2020/12/14 Python
观看《永远的雷锋》心得体会
2014/03/12 职场文书
绿色家庭事迹材料
2014/05/01 职场文书
霸气押韵的班级口号
2014/06/09 职场文书
庆祝国庆节标语
2014/10/09 职场文书
社区四风存在问题及整改措施
2014/10/26 职场文书
房屋财产继承协议书范本
2014/11/03 职场文书
2015年卫生院健康教育工作总结
2015/07/24 职场文书
同事离别感言
2015/08/04 职场文书
大学校园招聘会感想
2015/08/10 职场文书
礼貌问候语大全
2015/11/10 职场文书