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

面试题 相关文章推荐
方法名是否可以与构造器的名字相同
Jun 04 面试题
面向对象编程的优势是什么
Dec 17 面试题
经典c++面试题三
Jul 08 面试题
试述DBMS的主要功能
Nov 13 面试题
不用游标的SQL语句有哪些
Sep 07 面试题
.NET常见笔试题集
Dec 01 面试题
C#基础面试题
Oct 17 面试题
linux面试题参考答案(10)
Oct 26 面试题
介绍一下JNDI的基本概念
Jul 26 面试题
介绍一下Python中webbrowser的用法
May 07 面试题
史上最全面的Java面试题汇总!
Feb 03 面试题
Delphi笔试题
Nov 14 面试题
C有"按引用传递"吗
Sep 06 #面试题
求高于平均分的学生学号及成绩
Sep 01 #面试题
上海方立数码笔试题
Oct 18 #面试题
在C中是否有模拟继承等面向对象程序设计特性的好方法
May 22 #面试题
main 主函数执行完毕后,是否可能会再执行一段代码,给出说明
Dec 05 #面试题
在C语言中实现抽象数据类型什么方法最好
Jun 26 #面试题
main 函数执行以前,还会执行什么代码
Apr 17 #面试题
You might like
让你同时上传 1000 个文件 (一)
2006/10/09 PHP
PHP开发入门教程之面向对象
2006/12/05 PHP
php session 预定义数组
2009/03/16 PHP
php flv视频时间获取函数
2010/06/29 PHP
php实现的Cookies操作类实例
2014/09/24 PHP
PHP新建类问题分析及解决思路
2015/11/19 PHP
Zend Framework前端控制器用法示例
2016/12/11 PHP
php实现简单的守护进程创建、开启与关闭操作
2019/08/13 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
Javascript 代码也可以变得优美的实现方法
2009/06/22 Javascript
js中 关于undefined和null的区别介绍
2013/04/16 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
2013/05/15 Javascript
js登录弹出层特效
2014/03/07 Javascript
页面刷新时记住滚动条的位置jquery代码
2014/06/17 Javascript
js使用setTimeout实现定时炸弹的方法
2015/04/10 Javascript
JavaScript的Polymer框架中dom-repeat与VM的相关操作
2015/07/29 Javascript
jQuery打字效果实现方法(附demo源码下载)
2015/12/18 Javascript
文本框只能输入数字的js代码(含小数点)
2016/07/10 Javascript
实现单层json按照key字母顺序排序的示例
2017/12/06 Javascript
详解VUE 数组更新
2017/12/16 Javascript
JS实现简单的星期格式转换功能示例
2018/07/23 Javascript
Vue动态创建注册component的实例代码
2019/06/14 Javascript
jQuery事件委托代码实践详解
2019/06/21 jQuery
如何使用three.js 制作一个三维的推箱子游戏
2020/07/29 Javascript
[01:03]PWL开团时刻DAY6——别打我
2020/11/05 DOTA
Python类的用法实例浅析
2015/05/27 Python
利用python模拟sql语句对员工表格进行增删改查
2017/07/05 Python
python爬虫超时的处理的实例
2018/12/19 Python
python tornado使用流生成图片的例子
2019/11/18 Python
HTML5 本地存储之如果没有数据库究竟会怎样
2013/04/25 HTML / CSS
泰国折扣酒店预订:Hotels2Thailand
2018/03/20 全球购物
德国自行车商店:Tretwerk
2019/06/21 全球购物
绘儿乐产品官方在线商店:Crayola.com
2019/09/07 全球购物
园林施工员岗位职责
2013/12/11 职场文书
高中教师个人工作总结
2015/02/10 职场文书
手把手教你怎么用Python实现zip文件密码的破解
2021/05/27 Python