工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 2326|回复: 10

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

[复制链接]
发表于 2008-11-28 00:32 | 显示全部楼层 |阅读模式
大家在做一些公司的笔试时,是否有时觉得编程题简直弱智?是否有时候考完试感觉良好,但是最后却发现自己没通过笔试?很多时候,我们做题并不懂对方的评分规则,结果笔试时吃大亏。说白了,不是我们不懂规则,而是大学本科的教育不健全(甚至本身教育思想有偏差),从而导致我们在工作中存在隐患。+ K. a: N! g  S: f9 q* {
现在就针对昨天的3G编程题讲解讲解。昨天笔完3G后,觉得自己分数超过60希望很大。但是现在看了相关评分规则后,觉得自己基本挂了。希望我以及其它有同等问题的人能总结教训,避免丧失更多好的求职机会。(当然,早就有良好编程风格的可以偷笑了)
* s: @$ J8 M8 \- A2 e$ \
6 G! j+ h; |' a& m(1)不调用C++/C的字符串库函数,请编写函数 strcpy
" i+ V& Z) _0 dchar *strcpy(char *strDest, const char *strSrc);
( u- ~% b: I. n/ V; D. I1 H( }, ?0 L# T* ^! H7 a0 J, @. t" t
很简单,是吧?再看看别人评分标准:
( R- @1 m8 _9 c5 c6 M* Ychar *strcpy(char *strDest, const char *strSrc);4 P: C) ~4 c5 K; e8 |8 m' Q* H3 N

# K: p$ n  P; M8 Z" @{% U7 Q0 z* I+ D5 C! y% j) ~# X

* H, y3 O: B& J7 e' h0 R% C! A    assert((strDest!=NULL) && (strSrc !=NULL));   // 2分
. W: m: \$ c* \9 e! g
9 P, F8 o- N* \& N    char *address = strDest;                     // 2分
. @1 v8 A/ h5 e
: d$ r/ }2 Z8 E+ u& D# X    while( (*strDest++ = * strSrc++) != ‘\0’ )      // 2分% Y4 x8 @" ?! X9 {: a  E$ l

# P3 Q" B) }4 y; Y8 J7 H! a, {  b% f       NULL ;
8 T" {: m' c) ~
+ \; a  x! f3 ]; ^' S    return address ;                            // 2分
* {- j! {' x7 k; x+ C+ B( q
5 B  N" w* x1 [- r3 E% Q}
" C% k& e# J7 N, [+ X% \, H1 Y# P" p: ~1 [0 U
不知有没有人跟我一样,发现自己基本一分不得?——因为,我们编程时没有良好的风格,写代码时没注意健壮性、可读性等规范,出错处理意识不强。结果写出的程序,BUG不断,理还乱。这种程序,算法似乎对了,但其实不能得分。, ]" y1 j/ `$ ?; a4 o+ E' k
再看看其它一些评分规矩。大家会发现,原来即使算法对了,但是编程风格不良,也是不能被人接受(体现在笔试中就是不能得分)的!. \- ]% c! ^* O+ D* d. d2 P# B4 H, m
一、请填写BOOL , float, 指针变量 与“零值”比较的 if 语句。(10分)
2 b  f, H2 N0 H
. v; }% g3 ~( Y) V: v9 g
. ~. T3 R2 H7 D7 E
% [% L! O3 M& F请写出 BOOL  flag 与“零值”比较的 if 语句。(3分)# m4 Y5 b2 k  m( W% H4 R

4 U0 F4 b! x+ s( d标准答案:
( _% @% }( J* _8 L9 P$ |+ l
2 t6 Q% Y9 Q" W  h6 t    if ( flag )
' ~" r+ u% y& o8 F/ Y6 T# L1 z/ m, E
    if ( !flag )3 d% _7 Q; `) n" H" m; s
如下写法均属不良风格,不得分。
& H# i. w9 u+ }8 {% }/ B" ~6 ^" t: C5 e0 y
    if (flag == TRUE)   
  x# |6 [, T, }! e% X1 e8 u" V$ Y2 F' I8 C
    if (flag == 1 )     + |; O" x# N0 E# P: V
- u+ c6 b6 `. ?
    if (flag == FALSE)  5 Q# f1 K: I9 m+ h2 H
: S$ u/ K+ d4 L+ P; [, u2 m
        if (flag == 0)      
5 }( u& R: x  C% Q) b. _9 C. O# C) L: V! ^
6 {" |! o. H0 m8 i, U请写出 float  x 与“零值”比较的 if 语句。(4分)
5 x4 L( I/ S6 S
0 d/ ?# L1 r5 p; V0 X2 i4 e标准答案示例:
* Q7 t# O1 c8 a$ o
: c3 P1 A1 R% dconst float EPSINON = 0.00001;
: ]: ?! q9 \$ L. }  _6 p4 x- p- X7 P" t
if ((x >= - EPSINON) && (x <= EPSINON)6 a5 [/ E8 m. }# ^) Y! m* b( m
  n, V9 ], [, K# e; ^
不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。. x1 }* Z/ Y9 N0 ~

  N, X& d+ g5 y; m) O6 V3 u   
& i2 A7 n# r5 p9 L) d1 R5 `1 e  # P+ `5 q0 ~7 k" v- ]
: e/ q2 }' `6 O8 ?2 J
如下是错误的写法,不得分。4 B" V# W& c% ?  @" g. |
. D3 D. i$ S  d; ]; y+ a
    if (x == 0.0)   4 d$ f/ c, l/ |7 w( k! M

1 K# e  A$ E3 ?! a    if (x != 0.0)      
& }0 j$ ]: C0 |3 ]+ @: \
7 q+ w0 G/ d" t& b! d/ p3 u   
% h6 O8 x, [; n1 {, y2 ^
3 z7 G* y, \" G. \0 _/ `请写出 char  *p 与“零值”比较的 if 语句。(3分)
( n1 \) O. g8 }( s
3 G5 V  c9 O! q0 _; Z, L2 c标准答案:$ U' g2 m* j9 {5 H7 w) r

" H' Z$ C3 Y1 n2 i& M) c% f4 E    if (p == NULL): L- M, N6 W2 Y0 U) W0 l

0 g% X% B2 j' ?4 y8 C4 f) m    if (p != NULL)
" m" k+ Q+ _% I% J) f* t8 g; o3 m3 D如下写法均属不良风格,不得分。0 m$ Q4 _8 B+ p  c. D

4 a2 z% C5 ^0 a. J$ i! ~$ p+ r1 A    if (p == 0)
* j+ z. f& b5 Q0 S& o; Q8 ]! ^/ m9 R3 b
    if (p != 0)     
: t1 B: ~, q! w$ x* k+ t. o0 ]+ Y! ?1 T& M' Y: V9 q
    if (p)  % u5 C4 t0 t: L7 w

; v6 j  z8 o* B' m  m' w7 ~0 m        if (!)      
  f: y9 n6 u2 o/ b- C* r
" k( C" H) }  Q7 M7 T看到了吧?
发表于 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-8-31 10:59

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

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