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

本試卷的視頻請登錄school.njwww.net查看

 

絕密★ 啟用前

2012年秋

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

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

二級試卷

試卷語種:C語言

 

  明:

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

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

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

  )和填空題(30)兩種;

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

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

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

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

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

  不填或填錯不得分;

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

  否填寫正確。

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

  畢清點后,方可離場。

 

 

第一部分   計算機基礎知識

一、選擇題(用答題卡答題,答案依次填在1--20題號內)

1.下列關于信息、信息技術、信息產業與信息化的敘述中。錯誤的是___1___   

    A.世間一切事物都在運動,都具有一定的運行狀態,因而都在產生信息

    B.現代信息技術的主要特征之一是以數字技術為基礎

    C.信息產業特指利用信息設備進行信息處理與服務的行業,它不包括任何生產制造行業

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

2.下列關于數字技術與微電子技術的敘述中,錯誤的是___2___

  A.數字技術的處理對象是"比特",它只有兩種取值,即數字0和數字1

B.數據通信和計算機網絡中傳輸二進制信息時,傳輸速率的度量單位通常為B/sKB/sMB/s

  C.微電子技術是實現電子電路和電子系統超小型化及微型化的技術,它以集成電路為核心

  D.Intel公司創始人之一摩爾曾發表論文預測,單塊集成電路的集成度平均每18~24個月翻一番

3.以下選項中,數值相等的一組數是___3___

  A.十進制數54020與八進制數54732

  B.八進制數13657與二進制數1011110101111

  C.十六進制數F429與二進制數1011010000101101

  D.八進制數7324與十六進制數B93

4.下列關于臺式PCCPU的敘述中,錯誤的是___4___

    A.目前的PC,CPU芯片都是直接固定在主板上的,用戶不可對其進行更換

    B.PCCPU芯片有多個生產廠商,例如Intel公司、AMD公司等

    C.Intel公司的Core i7/i5/i3處理器是64位多內核CPU芯片

    D.目前的CPU芯片中一般都集成了一定容量的高速緩沖存儲器cache

5.下列關于臺式PC機主板的敘述中,錯誤的是___5___

    A.為了便于不同PC機主板的互換,主板的物理尺寸已經標準化,例如ATXBTX規格

    B.芯片組是主板上的重要部件,它與CPU芯片及外設同步發展

    C.主板上的BIOS集成電路芯片中存儲了CMOS設置程序

    D.主板上的CMOS存儲器是一種非易失性存儲器,在任何情況下其信息均不會丟失

6.下列四種I/O總線(接口),數據傳輸方式為并行方式的是___6___

    A.PCI-Express

    B.PCI

    C.USB

    D.IEEE-1394

7.下列關于常用I/O設備的敘述中,錯誤的是___7___

  A.鼠標器與主機的接口主要有PS/2USB兩種  

  B.光學分辨率是掃描儀的重要性能指標,目前普通辦公用掃描儀的分辨率可達1000dpi以上

  C.數碼相機的成像芯片均為CCD類型,且絕大多數相機的存儲卡是通用的、可互換的

  D.寬屏LCD顯示器是目前最常見的PC機顯示器,其顯示屏的寬度與高度之比為16:916:10

8.下列關于PC機外存儲器的敘述中,錯誤的是___8___

 A.PC機硬盤接口主要有PATA(并行ATA)SATA(串行ATA)兩種,PATA的傳輸速率更高些

 B.目前U盤不僅能方便地保存數據,還可以模擬光驅和硬盤啟動操作系統

 C.固態硬盤是基于半導體存儲器芯片的一種外存儲設備,一般用在便攜式計算機中

 D.光盤可分為CD光盤、DVD光盤和藍光光盤

9.  下列關于軟件的敘述中,錯誤的是___9___

    A.軟件是用于特定用途的一整套程序、數據及相關的文檔

    B.共享軟件是沒有版權的軟件。允許用戶對其進行修改并散發

    C.目前,Adobe Reader360殺毒軟件是有版權的免費軟件

    D.操作系統、程序設計語言處理蠶統、數據庫管理系統均屬于系統軟件

10.下列關于Windows操作系統多任務處理的敘述中,正確的是___10___

    A.如果用戶只啟動一個應用程序工作(如使用Word寫作),那么該程序就可以自始至終地獨占CPU

    B.僅當計算機中有多個處理器或處理器為多內核處理器時,操作系統才能同時執行多個任務處理

    C.無論是系統程序還是應用程序,所有運行程序(進程)獲得CPU使用權的優先級相同

    D.在多任務處理時,后臺任務與前臺任務都能得到CPU的及時響應

