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

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

    上一主题 下一主题
    离线wz82
     
    发帖
    597
    光币
    4713
    光券
    0
    只看楼主 倒序阅读 楼主  发表于: 2008-04-04
      等级考试(笔试)虽然知识面比较广,但不是很深,基础部分考的是你日常操作的能力,程序设计多数是考你的细心。辛辛苦苦准备了大半年,又经过2个小时的考场之战,交卷之后还很“自美”,成绩单上的“不及格”让你一时不敢相信自己的眼睛。  q=0 pQ1>  
    GU6 qIz|  
      当对着答 案细细“品味”时,你会N次的感叹……原来“罪魁祸首”是“不细心”。 F(4yS2h(  
    KwFXB  
      综观这四年来的考题,对容易出错的典型题例作了汇总和分析,也好给以后参加二级C考试的朋友增加点免疫力吧。本文将分三次刊登。 uiMIz?+  
    "$)yB  
      第一类,审题不清 ?qT(3C9p  
    -c={+z "  
      1.审题时的一字之差。 ;`jU_  
    14l; *  
      一定要搞清题意,题目让我们选择的是“正确”还是“不正确”的;“能”还是“不能”的;本来要求选出一个错误的答 案,但题目中没有“错误”字样,而是说 “……请选出不正确的一项”,一不小心你就可能会把选项中最前面一个“正确”的选为答 案,因“正确”的有三个选项,当然觉得很容易,就这样,“错误”轻易地从你的笔尖溜走了。 p":zrf'(6  
    uPDaq ]A  
      2.不注意文字部分的要求和说明。 Z_itu73I  
    <\D Uo0]J  
      很多时候,为了省时间,上来就去看程序,这样不仅不能省时间,还会走弯路、出错误。看看下面的两个例子吧! s]x2DH+_  
    FfYsSq2l  
      题例1:以下程序中函数f的功能是将n个字符串,按由大到小的顺序进行排序。 Vy;_GfT$  
    g i4  
      #include 5 ,ZRP'oI  
    k3yxx]Rk/  
      void f(char p[][10],int n) n\>.T[$"  
    }x0Z( `  
      {略} v" FO  
    NG)7G   
      main() -\,VGudM}  
    /Ynt<S9"  
      {char p[][10]={"abc","aabdfg","abbd","dcdbe","cd"};int i; 2np-Fc{S  
    9::YR;NY  
      f(p,5); printf("%d\n",strlen(p[0])); } `7_n}8NVC  
    X[{\ 3Av  
      程序运行后的输出结果是 U_Y;fSl>  
    i tW~d  
      (A)6 (B)4 (C)5 (D)3 Q)dT(Td9~  
    <PQRd  
      (为了节省版面,把函数f的内容略去了。)看过文字说明,接着看主函数,就可以锁定这个字符串是“dcdbe”,而不用花时间去分析函数f。要注意的是:别把最长的一串当成最大的字符串噢,看上“aabdfg”可就错了,答 案应为C。 K~JC\a\0  
    R `Q?J[e  
      题例2: 以下程序中给指针p分配三个double型动态内存单元,请填空。 V=9Bto00  
    /cY[at|p  
      # include Te}IMi:  
    i*A$SJ:}  
      main ( ) 05g?jV  
    HnK/A0jM  
      { double ?p; c}\ d5R_L  
    u2om5e:  
       p=(double ?) malloc(【 】); b)y<.pS\  
    cuNq9y;[  
       p[0]=1.5;p[1]=2.5;p[2]=3.5; jL2MW(d^Q  
    !$XO U'n  
       printf("%f%f%f\n",p[0],p[1],p[2]);} 3]7ipwF2q  
    6(sfpK'  
      如果上来就看程序,就会忽略“给指针p分配三个double型动态内存单元”,这里要求“三个”,如果大笔一挥写出了sizeof(double)可就太冤枉了,其实应该是3?sizeof(double)。 (ai72#nFtb  
    cnYYs d{  
      第二类,把“赋值”看成了“等于” K1 6s)S'  
    jaNH](V  
      题例:有以下程序段 yOM -;h  
    qG*_w RF  
      int k=0 2nYiG)tg  
    <WgG=Kf)N  
      while(k=1)k++; 0= gF6U  
    -MsuBf  
      while 循环执行的次数是: 81cv:|"  
    Z#[>N,P  
      (A)无限次 (B)有语法错,不能执行 +Hi{ /{k0N  
    :az!H"4W/  
      (C)一次也不执行 (D)执行1次 _i#@t7  
    [lrmuf  
     此题如果理解为k等于1时循环才执行,那么“k++”不被执行,k的值就始终为0,这时就把C选上了。其实,while循环的条件是一个赋值表达式,答 案为A。 RNl\`>Cz  
    F BE @pd  
      第三类,表达式的值与变量的值 5Bzuj`  
    ~c9vdK  
      题例:有以下程序 uk`d,xF   
    VQ/ <09e  
      int a=2; WJBW:2=;  
    zww?  
      int f(int ?a) 1h& )I%`?  
    GF9ZL  
      {return (?a)++;} ?BXP}]  
    R20a(4 m  
      main( ) /{49I,  
    -aTg>Q|g&  
      { int s=0; 1Qrm"TFo  
    DKf}47y  
       { int a=5; hVROzGZk  
    5mDVFb 3a  
       s+=f(&&a); z2"2tFK  
    F<H`8*q9  
       } =kyJaT^5[  
    FA<Z37:  
       s+=f(&&a); _ +0uju?o}  
    1nw$B[  
       printf("%d\n",s); ~Q3WBOjn  
    N8u_=b{X  
      } 执行后输出结果是() Q'>_59  
    |% la  
      (A)10 (B)9 (C)7 (D)8 Oct\He\.  
     -fx(H+  
      答 案是C。 ~ `tJvUo0  
    (UbR%A|v;  
      此题有两个要点,1是局部变量与全局变量的作用范围,2是,函数f(&&a)返回的是表达式 (?a)++的值,而不? a的值。 'Y,+D`&i)  
    tr#)iZ\  
      第四类,把关系表达式有别于数学上的关系式 3ZT/>a>@  
    l{B< "+8  
      题例:有以下程序 znGZULa#  
    bw<~R2[  
      main() q[Sp|C6x  
    u|:UFz^p  
      { int a=5,b=4,c=3,d=2; @k#z &@b  
    uL qpbn  
       if(a>b>c) &@`H^8  
    ^mQ;CMV  
       printf("%d\n",d); RBHqLg(  
    )dzjz%B)  
      else if((c-1>=d)==1) (STWAwK-  
    g,{Ei]$>I  
       printf("%d\n",d+1); 1.u gXD  
    sf|_2sI  
      else q=j/s4~  
    oeRYyJ  
       printf("%d\n",d+2); J$eZLj  
    ocDVCCkxg  
      } _bvtJZ3i  
    EeF n{_  
      执行后输出结果是 ( ) XO8 H]  
    4w3V!K8  
      (A)2 (B)3 yA`]%U((  
    :\ON+LQr  
      (C)4 (D)编译时有错,无结果 !W6    
    }I'>r(K  
      这道题的关键在(a>b>c),答 案容易判断为A,5大于4也大于3,就把整个表达式判断为真值,其实,a>b已为真值,1>c则成了假值,所以答 案为B。 5y 'ycTjY  
    V< 9em7  
      第五类,字符串的拷贝 @)!1#^(}%  
    R'$ T6FB5  
      拷成了同一个字符 jv?aB   
    N5I W@?4  
      题例:若有定义语句:char s[100],d[100]; int j=0, i=0;,且s中已赋字符串,请填空以实现字符串拷贝。(注:不得使用逗号表达式) 3GuMiht5  
    h<z/LL8|  
      while(){ d[j]= 【 】;j++;} x]jdx#'  
    J6?_?XzToT  
      d[j]=0; 1 _:1/~R1  
    ZLFdnC@  
      这里容易只看到当前,忽略了还有其他字符,错填为s。答 案为s[i++]。
     
    分享到