经典C语言面试算法题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了经典C语言面试算法题相关的知识,希望对你有一定的参考价值。
参考技术A经典C语言面试算法题
1.写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)
功能:
在字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长数字串付给其中一个函数参数outputstr所指内存。例如:"abcd12345ed125ss123456789"的首地址传给intputstr后,函数将返回
9,outputstr所指的值为123456789。
#include
#include
#include
int FindMax_NumStr(char *outputstr,char *inputstr)
char *in = inputstr,*out = outputstr,*temp;
char *final;
int count = 0;
int maxlen = 0;
int i;
while(*in!='\\0')
if(*in > 47 && *in < 58)
for(temp = in;*in> 47 && *in <58;in++)
count++;
else
in++;
if(maxlen < count)
maxlen = count;
count = 0;
final = temp;
for(i =0;i
*out = *final;
out++;
final++;
*out = '\\0';
return maxlen;
void main(void)
char input[]="abc123def123456eec123456789dd";
char output[50] = 0;
int maxlen;
maxlen = FindMax_NumStr(output,input);
printf("the str %s\\n",output);
printf("the maxlen is %d\\n",maxlen);
2.求1000!的未尾有几个0;
求出1->1000里,能被5整除的数的个数n1,能被25整除的数的个数n2,能被125整除的\'数的个数n3,能被625整除的数的个数n4.1000!末尾的零的个数=n1+n2+n3+n4;
只要是末尾是5的数它乘以一个偶数就会出现一个0,而末尾是0的数乘以任何数也都会出现0
而末尾是0的如果是一个0肯定能被5整除,两个0肯定能被25整数,以此类推3个0就能被5的三次方整除,也就是125
1000!就是1-1000数的相乘,能被5整除的所有数分别乘以一个偶数就会出现这些个的0,而例如100,既能被5整除,也能被25整除,所以就是两个0
1000,既能被5,25,也能被125整除,所以算三个0
例如是10!=1*2*3*4*5*6*7*8*9*10,里面有两个数能被5整除,就是10和5,而
5随便乘以一个偶数就出现一个0,而10乘以其它数也会出现一个0,所以10!会有两个0
#include
#define NUM 1000
int find5(int num)
int ret = 0;
while(num%5==0)
num/=5;
ret++;
return ret;
int main(void)
int result = 0;
int i;
for(i=5;i<=NUM;i+=5)
result +=find5(i);
printf("the total zero number is %d\\n",result);
return 0;
3。编写一个 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;
;
Linux下C语言的几道经典面试题
本篇文章整理了几道Linux下C语言的经典面试题,相信对大家更好的理解Linux下的C语言会有很大的帮助,欢迎大家探讨指正。
1、如果在Linux下使用GCC编译器执行下列程序,输出结果是什么?
答案如下:
2、C语言程序不使用任何条件运算符,打印出十次"Hello"?
答案如下:
或是:
3、如果在Linux下使用GCC编译器执行下列程序,输出结果是什么?
答案如下:
4、如果在Linux下使用GCC编译器执行下列程序,输出结果是什么?
答案如下:
5、如果在Linux下使用GCC编译器执行下列程序,输出结果是什么?
答案如下:
6、如果在Linux下使用GCC编译器执行下列程序,输出结果是什么?
答案如下:
最后,以上整理的Linux下C语言经典面试题,欢迎大家讨论指正。
学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入学习交流群
639368839,我们一起学C/C++!
以上是关于经典C语言面试算法题的主要内容,如果未能解决你的问题,请参考以下文章
数据结构与算法(Java版) | 几个经典的算法面试题(下)
数据结构与算法(Java版) | 几个经典的算法面试题(下)