C语言面试题-这些简单的你能很快的写出来吗?

栏目: C · 发布时间: 5年前

内容简介:在职场上,面试已经成了我们经常讨论的一个话题,但是当我们在求职面试的时候总是会遇到各种问题,在这里我就给大家讲解一些C语言的面试题!面试题一:

C语言面试题-这些简单的你能很快的写出来吗?

在职场上,面试已经成了我们经常讨论的一个话题,但是当我们在求职面试的时候总是会遇到各种问题,在这里我就给大家讲解一些 C语言 的面试题!

C语言面试题-这些简单的你能很快的写出来吗?

面试题一:

编写一个函数将一个字符串倒置,即将“abc”变为“cba”。

分析:

这样的问题显然涉及到char型指针的运算。

Exp:

void InvertStr(char *str)

{

long int i=0;    //估计这么长的字符串应该够用了,如果实在不行只能用float的数据来试验了。

char *head;

char *chTemp;

if(NULL == str)

{

return ;

}

head=str;

chTemp=str;

while('\0' != *str)

{

str++;

i=i+1;

}

while(0 != i)

{

str--;

*chtemp=*str;

i--;

chTemp++;

}

chTemp++;

*chTemp='\0';

str=head;

}

面试题二:

请编写一个 C 函数,该函数给出一个字节中被置 1 的位的个数,并请给出该题的至少一个不同解法。

分析:

假设数是:0000_0001; 当这个数被解释为无符号数的时候,如果对2求模,那么得到的结果是多少呢?

很显然得到的结果是1; 而如果是0000_0010,这个怎么样呢? 对2求模得到的是0; 但是如果我们往右进行

移位的话,那么结果是什么呢?

Exp:

实现一:

unsigned short  CalSetBitNum(const unsigned char input)

{

short   i=0;

short   j;

unsigned char chTemp;

chTemp=input;

for(j=0 ;j<7;j++)

{

i=i+ chTemp % 2;

chTemp=chTemp>>1;

}

return  i ;

}

实现二:可以利用按位与进行判定

unsigned short  CalSetBitNum(const unsigned char input)

{

short   i=0;

short   j;

short iTemp=input;

for(j=0 ;j<7;j++)

{

if((iTemp= iTemp >>1) & (0x01) )

i++;

}

return  i ;

}

其实第二种方法可以更简单, 大家看看怎么个简单法 ?

有的人可能会用第三种方法:进行与0相与。我认为这样严格来说不能算第三种方法,我认为那只是第二种方法的延伸而已。

面试题三:

请编写一个 C 函数,该函数将给定的一个字符串转换成整数。

分析:

将字符串转换成整数,那么我们需要进行的工作是将字符串一个字符一个字符的剥离出来,然后才能进行数据的转换,

这个其实也和scanf函数一样,因为在scanf函数读入的是文本流,就是将读入的字符都认为是字符,即使输入的是123,同样也

需要进行转换。

Exp:

我们姑且简单的将字符串认为会转化为正整数,负数的留给大家讨论吧。并且认为如果输入的字符串是“123”,那么输出的应该也是

123(int型)。

unsigned  int  StrToInt(const  char * source)

{

unsigned int i;

unsigned int j;

char *pTemp;

if(NULL==source)

{

return 0;

}

while('\0' != *pTemp)

{

j= *pTemp - 48;

i=j+i*10;

pTemp++;

}

return i;

}

面试题四:

请编写一个 C 函数,该函数将给定的一个整数转换成字符串。

分析:

这个题目和上面的题目的问题刚好相反,因此可以借鉴上面题目的处理方法来进行处理。

void IntToStr(const int source,char *target)

{

int i;

int j;

if(0==source)

*target=‘\0’;

i=source;

do

{

j=i % 10;

*target=j+48;

target++;

}while(0 != (i=i/10) )

InvertStr(target);

}

以后会不定期的对C的面试题进行解读,希望借此可以增加自己的见识,也能提高自己的C水平........


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Types and Programming Languages

Types and Programming Languages

Benjamin C. Pierce / The MIT Press / 2002-2-1 / USD 95.00

A type system is a syntactic method for automatically checking the absence of certain erroneous behaviors by classifying program phrases according to the kinds of values they compute. The study of typ......一起来看看 《Types and Programming Languages》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具