江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
2012春江蘇省計算機二級C筆試真題

2012春江蘇省高校計算機等級考試

二級C筆試真題

 

 

絕密★ 啟用前

2012年春

江蘇省高等學校非計算機專業學生

計算機基礎知識和應用能力等級考試

二級試卷

試卷語種:C語言

 

  明:

1.本試卷包括計算機基礎知識部分和程序設計部分,考試時間共12 0分鐘;

2.本試卷滿分為60,分選擇題和填空題,試卷不分AB類型;

3.計算機基礎知識部分全部是選擇題(20),程序設計部分分為選擇題(1 0

  )和填空題(30)兩種;

4.選擇題用答題卡答題。每一項有ABCD四個可供選擇的答案,請選

  擇其中一個你認為正確的答案,HB鉛筆涂寫在答題卡的相應答題號內。

  每選對一項得1,不選或選錯不得分;

5.填空題用答題紙答題。請將答案用藍、黑色鋼筆或圓珠筆填寫在答題紙的

  相應答題號內,每個答案只占一行,不得換行。每填對一個答案得1,

  不填或填錯不得分;

6.請認真填寫并仔細核對答題卡和答題紙上的學校名稱、準考證號和姓名是

  否填寫正確。

7.考試結束時將試卷、答題卡和答題紙放在桌上,不得帶走。待監考人員收

  畢清點后,方可離場。

 

第一部分計算機基礎知識

1.  下列有關信息產業、信息化、信息社會等相關的敘述中,錯誤的是___(1)___   

    A.信息產業是指生產制造信息設備的制造業,不包含信息服務行業

    B.信息化是一個推動人類社會從工業社會向信息社會轉變的過程

    C.在信息社會中,信息將借助材料和能源的力量產生重要價值而成為社會進步的基

    本要素

    D.目前我國還處于工業化的中期階段,需要大力推進信息化與工業化的融合式發展

2.  下列有關數字技術與微電子技術的敘述中,錯誤的是___(2)___   

    A.數字技術的處理對象是"比特",它只有兩種狀態(取值)

    B.在計算機中,經常使用稱為"觸發器"的雙穩態電路來存儲比特,一個觸發器可

    以存儲1個比特  

    C.微電子技術以集成電路為核心,現代集成電路所使用的半導體材料主要是硅

    D.所有的IC卡均只能存儲數據,不能處理和收發數據

3.  下列有關計算機發展與分類的敘述中,錯誤的是___(3)___

    A.人們通常根據計算機采用的主要電子元器件的不同,將計算機的發展劃分為四代

    B.由于20世紀90年代計算機網絡的發展,計算機應用進入了"網絡計算模式"

    C.目前所有的服務器產品均為小型計算機、大型計算機或巨型計算機,PC機不能作

    為網絡服務器使用

    D.美國的HPDELL和我國的聯想、方正、同方等均是知名的PC機品牌

4.  下列有關PCCPU的敘述中,錯誤的是___(4)___

    A.長期以來,多數PC機采用Intel公司生產的CPU芯片

    B.Intel Core i7是高端的CPU產品,其中i7表示它采用7個內核的結構

    C.目前部分PC機使用AMD公司的CPU芯片,它們與Intel公司的CPU芯片指令

    系統基本一致,因此這些PC機相互兼容

    D.目前我國也能設計、生產PC機的CPU芯片   

5.  下列有關PC機主板上CMOSBIOS的敘述中.錯誤的是___(5)___   

    A.主板上的CMOS芯片是一種易失性存儲器,它通常使用電池供電

    B.BIOS是存儲在主板上閃爍存儲器中的一組程序.每次機器加電時總是首先執行其

    中的程序

    C.CMOS設置程序存儲在CMOS存儲器中,它與BIOS無關

    D.CMOS芯片中存儲了許多配置信息,包括當前的日期與時間、開機密碼等

6.  下列是PC機使用的四種外設接口,其中最新的一種是___(6)___

    A.USB3.0

    B.IEEE.1394b

    C.IDE   

    D.紅外線接口(IrDA)

