工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 2369|回复: 10

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

[复制链接]
发表于 2008-11-28 00:32 | 显示全部楼层 |阅读模式
大家在做一些公司的笔试时,是否有时觉得编程题简直弱智?是否有时候考完试感觉良好,但是最后却发现自己没通过笔试?很多时候,我们做题并不懂对方的评分规则,结果笔试时吃大亏。说白了,不是我们不懂规则,而是大学本科的教育不健全(甚至本身教育思想有偏差),从而导致我们在工作中存在隐患。: g4 |% E1 ?: Q# m4 y% Z1 u
现在就针对昨天的3G编程题讲解讲解。昨天笔完3G后,觉得自己分数超过60希望很大。但是现在看了相关评分规则后,觉得自己基本挂了。希望我以及其它有同等问题的人能总结教训,避免丧失更多好的求职机会。(当然,早就有良好编程风格的可以偷笑了)
; j: v+ n6 k3 T0 `+ I% U+ X1 {; [: K. J" p5 }2 f
(1)不调用C++/C的字符串库函数,请编写函数 strcpy. I/ p. C' s8 M2 F
char *strcpy(char *strDest, const char *strSrc);3 h$ B0 p- e. w: i1 @
$ t  m$ O7 ~/ p9 k* _2 ^
很简单,是吧?再看看别人评分标准:& u$ P& m4 ]' C, u- m! |
char *strcpy(char *strDest, const char *strSrc);( s, ~' R5 E. o' W" ]. P

* h% k3 T5 ?2 l7 {0 {6 y* P' w{
" ]+ g2 i& T! ?2 W3 r+ E. ]' a$ N! t+ u, n0 `
    assert((strDest!=NULL) && (strSrc !=NULL));   // 2分4 T- y' Z1 F: z) m1 s

# ]* y8 N+ K$ P    char *address = strDest;                     // 2分7 b4 q; _, \% f" Y; V" B

5 x" O$ M; @0 G7 A. j7 Y    while( (*strDest++ = * strSrc++) != ‘\0’ )      // 2分
/ Y3 c. V0 V+ u% W  o% d
; A, f6 X. I5 S; _7 ^' B5 m       NULL ;
% S+ X! e4 W* p/ ^* C1 d2 `/ J2 m
( B& Y. P) S1 U& m* ^. q    return address ;                            // 2分0 D0 h, u1 L4 {0 R) M7 o

7 v: h! i- R! I( _- l}2 x) |  N' N) K" U

1 J1 e8 S) t+ W3 M8 t& |- d不知有没有人跟我一样,发现自己基本一分不得?——因为,我们编程时没有良好的风格,写代码时没注意健壮性、可读性等规范,出错处理意识不强。结果写出的程序,BUG不断,理还乱。这种程序,算法似乎对了,但其实不能得分。5 ~+ W* J) }- s1 M
再看看其它一些评分规矩。大家会发现,原来即使算法对了,但是编程风格不良,也是不能被人接受(体现在笔试中就是不能得分)的!( y6 J: J% @7 S
一、请填写BOOL , float, 指针变量 与“零值”比较的 if 语句。(10分)0 \, A3 d8 w5 T* W2 D8 ~

( Y) B8 v: h7 M9 P- u4 Y7 d. J2 h6 m7 C" u) A

6 f) |' P" C0 [. g请写出 BOOL  flag 与“零值”比较的 if 语句。(3分)7 I/ }, M: t) s5 \) Q& k
& X% V  T. S4 O8 ^4 T
标准答案:
7 v/ w( }( @% u# X1 H' S7 e  d5 |7 p) j, O. ~
    if ( flag )
; q' K" W+ r# ~9 F& j1 ~
3 v' a8 ^! }- D1 ^  |3 B/ {    if ( !flag )
' x9 G: N) v4 Q+ f( D) c& R如下写法均属不良风格,不得分。
( E3 B! F. y% n! E$ U3 ~! E2 f7 m" ^6 l  n4 j
    if (flag == TRUE)   % m6 U/ O( b% k: r
9 ]- H" ^, e; n/ P* P7 ]
    if (flag == 1 )     & i9 f) p+ _- |. \; k& c

- p; ^" K( e/ p2 h% e' B2 g. _    if (flag == FALSE)  
' h- r! h9 E0 _5 x) Q: b& O
4 z% |1 w+ A1 V% g/ B: W6 u7 I* A        if (flag == 0)      
( E; a, M* ?) A( r6 I8 b, J& g+ C, Y& ^
请写出 float  x 与“零值”比较的 if 语句。(4分)
' c5 u# E1 F1 G* @) o4 e* r1 l/ g4 k7 J& X3 N& c! I* _2 G; j
标准答案示例:
/ X4 U! u6 s1 E# n' o+ k
0 k6 @. G/ g3 y  i( V6 Jconst float EPSINON = 0.00001;
5 }! e9 l9 P0 f* v* O) B9 T, M; Q! J8 O
if ((x >= - EPSINON) && (x <= EPSINON)9 }' V5 A, q( G* N2 O5 `
: \" T+ v) o# W5 j0 a. H' L
不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。* F, m( t0 U" ?2 A
6 }) a0 t4 W' M4 z2 j+ L
   ! F) a( a2 F% U% |7 z6 W0 x4 g
  
8 Y. m3 X8 Q4 d& c
, G! N. d5 F, i$ e如下是错误的写法,不得分。* I' d: s% G, D+ V- Y6 F/ x

: u3 f/ v4 J8 J8 L+ j. G! [& b    if (x == 0.0)   
/ ]3 a" B$ b; N# N+ l) q: N# D6 {8 Q+ H  \
    if (x != 0.0)      
/ Z2 I9 ^) D/ \' h
" X7 P' p0 x  w3 K/ @" Y   
2 v! R+ \0 ~, K0 f& a; u
9 L, K. Z8 }4 Z/ R! [+ C请写出 char  *p 与“零值”比较的 if 语句。(3分)1 e" v1 j# o6 r) t8 X

6 p* M/ }- i1 b% F) Q# H/ J1 K标准答案:
2 P! |# R- o* n/ F
# J/ E) z6 h& e* ?3 z+ B    if (p == NULL)1 z, x- l$ h' e( s
, t1 j. T7 [+ N( B1 i/ b) I* l
    if (p != NULL), r2 `& f) p1 ~
如下写法均属不良风格,不得分。
" A: p4 [/ F6 y
2 T$ g" ?; F! b  ^( N. N    if (p == 0)
( j! \* N5 Y$ c( Q1 X6 D" P6 f9 f0 s7 r0 J+ `- Y8 u# E
    if (p != 0)     
$ p1 m) d% T* ^& ~/ I: ?8 N& R$ @0 O( [9 M4 I
    if (p)  0 ^% A* h. W5 ^3 i' q
0 I( F4 a  ]6 I
        if (!)      
: m8 ^9 U; \& e/ Y  w; Y$ t% ?8 ]$ h- r+ r, C* v0 \4 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-10-2 11:09

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

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