11.下列關于程序設計語言及其處理系統的敘述中,錯誤的是___11___

    A.機器語言就是計算機的指令系統,機器語言程序一般為二進制代碼形式

    B.匯編程序是指用匯編語言編寫的源程序,不同計算機的匯編程序通常是相同的

    C.Microsoft Office軟件(WordExcel)中包含VBA程序設計語言,VBAVB的子集

    D.高級語言的語言處理系統的工作方式通常分為兩種,"解釋"方式和"編譯"方式

12.下列關于移動通信的敘述中,錯誤的是___12___

    A.1代個人移動通信采用的是模擬傳輸技術,從第2代開始均采用了數字傳輸技術

    B.目前廣泛使用的GSMCDMA都是第2代移動通信

    C.我國的3G通信目前有三種技術標準,這三種標準的網絡不能互通,但終端設備互相兼容

    D.目前第4代移動通信(4G)也在研發和部署之中,我國已有多個城市開始建設試驗網

13.下列關于因特網接入技術的敘述中,錯誤的是___13___

  A.采用電話撥號接入時,需要使用電話MODEM,其主流產品的速率為56kbps

  B.采用ADSL接入時,數據上傳速度低于數據下行速度,理想狀態下數據下行速度可達8Mbps

  C.采用有線電視網接入時,多個終端用戶均可獨享連接段線路的帶寬

  D.目前我國許多城市采用"光纖到樓、以太網入戶"的做法,用戶可享受數兆乃至百兆的帶寬

14.Internet使用TCP/IP協議實現了全球范圍的計算機網絡的互連,連接在Internet上的每一臺主機都有一個IP地址。下面不能作為IP地址的是___14___

    A.201.109.39.68

    B.120.34.0.18

    C.21.18.33.48

    D.127.0.257.1

15.現在因特網上的多數郵件系統使用___15___協議,它允許郵件正文具有豐富的排版格式,可以包含圖片、聲音和超鏈接,從而使郵件的表達能力更強,內容更豐富。

    A.MIME    B.SMTP    C.POP3 D.HTML

16.下列關于網絡信息安全的敘述中,錯誤的是 ___16___

  A.信息在網絡傳輸過程中,會受到竊聽、偽造、篡改等安全威脅

  B.最簡單也是最普遍的身份鑒別方法是使用口令(密碼),但其安全性不高

  C.數據加密是常用的網絡信息安全措施.也是數字簽名等安全措施的基礎

  D.入侵檢測與防火墻一樣,都是被動保護系統免受攻擊的一種網絡安全技術

 

17.下列關于字符編碼標準的敘述中,錯誤的是___17___

  A.ASCII標準是美國制定的標準,也是目前使用最為廣泛的西文字符編碼標準

  B.GB2312GBKGB18030都是我國制定的標準,在這些標準中所有字符均采用雙字節編碼

  C.目前在臺港澳等地區廣泛使用BIG5編碼標準,它與GB2312不兼容

  D.UCSISO制定的標準,相應的工業標準稱為Unicode

18.人們說話時所產生的語音信號必須數字化才能由計算機存儲和處理。假設語音信號數字化時取樣頻率為8kHz,量化精度為8,數據壓縮比為4,那么1分鐘數字語音的數據量(壓縮后)大約為___18___

  A.960KB    B.480KB    C.120KB D.60KB

19.目前數字有線電視和衛星電視所傳輸的數字視頻采用的壓縮編碼標準大多是___19___

  A.MPEG-1    B.MPEG-2    C.MPEG-4    D.MPEG-7

20.下列關于Microsoft Office軟件(2003/2007版本為例)功能的敘述中,錯誤的是___20___

  A.Word編輯處理的文檔可以保存為多種文件格式,例如DOCRTFTXTHTML

  B.一個Excel文件不可以引用另一個Excel文件中的數據

  C.PowerPoint編輯處理的文檔可以另存為網頁或圖像文件

  D.Access是一個數據庫管理系統,Access數據庫中

第二部分C語言程序設計

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

21.以下聲明中有語法錯誤的是____(21)___

    A.char *x="thank";    B.char x[];    C.char *x(void);  D.char (*x)[2];

22.假定a為一個一維字符數組名,則引用數組元素a[k]的正確形式為___22___

    A.a+k    B.&a+k    C. *(a+k)     D. *a+k

23.已有聲明"int x;",實現"x的值是奇數,則輸出x"這一功能的語句是___23 ___

    A.if(x/2) printf("%d”,x);    B.if(x%2)printf("%d”,x);

    C.if(x/2==1)printf("%d”,x);  D.if(x%2==0) printf("%d”,x);

24.假定一個函數的頭部為"char *func(int n)",則該函數返回值的類型是  24   

    A.int    B.int *    C.char   D.char *

