编写一个 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<n && *(cpSource+i) != ch; ++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<=strlen(shortstring)-i; 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 < 0 )
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<=NUM;i+=5)
{
result+=find5(i);
}
printf(” the total zero number is %d\n”,result);
return 0;
}
分享到:
相关推荐
C语言面试100题(含答案)。 例题1: /* 下列给定程序的功能是:读入一个整数k(2=),打印它的所有质因子(即所有素数的因子)。例如,若输入整数2310,则应输出:2、3、5、7、11。 请改正程序中的错误,使程序能...
"C语言面试宝典.pdf" 以下是从给定的文件中提取的知识点: 1. 关键字static 的三个明显的作用: * 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 * 在模块内(但在函数体外),一个被...
常见C++面试题汇总(最全c语言面试题) 所包含文件: 1、华为C++内部培训材料 2、130道面试题.doc 3、C++试题.htm 4、C-C++ 程序设计员应聘常见面试试题深入剖析.mht 5、C语言面试题大汇总之华为面试题.txt 6、C语言...
嵌入式C语言面试题汇总 本文档总结了嵌入式C语言面试中的常见问题,包括基本概念、程序代码评价、编程题等。以下是本文档的详细知识点总结: 一、基本概念 1. 静态关键字的作用:静态关键字有三个明显的作用:在...
以上总结了文件中所涉及的C语言知识点,这些内容对于准备C语言面试的人具有重要的参考价值,涵盖了面试中常见的考点和编程技巧。掌握这些知识点对于提高C语言编程能力以及通过华为等公司的面试都非常重要。
根据给定文件的信息,我们可以总结出以下几个C语言面试知识点: ### 1. 比较变量与“零值” 在C语言中,比较一个变量是否为“零值”(0, 0.0, FALSE 或者 “空指针”)是常见的需求。以下是几种常见类型变量与“零...
嵌入式开发—C语言面试题 本文将对嵌入式开发 C语言面试题进行详细的分析和解释,从预处理指令、宏定义、预处理器标识#error 到数据声明等多个方面,对嵌入式开发 C语言面试题的知识点进行了深入的解读。 1. ...
通过以上对C语言面试题集锦的解析,我们不仅可以系统地回顾和深化C语言的知识点,还能为即将到来的面试做好充分准备。面试不仅是对技术能力的考验,也是个人综合素质的体现,保持良好的心态,充分展现自己的实力和...
3. **内存管理**:了解堆和栈的概念,知道如何动态分配和释放内存(如malloc, free)是C语言面试中的常见问题。理解内存泄漏及其危害也非常重要。 4. **结构体与联合体**:结构体是C语言中复合数据类型的一种,用于...
### C语言面试必看知识点详解 #### 一、C语言概述 **1.1.1.1 基本知识点** 1. **C语言起源**: - **起源时间**:C语言最初由丹尼斯·里奇(Dennis Ritchie)在1972年左右开发。 - **发明者**:丹尼斯·里奇...
在C语言面试中,理解内存管理和对象生命周期是至关重要的。`new`和`delete`是C++中的运算符,负责动态内存的分配和释放,它们与C语言中的`malloc`和`free`函数类似但有所不同。`new`在分配内存的同时会调用构造函数...
C语言面试题大汇总_C语言,面试题,汇总2.PDF C语言面试题大汇总_C语言,面试题,汇总2.PDF C语言面试题大汇总_C语言,面试题,汇总2.PDF C语言面试题大汇总_C语言,面试题,汇总2.PDF
【Linux C语言面试题】是针对C语言编程和Linux系统操作的面试准备资料,涵盖了从基础知识到高级概念的多个方面。这些题目旨在测试面试者对C语言的理解深度、编程技巧以及在Linux环境下解决问题的能力。以下是一些...
c语言 面试题 与c语言有关的面试题 华为笔试题 c语言 面试题 与c语言有关的面试题 华为笔试题 c语言 面试题 与c语言有关的面试题 华为笔试题 c语言 面试题 与c语言有关的面试题 华为笔试题 c语言 面试题 与c语言有关...
C语言是计算机编程的基础,广泛应用于系统开发、...这些知识点涵盖了C语言的核心内容,对于准备C语言面试的人来说至关重要。通过深入理解和实践这些知识点,可以提高面试的成功率,并为实际编程工作打下坚实基础。
经典C语言面试题.7z经典C语言面试题.7z经典C语言面试题.7z经典C语言面试题.7z经典C语言面试题.7z经典C语言面试题.7z经典C语言面试题.7z经典C语言面试题.7z经典C语言面试题.7z经典C语言面试题.7z经典C语言面试题.7z...
本套题集包含C语言面试的经典题目,旨在帮助初学者深入了解C语言的各种细节和技巧,通过这些练习能够提高解决问题的能力,并为实际编程打下坚实的基础。 #### 详细知识点解析 ##### 1. bool, float, 指针变量与...