工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 2292|回复: 10

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

[复制链接]
发表于 2008-11-28 00:32 | 显示全部楼层 |阅读模式
大家在做一些公司的笔试时,是否有时觉得编程题简直弱智?是否有时候考完试感觉良好,但是最后却发现自己没通过笔试?很多时候,我们做题并不懂对方的评分规则,结果笔试时吃大亏。说白了,不是我们不懂规则,而是大学本科的教育不健全(甚至本身教育思想有偏差),从而导致我们在工作中存在隐患。
5 G9 ~$ }- q+ |5 V现在就针对昨天的3G编程题讲解讲解。昨天笔完3G后,觉得自己分数超过60希望很大。但是现在看了相关评分规则后,觉得自己基本挂了。希望我以及其它有同等问题的人能总结教训,避免丧失更多好的求职机会。(当然,早就有良好编程风格的可以偷笑了), V9 a" ]$ B/ U/ O/ q8 C
0 K2 ?# A& o. [( k; w
(1)不调用C++/C的字符串库函数,请编写函数 strcpy
! i% J3 h9 T: i7 G2 ?char *strcpy(char *strDest, const char *strSrc);( d) z; j& Z# o) t( i9 Q: \
" W6 ?( W% W4 W4 P
很简单,是吧?再看看别人评分标准:) y$ E+ N2 I* Y! p( \0 T
char *strcpy(char *strDest, const char *strSrc);% h  ~. Y, W8 m/ e  [) E% d

9 G7 `2 P. D1 ]5 p6 p{
9 Z0 g, L  {7 l# W. j$ Z  M% c5 L) k/ k2 }
    assert((strDest!=NULL) && (strSrc !=NULL));   // 2分
5 b: k* q) K  e# R  K% f* T0 S1 d& a" ~4 g! i; ]
    char *address = strDest;                     // 2分
; N/ \, o8 r# q  `( v2 [' @8 ]5 r* o& r7 _( c( u
    while( (*strDest++ = * strSrc++) != ‘\0’ )      // 2分
2 U/ b; T* ^% ]5 y/ F
2 I* e+ h# G2 Z: ^3 T1 f# `+ f5 \       NULL ; + x/ v3 [8 e7 U& v
3 l; k4 `$ F* o$ ]
    return address ;                            // 2分
4 @) ~* H; C1 ?
& f; C$ I. N6 z6 _; V}
. \7 q& h) E% C( t4 y( C6 A) X2 ~* Y" R
不知有没有人跟我一样,发现自己基本一分不得?——因为,我们编程时没有良好的风格,写代码时没注意健壮性、可读性等规范,出错处理意识不强。结果写出的程序,BUG不断,理还乱。这种程序,算法似乎对了,但其实不能得分。; ^, U' a8 [0 {+ s4 ]
再看看其它一些评分规矩。大家会发现,原来即使算法对了,但是编程风格不良,也是不能被人接受(体现在笔试中就是不能得分)的!4 |) Y" S: O# G# }% Q/ W% E; H
一、请填写BOOL , float, 指针变量 与“零值”比较的 if 语句。(10分)- l2 c: v, ~( y8 E4 P

$ f5 A) z/ z$ O$ f9 ^+ K% R& O1 Q3 O* H+ E1 J
6 u  ^; p" K% E- e
请写出 BOOL  flag 与“零值”比较的 if 语句。(3分)8 I$ a" \) z6 O% C( J4 Z
" |) Z. S! e: h$ Y* O
标准答案:* u4 H& t9 }; n- r. ~

/ t) h8 Q7 F7 t/ A; X, T    if ( flag )+ x7 O8 n* F) D& \9 L# F8 d9 [
6 O! S, v; \9 W4 O; I4 X
    if ( !flag )
* `2 h$ h* }: T$ h% u如下写法均属不良风格,不得分。, W! c/ i& d0 q* A

5 z! b7 V+ H3 K- `. u* Q* q. V$ x    if (flag == TRUE)   
2 S0 }0 {7 z' \9 {6 J- W. |0 b+ w" m: \+ O& ]
    if (flag == 1 )     
& Q" s* O8 _" E: j+ h2 l8 Q: |# _4 T! K
    if (flag == FALSE)  
* G" N9 A8 o# g& H7 C
7 q" b) Y$ c! v! Q5 Z; W: K        if (flag == 0)      9 ?$ t( i' M# Q4 a5 a: `$ Z  {
7 e+ y* D4 T' Y
请写出 float  x 与“零值”比较的 if 语句。(4分), f2 z& R9 ]5 j3 m! L2 G
. D& O! l' ]' Z' w# P
标准答案示例:
; H( O3 i% R! G" ~7 m  p
" ]8 z8 D/ N( ^3 Pconst float EPSINON = 0.00001;
9 O' Q0 e  ?7 ?2 i1 h% y, _, ~- \1 }5 e6 l5 m& z1 d* J
if ((x >= - EPSINON) && (x <= EPSINON)
0 M) W  G2 k- F, I1 m& f, U6 w$ A4 k& r4 C
不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。) j1 u+ |* u& z$ P$ ~& r' C
- y9 Q8 V4 X9 l% j0 z* w. l
   3 {/ c: `6 h) t$ l
  
) K0 B5 t9 p/ `) n3 R( y4 J$ `" W9 z" K
如下是错误的写法,不得分。
$ Q' R% Z" h' T$ w" n. n4 X
) ]. o+ X$ R% W* J5 S, n, `    if (x == 0.0)   ; X5 n3 |& ?, f: j* I! V

$ M( ]0 `* t2 j; A2 k- `5 h    if (x != 0.0)      
" [/ y" o6 C2 n! c, _: C( \: m2 C0 I! b; j
    ! A  R+ B9 [7 T5 p7 o/ G' H

( v1 M$ Z" `3 k: p' @2 s( ]! {请写出 char  *p 与“零值”比较的 if 语句。(3分)
& L$ U4 e: Q8 N& U$ {# P) I! J+ c+ P6 p. S  z" U
标准答案:
: N4 J. g  n' u
( F% K5 ?: C# B6 @/ j, C    if (p == NULL)
( S- P( ~. _* D& X$ g
5 r6 I* `) @* {9 q1 t    if (p != NULL). Z, F5 E& b- O8 \
如下写法均属不良风格,不得分。1 p- O- l+ E5 X+ C2 b
2 y2 `/ w) i" f! S% H6 [
    if (p == 0) 2 o0 g* w2 Y' x7 i+ G9 S, B$ {( ?

- s5 A: L; j7 ^5 }+ L: ]! u; X9 Q' ?    if (p != 0)     + i+ J. [- u2 r4 k- I

$ E" u/ |% e: a0 z! l    if (p)  * x0 Y/ G( ?+ Z

& A3 H: a; G/ O0 z0 I5 f. w        if (!)      
; k4 g4 _# O, q  d# D1 S* V  O- R& k4 j+ l. p" Y
看到了吧?
发表于 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-4 02:16

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

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