25.已知fun函數的頭部為"void fun(int x[],int n)",main函數中有聲明"int a[10]={l},b=10;",

    main函數中調用fun函數,則以下調用語句中正確的是  25   

    A.fun(a,fun(a,b));    B.fun(a[10],b);    C.fun(a,a[0]);  D.fun(b,a);

26.已有聲明"int a[3][4]={{3,4},{2,8,6}};",則數組元素a[1][0]   26   

    A.2    B.4    C.6 D.8

 27.已有聲明"int x=0,*p;",則以下賦值表達式中正確的是    27   

    A.p=x    B. *p= *x    C.&p=&x   D.p=&x

 28.已有聲明"char c='\72';",則變量c包含  28  個字符.

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

 29.已有聲明"int *p;",若用語句"p=(int *)malloc(20 *sizeof(int));"動態申請一個int型數組存儲區,P所指向的數組中可存儲    22  int型數據。

    A.l0    B.20    C.40 D.80

 30.判斷char型變量cl的值是否為小寫字母的正確表達式為    30   

    A.'a’<=c1<=’z’       B.cl>=a&&cl<=z

    C.'a'>=c1||’z’<=c1     D.cl>=’a’&&c1<=’z’

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

.基本概念(5)

1.已有聲明"int a=-3;",則表達式"a>=0?a:-a"的值是___(1)___   

2.&&+>=C語言中的三個運算符,其中優先級最高的是 ___ (2) ___  

3.假定指針變p指向對象的值為16,p+l指向對象的值為35, *p++的值為______(3)______ 

4.在系統頭文件中定義的符號常量NULL代表的數值(整數)______(4)______    .

5.若需要打開一個已存在的非空文件F.txt并修改其中的部分數據,則打開文件F.txt的語句應是

  "fp=fopen("F.txt",_____(5)_____);"

.  閱讀程序(13)

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

 

#include

int main()

