找回密码
 加入后院

QQ登录

只需一步,快速开始

搜索
查看: 2597|回复: 10

[其他] 吓人一跳的评分规则

[复制链接]
发表于 2008-11-28 00:32 | 显示全部楼层 |阅读模式
大家在做一些公司的笔试时,是否有时觉得编程题简直弱智?是否有时候考完试感觉良好,但是最后却发现自己没通过笔试?很多时候,我们做题并不懂对方的评分规则,结果笔试时吃大亏。说白了,不是我们不懂规则,而是大学本科的教育不健全(甚至本身教育思想有偏差),从而导致我们在工作中存在隐患。
+ x* ~4 w8 _. i9 Q/ o. E现在就针对昨天的3G编程题讲解讲解。昨天笔完3G后,觉得自己分数超过60希望很大。但是现在看了相关评分规则后,觉得自己基本挂了。希望我以及其它有同等问题的人能总结教训,避免丧失更多好的求职机会。(当然,早就有良好编程风格的可以偷笑了)9 l' G$ L" o. U7 {5 ^4 ^
0 e+ w* Q& H6 U( L
(1)不调用C++/C的字符串库函数,请编写函数 strcpy3 m, x7 C* m6 h+ j. X
char *strcpy(char *strDest, const char *strSrc);
6 C' D! i3 Z- d5 m
1 h6 d7 P) }8 k* ]6 U很简单,是吧?再看看别人评分标准:3 u- n( @! v) R7 m5 g$ V5 l$ t
char *strcpy(char *strDest, const char *strSrc);
3 N" t5 R3 N3 a. w7 P1 s0 h# N5 _$ z3 v7 l- ]) H5 J; d
{
6 Y% c- S6 u/ H% n, `0 a' K3 O# Z; L2 T5 ^7 v* W
    assert((strDest!=NULL) && (strSrc !=NULL));   // 2分/ I4 N" L; G- V' [* o. p$ g6 z
+ E- _- T& ?+ L8 b% X) O
    char *address = strDest;                     // 2分
5 \) w2 `% [0 V. j2 A
* _( f" i0 d! T& j% ]    while( (*strDest++ = * strSrc++) != ‘\0’ )      // 2分
$ q0 h# Z- _, `& I* t  T/ N
7 Z% C4 O/ t, s9 o( @% C/ J       NULL ; 5 n/ H& N" m3 E) Y8 ]( o
- m6 X8 d: [. O# r: m7 @
    return address ;                            // 2分
4 ^" G8 a# P& `7 s6 J3 Y* v1 T6 l/ C# Q( E
}$ {' ^9 c  Z9 C# c4 G
2 M0 N8 I4 J' q  K
不知有没有人跟我一样,发现自己基本一分不得?——因为,我们编程时没有良好的风格,写代码时没注意健壮性、可读性等规范,出错处理意识不强。结果写出的程序,BUG不断,理还乱。这种程序,算法似乎对了,但其实不能得分。
8 N0 f% s/ |# f/ R0 \! `/ X3 p# b再看看其它一些评分规矩。大家会发现,原来即使算法对了,但是编程风格不良,也是不能被人接受(体现在笔试中就是不能得分)的!3 ?3 y& r, R# k3 b
一、请填写BOOL , float, 指针变量 与“零值”比较的 if 语句。(10分)+ t* S* M& C1 z

. j3 O8 l' H  U. f6 o# T2 {. L+ G6 o! \( i  b

0 _; V' r; l7 M$ c请写出 BOOL  flag 与“零值”比较的 if 语句。(3分)& l0 W' g2 P, y' c) b* `

/ L0 L. o1 V) [. @4 \标准答案:
. m; K0 g' D8 `# L9 ?$ a
  j! A/ y( b# N0 g) {& O1 O2 I+ s    if ( flag )
/ @3 h2 n7 h6 K4 T  ~+ G, q3 g
: h& a% L3 C% F9 R; O/ b    if ( !flag )2 X" P% c9 w4 G1 I/ ^# h
如下写法均属不良风格,不得分。; p* R, K; i/ Q9 q

8 U+ g2 J! w+ P4 }  d" o    if (flag == TRUE)   
3 G2 r! l  c8 W0 n: l" c3 _0 |6 m8 C; a0 Z# B. t3 e% ]# K
    if (flag == 1 )     0 q, ?1 ~, {9 S* p: N2 \

% K3 d& N0 k  w6 ~7 |    if (flag == FALSE)  
, g2 c) A  D+ q2 K0 d, U' t: ~& P  q+ ~
        if (flag == 0)      1 X6 \! a! k2 B/ J! }( w/ ]
) I8 D( g5 t) q0 D% t$ c/ a) p2 i
请写出 float  x 与“零值”比较的 if 语句。(4分)
- o) D" i3 u0 Q" Y6 D3 C
1 B; A  g- }% E1 \" G标准答案示例:
- T% w% q/ {5 Q% ^% T# o$ C/ ~- J. z  N- d, M8 N0 Y- l
const float EPSINON = 0.00001;
- n# d: p* J) V# v5 D6 c% N: j
4 k/ ~; \% C3 tif ((x >= - EPSINON) && (x <= EPSINON)
2 ?' V5 G- v5 X- _' W0 R  a# D- M1 q: ~9 J' L4 S% `
不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。
2 {9 I. S" Z9 H+ C/ D& `) z
& P( x9 `- Z; }$ @+ |2 a( _9 S   ! y# l4 e3 c+ V: D$ G& }
  
+ @% |4 b3 B; f  ~- }9 t
; @0 m. h# S( k" C+ T如下是错误的写法,不得分。
6 Q+ a( R* ?- [" }$ b0 A8 }
# y+ a0 y2 D- P# \: x1 p1 i    if (x == 0.0)   
$ U; r: {8 h9 |+ B9 B/ P# l; ?5 w
8 j3 L9 G" Z6 \2 q1 p% Z. f* P    if (x != 0.0)      
" r0 W5 p9 ~; {0 P, Z: \
6 b0 M7 x3 o* \   
: W5 l- t3 _! I4 |) V& o- ?7 L
* j- r5 ?7 r$ y" f2 [  ^$ x请写出 char  *p 与“零值”比较的 if 语句。(3分)+ K; n( {0 |; {7 b: a9 e5 o+ g6 x
7 M+ i+ F: o% I: a& _
标准答案:3 l) ]0 A$ Y0 I/ }

( Z4 x/ y7 i9 P) U% c    if (p == NULL)( T/ j. o3 z) ^# T
$ V: A- X- |& i7 i; h5 B2 r9 \
    if (p != NULL)
: }$ Q- T4 d) C( K如下写法均属不良风格,不得分。
3 U1 B6 d* I; r) J: M; ]! G+ `6 V( v3 W2 F) A5 K5 \. I
    if (p == 0) + b+ f6 g6 s# b' i# T/ E" X  ?
8 @2 \3 ]: y6 b) @2 u% ~) y
    if (p != 0)     
0 B. W$ F) M5 p7 }$ j5 m8 l! a2 u2 [/ x0 U2 r( Q  d& o
    if (p)  3 t/ }2 b6 D% S# e! k- _
. A) G8 Q  X4 P) m+ E) n
        if (!)      7 O1 I( p7 C: ?$ ~- _' `0 r2 O

# i6 x9 P( t/ X+ H2 |7 b看到了吧?
发表于 2008-11-28 00:38 | 显示全部楼层
深有同感
回复

使用道具 举报

发表于 2008-11-28 01:47 | 显示全部楼层
strcpy几乎和答案一样的路过。。。
回复

使用道具 举报

发表于 2008-11-28 14:31 | 显示全部楼层
不懂编程的路过.
回复

使用道具 举报

发表于 2008-11-28 14:46 | 显示全部楼层
判断零值那部分本来就不能用==号,这不关风格不风格的问题,用==号的就是错误的。
回复

使用道具 举报

发表于 2008-11-28 19:29 | 显示全部楼层
晕死...摆明是语法错误...  并非编程风格问题.....
回复

使用道具 举报

发表于 2008-11-28 19:32 | 显示全部楼层
哈哈哈,楼主有意思哦
回复

使用道具 举报

发表于 2008-11-28 19:38 | 显示全部楼层
今天看了卷子,63分
回复

使用道具 举报

发表于 2008-11-29 10:33 | 显示全部楼层
编程的安全性问题..   你考虑得够不够细蜜!!!  就是这样, 否则写出来的程序,人家故意刁难你,那么你的东西就崩溃了
回复

使用道具 举报

头像被屏蔽
发表于 2008-11-30 19:43 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2008-11-30 21:34 | 显示全部楼层
点去睇试卷的??
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2026-6-22 10:00

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表