7.  下列有關掃描儀與數碼相機的敘述中.錯誤的是___(7)___

    A.掃描儀分為平板掃描儀、手持掃描儀、滾筒掃描儀等多種類型.相對來說使用平

    板掃描儀的較多

    B.光學分辨率是掃描儀的主要性能指標,其單位為dpi

    C.目前數碼相機的成像芯片為CCDCMOS.它可以將光信號轉換為電信號

    D.數碼相機所拍攝的數字圖像以GIF格式存儲在存儲卡中

8.  光盤分為多種不同類型,其容量大小差異較大。對于單面單層、80mmDVD光盤來

  .其容量大約為 ___(8)___

  A.670MB    B.1.46GB

  C.4.7GB    D.25GB

9.  通用的應用軟件可以分為若干類型,例如文字處理軟件、信息檢索軟件、媒體播放軟

    件等。在下列軟件中,不屬于文字處理軟件的是___(9)___

    A.WPS

    B.Adobe Acrobat 

    C.Word

    D.Access

10.下列有關Windows XP操作系統的敘述中,錯誤的是___(10)___

    A.Windows XP分為多種版本.例如家庭版、專業版

    B.Windows xP采用并發多任務方式支持多個任務的執行

    C.Windows XP一般采用按時間片輪轉的策略調度處理器來執行每個任務

    D.虛擬存儲器由主板上的RAMROM及顯示卡的顯存聯合組成,它與硬盤無關

11.在下列有關算法的敘述中.錯誤的是___(11)___

    A.算法的設計一般采用由細到粗、由具體到抽象的方法

    B.算法設計方法有多種,例如枚舉法、迭代法、遞歸法等等

    C.算法的表示可以有多種形式,例如文字說明、流程圖表示、偽代碼等

    D.一個問題的解決往往可以有多種不同的算法

12.下列有關Microsoft Office 2000(及其后續版本)的敘述中.錯誤的是___(12)___

    A.WordExcelPowerPoint創建的文檔,均可以設置打開文件的密碼

    B.Word文檔中,可以插入聲音和視頻對象

    C.ExceI工作簿可以包含的工作表數量、工作表的行數與列數均沒有限制,用戶可以

    根據需要無限制地增加

    D.PowerPoint創建的演示文稿,用戶可以直接將其保存為HTML文件(即網頁)

13.在下列有關調制解調技術、多路復用技術的敘述中.錯誤的是___(13)___

    A.調制與解調技術中使用的"載波"信號,通常是低頻正弦波信號

    B.調制技術可以分為幅度調制、頻率調制和相位調制

    C.多路復用技術的作用主要是提高傳輸線路的利用率,降低通信成本

    D.多路復用技術可以分為時分復用、頻分復用等類型

14.目前IPv4協議只有大約36億個地址.很快就會分配完畢。新的IPv6協議把IP地址

    的長度擴展到___(14)___,幾乎可以不受限制地提供IP地址。

    A.32    B.64

    C.128   D.256

15.下列與IP地址相關的敘述中.錯誤的是___(15)___   

    A.IP地址由三個部分組成,從左到右分別代表類型號、網絡號和主機號

    B.因特網上的每臺在線主機都必須有IP地址

    C.通過ADSL上網時,用戶主機的IP地址通常是由因特網服務提供者動態分配的

    D.網絡中的路由器不需要設置IP地址

16。通常所說的TCP/IP協議.是指由100多個協議組成的協議系列(包含下列幾個協議)

    在下列協議中。實現文件傳輸服務主要依賴 ___(16)___   

    A.NNTP協議

    B.FTP協議

    C.Telnet協議

    D.SMTP協議

17.目前有線電視(CATV)系統已經廣泛采用數字技術傳輸電視節目。下列是有關數字有

    線電視的相關敘述.其中錯誤的是___(17)___   

    A.數字有線電視采用光纖同軸電纜混合網.其主干線部分采用光纖連接到"小區"

    B.數字有線電視網絡依賴于時分多路復用技術

    C.借助數字有線電視網絡接入因特網.需要專用的Cable MODEM或互動式機頂盒

    D.借助數字有線電視網絡接入因特網的多個終端用戶共享連接段線路的帶寬