{int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=0;

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

    for(j=2;j>=i;j--)

       t+=b[i][j];

 printf("%d\n",t);

 return 0;

}

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

  #include

 int main()

 {  char *str[]={"one","two","three","four"};

    puts(str[3]+1);

    return 0;

 }

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

 #include

 int fun(int x,int y,int z)

 {return x*y *z;}

 int main()

 {printf("%d",fun(1.5,2.5,3.5));

    return 0;

 }

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

    #include

    int fun(char *s)

    { if(*s=='\0')

         return 0;

      else

        return 1+fun(s+1);

     }

     int main()

     {char str1[]="China";

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

      return 0;

      }

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

    #include

    int main()

    {int x;

     char a;

     a=x=266;

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

     return 0;

    }

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

   #include

    int f(int n)

    {int s=1;

      return s*=n;

    }

    int g(int n)

    { static int s=1;

      return  s *=n;

    }

    int main()   

    {  int a=0,b=0,i;

       for(i=1;i<4;i++)

       {  a=a+f(i); b=b+g(i);  }

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

       return 0;

    }

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

    #include

    void fun(int a[],int b[],int n)

    {int k,i,j;

     for(i=0;i

     {k=n;

      for(j=0;j

         if(a[i]<=a[j])k--;

      b[k]=a[i];

     }

    }  

    int main()

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

     fun(a,b,6);

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

               printf((i+1)%3==0?"M\n":"M",b[i]);

    return 0;

    }

 

13.以下程序運行時,若輸入1到變量kl、輸入85到變量k2,則輸出到屏幕的結果中第一行是

    ___(16)___,第二行是___(17)___ ,最后一行是___(18)___

 

     #include

    int sieve(int x[][4],int n,int y[][4],int key1,int key2,int *p1,int *p2)

    {  int i=0,k,m=0;

       while(i

      { if(x[i][1]==key1 && x[i][2]>=key2 && x[i][3]>=key2)  

        {for(k=0;k<4;k++)y[m][k]=x[i][k];

          m++;

        }

        i++;

      }

     *p1=*p2=0;

    for(i=0;i

    { *p1+=y[i][2];   *p2+=y[i][3];    }

      *p1/=m;   *p2/=m;

      return m;  

    }

    int  main()

    {  int a[6][4]={{101,1,97,90},{102,0,92,89},{103,0,88,78},{104,1,90,90},

                      {105,1,60,70},{106,1,93,87}},b[6][4]={0};

       int count=6,k1,k2,av1,av2,i,j;

       printf("key1=");scanf("%d",&k1);

       printf("key2=");scanf("%d",&k2);

       count=sieve(a,count,b,k1,k2,&av1,&av2);

      for(i=0;i

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

           printf("M",b[i][j]);

         printf("\n");

      }

      printf("ave1=%d,ave2=%d\n",av1,av2);

      return 0;

    }

.  完善程序(12)

14.以下程序在2000021000范圍內驗證數學命題:如果一個整數的奇數位上各位數字之和與該整數的偶數位上各位數字之和的差是ll的倍數(若奇數位的各位數字之和小于或等于偶數位的各位數字之和,則對奇數位各位數字之和不斷加11,直到其值大于偶數位各位數字之和為止),則這個數能被11整除.

    #include

    int fun(long m)

    {  int odd,even;

       odd=even=___(19)___ ;

       while(m>0)

      {  odd=odd+m;

         even=even+___(20)___ ;

         m=m/100;

      }

      while( ___(21)___ )

     {  odd=odd+11;    }

       if((odd-even)==0)return 1;

       else return 0;

     }

    int  main()

    {long k,n=20000,m=21000,j=0;

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

    {if(___(22)___)

        if(k==0)

       {  if(j++==0) putchar('\n');

          printf("%ld  ",k);

       }

       else printf("error");

    }

    return 0;

   }

15.以下程序的功能是反轉一個字符串中單詞的順序。例如,將字符串"there is no try"中單詞順序反轉后變為"try no is there"。假定以空格作為單詞分隔符。

    #include

    #include

    #include

    void reverseWords(char str1[],char str2[])

    {  int tokenPos,wReadPos,wEnd,writePos;

       writePos=0;

      /* tokenPos記錄向前掃描(從串尾到串首掃描)strl字符串時當前被判斷字符的下標 */

       tokenPos=___(23)___ ;

       while(tokenPos>=0)

       {  if(strl[tokenPos]==' ')

          {  str2[writePos++]=str1[tokenPos--];    /*復制單詞之間的空格 */    }

         else

         {  wEnd=tokenPos;    /*wEnd記錄strl字符串中被處理單詞的尾字符下標 */

            while(tokenPos>=0 && str1[tokenPos]!=' ')  /*向前掃描到空格為止+,

            tokenPos--;

            /*wReadPos記錄str1字符串中被處理單詞的首字符下標 */

            wReadPos= ___(24)___  ;

            while(wReadPos<=wEnd)

              str2[writePos++]=str1[wReadPos++];

          }

       }

      str2[writePos]=___(25)___;    /*str2數組中置字符串的終止符*/

    }

    int main()

    {  char *sentence="there is no try", *reverse;

       reverse=(char *)malloc(strlen( ___(26)___ )+1);

       printf("%s\n",sentence);

       reverseWords(sentence,reverse);

       printf("%s\n",reverse);

       free(reverse);

       return 0;

    }

16.已知一個單向鏈表結點的數據結構定義如下:

  typedef struct point

  {int x;  

   struct point *next;

  }POT;

    函數creat的功能是:找出p指向的單向鏈表中數據值只出現一次的結點,將這些結點依次復

    制鏈接到q鏈表,函數返回q鏈表首結點的地址.

    POT *creat(POT *p)

    {POT *q=NULL,*qr, *p0, *p1, *p2;  int c;

     p0=___(27)___;  / *p0指向p鏈表首結點 */

     while(p0!=NULL)

    {  c=0;

       p1=p;    / *p1指向p鏈表首結點*/

      while(p1!=NULL)/ *依次將p1指向的每個結點中的數據與p0指向的結點中的數據做比較*/,

      {  if(p1->x==p0->x) c++;

         p1=___(28)___;

       }

      if(c==1)

     {    /*p0指向的結點中數據復制到p2指向的結點,p2指向的結點鏈入q鏈表*/

       p2=(POT *)malloc(sizeof(POT));

       p2->x=p0->x;

       if(q==NULL)  q=qr=___(29)___ ;

       else{  qr->next=p2;qr=p2;  }

     }

     p0=p0->next;

    }

    qr->next=___(30)___ ;

    return q;

    }

 

二級C參考答案

 一、選擇題

(1)C (2)B (3)B (4)A (5)D (6)B (7)C (8)A (9)B (10)D
(11)B (12)C (13)C (14)D (15)A (16)D (17)B (18)C (19)B (20)B

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

二、填空題

(1)3  (2)+  (3)16  (4)0  (5)r+(6)8  (7)our  (8)6  (9)5  (10)266

(11)10  (12)6  (13)9  (14)0 1 2 (15)3 4 5(16)101 1 97  90  (17)104  1  90  90

(18)ave1=93,ave2=89  (19)0  (20)m/10(21)odd<=even  (22)fun(k)  (23)strlen(str1)-1

(24)tokenPos+1  (25)'\0'(26)sentence (27)p  (28)p1->next (29)p2  (30)0

 

彩票30选5开奖结果