设为首页 加入收藏

TOP

C语言学习趣事_经典面试题系列_1
2014-11-23 22:13:02 来源: 作者: 【 】 浏览:0
Tags:语言学习 趣事 经典 试题 系列

这篇文章开始的时候发布于: 2011年06月15日, 22点32分。

但是由于我本人C语言水平有限, 并且在发布代码的时候没有进行调试, 使得第一个面试题的Exp代码出现错误, 虽然思路上没有错误,

但是有网友跟帖及时纠正了我的错误, 在此对:menggucaoyuan 表示感谢。 感谢他让我明白了一个道理:实践是检验整理的唯一标准。

在此对由我的随笔引起阅读者的误解表示抱歉。在以后的随笔中我将保证没有经过验证的代码不再往博客园上贴发。

下面是我已经修正过的代码:


show sourceview sourceprint 01 #include

02

03 void InvertStr(char *str)

04 {

05 long int i=0;

06 char *chTemp;

07 char *Temp;

chTemp=str;

08

09 while( != *str)

10 {

11 str++;

12 i=i+1;

13 }

14 // printf(" %d ",i);

15 i=i/2;

16 // printf(" %d ",i);

17 while(0 !=i)

18 {

19 str--;

20 *Temp=*chTemp;

21 *chTemp=*str;

22 *str=*Temp;

23 i--;

24 chTemp++;

25 }

26 chTemp++;

27 }

28

29 int main(int argc,char *argv[])

30 {

31 char str1[]="abcdefg";

32 char *pstr=str1;

33 printf("%s",pstr);

34 InvertStr(pstr);

35 printf("%s",pstr);

36 getch();

37

38 }



嘻嘻,有段时间没有搞点有意思的C语言问题了, 今天我们来看一些比较有意思的面试题,欢迎大家来跟帖讨论问题。

其实,我学习C语言的历史是已经很长了,大一的时候学C, 大学四年, 工作两年多,算起来学习C语言的历史有六年了,虽然自己学习C语言

时间够长,但是我自己的C语言水平一直徘徊在入门级的门外;说个值得自己王婆自卖自夸的事情,那就是大学C语言考试得了个96分,嘿嘿......

下面进入这次的闲扯.............

面试题一:

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

分析:

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

Exp:

void InvertStr(char *str)

{

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

char *head;

char *chTemp;

if(NULL == str)

{

return 0;

}

head=str;

chTemp=str;

while( != *str)

{

str++;

i=i+1;

}

while(0 != i)

{

str--;

*chtemp=*str;

i--;

chTemp++;

}

chTemp++;

*chTemp=;

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 >

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇《算法导论》学习总结 ― 21.第1.. 下一篇C语言中的static关键字

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: