打印

C语言一道面试题

[复制链接]
楼主: wxj1952
手机看帖
扫描二维码
随时随地手机跟帖
141
wxj1952|  楼主 | 2008-4-2 13:46 | 只看该作者 回帖奖励 |倒序浏览

赞赏133楼的认真。人和人就差这么一点。

发现诸位年龄越大的老师(不是学长)越不懂得赞扬别人,except oneself。
我敬佩:
8楼HWM,他最先想到封装后赋值;
19楼qinxg,他最先提出用结构赋值;
21楼MicroMMU,他最先写出了多数高手没有用过、也没有先于他想到的语句;(别事后诸葛亮。)
49楼xhtxzxw,别人没想到的事,他先想到了。
133楼fsaok ,对结构赋值的正确理解。“简约不简单”。

    “如果没有实验,任何答案都是对的。”——丁肇中

     (如果没有133楼的实验,再争论任何答案也没有结果。)
64楼李冬发,说错话了自己能意识到,能马上回头检查、修正自己的错误。

我自己没想到的事,别人先想到了,我就觉得别人了不起。无论他做得怎样。

男人得体、聪明的言行准侧:避免说话太私人化或有否定他人倾向。

还是那句话:这世界是多元的,多一份不同,世界就多一份色彩,看起来就更绚丽一点。这是张扬个性的时代,谁都可以说自己好,但是别说别人不好。(说话私人化或带有否定他人倾向。) sling mud at others so as to boost oneself .  

有位网友说的好:XX老师总习惯于把什么事情去互相进行比较,甚至把自己与他人进行比较,然后去品评这个,评论那个。结果总免不了“说话私人化或带有否定他人倾向”。
    别人怎么逊是别人自己的事,用不着老师眼睛老盯着别人训导。老师还是像我们80后一样努力张扬自己为好。

有一幅漫画叫“不准思考(思想)”,挥舞大棒,形容遗老遗少。

使用特权

评论回复
142
wxj1952|  楼主 | 2008-4-2 15:27 | 只看该作者

回 135 楼IceAge老师

4个问题:
1、我为什么要做的跟您一样?我有我的脑子,我自己会思考。我从不学任何人。我也从不认为你用C++有什么不好。我品评/评论过你什么吗?自己活好自己已经够累的了,为什么什么事总拿自己和别人进行比较(than......)。

2、我一再解释过了:我的答案还没公布,您怎么还没理解?怎么142 楼就说的一清二楚,他在等待“LZ的答案”!

既然我还没公布过答案,我除了出了一道题以外,什么都没做过,(参与过HWM想到的结构赋值方法)您怎么就“卖弄、新创意、可笑....”的急于开训了,我不知道您在训谁,在笑什么。没任何目标啊? 攒足了口水,相煎太急了吧。
     还是从现在开始,想想我的最后答案是什么为好。在我公布答案之前,你如果没有想到,那么在你见到答案之后,就别说任何否定他人的话。例如你事先没想到,8楼/21楼想到了,就别说别人C不合理什么的,那你是什么?大师有大师的风度“我虽然不赞同你的想法,但我同意/鼓励你发表它。”

3、“但招聘资深软件工程师,memcpy应得3 分,原因我前面已经说明了。”

老师会不会录取下面答案的面试者做软件技术总监?(请原作者原谅,我对事不对人。)您需要多少个这样的软件“资深”工程师?我表弟——一个还未毕业的大专生都能看出这种写法的漏洞:“初学者,库函数都不会调用,学什么C ?”他到你们公司能当技术总监了,资深呀。(有机会再拉一个中专生来考考这个写法的漏洞。)

memcpy(&b[0],&a[0],len);

4、想再给老师出2道题,老师没接招?C教材391页看了没有,还老说C++ 。我能用C实现的为什么非跟我大谈C++?无关的事情别联系。你愿意用尽可以把你的方案贴上来。
  希望我抄的话我就贴上来,不过可别错觉那就是最终答案。答案差得远呢,最终答案无人能贬。因为谁不可能表现自己比ANSI 还高明。

使用特权

