找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 2540|回复: 10

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

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

8 h, w+ w2 y6 v) w; F(1)不调用C++/C的字符串库函数,请编写函数 strcpy! J$ \; z% L+ M6 w
char *strcpy(char *strDest, const char *strSrc);  D: F$ F6 q+ x2 K0 m% }8 z2 Y0 ?

  Q6 p! q0 S9 O! Q, q很简单,是吧?再看看别人评分标准:
- m! t' u8 L6 [7 lchar *strcpy(char *strDest, const char *strSrc);
  q1 z" y, _" P) ?; N! A3 y- X! G) p, O# {: O/ T0 m
{) h$ X1 S9 z  K) G) x, a' t% j/ z! j

. ]; {6 ?5 O" S2 R3 f, I1 c  |+ H    assert((strDest!=NULL) && (strSrc !=NULL));   // 2分( {8 p7 {/ f2 [9 o

- E$ ^. \0 x' r5 ~7 H- _    char *address = strDest;                     // 2分
7 R( b7 z% C9 l  \
* {8 Z* @" m2 ?; x2 h    while( (*strDest++ = * strSrc++) != ‘\0’ )      // 2分# p6 W% J8 x% M6 J7 F) R
0 L# w8 Y8 ~$ x8 ?
       NULL ; 8 I9 p: T1 h, t6 M. Q; Z( I
/ A( B1 \2 {; E" t; V9 y' U) k
    return address ;                            // 2分
8 Q$ a3 b, V  K6 e; Q) v( }+ T! `5 v3 J6 e: t3 X) `. a/ \0 g
}
3 a) X4 ]/ r5 l, D5 G- ~8 F8 g8 e* e. e' r- r" u; E0 C- B/ P
不知有没有人跟我一样,发现自己基本一分不得?——因为,我们编程时没有良好的风格,写代码时没注意健壮性、可读性等规范,出错处理意识不强。结果写出的程序,BUG不断,理还乱。这种程序,算法似乎对了,但其实不能得分。
) m  h; W5 l" E再看看其它一些评分规矩。大家会发现,原来即使算法对了,但是编程风格不良,也是不能被人接受(体现在笔试中就是不能得分)的!+ `) @" ?2 X5 ^& n0 u
一、请填写BOOL , float, 指针变量 与“零值”比较的 if 语句。(10分); N1 h! r8 r+ @0 V7 }

$ Y6 Y2 d2 S$ S5 ?1 E/ C+ ]3 M( a+ H$ q% m) O! c  s5 T! p" Z

& N4 j2 g" L4 O9 A! n" V3 l$ u请写出 BOOL  flag 与“零值”比较的 if 语句。(3分)9 s. D8 W1 v. |4 W! U* u

+ X2 c; z/ f9 [; @8 G标准答案:# [6 X9 Y  x4 g$ l4 W

( h$ I# F1 p7 a& A8 c% P6 L    if ( flag )
0 H: g  i' q% y8 R. V/ p& }; [' W/ n
    if ( !flag )$ f2 k8 {5 U0 G  R& `
如下写法均属不良风格,不得分。& E' f% l% g3 H4 Q. x* [0 I& u1 \7 A
7 Y+ c! m! T8 C+ Z; U
    if (flag == TRUE)   * x! A) n0 B2 g9 a  z

# |* `( z4 h' l5 h2 B7 Z: T2 Q    if (flag == 1 )     
5 L0 V2 K7 B* G6 c; `! o6 A* h7 r! r8 [0 H2 ]
    if (flag == FALSE)  
, _9 L7 b. U( y- {2 Y
- W' h# i+ Q: R, Q+ c2 b        if (flag == 0)      
0 c' L8 [+ d, S) v! n' b, Z, q4 _; t) Q, E) e
请写出 float  x 与“零值”比较的 if 语句。(4分)8 V1 |$ ~6 n$ d2 L9 Z
7 e8 u, ?. D0 N" p
标准答案示例:, C3 v. `' p0 V9 I7 j

; h5 y5 `% b& ]2 |# d4 a* R" U3 sconst float EPSINON = 0.00001;& F, P5 O. Q7 Q- W

/ l  g' y/ f; v0 k) Pif ((x >= - EPSINON) && (x <= EPSINON)
' ?, _4 @! |+ T& J' W$ d4 W# E1 `# n6 k1 X" d
不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。
3 @9 K2 G( s, y! S& i, q7 e0 ]
$ d* ~  ?/ z5 M8 E0 T1 P' r9 q   
( P6 w( G& f! _9 G  
! f& j# r- a. I+ d" ]
- K2 n" r  u& ~* s/ b如下是错误的写法,不得分。6 `5 k' u7 l/ G2 R& T: {
5 `2 Z6 Z4 U7 N! u7 \
    if (x == 0.0)   0 P; F/ e4 a% _/ ]

/ W3 s2 B2 d; T  v* z, N    if (x != 0.0)       4 @7 k7 j* G& ?. k' b7 z

- z2 Y. p5 Y- S9 @( p' O" m    , b5 P% d$ I& w
! L* h5 ]1 W% j% z5 E* p$ t
请写出 char  *p 与“零值”比较的 if 语句。(3分)
, `3 Y7 M7 t; G4 f1 j# {1 K. g  Y) R4 y' Z- X
标准答案:
: [" A! F$ A8 J( O* }4 d# H
; d$ b1 R9 V* X: S' C% u- e" z- X    if (p == NULL)
% x$ B* b+ E; o' j/ e1 @
& A6 C( |4 S- F. c* t* Z    if (p != NULL)  C, L# n5 i! L4 [) X
如下写法均属不良风格,不得分。
3 Q2 l+ Y% M% a$ E/ [
3 H, p4 ?" {* C2 F- F' @    if (p == 0) 2 S( o# X3 f. r6 p
) h& q. T$ N7 z8 s6 l' E$ P
    if (p != 0)     
- I! u' k+ `" e9 H9 l  Y& ~7 s$ }1 {3 q
    if (p)  1 u: X8 C7 ]: S6 h: Q
8 J1 ^7 @5 D' E* L9 \
        if (!)      
5 {1 ~2 u; g) b% O: K9 t9 s- d; X
看到了吧?
发表于 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, 2026-3-11 18:14

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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