1. <small id="kntrr"><delect id="kntrr"></delect></small>
    2. <sub id="kntrr"></sub>
        1. <form id="kntrr"><listing id="kntrr"></listing></form>
            江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
            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.任何一個通信系統都有信源、信道和信宿這三個基本組成部分    ,

                B.為了實現遠距離傳輸信息,在模擬通信和數字通信中均采用載波技術

                C.為了降低傳輸信息的成本,在通信中廣泛采用多路復用技術

            D.數字通信系統的一個主要性能參數是信道帶寬,它指實際進行數據傳輸時單位時間內傳輸的二進位數目

            2.在下列有關集成電路及其應用的敘述中,錯誤的是    ___2___    。

                A.集成電路的制造工序繁多,工藝復雜且技術難度高

                B.經過拋光后的硅片稱為晶圓,每個晶圓最多可以制成一個合格的集成電路芯片

                C.IC卡分為接觸式IC卡和非接觸式IC,后者通常又稱為射頻卡或感應卡

                D.集成電路應用十分廣泛,目前我國第2代居民身份證中就有集成電路芯片

            3.在下列有關數字技術的一些敘述中,錯誤的是    _____3_____    。

                A.數字技術是采用有限個狀態(例如"0""1")來表示、處理、存儲和傳輸信息的

                B.在邏輯代數中,11進行邏輯加(V)和邏輯乘(^)的結果相同

                c.任何一個十進制數,均可以精確地轉換成等值的二進制數

                D.PC機中,通常用原碼表示正整數、用補碼表示負整數

            4.  在下列有關PC機主機的敘述中,錯誤的是___4___    。

              A.BIOSCMOS存儲器安裝在主板上,普通用戶一般不能自己更換

              B.由于PC機主板的物理尺寸等沒有標準化,所以不同PC機的主板均不能互換

              C.芯片組是PC機各組成部分相互連接和通信的樞紐,一般由2VLSI芯片組成

              D.芯片組決定了主板上所能安裝的內存最大容量、速度及可使用的內存條類型

            5.  在下列4Intel微處理器產品中,采用雙核結構的是  _____5_____    。

                A. Core 2 Duo

                B.Pentium PRO

                C.Pentium III

                D.Pentium 4

            6.  在下列四種PC機主存儲器類型中,目前常用的是  _____6_____    。

                A.EDODRAM

                B.SDRAM

                C.RDRAM  

            D.DDR SDRAM

            7.  在下列有關PC機常用I/O接口的敘述中,錯誤的是    7    。

                A. 目前顯卡與顯示器的接口大多采用VGA接口

                B.  可用于連接鼠標器的USB接口和PS/2接口的數據傳輸方式均是串行傳輸方式

                C.  USB接口連接器有4個引腳,其中1個引腳可獲得由主機提供的+1.5V電源

                D. IEEE-1394b接口也是PC機常用的一種高速接口

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

                A.由于數據存取速度慢、容量小等原因,軟盤存儲器已逐漸被淘汰

                B. 所有的硬盤都是由2個或2個以上盤片組成的,硬盤中的盤面數為盤片數的2

                C.目前有些優盤產品可以模擬軟盤和硬盤啟動操作系統

                D. 目前常見的組合光驅(“康寶”)既有DVD只讀光驅功能,又有CD光盤刻錄機功能

             9.  在下列有關光盤存儲容量的敘述中,錯誤的是    9    。

                A.80ram CD存儲容量大約為200多兆字節

                B.120mm CD存儲容量大約為600多兆字節

                C.單面單層的120mm DVD存儲容量大約為4.7GB

                D.單面單層的120mm藍光光盤存儲容量大約為17GB

             10.在下列有關Windows系列操作系統及其功能的敘述中,錯誤的是    10    。

                A.Windows操作系統采用并發多任務方式支持系統中多個任務的執行

                B.Windows XP分為多個版本,它們可用于不同計算機和不同的應用

            .  C.Windows XP相比,Windows Vista做了許多改進,但其硬件運行環境要求較高

                D.無論是硬盤還是光盤,它們均采用相同的文件系統,FAT文件系統

            11.在下列常用應用軟件中,不能對編輯的文檔設置密碼的是    11    。

                A.Microsoft Word

                B.Microsoft Excel

                C.Microsoft PowerPoint

                D.Microsoft FrontPage

            12.在下列關于無線局域網的敘述中,錯誤的是    12    。

                A.在無線局域網中,無線接入點實際上是一種無線交換機,在室內覆蓋距離可達幾十米

                B.目前無線局域網可采用的協議有Wi-Fi和藍牙等,后者的數據傳輸速率比前者更高

                C.若某電腦貼有Intel公司的"Centrino"(迅馳)標記,則該電腦應有集成的無線網卡

                D.無線網卡有多種類型,例如PCI無線網卡、USB無線網卡等

            13.IP地址分為A、B、C、D、E五類。下列4IP地址中,屬于C類地址的是    13

                A.  1.110.24.2

                B.  202.119.23.12

                C.  130.24.35.68

                n.  26.10.35.4R

            14.因特網上有許多不同結構的局域網和廣域網互相連接在一起,它們能相互通信并協調工作

              的基礎是因為都采用了 ______14______ 

              A.ATM協議   

              B.TCP/lP協議   

              C.X.25協議

              D.NetBIOS協議

            15.下列有關因特網接入的敘述中,錯誤的是______15______    。

                A.采用電話撥號接入時,數據傳輸速率只能達幾十kbps

                B.采用ADSL接入時,網絡的下行數據傳輸速率通常高于上行數據傳輸速率    .

                C.采用ADSL接入時,只需要ADSL調制解調器,不需要使用網卡

                D.采用有線電視接入時,多個終端用戶將共享連接段線路的帶寬

            16.在下列有關字符集及其編碼的敘述中,錯誤的是 ______16______    。

                A.在我國臺灣地區使用的漢字編碼標準主要是GBK,該標準中收錄了大量的繁體漢字

                B.GBl8030標準中收錄的漢字數目超過2,Windows XP操作系統支持該標準

                C.Unicode字符集中既收錄了大量簡體漢字,也收錄了大量繁體漢字

                D.GB2312是我國頒布的第一個漢字編碼標準,該字符集還收錄了俄文、希臘字母等

            17.若一幅圖像的大小為1024×768,顏色深度為16,則該圖像在不進行數據壓縮時,其數據量大約為______17______    。

              A.768KB    、

              B.1.5MB

              C.3MB

              D.12.3MB

            18.在下列4種類型的數字化聲音文件中,不可能包含人的說話聲音的是   18   。

                A. WAV

                B.MP3

                C.MID

                D.WMA

            19.在下列有關數字視頻的敘述中,錯誤的是   19   。

                A.PC機所使用的視頻卡能將輸入的模擬視頻信號進行數字化

                B.目前使用攝像頭獲取視頻信息時,不需要使用專門的視頻卡

                C.數字視頻在數據壓縮時只能使用MPEG標準,DVD就是采用MPEG4標準壓縮的

                D.計算機動畫是一種合成視頻,這種技術是發展動漫產業的基礎

            20.下列是幾種常見的電子商務的分類方法。若將電子商務分為B-C、B-B等類型,則該分類

                ______20______   。

                A.按交易的雙方進行分類

                B.按使用的網絡類型分類

                c.按交易商品性質分類

                D.按交易商品規模分類   

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

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

            21.若有;int x=6;則執行語句:x+=x-=x*x;,x的值是  (21) 

                A.36    B.-60    C.60    D.-24

            22.以下語句中,存在編譯錯誤的是  (22)  

                A.char a[7],*p;  p=a="China";    B.char a[7],*p=a; p="China";

                C.char *a; a="China";            D.char a[7]={"China"};

            23.以下有關函數的敘述中,正確的是  (23)    。

                A.函數必須返回一個值    B.函數體中必須有return語句

                C.函數可以多次重載      D.函數可以嵌套定義

            24.執行以下語句序列int j=0;while(j<25) j+=3; cout<

                輸出的結果是  (24) 

                A.24    B.25    C.27    D.28

            25.實現運行時的多態性需要使用  (25)

                A.重載函數    B.析構函數    C.構造函數    D.虛函數

            26.以下有關類成員的描述中,正確的是  (26)

                A.友元函數是類的成員函數        B.類成員缺省的訪問權限是私有的

                C.類成員函數必須說明為公有的    D.派生類成員函數能訪問其基類的所有成員

            27.對于任意一個類,其析構函數  (27)

                A.是唯一的    B.可有多個    C.只能是缺省的    D.允許重載

            28.類的成員函數中,沒有this指針的是  (28) 

                A.構造函數    B.析構函數    C.虛函數    D.靜態成員函數

            29.以下有關繼承的敘述中,不正確的是  (29)    。

                A.繼承可以實現軟件復用          B.虛基類可解決多繼承產生的二義性問題

                C.派生類不繼承基類的私有成員    D.派生類的構造函數要調用基類的構造函數

            30.靜態數據成員是  ( 30 )   的數據。

              A.私有    B.公有    C.保護    D.所有對象共享

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

            ●基本概念題,5

            1.C++,將多態性分為靜態多態性和動態多態性兩種。函數重載屬于    (1)    多態性,運算

            符重載屬于  (2)  多態性。

            2.C++的文件流中,打開文件的方法有二種,一種是使用成員函數open()打開文件,另一種是

            使用.(3)    打開文件。

            3.要使一個指針變量不指向任一變量時,應將該指針變量的值賦為    (4)    。

            4.當用類的成員函數重載一個雙目運算符時,該成員函數的形參個數是  (5)  個。

            ●閱讀程序題,13

            5.[程序]  (2)

              #include

              int f2(int *a,int b)

              {

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

                cout<<"*a="<<*a<<"\t"<<"b="<

                return *a+b;

              }

              void f1(int a,int &b)

              {

                a=a+b;b=a+b;

                b=f2(&a,b);

                cout<<"a="<  }

              void main(void)

              { 

                int x=4,y=5;

                f1(x,y);

                cout<  

             }

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

            6.[程序]  (3)

              #include

              void fun(int *s,int *y)

              {

                static int t=3;

                *y+=s[t];

                t--;

              }

              void main(void)

              {

                int a[]={10,20,30,40},i,x=0;

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

                  fun(a,&x);

                  cout<

                }

              }

                執行以上程序后輸出的第一行是___(9)___,第三行是 ___(10)___,第四行是 ___(11)___

            7.[程序](3)

                #include

                void f(int x,int y)

                {

                int mid;

                if(x

                  mid=(x+y)/2;

                  cout<

                  f(x,mid);

                  }

                }

                void main(void)

                {

                  f(1,10);

                }

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

            8.[程序]  (2)

                #include

                int fun(char *s)

                {

                 char *p=s;

                 while(*p) p++;

                 return(p-s);

                }

                void main(void)

                {

                char s1[]={"China"},s2[]={"Apple\nPear\tCat\0Bye"};

                cout<

                cout<

                }

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

            9.[程序]  (2)

              #include

             #include

              class B{

              public:

                B(char *s){name=new char[strlen(s)+1];strcpy(name,s);}

                virtual void print(){cout<<"姓名;"<

              protected:

                   char *name;

             };

              class P1:public B{

                public:

                   P1(char  *s,float g):B(s){x=g;}

             

              void print(int i)

              {  cout<<"姓名:"<年薪:"<萬元。  \n";}

              private:

                float x;

              };

              class P2:public B{

                public:

                  P2(char *s,int n):B(s){  num=n;}

                  void print(){cout<<"姓名;"<月工資:"<元。\n";}

                     private:

                int num;

               };

               void main(void)

               {

                B *p;

                B  x("張明");

                P1  y("王虎",4.2);

                P2  z("李建國",5000);

                p=&x;p->print();

                p=&y;p->print();

                y.print(1);

                p=&z;p->print();

               }

                執行以上程序后輸出的第二行是(17) ,第四行是(18)。

            ●完善程序題,12

            10.以下程序的功能是;從鍵盤接收一行字符串,首先按照字符的ASCII碼值從小到大對輸入的字李

            串進行排序,然后從排序后的字符串中刪除重復的字符并輸出刪除操作后的字符串。

            [程序]  (4)

                #include

                #include

                char *fun(char *s)

                {  

                 char *p,*q,*r,c;

                 for(p=s; ___(19)___;p++){  //升序排序

                  for(q=r=p;*q;q++)

                    if(*r>*q)

                     ___(20)___;

                    if(r!=p){

                     c=*r;

                     *r=*p;

                     *p=c;

                   }

                } 

                for(p=s;*p;p++){    //從字符串中刪除重復的字符

                  for(q=p;*p==*q;q++);

                   r=p+1;

                   while(*q) ___(21)___ ;    //非重復字符向前移

                   *r=0;

                }

                return s;

              }

                void main(void)

                {

                char str[200],s[200];

                cout<<"輸入一行字符串:";

                cin.getline(str,200);

                strcpy(s,str);

                ___(22)___ ;

                cout<<"輸入字符串為:"<

                cout<<"結果字符串為:"<

                }

            12.以下程序的功能是;從鍵盤輸入一行字符串,將輸入字符串中連續的數字作為一個整數,整數前

            "+""_"分別表示正整數和負整數。依次取出相關的連續數字字符,并轉換為整數后存放到整

            型數組中。函數change_int()實現從字符串中依次取出整數并放入數組中

              例如;輸入字符串:"sf-123 abc+456 df7890j",則輸出-123 456  7890

            [程序](4)

              #include

              void change_int(    (23)    )

              {

                int flag;

                count=0;

                while(*p){

                  flag=1;    //flag=1為正整數,flag=-1為負整數

                  while((*p<'0'||*p>'9')&& ___(24)___)p++;

                  if(*p=='-'){   

                   flag=-1;

                   p++;

                }

                else if(*p=='+') p++;

                if(*p>='0' && *p<='9'){

                  int num=0;

                  while( (25) ){   

                    num=num*10+*p-'0';

                    p++;

                }

                num= ___(26)___ ;

                b[count]=num;

                count++;

                }

               }

              }

              void main(void)

                {

                char str[400];

                int a[20],n;

                cout<<"請輸入一個含有數字的字符串;\n";

                cin.getline(str,400);

                change_int(str,a,n);   ,

                cout<<"輸入字符串中共有"<個整數,它們分別是;\n";

                for(int i=0;i

                  cout<

                  if((i+1)%4==0) cout<<'\n';

                }

                cout<

               }

            13.以下程序的功能是;實現一個隊列的簡單管理,每一個隊列結點包括一個學生的基本信息(姓名,

            數學、物理和英語成績)。成員函數add()建立一個新結點,并將該結點加入隊尾。成員函數remove()

            從隊首取下一個結點,并通過參數將所取結點中的數據返回。成員函數Print()輸出隊列中各個結點

            的值。當隊列非空時,析構函數~Queue()依次刪除隊列上的各個結點。

            [程序]  (4)

                #include

                #include

                class Node{

                public:

                    Node(char nam[],int m,int p,int e)

                    {strcpy(name,nam);math=m;phy=p;eng=e;}

                    Node(){}

                private:

                  char name[10];    //姓名

                  int math,phy,eng;  //數學,物理,英語成績

             

                Node *nextItem;

                friend class Queue;

                };   

                class Queue{

                public:

                     Queue(){front=NULL;back=NULL;)

                     ~Queue();

                     void remove(char *,int &,int &,int &);

                     void add(char [],int,int,int);

                     int is_empty(){return back==NULL;}

               //輸出隊列中各個結點的值

                void Print()

                {

                  Node  *p=front;

                  while(p){

                    cout<name<<'\t'<math<<'\t'<phy<<'\t'<eng<<'\n';

                    p=p->nextItem;

                }

              }

            private:

                Node *front;

                Node *back;

            };

            //Queue的成員remove()實現從隊列頭取下一個結點,并返回該結點的值

              void Queue::remove(char n[],int &m,int &p,int &e)

            {

                Node *pFront;    //指向頭結點的臨時指針

                pFront=front;

                strcpy(n,front->name);

                m=front->math;p=front->phy;e=front->eng;

                ____(27)___   ;

                delete pFront;

            }

            //Queue的函數成員add()實現在隊列中增加一個項,即增加一個結點

            void Queue::add(char n[],int m,int P,int e)

            {

              Node *pNew=new Node;

              strcpy(pNew->name,n);

              pNew->math=m;pNew->phy=p;pNew->eng=e;

              pNew->nextItem=NULL;

              if(front==NULL)  ___(28)___;

                else{

                  ____(29)___  ;

                back=pNew;

              }

            }

            Queue::~Queue()

            {

                Node *p=front,*q;

                while(p!=NULL){

                ___(30)___;

                delete P;

                p=q;

                }    .

            }

            //主函數完成對各成員函數的簡單測試

            void main(void)

            {

                Queue q1;

                int m,p,e;

                char str[10];

                cout<<"輸入隊列中學生的姓名、數學、物理,英語成績(0結束);";

                cin>>str>>m>>p>>e;

                while(strcmp(str,"O")!=0){

                  q1.add(str,m,P,e);

                  cout<<"輸入隊列中一個項的值(0結束);";

                  cin>>str>>m>>p>>e;

                }

                cout<<"隊列中各項為;\n";

                q1.Print ();

                q1.remove(str,m,p,e);

                cout<<"隊列中移下項的值為;"<

                cout<<"隊列中各項為;\n";

                q1.Print();

            }

             

             

            一、選擇題

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

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

            二、填空題

            (1)靜態    (2)靜態

            (3)文件流的構造函數或構造函數    (4)0NULL

            (5)1    (6)*a=23  b=37

            (7)a=23  b=60    (8)4 60

            (9)40    (10)90

            (11)100    (12)5

            (13)3       (14)2

            (15)6 5    (16)19 14

            (17)姓名:王虎    (18)姓名:李建國,月工資:5000元。

            (19)*p           (20)r=q 

            (21)*r++=*q++    *r=*q,r++,q++    (22)fun(s)

            (23)char *p,int b[],int &count    (24)*p!='+' && *p!='-'*p!='-'

            (25)*p>='0'&&*p<='9'   (26)num *flag

            (27)front=front->nextItem    (28)front=back=pNew

            (29)back->nextItem=pNew    (30)q=p->nextItem

            国产在线精品一区二区三区不卡_亚洲第一极品精品无码_永久免费无码网站在线观看_亚洲av综合日韩