预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

C语言笔试题C语言笔试题集锦1、编写一个C函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的。char*search(char*cpSource,charch){char*cpTemp=NULL,*cpDest=NULL;intiTemp,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;}returncpDest;}2、请编写一个C函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值。intsearch(char*cpSource,intn,charch){inti;for(i=0;ireturni;}一个单向链表,不知道头节点,一个指针指向其中的一个节点,问如何删除这个指针指向的节点?将这个指针指向的next节点值copy到本节点,将next指向next->next,并随后删除原next指向的节点。#includevoidfoo(intm,intn){printf(m=%d,n=%d\n,m,n);}intmain(){intb=3;foo(b+=3,++b);printf(b=%d\n,b);return0;}输出:m=7,n=4,b=7(VC6.0)这种方式和编译器中得函数调用关系相关即先后入栈顺序。不过不同编译器得处理不同。也是因为C标准中对这种方式说明为未定义,所以各个编译器厂商都有自己得理解,所以最后产生得结果完全不同。因为这样,所以遇见这种函数,我们首先要考虑我们得编译器会如何处理这样得函数,其次看函数得调用方式,不同得调用方式,可能产生不同得结果。最后是看编译器优化。2.写一函数,实现删除字符串str1中含有的字符串str2.第二个就是利用一个KMP匹配算法找到str2然后删除(用链表实现的`话,便捷于数组)/*雅虎笔试题(字符串操作)给定字符串A和B,输出A和B中的最大公共子串。比如A=aocdfeB=pmcdfa则输出cdf*///Author:azhen#include#include#includechar*commanstring(charshortstring[],charlongstring[]){inti,j;char*substring=malloc(256);if(strstr(longstring,shortstring)!=NULL)//如果,那么返回shortstringreturnshortstring;for(i=strlen(shortstring)-1;i>0;i–)//否则,开始循环计算{for(j=0;j<=strlen(shortstring)-i;j++){memcpy(substring,shortstring[j],i);substring[i]=\0;if(strstr(longstring,substring)!=NULL)returnsubstring;}}returnNULL;}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);elsecomman=commanstring(str1,str2);printf(thelongestcommanstringis:%s\n,comman);}11.写一个函数比较两个字符串str1和str2的大小,若相等返回0,若str1大于str2返回1,若str1小于str2返回-1intstrcmp(constchar*src,constchar*dst){intret=0;while(!(ret=*(unsignedchar*)src–*(unsignedchar*)dst)*dst){++src;++dst;}if(ret<0)ret=-1;elseif(ret>0)ret=1;return(ret);}3,求1010!的未尾有几个0(用素数相乘的方法来做,如73=2*2*2*3*3);求出1->1010里,能被5整除的数的个数n1,能被25整除的数的个数n2,能被125整除的数的个数n3,能被625整除的数的个数n4.101