18.下列有關文本與文本處理的敘述中,錯誤的是___(18)___   

    A.文本信息在計算機中存儲時,漢字均為雙字節編碼,非漢字字符均為單字節編碼

    B.文本輸入可以是鍵盤輸入,也可以是聯機手寫輸入、語音輸入等

    C.DOC文檔、HTML網頁、PDF文檔均為豐富格式文本,但它們的格式標記方式

    不同

    D.文本中的字符可以使用不同的字體,不同字體的同一個漢字,其機內碼相同

19.在未壓縮的情況下.存儲一幅分辨率為1024×102424位彩色數字圖像需要的存儲

  空間大約為 ___(19)___

  A.24KB    B.3MB

  C.8MB    D.24MB

20.文件擴展名通常用于標識文件的類型。下列4個文件擴展名中,屬于數字波形聲音文

    件的是___(20)___

    A.   .WAV

    B.   .MIDI

    C.   .AVI

    D.   .MPG

 

    第二部分     C語言程序設計

一、選擇題(用答題卡答題.答案依次填在2130答題號內.10)

21.以下有關C語言函數的描述中,錯誤的是___(21)___

    A.一個完整的C程序可以有多個函數,其中必須有且只能有一個名為main的函數

    B.當一個C程序包含多個函數時,先定義的函數先執行

    C.函數可以嵌套調用

    D.函數不可以嵌套定義

22.以下程序段在編譯時不會報錯的是___(22)___ 

    A.#define double 2       B.#define a 2

    void main()                void main()

    {double a=0;}             {int a=0; }

 

    C.#define a 2           D.#define a 2

      void main()             int x=a;

      {a++;  }               void main()

                              {x++;}

23.已有聲明"int x=0,y=2;",則執行語句"y=--x||++y;",變量y的值為___(23)___

    A.0    B.1    C.2   D.3

24.已有預處理命令"#include <math.h>"和聲明"int a=4,b;".以下語句中語法正確的是___(24)___ 

    A.if(a%2=1) b=a;    B.if(sqrt(a)%2)b=a;    C.if(a==1)b=a; D.if(a==1)b=*a;

25.以下函數中能正確實現n! (n<13)計算的是___(25)___   

    A.long fact(long n)              B.long fact(long n)

      {                                {if(n<=1) return 1;

        return n*fact(n-1);              else return n*fact(n);

      }                                }

    C.long fact(1ong n)              D.long fact(long n)

      { static long s,i;               {long s=l.i;

        for(i=1;i<=n;i++)  s=s*i;          for(i=1;i<=n;i++)s=s*i;

        return s;                       return s

      }                                }

26.以下敘述中正確的是___(26)___   

  A.char s1[11]="C Language"; 等價于char s[11];s="C Language";

  B.char s[11]="C Language";等價于char s[11];s[11]="C Language";

  C.char *s="C Language";  等價于char *s;s="C Language";

  D.char *s="C Language";  等價于char *s;*s="C Language";

27.以下敘述中錯誤的是___(27)___   

  A.函數外聲明的變量是全局變量

  B.函數內聲明的變量是局部變量

  C.局部變量的生存期總是與程序運行的時間相同

  D.形式參數的生存期與所在函數被調用執行的時間相同

28.已有聲明"int a[3][3]={1,2,3,4,5},*p1=a[0],(*p2)[3]=a;",以下選項中不能輸出5的語句是

   ___(28)___

  A.printf("%d",a[1][1]);    B.printf("%d",p2[0][1]);

  C.printf("%d",p1[4]);      D.printf("%d",p2[1][1]);

29.已有如下定義和聲明:

  struct data{int a;char b;float c;} s={1,2,3};

  char m;

  以下語句中正確的是___(29)___

  A.s=5;    B.s={4,5,6};    C.s.a=5;  D.m=s;

30.若要求數據文件myf.dat被程序打開后.文件中原有的數據均被刪除,程序寫入此文件的數據可以在不關閉文件的情況下被再次讀出,則調用fopen函數時的形式為"fopen("myf.dat"," ___(30)___");"

    A.w    B.w+    C.a+  D.r

二、填空題(將答案填寫在答題紙的相應答題號內.每個答案只占一行,30)

  基本概念

1.已有聲明"int a,b;"ab的值均大于0,表達式"a%b+a/b*b==a"的值為___(1)___

