找回密码
 加入后院

QQ登录

只需一步,快速开始

搜索
查看: 2593|回复: 10

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

[复制链接]
发表于 2008-11-28 00:32 | 显示全部楼层 |阅读模式
大家在做一些公司的笔试时,是否有时觉得编程题简直弱智?是否有时候考完试感觉良好,但是最后却发现自己没通过笔试?很多时候,我们做题并不懂对方的评分规则,结果笔试时吃大亏。说白了,不是我们不懂规则,而是大学本科的教育不健全(甚至本身教育思想有偏差),从而导致我们在工作中存在隐患。. O- h1 h6 M% O6 h3 x. `2 w/ c  A
现在就针对昨天的3G编程题讲解讲解。昨天笔完3G后,觉得自己分数超过60希望很大。但是现在看了相关评分规则后,觉得自己基本挂了。希望我以及其它有同等问题的人能总结教训,避免丧失更多好的求职机会。(当然,早就有良好编程风格的可以偷笑了)9 U( h4 m  z2 r* O# H4 B: D7 y
% L  }( k! k9 O8 G
(1)不调用C++/C的字符串库函数,请编写函数 strcpy
* s0 j9 m7 x7 u" w5 ]: Fchar *strcpy(char *strDest, const char *strSrc);
" V$ g5 G& ?% n! {1 V) X4 m; L  }3 E7 W( Q- g
很简单,是吧?再看看别人评分标准:+ _, K3 G, h" n+ h. \
char *strcpy(char *strDest, const char *strSrc);
0 i. Z, A% \& w* V4 l; b) V0 ~: `% ?
{
5 c+ F4 o) ^' K4 I# h/ w) k7 w- j" Z& _# B
    assert((strDest!=NULL) && (strSrc !=NULL));   // 2分
1 x: ]! h$ w: u2 b, [9 I0 O
& y3 \' a; B  x8 S    char *address = strDest;                     // 2分2 k& H$ z  @- k% F

( a% Q8 O& ]( e7 M! K    while( (*strDest++ = * strSrc++) != ‘\0’ )      // 2分
3 i# l6 s3 w; r6 F" |; o3 F  Q
! @: u/ P1 N1 |# m( W! V$ x' ]       NULL ;
3 _. G% y( b* C- F
5 v/ P$ J$ @+ o9 |    return address ;                            // 2分
8 ^0 s0 z* M7 X' q
! T) s' f8 v3 B) s4 A/ ?5 D9 \}+ Y1 O. x# Y: z7 M

3 d8 x/ P; x8 b  |8 f. v; ~不知有没有人跟我一样,发现自己基本一分不得?——因为,我们编程时没有良好的风格,写代码时没注意健壮性、可读性等规范,出错处理意识不强。结果写出的程序,BUG不断,理还乱。这种程序,算法似乎对了,但其实不能得分。! B! p6 ]4 {9 j2 w1 G3 P
再看看其它一些评分规矩。大家会发现,原来即使算法对了,但是编程风格不良,也是不能被人接受(体现在笔试中就是不能得分)的!
! K* x' {9 N) a( Z一、请填写BOOL , float, 指针变量 与“零值”比较的 if 语句。(10分)
, I8 \0 m- y+ T/ k) W4 T
+ t4 `: I$ R  `! C
; P$ r: K! K7 i/ F6 A, D: e
5 X% m1 q6 E5 L$ h请写出 BOOL  flag 与“零值”比较的 if 语句。(3分)+ q3 v7 X; K/ s6 N4 c# k) ?

3 v+ M9 v' s; s$ Z( P2 l. g/ o标准答案:! H3 g) i' f7 E
; o& `) C' ~& y: y
    if ( flag )7 ]# d0 {, F3 p. s

6 q% n4 Y9 B$ w0 C/ ~8 L    if ( !flag )
# e  @0 e% D- S9 O! f: T; \3 j如下写法均属不良风格,不得分。3 i! I9 t1 T/ x8 X

  _3 E1 Y! l- c9 i' T7 x8 Z    if (flag == TRUE)   # p+ z& x+ q7 f! ~) [
5 W, d! e) G+ N% @* ^
    if (flag == 1 )     8 e. s& _1 \1 h  s# Y& |/ V/ p7 l
* g- n& \; L- G6 O
    if (flag == FALSE)  + b1 R9 j, X8 H! ?

2 U5 i' I/ p) [, E, \% F1 i        if (flag == 0)      8 F; y) C3 J4 ]$ r

& `- J2 [+ b* f, r  F% h请写出 float  x 与“零值”比较的 if 语句。(4分)! S* U% l& y7 `% d2 `! H4 b* N

4 {! m6 i5 j: Y5 o; S! p标准答案示例:
, o9 n0 T% U9 E" g; `- t
8 \) ]; n1 X2 ]8 n4 _2 Pconst float EPSINON = 0.00001;9 s' U( ~+ Q% ~% Q

8 x# Z) w1 O% ?4 }% F+ `# aif ((x >= - EPSINON) && (x <= EPSINON)
% i, o0 `, n" ~. {0 c/ f* [/ T
/ r* h  N/ E+ m5 e4 ?不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。& q5 l: q. P6 m: R2 O  A7 y

2 b" S; h: R! w( ^   0 D  A5 t. f  u% l# U  _. v' t
  
$ ]& i! C5 Z  e  S5 y  f0 n6 i1 Q1 a: a) S5 r( X8 F
如下是错误的写法,不得分。7 {' w4 z' m7 R7 \) S
, F" A  E; [( @/ L8 b9 f4 u
    if (x == 0.0)   : z- f) J# m$ ?9 X! E5 t8 |
) [( Y1 l6 d8 O" C4 F! _
    if (x != 0.0)      
- k. S: F# d  l) p# i3 H
% Z3 k3 B: }2 e, p   
3 c+ F- o. M& J' r) e
2 B; X- G" B  s9 Q4 O( y请写出 char  *p 与“零值”比较的 if 语句。(3分)
0 U" U0 I% m, ^9 ~! x
. T6 y. A9 |/ D  y标准答案:
2 {6 J/ }% b6 Q# Q4 H7 q; R9 X% s# q% i, v6 }- `( s4 h' u
    if (p == NULL)
9 b' o; h" w7 j9 c; q2 ^, ]9 M/ E
# [( L8 o- _4 f: o) K* J7 Y7 g    if (p != NULL)8 x/ h( G' e9 e
如下写法均属不良风格,不得分。
' L! y) r, ?' S% ]. a& b4 }9 u6 P  i, |6 L8 s4 e9 F
    if (p == 0) 8 ?. G6 [: T9 m$ n8 A/ p

3 X* H5 F7 x9 t* \2 I    if (p != 0)     : v( s. U' Y( e3 g/ s

: p2 x- t" z" _  m' J, O    if (p)  
) V8 U  X. Y) r7 J
0 l' E% `2 [4 p: l) S        if (!)      " A# }3 V# k! {0 s( A$ E

0 g. E+ S1 l1 y7 O4 f2 q+ p( ]4 \看到了吧?
发表于 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-13 20:25

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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