苏格拉底柏拉图 发表于 2008-11-28 00:32

吓人一跳的评分规则

大家在做一些公司的笔试时,是否有时觉得编程题简直弱智?是否有时候考完试感觉良好,但是最后却发现自己没通过笔试?很多时候,我们做题并不懂对方的评分规则,结果笔试时吃大亏。说白了,不是我们不懂规则,而是大学本科的教育不健全(甚至本身教育思想有偏差),从而导致我们在工作中存在隐患。
现在就针对昨天的3G编程题讲解讲解。昨天笔完3G后,觉得自己分数超过60希望很大。但是现在看了相关评分规则后,觉得自己基本挂了。希望我以及其它有同等问题的人能总结教训,避免丧失更多好的求职机会。(当然,早就有良好编程风格的可以偷笑了)

(1)不调用C++/C的字符串库函数,请编写函数 strcpy
char *strcpy(char *strDest, const char *strSrc);

很简单,是吧?再看看别人评分标准:
char *strcpy(char *strDest, const char *strSrc);

{

    assert((strDest!=NULL) && (strSrc !=NULL));   // 2分

    char *address = strDest;                     // 2分

    while( (*strDest++ = * strSrc++) != ‘\0’ )      // 2分

       NULL ;

    return address ;                            // 2分

}

不知有没有人跟我一样,发现自己基本一分不得?——因为,我们编程时没有良好的风格,写代码时没注意健壮性、可读性等规范,出错处理意识不强。结果写出的程序,BUG不断,理还乱。这种程序,算法似乎对了,但其实不能得分。
再看看其它一些评分规矩。大家会发现,原来即使算法对了,但是编程风格不良,也是不能被人接受(体现在笔试中就是不能得分)的!
一、请填写BOOL , float, 指针变量 与“零值”比较的 if 语句。(10分)



请写出 BOOLflag 与“零值”比较的 if 语句。(3分)

标准答案:

    if ( flag )

    if ( !flag )
如下写法均属不良风格,不得分。

    if (flag == TRUE)   

    if (flag == 1 )   

    if (flag == FALSE)

      if (flag == 0)      

请写出 floatx 与“零值”比较的 if 语句。(4分)

标准答案示例:

const float EPSINON = 0.00001;

if ((x >= - EPSINON) && (x <= EPSINON)

不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。

   


如下是错误的写法,不得分。

    if (x == 0.0)   

    if (x != 0.0)      

   

请写出 char*p 与“零值”比较的 if 语句。(3分)

标准答案:

    if (p == NULL)

    if (p != NULL)
如下写法均属不良风格,不得分。

    if (p == 0)

    if (p != 0)   

    if (p)

      if (!)      

看到了吧?

chjwins 发表于 2008-11-28 00:38

深有同感

dreamwalker 发表于 2008-11-28 01:47

strcpy几乎和答案一样的路过。。。

追风少年 发表于 2008-11-28 14:31

不懂编程的路过.

仔明 发表于 2008-11-28 14:46

判断零值那部分本来就不能用==号,这不关风格不风格的问题,用==号的就是错误的。

call_me_kasa 发表于 2008-11-28 19:29

晕死...摆明是语法错误...并非编程风格问题.....

staring321 发表于 2008-11-28 19:32

哈哈哈,楼主有意思哦

dreamwalker 发表于 2008-11-28 19:38

今天看了卷子,63分

dongchenghuozi 发表于 2008-11-29 10:33

编程的安全性问题..   你考虑得够不够细蜜!!!就是这样, 否则写出来的程序,人家故意刁难你,那么你的东西就崩溃了

homexxhh 发表于 2008-11-30 19:43

HJP主席 发表于 2008-11-30 21:34

点去睇试卷的??
页: [1]
查看完整版本: 吓人一跳的评分规则