找回密码
 加入后院

QQ登录

只需一步,快速开始

搜索
查看: 2689|回复: 10

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

[复制链接]
发表于 2008-11-28 00:32 | 显示全部楼层 |阅读模式
大家在做一些公司的笔试时,是否有时觉得编程题简直弱智?是否有时候考完试感觉良好,但是最后却发现自己没通过笔试?很多时候,我们做题并不懂对方的评分规则,结果笔试时吃大亏。说白了,不是我们不懂规则,而是大学本科的教育不健全(甚至本身教育思想有偏差),从而导致我们在工作中存在隐患。, d7 v3 ^! O$ m4 b/ Q$ d- J
现在就针对昨天的3G编程题讲解讲解。昨天笔完3G后,觉得自己分数超过60希望很大。但是现在看了相关评分规则后,觉得自己基本挂了。希望我以及其它有同等问题的人能总结教训,避免丧失更多好的求职机会。(当然,早就有良好编程风格的可以偷笑了)1 ?9 E- M" T: ~2 o& @

7 |1 t. k( u( Q$ g, s0 M(1)不调用C++/C的字符串库函数,请编写函数 strcpy4 H* q/ m* m- A8 F& T
char *strcpy(char *strDest, const char *strSrc);- C2 B4 M$ o# i7 {( V& A# l0 G8 R% ?

8 `7 B5 T  X; x( b很简单,是吧?再看看别人评分标准:
8 W8 L! Q. ^% l* ~1 [/ kchar *strcpy(char *strDest, const char *strSrc);9 `, u; m% a/ m$ ^  Y; w9 V
) l) l& G. p" G
{) Y5 x7 M! K& F$ ]  g: E
5 W: u% A. ~  ?. E1 J
    assert((strDest!=NULL) && (strSrc !=NULL));   // 2分  k( Q) }6 K: S

3 x" t* K! S$ Y3 f# q8 `+ U    char *address = strDest;                     // 2分8 }; Q/ D+ ~" g( y5 T; X

( S' m7 R- Y" f. |" R    while( (*strDest++ = * strSrc++) != ‘\0’ )      // 2分
( [4 F8 u; B6 `" g' f: E  y& n5 J) x6 I  f8 M4 e' f* ^
       NULL ; 7 X) F6 l  l  r# }2 Q
, I* k$ R: i; i/ J2 r* @2 f
    return address ;                            // 2分
. R7 T: R; S) T8 V" F: L; x- c9 W5 L4 \' S: u4 k- y
}
7 ^; ^7 G( ^! h* h8 |& l6 O( R* Z$ j; L, ^: ?' o) m) I: @
不知有没有人跟我一样,发现自己基本一分不得?——因为,我们编程时没有良好的风格,写代码时没注意健壮性、可读性等规范,出错处理意识不强。结果写出的程序,BUG不断,理还乱。这种程序,算法似乎对了,但其实不能得分。
6 E% r4 u) _" X  m  d& v. u0 K再看看其它一些评分规矩。大家会发现,原来即使算法对了,但是编程风格不良,也是不能被人接受(体现在笔试中就是不能得分)的!2 o) y5 P9 x& v/ Y  k
一、请填写BOOL , float, 指针变量 与“零值”比较的 if 语句。(10分)
% h6 v. u. C3 F) p" \: N' T5 b9 M) B  L, E5 v( a$ ^, Q' L
/ \8 H2 }3 a1 a, m+ G
2 O1 k- l0 A! H4 m) o0 V6 q0 \
请写出 BOOL  flag 与“零值”比较的 if 语句。(3分)
2 t3 P# w# K# V6 _% K
; A' P! f# ~) @& o# T' B( k; V% o标准答案:& r# o+ j6 C4 p" R. A

0 l" g; p  Q- a) _    if ( flag )3 a4 m+ K- S+ J) C4 S

5 H1 T& ^/ u' b7 @    if ( !flag )) M  i9 J" s3 m
如下写法均属不良风格,不得分。& C5 k& h3 i' K( G' r% s6 O$ M

; [! z0 ]: _: v5 w  v    if (flag == TRUE)   
! W* U9 w/ M8 i! G, v# |- d0 h9 @& D* [" X% c$ E5 g: T  e0 l
    if (flag == 1 )     8 O1 s! w  O2 k  K7 ~

9 i6 n% [! C! o5 {# _& L3 H    if (flag == FALSE)  " Q7 f6 e- O5 w5 y# j! Y  L5 z

7 w' ]! ~# L0 z! F* ]* o        if (flag == 0)      $ L' U9 D. L' B9 u3 o4 t( t* s4 i

. C: n) l" z/ O% m1 r2 L请写出 float  x 与“零值”比较的 if 语句。(4分)( ~: [6 Y* ]& b- c. l

0 p3 |. @+ O+ }( `0 x6 C. D8 q标准答案示例:* L9 {  f6 [$ v$ S

, R0 X6 D* a( Wconst float EPSINON = 0.00001;5 L1 o0 S3 }$ s- J! b( h7 t
7 U( n+ S# z9 N, m
if ((x >= - EPSINON) && (x <= EPSINON)' `- K; f+ P) b# q* r+ F

2 m: C, U6 f" J  u不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。( `, U! p. T4 Y" D# G
. V$ Z5 b: R/ `, d: l
   ! F/ V) l( M2 W) r1 G/ U. x2 ^
  
5 m2 x9 }/ N: K/ V' v. H% ?' x5 s5 V
如下是错误的写法,不得分。/ C+ l0 R2 J% K* A) h2 j' c
+ T0 E' m8 p/ a
    if (x == 0.0)   
9 l; ~  e) Q7 \' y' M* ]3 K; g2 J( F/ P% n
    if (x != 0.0)       + M7 k5 m& ^  K1 t/ o3 a. u4 o
; K& X- p) F" c5 Y/ N1 k$ m# D
   
' d" {- M( e* a2 \2 d( c2 G: b* L" b1 ?7 \
请写出 char  *p 与“零值”比较的 if 语句。(3分), b$ ]7 t: X+ L3 a. a8 A

; x$ h# c8 g3 N3 v: H标准答案:
' @: c6 x7 V; L( `6 A' B3 A7 Z$ a$ |9 V1 ~* a& k+ J
    if (p == NULL)
* J1 A1 s8 n0 x; |9 z( |# Q6 t  i  t) @( f# I( C# |
    if (p != NULL)8 ~6 E# ?' H! _  t$ k
如下写法均属不良风格,不得分。4 q- r4 m: w) E2 O9 n0 ^8 ?
# E. n2 c7 E9 h) c% W" m. ~1 i: p
    if (p == 0) 1 Z/ Y2 M: N6 ?8 `* l: d
6 M+ ^# t" @, E# {2 I1 p; I% u
    if (p != 0)     
" _: e7 x6 Z- D+ p0 s% _8 H- b0 r
; k9 l5 h4 K2 A; L9 E    if (p)  
2 _1 X0 _$ L2 i- w; O! r% U
& |( K% S* u" V1 A* \9 O- h/ j+ o        if (!)      
1 r9 g, T* H: q8 A8 o9 ?4 U; Y$ t- l5 x. U8 e# V; n# @- `) H0 m/ r
看到了吧?
发表于 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-11-15 14:56

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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