2.已有聲明"double x=3.5;".表達式"(int)x+x"值的類型為___(2)___

3.已有定義"#define M(a,b,c)a*b-c".執行語句"printf("%d",M(2+3,2+3,4));"時的輸出為__

  _(3)___

4.表示"x取值在(1, )范圍內時y取值1,否則y取值-1"所使用的C表達式為"y=___(4)___?1:-1"

5.已有聲明"int a;char s[80]="123456";",執行語句"strcpy(s+4,"123456");a=strlen(s);"后變量a

  的值是___(5)___

  閱讀程序

6.以下程序運行時輸出到屏幕的結果是___(6)___

    #include<stdio.h>

    void  main()

    {  int a=011;

       printf("%d",a);

    }

7.以下程序運行時輸出到屏幕的結果中第一行是___(7)___,第二行是___(8)___

    #include<stdio.h>

    int fun(int x)

    {static int y=1,z=0;

     y*=x;

     z+=y;

     return z;

    }

 

   void main()

   {int x;

    for(x=1;x<3;x++)

      printf("%d\n",fun(x));

   }

8.以下程序運行時輸出到屏幕的結果中第一行是___(9)___.第二行是___(10)___

    #include<stdio.h>

    int f(int *a)

    {  int b;

       printf("%d\n",b=*a);

       a++;

       return b+*a;

    }

    void main()

    {  int a[3]={2,3,4};

       a[0]=f(&a[0]);

       printf("%d\n",a[0]);

    }

9.以下程序運行時輸出到屏幕的結果中第一行是___(11)___,第二行是___(12)___

    #include <stdio.h>

    void main()

    {int a[100]={0},b[]={2,4,5,3,6,5,-1},x,i=0;

     while(b[i]>-1)

     {x=b[i];

      a[x]++;

      i++;

    }

    for(x=0,i=0;i<100;i++)

     while(a[i])

     {x++;

      (x%3==0)?printf("%4d\n",i):printf("%4d",i);

      a[i]--;  

     }

    }

10.以下程序運行時輸出到屏幕的結果是___(13)___

    #include<stdio.h>

    #include<string.h>

    void main()

    {char a[]="Internet",b[]="Extranet";

     int k,n;

     n=strlen(a)<strlen(b)?strlen(a):strlen(b);

     for(k=0;k<n;k++)

       if(a[k]==b[k])

          printf("%c",a[k]);

    }

11.以下程序運行時輸出到屏幕的結果中第一行是___(14)___,第二行是___(15)___   

    #include<stdio.h>

    void fun1(int *x,int n)

    {int  i,t;

     for(i=0;i<n/2;i++)

     {  t=x[i];x[i]=x[n-1-i];x[n-1-i]=t;  }

    }

    void fun2(int *x,int n)

    {int t;

     if(n==1) return;

     t=x[0];x[0]=x[n-1];x[n-1]=t;

     fun2(x+1,n-2);

    }

    void main()

    {int i,a[5]={1,2,3,4,5};

     fun1(a,5);

     for(i=0;i<5;i++)

       printf("%d",a[i]);

    printf("\n");

    fun2(a,5);

    for(i=0;i<5;i++)

      printf("%d",a[i]);

    }

12.以下程序運行時輸出到屏幕的結果中第一行是___(16)___,第四行是___(17)___

第六行是___(18)___

  #include<stdio.h>

  void fun(int a[3][3],int c1,int c2)

  { int i,t;

    for(i=0;i<3;i++)

    {t=a[c1][i];

     a[c1][i]=a[c2][i];

     a[c2][i]=t;

    }

  }

  void main()

  {int i,j,k;

   int a[3][3]={2,3,4,1,3,2,1,2,3};

   for(k=0;k<3;k++)

   {for(j=0;j<3;j++)

       printf("%3d",a[k][j]);

    printf("\n");

   }

   for(i=0;i<3;i++)

   { k=i;

     for(j=i+1;j<3;j++)

       if(a[j][0]<a[k][0])k=j;

       else if(a[j][0]==a[k][0]&&a[j][1]<a[k][1]) k=j;

     if(i!=k)fun(a,i,k);

    }

    for(k=0;k<3;k++)

    {  for(j=0;j<3;j++)

         printf("%3d",a[k][j]);

       printf("\n");

    }

  }

  完善程序

