找回密码
 加入后院

QQ登录

只需一步,快速开始

搜索
查看: 2594|回复: 10

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

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

9 C2 \8 p2 Q/ ]8 o7 ?" q(1)不调用C++/C的字符串库函数,请编写函数 strcpy
( B& D8 s& j4 Y# ^+ q0 e2 I& r/ Ychar *strcpy(char *strDest, const char *strSrc);, f! I/ Y5 R6 _: k8 F" L0 t+ i6 S
  `  [3 _. l7 |; X; ?
很简单,是吧?再看看别人评分标准:
. j! @/ e- g% z& m. K& Q( Jchar *strcpy(char *strDest, const char *strSrc);( c) P$ @' b& O

: g& U1 y& y4 G0 \6 ]! q6 f{* }" D8 ], L) p, D+ }& T" i+ H9 C0 Q
# V* n3 V- @7 c- `. d
    assert((strDest!=NULL) && (strSrc !=NULL));   // 2分7 r9 z+ X8 }$ c) N6 Z% G. z

4 C4 x. g) k6 K    char *address = strDest;                     // 2分' t6 D3 m, a9 U5 d  s& @
! S# W, f) S# P2 R2 g8 H- H/ T) W; g, I
    while( (*strDest++ = * strSrc++) != ‘\0’ )      // 2分
- E4 k( N; h7 _! r4 a- `
; c8 l# o& T, p3 c1 k  [. p. S       NULL ; : F* x9 ]# i  B
( Z9 f! z) V, \5 l- y, `
    return address ;                            // 2分
! ?6 t  o- h4 I5 E) ^
/ L% x0 e, o  z; C}0 @1 Y9 u9 G. [" \

2 r$ M8 L% Z5 D1 X不知有没有人跟我一样,发现自己基本一分不得?——因为,我们编程时没有良好的风格,写代码时没注意健壮性、可读性等规范,出错处理意识不强。结果写出的程序,BUG不断,理还乱。这种程序,算法似乎对了,但其实不能得分。9 S1 m. V! m; o) v7 f/ N
再看看其它一些评分规矩。大家会发现,原来即使算法对了,但是编程风格不良,也是不能被人接受(体现在笔试中就是不能得分)的!+ _$ y: ^  h& `5 t2 y8 P
一、请填写BOOL , float, 指针变量 与“零值”比较的 if 语句。(10分)4 K- A3 N* I5 g, _* U7 y; `! v! e
! l+ l, G8 O5 h5 B! j8 S- r
; u! x9 {; G- f8 f) [& v

# X. j, @- C& s8 q请写出 BOOL  flag 与“零值”比较的 if 语句。(3分)4 `% X, k+ A8 @" J3 \+ t4 ^) _
8 U2 W" u' w  \
标准答案:
* V3 {9 T; }$ d% W+ ~1 I" |. L, t7 h' N: b
    if ( flag )( m, g7 q6 Q$ W% v& j, |
6 C# V$ {0 T5 Q8 \  Y$ y
    if ( !flag )
$ Y% T8 P1 ~8 Q如下写法均属不良风格,不得分。9 A+ G  r+ q6 h/ ~6 {6 V
+ P6 e; q. l/ v6 \7 c
    if (flag == TRUE)   
, \8 j$ G; X. f0 z6 W
; d/ E8 G& [" J9 t    if (flag == 1 )     
" v; G2 k- X: M0 V5 A+ @5 K. k" T, P  N/ ?# S
    if (flag == FALSE)  
. e- ]2 y) m6 w! `# o! ^6 U1 O& w0 ^
        if (flag == 0)      
% t( z# }7 m! J+ c9 j
/ B! G: S# ?4 s, {; g: L请写出 float  x 与“零值”比较的 if 语句。(4分)
1 c* J; K% z# p. I/ d6 e+ f0 i7 a& P* y
标准答案示例:0 d, H4 z) Y. f+ ~3 b6 [4 m0 S6 d

1 U5 d9 |# f) l5 ?$ Wconst float EPSINON = 0.00001;) i' s1 s) {- B* Z  L

% H8 M/ Y2 y7 \4 C: ^4 ^0 Tif ((x >= - EPSINON) && (x <= EPSINON)
$ F. D- y7 W; \, A1 Y( i' b! ], u7 {4 e1 r, e9 a+ s
不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。
9 R- C0 W3 d) ~/ g; H7 [$ P: P7 |( @
   
, a2 P0 H4 X+ h0 y: m& C  1 x- b1 k) D( Q5 K* s" i+ x$ g7 [4 D

1 `3 p# ]8 k% z" f- b  W. X如下是错误的写法,不得分。* \+ l' t8 N! P8 k( w$ K' U4 e
5 ]4 ^5 k3 |% U$ T, W  a3 e6 z; \0 C
    if (x == 0.0)   7 T! @+ E. a) R* l1 L4 w6 n. S
( V. M) z( ~6 U) @
    if (x != 0.0)      
7 z, ]7 O: a+ D" A" z" R: q# ~
) ?, i# d/ A( }" D& i" ]6 g    9 g* \8 i3 P: r# M4 V4 M

: l* Q- _4 S% B6 ]; n% s( f请写出 char  *p 与“零值”比较的 if 语句。(3分)
3 [- R6 j2 N6 X+ O1 v  t$ N- M, I# t- {3 H. v
标准答案:
4 V% o( T! p) s9 x2 U3 l  J- M! F8 r' Q* f
    if (p == NULL)
- D# e: R4 f. ^2 J: f7 H- T5 C  m4 n4 `
    if (p != NULL)8 u0 R7 G/ e) e) x, K
如下写法均属不良风格,不得分。3 g1 U7 K8 o, O" \2 Q; R- r3 d" d

9 n8 ~! y1 ?8 w) w: H. G    if (p == 0)
9 v+ q/ S4 G6 [, U; a# y! a: s1 S, b8 F! e
    if (p != 0)     
0 H0 B/ I+ Q) j. g8 J
  R3 u1 N4 S% l$ h* K9 n    if (p)  1 C- g, s9 z0 h1 j, _

" d- M, u$ a+ B+ K* Y8 o        if (!)      
3 S! s2 \8 V& e' r6 `+ n3 P, H
0 w9 i, M2 v1 {0 ~: V( c看到了吧?
发表于 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-15 07:20

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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