评论回复
143
将军令| | 2008-4-2 20:41 | 只看该作者

有错吗?(回121楼wxj1952)

回121楼
等想清楚了以后,再看下面这句话:

“不要动不动就提什么面向对象,C51里面没有对象!!!”

有没有可能同样也会被人抓住漏洞,结果是自己概念不清?

在自己没有清晰确定概念之前,就别“教导”别人,“不要这,不要那。”现在大学里这样的“粗糙”老师太多了。问什么不知道什么。不问的全知道。

   我非常盼望请将军令老师为我们给“对象”下个清晰的定义。抄抄书上的也行。要注明出处。
---------------------
有错吗?
你的C51可以编译C++的代码吗?
你的C51 代码可以封装成class吗?
你的C51 数据和函数可以声明成私有和公有吗?
你的C51可以从CObject派生出一个自己的类来吗?
你的C51可以使用C++的模板类吗?
你的C51可以在内存里面 new一个对象吗?
你的C51可以.....吗?
C51就是C51,51里面可怜的那么一点memory,注定了他的很多不足之处

当然我理解的对象是C++里面的对象,不知道121楼理解的对象是什么????

使用特权

评论回复
144
将军令| | 2008-4-2 20:46 | 只看该作者

memcpy是经过测试的库函数,为什么不用?

人家写编译器的时候,一起提供的函数,经过测试,久经考验

为什么不用?
凭什么不用?
为什么不用?
凭什么不用?
为什么不用?
凭什么不用?
为什么不用?
凭什么不用?
为什么不用?
凭什么不用?

使用特权

评论回复
145
dld2| | 2008-4-2 20:49 | 只看该作者

传说中的JP

使用特权

评论回复
146
IceAge| | 2008-4-2 20:52 | 只看该作者

to: wxj1952 我并不想吵架

"我有我的脑子,我自己会思考。我从不学任何人" -- 没有人指责你没有脑子,你先前也并没有指责过我,我说过,我觉得可笑的原因是因为你用大帽子(什么“创新“等等)指责别人,而且我现在仍然觉得可笑,如果你认为我不该笑,或者是没有资格笑,或者是让我拿出证明我又资格觉得可笑,那是你的事,你自己可以看看你自己前面帖子。

而且,我并不关心你的答案,我就事论事,我在83楼的帖子没有针对任何人,仅仅从设计角度发表意见,而你其后的言论,尽管不是针对我,有必要发表一些技术之外对于个人的评论吗。

另外:我只是说“在招聘资深软件工程师,memcpy应得3 分“,并不是说要招聘能用memcpy 的人。而且我可以这么说:能用memcpy 的人不一定会被招聘,用结构强制的人一定不会被招聘。这个简单的充分必要逻辑,就不要我多解释了吧。

你认为我比你差的很远,根本不重要,也没有人贬低你的答案,这里是技术论坛,你要说好,就请拿出理由来,说明为什么好,不要拿教材或者是ansi c 作依据,众人的回答哪些是超出了教材或者是ansi c?更何况ansi 至今还存在争议, 比ansi高明的东西还有很多。

再强调一次:你要说你的答案好,就请拿出理由来。如果不能,请闭嘴。

使用特权

评论回复
147
将军令| | 2008-4-2 20:54 | 只看该作者

用你的太太来解释一下“对象”

在自己没有清晰确定概念之前,就别“教导”别人,“不要这,不要那。”现在大学里这样的“粗糙”老师太多了。问什么不知道什么。不问的全知道。

   我非常盼望请将军令老师为我们给“对象”下个清晰的定义。抄抄书上的也行。要注明出处。
====================
俺不用抄写书本,我对面向对象的理解已经可以很透彻的解释这个问题
对象,就是一个数据和代码的封装体。

比如你的太太,同时包含了他的身体和思想、习惯、爱好,成为一个“对象”
他有对你的接口,比如和你说话的接口、和你上床的接口。
但是有些东西是她私有的,比如她生孩子的设备和过程,生孩子的时候,你只要在特定的输入接口输入特定 的内容,然后再特定的接口得到输出,中间的过程,你无需管理和关心(这就是对象的封装性!)

