<samp id="uu9tx"></samp>
        <samp id="uu9tx"><tr id="uu9tx"><nav id="uu9tx"></nav></tr></samp>
        <delect id="uu9tx"><legend id="uu9tx"><meter id="uu9tx"></meter></legend></delect>
                <samp id="uu9tx"><tr id="uu9tx"><meter id="uu9tx"></meter></tr></samp><nav id="uu9tx"></nav>
                <samp id="uu9tx"></samp>
                  <samp id="uu9tx"><tr id="uu9tx"><meter id="uu9tx"></meter></tr></samp>
                  江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
                  2010秋江蘇省二級C++考試真題

                      絕密★ 啟用前

                  2010年秋

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

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

                  二級試卷

                  試卷語種:C++語言

                   

                    明:

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

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

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

                    )和填空題(30)兩種;

                  4.選擇題用答題卡答題。每一項有A、B、C、D四個可供選擇的答案,請選

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

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

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

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

                    不填或填錯不得分;

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

                    否填寫正確。

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

                    畢清點后,方可離場。

                   

                  第一部分  計算機基礎知識

                    1.微電子技術是信息技術領域中的關鍵技術,它以集成電路為核心.下列有關集成電路的敘述中,錯誤的是 ___(1)___  

                      A.  現代集成電路使用的半導體材料只能是硅(Si),不能使用其它任何半導體材料

                      B.  集成度是指集成電路包含的電子元件數目,可分為SSI、MSI、VLSI

                      C.  Moore定律指出,單塊集成電路的集成度平均18--24個月翻一番

                      D.  我國第二代身份證中嵌入了集成電路芯片,可以實現電子防偽和數字管理功能

                    2.  數據傳輸速率是數據通信中重要的性能指標。Gb/s是數據傳輸速率的計量單位之一,其正確含義是 ___(2)___   。

                      A.每秒兆位

                      B.每秒千兆位

                      C.每秒百兆位

                      D.每秒百萬位

                    3.  所謂"變號操作"是指將一個整數變成絕對值相同但符號相反的另一個整數。假設使用補碼表示的8位整數x=10010101,則經過變號操作后結果為___(3)___.

                      A.01101010

                      B.00010101

                      C.11101010

                      D.01101011

                    4.  下列有關PC機主板的敘述中,錯誤的是 ___(4)___   。

                      A.  主板的物理尺寸沒有標準,各廠家均可自行定義

                      B.  主板上包含芯片組,它是PC機各組成部分相互連接和通信的樞紐

                      C.  主板上包含BIOSCMOS芯片

                      D.  主板上包含CPU插座、內存條插槽及其它類型的插槽

                    5.  下列有關PC機中央處理器(CPU)和內存(內存條)的敘述中,正確的是 __(5)____   .

                      A.PC機所采用的CPU都是Intel公司生產的Pentium系列芯片,其它廠商生產的

                      CPU都與之不兼容

                      B.  目前已有雙核的微處理器(例如Core 2 Duo),但還沒有四核的微處理器

                      c.  通常來說,DRAM的速度比SRAM的存取速度慢

                      D.  一般來說,一個內存條上僅有一個DRAMSRAM芯片

                  6.  下列有關PCI/O總線與I/O接口的敘述中,錯誤的是 __(6)____   .

                      A.  目前PC機中協調與管理總線操作的總線控制器包含在主板上的芯片組中

                      B.  總線最重要的性能是數據傳輸速率,其單位通常為MB/sGB/s

                      C.  SATA接口的數據傳輸速率通常低于USB 2.0的數據傳輸速率

                      D.  USB連接器有4個引腳,其中一個引腳連接+5V電源

                  7.  下列有關PC機常用I/O設備的敘述中,錯誤的是__(7)____。

                      A.  目前臺式機鍵盤通常有一百零幾個按鍵,筆記本電腦的鍵盤有八十幾個按鍵

                      B.  目前流行的鼠標是光電鼠標,其與主機的接口有PS/2USB兩種

                      C.  寬屏LCD顯示器的寬高比為1691610

                      D.  打印速度是打印機的重要性能指標,速度單位通常為dpi

                  8.  下列有關PC機外存儲器的敘述中,錯誤的是___(8)___    。

                    A.  目前硬盤的盤片大多為3.5、2.51.8英寸,一個硬盤中可有一個或多個盤片

                    B.  目前有些u盤可以模擬硬盤和光盤存儲器啟動操作系統

                    C.  目前光盤存儲器主要分為CD、DVDBD三種,它們均采用紅外激光進行讀寫

                    D.  目前光驅的速率通常用多少倍速表示

                  9.  下列有關計算機軟件的敘述中,錯誤的是___(9)___.

                    A.  軟件一般是指程序及其相關的數據和文檔資料   

                    B.  從軟件的用途考慮,軟件可以分為系統軟件和應用軟件,主要的系統軟件有操作系統、語言處理系統和數據庫管理系統等。   

                    C.  從軟件的權益來考慮,軟件可以分為商品軟件、共享軟件和自由軟件,共享軟件和自由軟件均為無版權的免費軟件

                    D.Linux是一種系統軟件、自由軟件

                  10.到目前以止,Windows系列操作系統已推出多個版本。在下列版本中,最新的Windows

                    版本是___(10)___

                    A.  Windows7   B.  Windows Me  C.  Windows XP    D.  Windows Vista

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

                      A.  系統通過"時間片”輪轉策略支持多任務處理 

                      B.  系統利用SPOOLing技術進行存儲管理

                      C.  在設備管理中引入了緩沖技術,以減少I/O操作的等待時間

                      D.  系統支持PnP功能,并按ACPI標準進行電源管理

                  12.在因特網中某臺主機的IP地址為20.25.30.8,子網掩碼為255.255.255.0,那么該主機

                    的主機號為  ___(12)___  。

                    A.  20   B.  25    C.  30   D.  8

                  13.局域網中需要傳輸的數據必須預先組織成若干數據幀,每一數據幀的格式如下圖所示:

                  上圖中最末部分"?”表示的是___(13)___    。

                  發送計算機地址

                  目的計算機地址

                  編號

                  有效載荷

                    ?

                  A.協議信息

                  B.校驗信息

                  C.冗余信息

                  D.結束標志

                  14.目前網絡用戶接入因特網有多種方式,例如ADSL、HFC等。通過HFC接入因特網時采用的網絡是___(14)____。

                      A.  有線電話網   B.  有線電視網   C.  無線局域網    D.  移動電話網

                  15.下列網絡協議中,直接與電子郵件傳輸相關的網絡協議是___(15)___。

                      A.FTP   B.SMTP    C.TELNET     D.NNTP

                  16.下列有關計算機中文本與文本處理的敘述中,錯誤的是 ___(16)____ 

                      A.  西文字符主要是采用ASCII字符集,基本ASCII字符集共有256個字符

                      B.  我國最早采用的漢字字符集是GB2312,包含6000多個漢字和若干個非漢字字符

                      C.  無論采用何種方式輸入漢字,在計算機中保存時均采用統一的漢字內碼

                      D.  簡單文本和豐富格式文本中字符信息的表示相同,區別在于格式信息的表示

                  17.彩色圖像所使用的顏色描述方法稱為顏色模型(即顏色空間)。下列四種顏色模型中,

                      彩色噴墨打印機使用的是___(17)___.

                      A.  RGB   B.  HSB    C.  YUV    D.  CMYK

                   18.文件的擴展名用于標記文件的類型,用戶應該盡可能多地知曉各類文件的擴展名,

                      列文件中,屬于數字聲音的文件是______

                      A.  ABC.RM

                      B.  ABC.WMA

                      C.  ABC.MKV

                      D.  ABC.SWF

                   19.信息系統軟件開發瀑布模型包括系統規劃、系統分析、系統設計、系統實施和系統維

                      護等幾個階段。下面各項工作中,屬于系統實施階段的是___(19)___

                      A.問題定義

                      B.可行性研究

                      C.系統測試

                      D.繪制E-R

                  20.下列有關Micmsoft Word 2003Microsoft Excel 2003軟件的敘述中,錯誤的是___(20)___

                      A.  利用Word軟件編輯文檔,可以將其保存為TXT、DOC、RTFHTM格式文件

                      B.  利用Word軟件編輯文檔時,可以統計選定文本的字符數

                      C.  Excel軟件中,可以打開(導入)TXT、DBF、HTML格式的文件(數據)

                      D.  Excel文件可以設置打開權限密碼,但不可以單獨設置修改權限密碼

                   

                  第二部分  C++語言程序設計

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

                  21.對于fordowhile循環語句,以下描述正確的是___(21)___。

                    A.for語句中的循環體至少執行一次            B.兩個語句中的循環體可能都不執行

                    C.do...while語句中的循環體至少執行一次     D.兩個語句中的循環體至少執行一次

                  22.設有說明語句;int hh[4]={2,3,4},*p=hh;則以下選項中存在語法錯誤的是___(22)___

                    A.p++;    B.hh++;    C.(*p)++; D.(*hh)++

                  23.以下說明語句中,不存在語法錯誤的是___(23)___  。

                    A.int s=26,this=30;         B.int _s1=25,-s2=100;

                    C.int n;cin>>n;int arr[n];  D.char str[]={"I am a student"};

                  24.設有語句;int a=10,b=20,c=30;則執行語句;cout<<(a,b,c);其輸出結果是___(24)___

                    A.10    B.20    C.30   D.10,20,30

                  25.以下關于運算符重載的敘述中,正確的是___(25)___  。

                      A.c++已有的任何運算符都可以重載    B.可以重載C++中沒有的運算符

                      C.運算符重載時可改變其優先級       D.運算符重載時可改變其實現的功能

                  26.設有函數原型說明;float *f(int,float);,則函數f的返回值為___(26)___    .

                      A.一個實數    B.指向一個實數的指針  C.該函數的地址 D.指向一個函數的指針

                  27.下列有關構造函數的敘述中,不正確的是___(27)___ .

                      A.可以定義沒有構造函數的類    B.任何一個類必定有構造函數

                      C.類的構造函數可以重載        D.構造函數沒有返回值

                  28.下列有關類成員的敘述中,不正確的是___(28)___    。 

                      A.當不指定類成員的訪問權限時則為私有成員   B.友元函數可訪問類中的任一成員

                      C.指定為public的成員不允許在類外訪問      D.成員函數可訪問類中的任一成員

                  29.以下關于類和對象的敘述中,不正確的是___(29)___   .

                      A.不同的類可以產生相同類型的對象    B.類是一種類型,它定義了數據和操作

                      C.對象是類的實例                    D.任一對象必屬于某一個類

                  30.以下關于指針運算的敘述中,不正確的是___(30)___

                      A.可以將NULL賦給任一指針變量

                      B.兩個同類型的指針變量可進行相等或不等的比較運算

                      C.指針變量的值加上整常數n,可使該指針指向當前元素后的第n個元素

                      D-指向同一數組的兩個指針變量,在任何情況下,兩指針變量相減都是無意義的

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

                  ●基本概念題,5

                  1.每一個類均有構造函數和析構函數,這兩個函數中不可以定義為虛函數的是___(1)___  

                  2.定義了宏;#define F(x,y,z)  x/y*z

                    執行語句;b=F(3+4,2+2,4+4);后變量b的值為___(2)___

                  3.函數重載和運算符重載實現的多態性屬于___(3)___多態性.

                  4.為使函數不返回任何值,定義函數時應在函數名前加保留字(關鍵字)___(4)___    .

                  5.C++存儲類型的四種說明符分別是;auto,static,extern___(5)___   。

                  ●閱讀程序題,13

                  6.[程序]  (2)

                    #include <iostream.h>

                    void main(void)

                    {

                      int c2,c3,c5,m=20;

                      c2=c3=c5=0;

                      for(int i=1;i<=m;i++){

                        if(i==15 || i==14)continue;

                      if(i%2==0) c2++;

                      if(i%3==0) c3++;

                      if(i%7==0) c5++;

                      }

                      cout<<c2<<endl<<c3<<endl<<c5<<endl;

                     }   

                      執行程序后輸出的第一行是___(6)___,  第三行是___(7)___

                  7.[程序]  (2)

                    #include<iostream.h>

                    int f(int a,int &b,int *c)

                    {

                      a+=b;  b+=*c;*c+=a;

                      return  (a+b+*c);

                    }

                    void main(void)

                    {

                      int x=5,y=5,z=6,sum;

                      for(int i=0;i<2;i++){

                        sum=f(x,y,&z);

                        cout<<x<<'\t'<<y<<'\t'<<z<<'\t'<<sum<<'\n';

                      }

                    }

                      執行程序后輸出的第一行是___(8)___,第二行是___(9)___。

                  8.[程序]  (2)

                    #include <iostream.h>

                    void f(int s[],int *y)

                    {

                      static int t=3;

                      *y=s[t];

                      s[t]*=2;

                      t--;

                    }

                    void main(void)

                    {

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

                      int x=0;

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

                        f(a,&x);

                        cout<<x<<endl;

                      }

                      for(i=0;i<4;i++) cout<<a[i]<<'\t';

                      cout<<'\n';

                    }

                      執行程序后輸出的第二行為___(10)___,最后一行為 ___(11)___。

                  9.[程序](3)

                      #include<iostream.h>

                      void f(int x,int y)

                      {  

                        char res[10]={0};

                        int i=0,rem;

                        do{

                           rem=x%y;

                           x=x/y;

                           if(rem<10) res[i]='0'+rem;else res[i]='A'+rem-10;

                           i++;

                          }while(x!=0);

                          i--;

                          for(;i>=0;i--) cout<<res[i];

                          cout<<endl;

                      }

                      void main(void)

                      {

                        f(23,10);

                        f(45,8);

                        f(50,16);

                      }

                      執行程序后輸出的第一行是___(12)___,第二行是___(13)___,第三行是___(14)___.

                  10.[程序]  (2)

                    #include <iostream.h>

                    char st[]="Your friend!";

                    void f2(int );

                    void f1(int i)

                    {

                      cout<<(st+i)<<endl;

                      if(i<3){

                        i+=2;

                        f2(i);

                      }

                    }

                    void f2(int i)

                    {

                      cout<<st[i]<<endl;

                      if(i<3){

                         i+=2;

                         f1(i);

                      }

                    }

                    void main(void)

                    {

                      int i=0;

                      f1(i);

                    }

                      執行程序后輸出的第一行是___(15)___,第二行是___(16)___.

                  11.[程序](2)

                    #include<iostream.h>

                    class A{

                      public:

                          A(char *s){cout<<s<<endl;}

                          A(){ };

                      };

                      class B:public A{       //L1

                      public:

                          B(char *s1,char *s2):A(s1)

                          { cout<<s2<<endl;}

                      };

                      class C : public A{      //L2

                      public:

                          C(char *s1,char *s2):A(s1)

                          {  cout<<s2<<endl;}

                      };

                      class D:public B,public C{

                      public:

                          D(char *s1,char *s2,char *s3,char *s4):B(s1,s2),C(s1,s3)

                          {    cout<<s4<<endl;}

                      };

                      void main(void)

                      {

                         D *ptr= new D("students","study","C++","hard");

                         delete ptr;

                      }

                      執行程序后共輸出___(17)___.

                      若分別將L1行改為;class B : virtual public A{       //L1

                      L2行改為:class C:virtual public A{    //L2

                      則執行程序后共輸出___(18)___行。

                  ●完善程序題,12

                  12.以下程序的功能是;從鍵盤上輸入一個大于等于3的整數,將其分解為質因子的乘積并輸

                  .例如,輸入50,則輸出;50;2*5*5;輸入45,則輸出;45=3*3*5;輸入37.則出;37=37.

                      [程序]  (4)

                      #include <iostream.h>

                      int prime(int x)  //求大于x的最小質數(素數)

                      {

                        int flag=1;

                        x++;

                        while(___(19)___){

                           int i=2;

                           while(i<x){

                             if(___(20)___)break;

                             i++;

                           }

                           if(i<x)x++;else flag=0;

                        }

                      return x;

                      }

                      void f(int n)  //n分解為若干個質數之積

                      {

                        int flag=1;

                        int i=2;      //保證i為質數

                        do{

                           while(___(21)___){

                              if(flag==1){

                                  cout<<i;

                                  flag=0;

                              }

                              else cout<<'*'<<i;

                              n=n/i;

                           }

                          ___(22)___

                        }while(i<n);

                        if(n!=1)

                          if(flag==1) cout<<n;else cout<<'*'<<n;

                      }

                      void main(void)

                      {

                       int x;

                      do{

                       cout<<"請輸入一個整數,若小于3則重輸;";

                       cin>>x;

                      }while(x<3);

                      cout<<x<<'=';

                      f(x);

                      cout<<endl;

                     }

                  13.以下程序的功能是:實現兩個字符串拼接,函數strcat(char *s1,char *s2)先將s1所指向的字符串拷貝到s所指向的動態申請的存儲空間,接著將s2所指向的字符串拼接s所指向的字符串后面,函數返回拼接后的字符串。

                      [程序](4)

                      #include <iostream.h>

                      char *strcat(char *s1,char *s2)

                      {

                        char *s,  *p,  *q;

                        int len1=0,len2=0;

                        p=s1;

                        while(*p!='\0'){

                          len1++;

                          p++;

                        }

                        p=s2;

                        while(*p!='\0'){

                          len2++;

                          p++;

                        }

                        s=q=___(23)___ ;

                        p=s1;

                        for(int i=0;i<len1;i++)*q++=*p++;

                        p=s2;

                        while(___(24)___);

                          ___(25)___

                      }

                      void main(void)

                      {

                        char s1[]="visual";

                        char s2[]="is esay";

                        char *s;

                        s=___(26)___;

                        cout<<s<<endl;

                        delete []s;

                      }  

                  14.下面程序的功能是;將兩個有序鏈表(降序捧序)合并為一個有序鏈表,函數merge(node *h1,node *h2)將由h1h2分別指向的己排序的兩個鏈表,合并為一個依然有序的鏈表。注意;對于數據大小相同的結點,都要保留在合并后的鏈表上。主函數產生兩條已降序排序的鏈表,并輸出合并后鏈表上的數據值.

                    例如,原鏈表上各結點的數據依次為;

                    h1:15,9,8,7,3

                    h2:15,12,10,7,3,2

                    合并后得到的新鏈表為;15,15,12,  10,9,8,7,7,3,3,2

                    【程序](4)

                    #include<iostream.h>

                    struct node{

                      int data;

                      node*next;

                     };

                      node *merge(node *h1,node *h2)

                      {

                       if(h1==NULL) return h2;

                       if(h2==NULL) return h1;

                       node *h=NULL;

                       if(___(27)___){

                          h=h1;

                          h1=h1->next;

                       }

                       else{

                           h=h2;

                           h2=h2->next;

                       }

                       node *p=h;

                       while(___(28)___){

                         if(h1->data >=h2->data){

                           p->next=h1;

                           p=h1;

                           h1=h1->next;

                         }

                         else{

                             p->next=h2;

                             p=h2;

                             h2=h2->next;

                         }

                      }

                      if(h1 !=NULL) ___(29)___;

                      else   

                          if(h2!=NULL) p->next=h2;

                      return h;

                  }

                  void main(void)

                  {

                    node a[5]={{15},{9},{8},{7},{3}};

                    node b[6]={{15},{12},{10),{7},{3},{2}};

                    node *h,*h1,*h2,*p;

                    int i;

                    h1=a;

                    h2=b;

                    for(i=0;i<4;i++) a[i].next=&a[i+1];    //形成a鏈表

                    a[4].next=NULL;

                    for(i=0;i<5;i++) b[i].next=&b[i+1];  //形成b鏈表

                    b[5].next=NULL;

                    ___(30)___   ;

                    p=h;

                    while(p){

                      cout<<p->data<<'\t';

                      p=p->next;

                    }

                    cout<<endl;

                  }

                   

                  答案:

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

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

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

                  :填空

                  (1)構造  (2)17  (3)編譯 (4)void (5)register

                  (6)9  (7)1 (8)5 11 16 37 (9)5 27 32 75

                  (10)3 (11)2 4 6 8 (12)23 (13)55 (14)32 (15)Your friend!

                  (16)u (17)5 (18)3 (19)flag (20)x%i==0 (21)n%i==0 (22)i++

                  (23)new char[len1+len2+1] (24)*q++=*p++ (25)return s

                  (26)strcat(s1,s2) (27)h1->data>h2->data (28)h1!=0 && h2!=0

                  (29)p->next=h1  (30)h=merge(h1,h2)

                   

                  亚洲欧美日韩国产一区二区三区_全亚洲免费一级黄片_国产一区二区三区不卡视频手机版_国产污三级网站在线观看