找回密码
 加入后院

QQ登录

只需一步,快速开始

搜索
查看: 2575|回复: 10

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

[复制链接]
发表于 2008-11-28 00:32 | 显示全部楼层 |阅读模式
大家在做一些公司的笔试时,是否有时觉得编程题简直弱智?是否有时候考完试感觉良好,但是最后却发现自己没通过笔试?很多时候,我们做题并不懂对方的评分规则,结果笔试时吃大亏。说白了,不是我们不懂规则,而是大学本科的教育不健全(甚至本身教育思想有偏差),从而导致我们在工作中存在隐患。
5 O- O1 K7 m3 \! {5 k6 X& J* b现在就针对昨天的3G编程题讲解讲解。昨天笔完3G后,觉得自己分数超过60希望很大。但是现在看了相关评分规则后,觉得自己基本挂了。希望我以及其它有同等问题的人能总结教训,避免丧失更多好的求职机会。(当然,早就有良好编程风格的可以偷笑了)/ i8 N0 J) t  v& I( b
# i; |: W9 n1 ?7 Q7 z: b$ g; S
(1)不调用C++/C的字符串库函数,请编写函数 strcpy
+ G/ `1 N" W/ e* F% t3 |3 |% `char *strcpy(char *strDest, const char *strSrc);
, b0 \+ A8 ]0 H' X1 T
- h+ [6 c' G6 g/ \$ c( X4 l- k很简单,是吧?再看看别人评分标准:4 h2 m0 c& r5 \1 ?
char *strcpy(char *strDest, const char *strSrc);
1 y: ?* h# j) j' m3 q- v. W* [: c- N* [
{; E4 F* B8 y+ s$ V' x

1 o1 `( C! Z3 [+ Y; Z' l! d    assert((strDest!=NULL) && (strSrc !=NULL));   // 2分
5 [" y0 A* G: S- C0 l1 h0 T% k6 e; T+ p
+ D7 K- p' J3 w# P% `/ b    char *address = strDest;                     // 2分2 ]; P* T7 [" d
' d& L8 c- b6 X# ?8 U1 r0 t% f
    while( (*strDest++ = * strSrc++) != ‘\0’ )      // 2分
$ {; B$ [7 w) d( \3 _! y; k) {) y/ h: B* i# B' E# c' E% r# z" A
       NULL ;   H# c  b( l. d! F% g& @

! Z- p( S) b( r- a+ ^5 \* Q    return address ;                            // 2分/ \" E, N$ ?5 I$ x

0 ?: n( \; n; N  l3 H! w2 ~, D}6 P3 F2 F# |) O) L5 D; i, g

; S# _* q' J3 c7 W不知有没有人跟我一样,发现自己基本一分不得?——因为,我们编程时没有良好的风格,写代码时没注意健壮性、可读性等规范,出错处理意识不强。结果写出的程序,BUG不断,理还乱。这种程序,算法似乎对了,但其实不能得分。; _" R2 i4 v7 t3 u6 m% ]; a
再看看其它一些评分规矩。大家会发现,原来即使算法对了,但是编程风格不良,也是不能被人接受(体现在笔试中就是不能得分)的!
4 D& b. e2 t6 L  T一、请填写BOOL , float, 指针变量 与“零值”比较的 if 语句。(10分); @5 _7 o; b& J, F0 k7 N

, i# B0 `* z9 T; a- J5 _$ v; D% l

( e- v' \: E+ o/ g* `3 e0 f请写出 BOOL  flag 与“零值”比较的 if 语句。(3分)
$ Q  X0 f  s% D% k/ m' D! U9 P* V8 T- ^; h- _/ a* ^2 Q
标准答案:
$ E6 S* V$ r7 @8 q. G1 P7 r  L3 [# D
* U9 P5 D. u" e: R) ]2 p    if ( flag )6 o, J& P- E8 H4 b' A

5 a( `) X# |& a! F- E    if ( !flag )
; I" X1 J& ~9 P1 c- J! c0 p; v如下写法均属不良风格,不得分。# l( m9 i) O# Q. T

+ I) B: k  G  d# W    if (flag == TRUE)   ; I2 H, x6 J9 P/ Q7 n) B2 d5 y- f
5 C1 {& s' F; Z+ C4 H) x
    if (flag == 1 )     
2 S) j4 `/ ~% {3 ]. ~
) r. i4 }2 n2 M  L1 F: R    if (flag == FALSE)  ! T  d+ B+ m# e  R3 v- j3 \( M

4 |. e. o3 \7 {" N! C        if (flag == 0)      
( V. x# H6 D: v
! q1 g# a0 `/ H) \9 n. `8 `请写出 float  x 与“零值”比较的 if 语句。(4分)1 y, E8 t# c4 _& E
" Q0 p! |5 _3 [+ [& V$ Z) q
标准答案示例:
( a' S8 r. @! ]4 O5 T, ^- {; [1 C& I* G5 v  W( E0 G7 @
const float EPSINON = 0.00001;4 B$ n* I6 ^+ r) V. V# {( Q

# I  ^% L7 s6 A6 K! ~- D) S* ?if ((x >= - EPSINON) && (x <= EPSINON)0 @' }) [7 p8 l+ c& C; j6 x# [6 O

: O9 }  M/ t: D不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。
4 w. p* s% Z! S7 I, X9 |! y
+ A/ w7 k+ m+ x% r* q+ U   8 R! s( z  i5 d0 E. Q" G1 e3 N5 k
  : H6 c+ @8 Z- P  k
1 t& P5 Y# j6 [, Z0 A* X+ |7 A
如下是错误的写法,不得分。6 u7 c# G, X2 |9 _6 T

  [  x2 D! e7 r9 g    if (x == 0.0)   9 _4 I. M, T; P
: s( z6 w0 o- [! ?$ _2 q
    if (x != 0.0)       8 `9 j2 I1 Y$ W* X7 w

4 |7 Q% M4 g2 ~! P   
0 |+ {; a( l4 F7 x) H
5 a# m# J9 c% p; l请写出 char  *p 与“零值”比较的 if 语句。(3分)
6 B; _' X, c$ f- s  I' T# d1 r
9 e: n+ d" I+ l/ v标准答案:& ~5 o% _* J# r; o' o1 \
: x& \, {) ]6 u$ ~
    if (p == NULL)) h* e7 M) R( P$ `9 M( ~* `
6 O" t6 N8 p5 Z' @2 G& F4 r
    if (p != NULL)
+ m. ?( s, B( t* B" i如下写法均属不良风格,不得分。' {% u8 u; M9 K7 F
9 z4 u: H+ u  B
    if (p == 0)
$ Y9 c7 j9 w7 X, }& q0 ]* o9 c6 T4 q7 G6 W9 Z2 L
    if (p != 0)     
8 I% A3 J+ y% j& H1 Q/ m' m8 T: ]" ?7 ~" S7 u( h7 R
    if (p)  
) f1 N5 q% u  q* U# Z" W9 T6 ]* K5 r5 k/ G- }# X, n8 D! n' s8 T
        if (!)      
6 S9 w3 f0 l0 W; @
; L7 q# t: w: j& L& k9 H( n看到了吧?
发表于 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 | 显示全部楼层
点去睇试卷的??
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-5-3 22:03

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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