你从这个角度去理解软件里面的对象,就ok了
============
觉得我解释的好的,请跟帖一下!!呵呵

使用特权

评论回复
148
oufuqiang| | 2008-4-2 21:19 | 只看该作者

LS太强了,汗一个~~~~~~~~~~~~~~~~~~~

使用特权

评论回复
149
rui.costa| | 2008-4-2 21:30 | 只看该作者

149

To 149:very good~~~

使用特权

评论回复
150
IceAge| | 2008-4-2 21:57 | 只看该作者

将军令同学

猛人啊

使用特权

评论回复
151
李冬发| | 2008-4-3 00:19 | 只看该作者

楼层高是高了点,再盖一层吧

在C++中,结构体整赋值是得小心使用的!相当情形下得重载“=”运算才合适的。在C中还是不用为好!

使用特权

评论回复
152
zxq1234508| | 2008-4-3 10:48 | 只看该作者

149

实在是人才!

使用特权

评论回复
153
zyok| | 2008-4-3 11:41 | 只看该作者

继续听课,wxj1952总能掀起风浪。。。

使用特权

评论回复
154
xhtxzxw| | 2008-4-3 12:43 | 只看该作者

嘿嘿

这座楼盖得好高啊!学习中。

附带回134楼,我给自己-3分,满意吗?

我似乎知道:在一行(不能带分号,也就是一句)C代码里,既要做结构体类型的定义,又要做运算对象(就是变量吧,不是指的C++的对象)的类型转换,还要做结构体对象的引用,除了裸奔,还能怎么办?等待134楼的答案,如果有,请发上来,夏天快到了,我可以脱光了一边凉快去,否则,请134楼自己脱光了一边凉快去。

使用特权

评论回复
155
HWM| | 2008-4-3 13:01 | 只看该作者

re 156楼:我在71楼早就有答案了。

“结构和对象的赋值复制确实有相当多的好处,但要注意合理封装。如果封装漏了馅,甚至都没有封装的**秀,实在不敢恭维。让我看来连那出题的都该给fire了。”

你愿意**秀就随便,只要你的经理或老板能够容忍就行,也许你自己就是老板,那就更没话说了。

呵呵,波饭的下酒菜。

使用特权

评论回复
156
guff11| | 2008-4-3 14:24 | 只看该作者

C语言一道面试题

有必要这么麻烦么,不管黑猫白猫,能实现目的就行了啊...

使用特权

评论回复
157
jimoom| | 2008-4-3 16:26 | 只看该作者

!!

#define _MAIN_C_
#include "reg51.h"
#include "main.h"
union bb
{
    int cc[10];
};
void main (void)
{
    int a[10]={0,1,2,3,4,5,6,7,8,9},b[10]={1,2,3,4,5,6,7,8,9,0};
    *(union bb *)a=*(union bb *)b;
    while(1);
}

这样就能整体拷贝了!

使用特权

评论回复
158
zxq1234508| | 2008-4-3 16:31 | 只看该作者

期盼答案

使用特权

评论回复
159
xhtxzxw| | 2008-4-4 00:20 | 只看该作者

嘿嘿

引用

  71楼: 楼主:闭嘴,别在这里大谈C/C++。 

  结构在C中只是个“小娘养的”,它在C里原本就没有做类型的资格,非得要加个typedef才能登堂入室。只是在C++中才沾了类的光给转正了。

  结构和对象的赋值复制确实有相当多的好处,但要注意合理封装。如果封装漏了馅,甚至都没有封装的**秀,实在不敢恭维。让我看来连那出题的都该给fire了。

不明白,真心请教! 希望给出示例,typedef 在什么情况下以及如何使用呢?呵呵
另外,先有C++还是先有C?谁沾谁的光呢?还没有C++的时候,结构可一直在好好的用着。
此外,71楼的论述与我156楼的问题似乎说的不是一回事吧???这是答案吗?

使用特权

评论回复
160
ocon| | 2008-4-4 06:06 | 只看该作者

如果wxj1952是我的员工,马上炒掉。

与技术无关。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则