工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 2403|回复: 10

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

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

* ~+ I+ }9 u; {  R; y(1)不调用C++/C的字符串库函数,请编写函数 strcpy
7 z  l3 E$ R& O) Wchar *strcpy(char *strDest, const char *strSrc);
" G/ N" X* x% d! z$ _
3 m5 e: D- X* M' j: w  k/ z很简单,是吧?再看看别人评分标准:
. ?9 G8 K  ^" J. ~5 T( {char *strcpy(char *strDest, const char *strSrc);
8 X0 E6 S2 ]* b/ `
2 D! N6 g! s. o9 k{
7 }) e5 |  T  I/ c( N& [) {2 p$ s; w) l  s
    assert((strDest!=NULL) && (strSrc !=NULL));   // 2分
5 F7 [+ u8 a1 O( A6 r+ ~8 E% e
/ g3 _- O9 @/ O$ h# Z7 |' _    char *address = strDest;                     // 2分( U% O' P! ?( V. o3 o5 n) s; H, X
4 v5 r( I7 |- Q" v- {% U/ c
    while( (*strDest++ = * strSrc++) != ‘\0’ )      // 2分  i; v1 ?9 X, l4 Z% d  h8 {

. T' M/ o& [' x* O# j       NULL ;
' U2 \' I2 G8 Y
% m* M, B4 n/ M6 F# D- |! u) L    return address ;                            // 2分" n5 x$ E. V& u6 @, v& e
" C& C5 C$ B3 P' Y. c: Z$ |
}& d. R. z. Y/ i: H
/ v% f+ z1 T  l2 V
不知有没有人跟我一样,发现自己基本一分不得?——因为,我们编程时没有良好的风格,写代码时没注意健壮性、可读性等规范,出错处理意识不强。结果写出的程序,BUG不断,理还乱。这种程序,算法似乎对了,但其实不能得分。4 m. S; p3 z; R/ Q3 C. q
再看看其它一些评分规矩。大家会发现,原来即使算法对了,但是编程风格不良,也是不能被人接受(体现在笔试中就是不能得分)的!
$ G( u$ L4 i& U. N9 y9 Y一、请填写BOOL , float, 指针变量 与“零值”比较的 if 语句。(10分)
6 |- ~+ x: K( I- f1 n+ a5 z7 L
1 w, I1 b' S1 @' X  V& d3 C4 i7 W$ W9 [, M
% g" [- @0 {' ^: P$ I+ _+ g# ?$ A& D
请写出 BOOL  flag 与“零值”比较的 if 语句。(3分); U3 H, E& U% ?* z/ x

6 J7 b- D; U4 Q4 A7 C. C标准答案:
4 f8 x* o3 D9 i5 z  e5 A- K
4 |) J; i+ F" t; p: c% l) r    if ( flag )4 t4 L, k& U& d  O, L6 P4 h7 ~

9 j8 @3 l1 H* E* F1 W' f( C    if ( !flag ). p) r2 M1 u* u+ M( B6 Z
如下写法均属不良风格,不得分。' Q8 @! s' Z' \7 W: a" x! \9 c& ]
: P; p& E& r8 y# b0 {
    if (flag == TRUE)   ' S5 \# m. l8 Z) E2 C
) f/ H+ {1 {1 n; m
    if (flag == 1 )     3 l7 P! l  X5 b3 S

: M) k' e& h) w    if (flag == FALSE)  ( Y5 W/ @  G/ |: o  j
7 a4 e: O0 Z6 q# w
        if (flag == 0)      * C! u$ O7 l1 h  q) v* P
- m; r, f, R3 Q/ J, Z
请写出 float  x 与“零值”比较的 if 语句。(4分)
8 d$ s% p1 |3 g
2 e# Z5 Q5 a& F6 u7 b* V标准答案示例:
) M  ^# Y5 s6 v; p* W$ [& O7 ~$ g3 P
+ f  t  J) Z# K  S' l1 X- G7 Sconst float EPSINON = 0.00001;
' N  p/ c7 r, R# C* ^. L) p) X/ ]9 U: {
if ((x >= - EPSINON) && (x <= EPSINON)
  H/ W! f7 r& }& f7 I* E  W' B
不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。
8 l: r  x  J: K7 l8 {3 A0 V/ L  V( K2 f9 K- O+ ^
   
4 m% x4 i9 g. j% s! s" f* `# s; Q- p  
& A" R0 E0 O& g+ I/ M* d9 O- V
2 W) G5 o% M& I% R/ I- K# h5 E如下是错误的写法,不得分。
+ J* }# R- [. y& i5 Q$ V: J1 \- [' h; w7 c2 }$ L4 H" g* w6 c! ]  G9 x
    if (x == 0.0)   
" w* M: ~; u) N8 x  X) _2 v( E8 ?+ o* q1 q
    if (x != 0.0)       ! I2 M  I& c& T+ k2 ], \

! s3 P4 d% j- l% m; V# k! N9 L    1 r6 X& G2 H' a- R. G& I" Z3 J
& n! n- _" H; ]
请写出 char  *p 与“零值”比较的 if 语句。(3分)
7 M% n; w7 S  ~. L) d" Y. g
) x! m8 e# C9 j; I' S4 r标准答案:
' F- B1 `- B. h/ K# j/ N& D$ _. _5 y& q% }
    if (p == NULL)9 g# p$ z' g; m/ }$ }; x7 N5 `3 }
7 }2 `  n1 E! c/ b7 f  N9 }
    if (p != NULL)  I0 c% u: S( w% \
如下写法均属不良风格,不得分。
5 V: X0 }# Q$ ]; ~: ?: Y; d
4 E9 j  N2 s) {, K+ ?8 d* u- w    if (p == 0) 7 ?5 A! P3 t5 K0 U
# a4 }3 g: Z5 i0 r0 U% l: v
    if (p != 0)     
, p2 G$ e* p$ Q1 a3 g& d( f0 w3 `" g! B/ Y2 X% `) F3 ~. i1 Y' V2 _
    if (p)  
" C/ R& Z  I3 ^% s6 z
( Z2 B+ y9 P8 u! }* E9 v        if (!)      : S" P3 G& K' O

8 V: j- b5 M' T! U# ^. q看到了吧?
发表于 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 | 显示全部楼层
点去睇试卷的??
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-20 04:53

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

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