13.以下程序輸出1001000范圍內的回文素數。回文素數是指既是回文數同時也是素數的整數。例如.131既是回文數又是素數,因此131是回文素數。

    #include <stdio.h>

    #include <math.h>

    int prime_pal(int n)

    {  int i,k=___(19)___,m;

       for(i=2;i<=k;i++)    /*判斷n是否素數*/

         if(___(20)___) return 0;

       k=n;m=0;    /*n的反序數放入m*/

       while(k>O)

       {m=m*10+k%10;

        k=___(21)___;

       }   

       if(m==n)return 1;

       return 0;

    }   

    void main()

    {int j,k=0;

     for(j=100;j<=999;j++)

     {if(___(22)___)

       {printf("%d\t",j);

        if(++k%5==0)printf("\n");

       }

     }

    }

14.以下程序中函數void strol(char xx[])的功能是:將雙指向的字符數組內的字符串中所有單詞倒排 (:第一個單詞與最后一個單詞交換,第二個單詞與倒數第二個單詞交換,其他單詞依次類推。

    單詞之間用空格或標點符號分隔).倒排后的單詞之間用空格分隔;最后把已處理的字符串仍存儲在xx指向的數組中。例如,若數組中原字符串為"I am a student".則輸出應為"student a am I"

    #include<stdio.h>

    #include<ctype.h>

    #include<string.h>

    void strol(char xx[])

    {

     int i,j,k,n=0;

     char t[80];

     j=strlen(xx)-1; 

     t[0]='\0';

     while(j>0)

     {while(isalpha(xx[j])==0&&j>=0)j--;

      k= ___(23)___;

      while(isalpha(xx[j])&&j>=0)j--;

      for(i=j+1;i<=k;i++)

        t[n++]=___(24)___;

      t[n++]=' ';

     }

     t[n]='\0';

     strcpy(xx,___(25)___);

    }

    void main()

    {char s[80]="I am a student....";

     strol(___(26)___);

     puts(s);

    }

15.已知h1h2為兩個單向鏈表的頭指針,h1指向的鏈表不為空鏈表。add函數的功能是將h2指向

  的鏈表(簡稱h2鏈表)中全部結點插入到h1指向的鏈表(簡稱h1鏈表)中第n個結點(n>0)

  之后,如果h2鏈表為空鏈表,則函數直接返回h1鏈表首結點的地址。如果h1鏈表中不存在第n

  個結點,則將h2鏈表中全部結點添加到h1鏈表的末尾,函數返回h1鏈表首結點地址.

  鏈表結點采用如下形式的數據結構:

  struct node

  {  int data;

     struct node *next;

  };

  #include <stdio.h>

  struct node *add(struct node *h1,struct node *h2,int n)

  {struct node *p1=h1,*q=h2,*p2;

   int i=0;

   if(h2==___(27)___) return h1;

   p2=h1;

   while(p1&&i<n)

   {  p2=p1;

      p1=p1->next;

      ___(28)___;

   }

   if(i<n)

     p2->next=q;

   else

   {

    ___(29)___=q;

    while(q->next) q=q->next;

    q->next=___(30)___;

   }

  return h1;

}

參考答案

1.A     2.D   3.C   4.B   5.C  6.A  7.D  8.B  9.D  10.D

 

11.A  12.C  13.A   14.C   15.D  16.B   17.B  18.A   19.B  20.A

 

21.B  22.D  23.B  24.C  25.D  26.C 27.C  28.B 29.C  30.B

二、填空題

(1)1  (2)double  (3)7 (4)x>=1 && x<=pow(10,0.5)  (5)10

 

(6)9  (7)1  (8)3  (9)2  (10)5

(11)2  3  4  (12)5  5  6  (13)tnet

(14)54321 (15)12345  (16)2 3 4

(17)1 2 3 (18)2 3 4  (19)n-1

(20)n%i==0  (21)k/10  (22)prime_pal(j)

(23)j  (24)xx[i]  (25)t  (26)s

(27)NULL  (28)i=i+1  (29)p2->next  (30)p1

彩票30选5开奖结果