工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 2146|回复: 10

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

[复制链接]
发表于 2008-11-28 00:32 | 显示全部楼层 |阅读模式
大家在做一些公司的笔试时,是否有时觉得编程题简直弱智?是否有时候考完试感觉良好,但是最后却发现自己没通过笔试?很多时候,我们做题并不懂对方的评分规则,结果笔试时吃大亏。说白了,不是我们不懂规则,而是大学本科的教育不健全(甚至本身教育思想有偏差),从而导致我们在工作中存在隐患。4 a5 s6 S' s, g- L5 N; N% v" Q
现在就针对昨天的3G编程题讲解讲解。昨天笔完3G后,觉得自己分数超过60希望很大。但是现在看了相关评分规则后,觉得自己基本挂了。希望我以及其它有同等问题的人能总结教训,避免丧失更多好的求职机会。(当然,早就有良好编程风格的可以偷笑了)+ K5 |: x/ d" D* E0 k+ z7 C0 N
6 D) t, \: b3 U( O/ R! G! ?
(1)不调用C++/C的字符串库函数,请编写函数 strcpy
: |+ g5 ?* P) \! h" M( \char *strcpy(char *strDest, const char *strSrc);
# h/ q' b8 ]/ K/ I; q' \0 j* P- {0 ^# \0 Y/ e
很简单,是吧?再看看别人评分标准:
+ P, D: _: t/ n! T' _$ _char *strcpy(char *strDest, const char *strSrc);
. n3 v. n) g+ d# Y' j
" h9 v' h5 k/ v+ O! V{& h' J4 \; l( k! @
9 w" o5 O0 c1 V* c* ^
    assert((strDest!=NULL) && (strSrc !=NULL));   // 2分, o0 ]9 t* x5 ^8 n

# }& v' i. {, c9 t" m) Z1 d    char *address = strDest;                     // 2分/ U& t( K' C$ b8 W" E; q

! G0 f3 G1 p. i0 ?1 S: W* _+ z6 n    while( (*strDest++ = * strSrc++) != ‘\0’ )      // 2分
7 B4 E5 b5 v( o& l  S
2 H: v2 q2 z( I7 B, S       NULL ;
7 P' t: z2 H3 f5 F' Q( J- l2 y
+ f$ X; f4 F$ f8 P+ b    return address ;                            // 2分1 A. W4 T- @' F

2 W8 U6 `' c* `3 D6 s}) }0 C5 E/ R9 q4 j9 Y' j- `
$ h8 d: T! i6 S7 G' i$ V
不知有没有人跟我一样,发现自己基本一分不得?——因为,我们编程时没有良好的风格,写代码时没注意健壮性、可读性等规范,出错处理意识不强。结果写出的程序,BUG不断,理还乱。这种程序,算法似乎对了,但其实不能得分。
/ R' i0 N9 j) t: g( P再看看其它一些评分规矩。大家会发现,原来即使算法对了,但是编程风格不良,也是不能被人接受(体现在笔试中就是不能得分)的!
) [# v" F8 p) r' ?一、请填写BOOL , float, 指针变量 与“零值”比较的 if 语句。(10分)
/ j7 x' x0 E, j7 ~" Z4 A1 c
/ r1 ?8 ]( B4 L& w. K
$ Z% S5 |7 o  N: G6 c# J9 p2 D' e$ c/ u; O7 m5 i) c
请写出 BOOL  flag 与“零值”比较的 if 语句。(3分)
# l2 ~  K" s8 l  K
6 H6 I6 B1 s7 B* ^3 {5 m标准答案:9 f0 c/ i6 r2 U" H/ E: C) Z

5 L: t1 ~3 E! S0 V% L7 h    if ( flag )
4 ~% ], e8 V% S4 g. \: s, |! u6 f8 ]! [8 Z; v- V; S0 z
    if ( !flag )
9 r9 w0 N" w" w- O如下写法均属不良风格,不得分。7 Y: i# N. f& b2 `
/ D3 e. Y$ i) y( D  m
    if (flag == TRUE)   # V- ^: X/ `% I, [
7 h- G8 k( f- A/ j6 l, ~- s% S
    if (flag == 1 )     8 X/ B0 V/ m/ T. u
! I2 v0 H, g) x& I" P& j6 o8 O( k
    if (flag == FALSE)  
+ o4 v' f0 _8 r8 V) k) ]
- `% T, E' f' m        if (flag == 0)      - l) |2 G4 o. `5 H$ F8 `" s5 ~6 `

" z5 X4 e2 I9 f8 ]" w1 ^6 j2 g+ p2 b请写出 float  x 与“零值”比较的 if 语句。(4分)
3 u1 y6 k1 Y* x& P6 [
+ [3 Q6 R# I1 Q  R7 \" Z标准答案示例:
2 @/ r1 I+ O5 n  P/ r  o3 F+ ?4 ^& T( Y8 {! f0 v+ p
const float EPSINON = 0.00001;8 r; L" o6 k5 D7 ^! ^" U

4 R6 _  D+ L' Z$ fif ((x >= - EPSINON) && (x <= EPSINON)! w( c. Y, A: v1 B5 M- B

9 K' c6 `) m! B* U2 b! P) F' L" s不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。& Y  H$ o% i: n( ?

; S; i/ ]: X( j; P. l! p3 k" F   ) l  J3 c2 s9 ~- e" \3 W% g0 w
  
1 u% b9 i7 `2 m' B, G
7 C7 @; ~$ O" ~3 d# Y: ?如下是错误的写法,不得分。" Q2 N6 _" M; L0 t5 [5 @

) B" s" c8 Z4 k2 _8 P/ J    if (x == 0.0)   
. y% _  W% p. M% u% }- Y
, x0 V' C+ v$ Y9 Q! ?3 v: M    if (x != 0.0)       - C, |, O- @9 l$ U' ?0 b! Q- C

& L6 h, H" t- R- z9 g1 R2 }7 q    + t; s( v0 H7 a4 o: I& c

: ^8 i% C& S1 w. p请写出 char  *p 与“零值”比较的 if 语句。(3分)
: M9 W4 z& o; z; j  G1 a8 ]9 A' B; a2 U6 V: N  Q: {- A+ q) @
标准答案:: ^- A; \' w! J& O. i/ p8 w5 K; @

( {# @0 P7 H+ \( o. ~/ j5 I8 q" f# M0 n    if (p == NULL)
" |. `: }6 o3 P8 {$ C; E8 J
9 K+ o& P9 ~' h    if (p != NULL)
% f* ?7 p9 Y5 Y! v0 k; c5 O+ _* p如下写法均属不良风格,不得分。
2 E" S2 J) a+ Y" i1 o, K( S- Y; W2 U5 p" w, }: f& }
    if (p == 0) ( v  n/ q6 t# @: i: E

2 H" p" _% h2 p. L    if (p != 0)     
- e3 y/ F7 q) S1 E- H! Z7 W2 F3 k
# Y) U; J2 o/ x* C& w+ |  t! q    if (p)  
; B5 Y% n3 C9 X' I
7 B2 X# D, I7 L. F- \# S        if (!)      1 j2 @0 [1 ~% d, V0 L7 H6 b

, d( [; o* x# S3 k/ D$ L3 ~看到了吧?
发表于 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, 2024-5-18 02:23

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

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