切换到宽版
  • 广告投放
  • 稿件投递
  • 繁體中文
    • 4191阅读
    • 0回复

    [计算机]计算机二级C考试心得分享 [复制链接]

    上一主题 下一主题
    离线wz82
     
    发帖
    597
    光币
    4658
    光券
    0
    只看楼主 倒序阅读 楼主  发表于: 2008-04-04
      等级考试(笔试)虽然知识面比较广,但不是很深,基础部分考的是你日常操作的能力,程序设计多数是考你的细心。辛辛苦苦准备了大半年,又经过2个小时的考场之战,交卷之后还很“自美”,成绩单上的“不及格”让你一时不敢相信自己的眼睛。  F[LBQI`zq  
    6:Ra3!V"v  
      当对着答 案细细“品味”时,你会N次的感叹……原来“罪魁祸首”是“不细心”。 {JMFCc[  
     QHOem=B  
      综观这四年来的考题,对容易出错的典型题例作了汇总和分析,也好给以后参加二级C考试的朋友增加点免疫力吧。本文将分三次刊登。 K*>lq|i u  
    bUt?VR}P(  
      第一类,审题不清 aB.`'d)V  
    xI$B",?(  
      1.审题时的一字之差。 .Um.dXBYU  
    nI&Tr_"tm  
      一定要搞清题意,题目让我们选择的是“正确”还是“不正确”的;“能”还是“不能”的;本来要求选出一个错误的答 案,但题目中没有“错误”字样,而是说 “……请选出不正确的一项”,一不小心你就可能会把选项中最前面一个“正确”的选为答 案,因“正确”的有三个选项,当然觉得很容易,就这样,“错误”轻易地从你的笔尖溜走了。 smJ%^'x  
    KnKV+:"  
      2.不注意文字部分的要求和说明。 4Y[tx]<  
    )=#QTiJ  
      很多时候,为了省时间,上来就去看程序,这样不仅不能省时间,还会走弯路、出错误。看看下面的两个例子吧! O.Z<dy+  
    8sLp! O;f2  
      题例1:以下程序中函数f的功能是将n个字符串,按由大到小的顺序进行排序。 t0(1qFi  
    &^9 2z:?  
      #include Y;G+jC8   
    g^/  
      void f(char p[][10],int n) a!vF;J-Zqa  
    1*,f  
      {略} /Ii a>XY  
    lku}I4  
      main() _Gv n1"l  
    LNOm"D?"  
      {char p[][10]={"abc","aabdfg","abbd","dcdbe","cd"};int i; LR|LP)I  
    hi^@969  
      f(p,5); printf("%d\n",strlen(p[0])); } v2][gn+58  
    5srj|'ja  
      程序运行后的输出结果是 /{QR:8}-Q  
    ))JbROBU,  
      (A)6 (B)4 (C)5 (D)3 z]:{ruvH  
    V~([{  
      (为了节省版面,把函数f的内容略去了。)看过文字说明,接着看主函数,就可以锁定这个字符串是“dcdbe”,而不用花时间去分析函数f。要注意的是:别把最长的一串当成最大的字符串噢,看上“aabdfg”可就错了,答 案应为C。 &]~Vft l  
    ]n _OQ)VO  
      题例2: 以下程序中给指针p分配三个double型动态内存单元,请填空。 WCJ$S\#  
    99)md   
      # include "-bsWC  
    rRgP/E#_  
      main ( ) xd }g1c  
    x"7`,W  
      { double ?p; Y;n;7M<F  
    9b88):[qO  
       p=(double ?) malloc(【 】); Tp-<!^o4  
    $w%n\t>B  
       p[0]=1.5;p[1]=2.5;p[2]=3.5; fjGY p  
    U5_1-wV  
       printf("%f%f%f\n",p[0],p[1],p[2]);} -`knSR  
    \r4QS  
      如果上来就看程序,就会忽略“给指针p分配三个double型动态内存单元”,这里要求“三个”,如果大笔一挥写出了sizeof(double)可就太冤枉了,其实应该是3?sizeof(double)。 |^ K"#K  
    b3$aPwv  
      第二类,把“赋值”看成了“等于” ^ hoz<Ns  
    8~q%H1[I\N  
      题例:有以下程序段 ~x}/>-d  
    n+Bh-aV  
      int k=0 iobL6SUZ  
    KaRdO  
      while(k=1)k++; 7-*QF>w<a  
    e<Pbsj  
      while 循环执行的次数是:  Xn<~ln  
    e@B+\1  
      (A)无限次 (B)有语法错,不能执行 e7fA-,DV  
    g(9\r  
      (C)一次也不执行 (D)执行1次 HC'k81Q  
    >%vw(pt  
     此题如果理解为k等于1时循环才执行,那么“k++”不被执行,k的值就始终为0,这时就把C选上了。其实,while循环的条件是一个赋值表达式,答 案为A。 86.LkwlqoH  
    _'g'M=E  
      第三类,表达式的值与变量的值 [8T  
    v&.`^ O3W  
      题例:有以下程序 S}0W<H P  
    ,(%?j]_P2  
      int a=2; n9qO;X4&  
    m5m'ByX(*  
      int f(int ?a) aFZu5-=x  
    d@ +}_R"c  
      {return (?a)++;} X)-9u8  
    lu]Z2xSv  
      main( ) ]e*Zx;6oi  
    \,U#^Vr  
      { int s=0; d+ LEi^  
    KJ7[DN'(  
       { int a=5; 3ug|H  
    qb rf;`  
       s+=f(&&a); w"-'  
    --ED]S 8  
       } @,b:s+]rp  
    $_2S,3 }  
       s+=f(&&a); =1rq?M eX  
    >a5M:s)  
       printf("%d\n",s); .JR"|;M}  
    ZBDEE+8e  
      } 执行后输出结果是() pq \M;&  
    3 cd5 g  
      (A)10 (B)9 (C)7 (D)8 U}c[oA  
    oXCZpS  
      答 案是C。 i(eLE"G+  
    #3:;&@#  
      此题有两个要点,1是局部变量与全局变量的作用范围,2是,函数f(&&a)返回的是表达式 (?a)++的值,而不? a的值。 Ivw+U-Mz  
    >[4;K&$B  
      第四类,把关系表达式有别于数学上的关系式 PI"&-lXI-m  
    UOWOOdWS B  
      题例:有以下程序 |+?ABPk"  
    $ Cr? }'a  
      main() @IaK:  
    F8q&v"  
      { int a=5,b=4,c=3,d=2; OL{U^uOhY  
    4|+6a6  
       if(a>b>c) O5PCR6U  
    u~X]W3  
       printf("%d\n",d); 9R XT  
    {7`eR2#Wq  
      else if((c-1>=d)==1) Jo1=C.V`Y  
    M ) 9Ss  
       printf("%d\n",d+1); !<"H73?fl  
    ;{]%ceetcu  
      else V Iof4?i  
    cdL$T6y  
       printf("%d\n",d+2); OQ<|Xd I$  
    %YhZ#>WT  
      } Rv=(D^F,  
    3@e#E4+ff  
      执行后输出结果是 ( ) 9:^SnHAa  
    8U B-(~  
      (A)2 (B)3 4#mRLs'  
    `gq@LP"o  
      (C)4 (D)编译时有错,无结果 dBY,&=T4p  
    ,.u7([SGm  
      这道题的关键在(a>b>c),答 案容易判断为A,5大于4也大于3,就把整个表达式判断为真值,其实,a>b已为真值,1>c则成了假值,所以答 案为B。 VsOn j~@  
    ^9eJ)12pK  
      第五类,字符串的拷贝 ))}w;w   
    bit&H  
      拷成了同一个字符 ,u|vpN  
    ev>gh0  
      题例:若有定义语句:char s[100],d[100]; int j=0, i=0;,且s中已赋字符串,请填空以实现字符串拷贝。(注:不得使用逗号表达式) 0_Tr>hz  
    }6} Gj8Nb  
      while(){ d[j]= 【 】;j++;} )sG`sET]`f  
    l>)0OP]  
      d[j]=0; -~eNC^t;W  
    F+R4nFA  
      这里容易只看到当前,忽略了还有其他字符,错填为s。答 案为s[i++]。
     
    分享到