1. <small id="kntrr"><delect id="kntrr"></delect></small>
    2. <sub id="kntrr"></sub>
        1. <form id="kntrr"><listing id="kntrr"></listing></form>
            江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
            2009年春江蘇省二級VC++考試試題與答案

            絕密★啟用前

                   2009年春

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

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

                        二級試卷   

                試卷語種:  Visual C++

              明:

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

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

            3.計算機基礎知識部分全部是選擇題(20),程序設計部分分為選擇題(10)和填空題(30)兩種;   

            4.選擇題用答題卡答題。每一項有A、B、C、D四個可供選擇的答案,請選擇其中一個你認為正確的答案,用HB鉛筆涂寫在答題卡的相應答題號內。每選對一項得1分,不選或選錯不得分;

            5.填空題用答題紙答題。請將答案用藍、黑色鋼筆或圓珠筆填寫在答題紙的相應答題號內,每個答案只占一行,不得換行。每填對一個答案得1分,不填或填錯不得分;

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

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

                第一部分計算機基礎知識

            1.  在下列有關現代信息技術的一些敘述中,正確的是    1    。

              A.集成電路是20世紀90年代初出現的,它的出現直接導致了微型計算機的誕生

              B.集成電路的集成度越來越高,目前集成度最高的已包含幾百個電子元件

              C.目前所有數字通信均不再需要使用調制解調技術和載波技術

              D.光纖主要用于數字通信,它采用波分多路復用技術以增大信道容量‘    .

            2.  最大的10位無符號二進制整數轉換成八進制數是    2    .。

              A.1023    B.1777

              C.1000    D.1024

            3.  在下列有關目前PCCPU的敘述中,錯誤的是    3   。

                A.CPU芯片主要是由Intel公司和AMD公司提供的

                B."雙核"是指PC機主板上含有兩個獨立的CPU芯片

                C.Pentium 4微處理器的指令系統由數百條指令組成

                D.Pentium 4微處理器中包含一定容量的Cache存儲器

            4.  在下列有關當前PC機主板和內存的敘述中,正確的是    4    。

                A.主板上的BIOS芯片是一種只讀存儲器,其內容不可在線改寫

                B.絕大多數主板上僅有一個內存插座,因此PC機只能安裝一根內存條

                C.內存條上的存儲器芯片屬于SRAM(靜態隨機存取存儲器)

                D.目前內存的存取時間大多在幾個到十幾個ns(納秒)之間

            5.  在下列有關PC機輔助存儲器的敘述中,正確的是    5    。

                A.硬盤的內部傳輸速率遠遠大于外部傳輸速率

                B.對于光盤刻錄機來說,其刻錄信息的速度一般小于讀取信息的速度

                C.使用USB 2.0接口的移動硬盤,其數據傳輸速率大約為每秒數百兆字節

                D.CD-ROM的數據傳輸速率一般比USB 2.0還快

            6.  在下列PCI/O接口中,數據傳輸速率最快的是    6    。

                A.USB 2.0          B.IEEE-1394

                C.IrDA (紅外)      D.SATA

             7.  計算機軟件可以分為商品軟件、共享軟件和自由軟件等類型。在下列相關敘述中,錯誤的是    7    。

                A.通常用戶需要付費才能得到商品軟件的使用權,但這類軟件的升級總是免費的

                B.共享軟件通常是一種"買前免費試用"的具有版權的軟件

                C.自由軟件的原則是用戶可共享,并允許拷貝和自由傳播

                D.軟件許可證是一種法律合同,它確定了用戶對軟件的使用權限

            8.  人們通常將計算機軟件劃分為系統軟件和應用軟件。下列軟件中,不屬于應用軟件類型的是    8  

                A.AutoCAD     B.MSN    C.Oracle      D.Windows Media Player

            9.  在下列有關Windows 98/2000/XP操作系統的敘述中,錯誤的是    9    。

                A.系統采用并發多任務方式支持多個任務在計算機中同時執行

                B.系統總是將一定的硬盤空間作為虛擬內存來使用

                C.文件()名的長度可達200多個字符

                D.硬盤、光盤、優盤等均使用FAT文件系統

            10. 在下列有關算法和數據結構的敘述中,錯誤的是    10    。

                A.算法通常是用于解決某一個特定問題,且算法必須有輸入和輸出

                B.算法的表示可以有多種形式,流程圖和偽代碼都是常用的算法表示方法

                C.常用的數據結構有集合結構、線性結構、樹形結構和網狀結構等

                D.數組的存儲結構是一種順序結構

            11•因特網的IP地址由三個部分構成,從左到右分別代表    11    。

                A.網絡號、主機號和類型號

                B.類型號、網絡號和主機號

                C.網絡號、類型號和主機號

                D.主機號、網絡號和類型號

            12•在下列有關ADSL技術及利用該技術接入因特網的敘述中,錯誤的是    12    。

                A.從理論上看,其上傳速度與下載速度相同

                B.一條電話線上可同時接聽/撥打電話和進行數據傳輸

                C.利用ADSL技術進行數據傳輸時,有效傳輸距離可達幾公里

                D.目前利用ADSL技術上網的計算機一般需要使用以太網網卡

            13.人們往往會用"我用的是10M寬帶上網"來說明白己計算機連網的性能,這里的"10M"

              指的是數據通信中的    13    指標。

              A.最高數據傳輸速率

              B.平均數據傳輸速率

              C.每分鐘數據流量

              D.每分鐘IP數據包的數目

            14•計算機局域網按拓撲結構進行分類,可分為環型、星型和    14    型等。

              A.電路交換

              B.以太  

              C.總線

              D.對等

            15.網絡信息安全主要涉及數據的完整性、可用性、機密性等問題。保證數據的完整性就是 15   。

              A.保證傳送的數據信息不被第三方監視和竊取

              B.保證發送方的真實身份

              C.保證傳送的數據信息不被篡改

              D.保證發送方不能抵賴曾經發送過某數據信息

            16.某計算機系統中,西文使用標準ASCII碼、漢字采用GB2312編碼。設有一段純文本,其機內碼為CB F5 DO B4 50 43 CA C7 D6 B8,則在這段文本中含有:  16    。

                A.2個漢字和1個西文字符

                B.4個漢字和2個西文字符   

                C.8個漢字和2個西文字符

                D.4個漢字和1個西文字符

            17.以下關于漢字編碼標準的敘述中,錯誤的是   17    。

                A.GB 2312標準中所有漢字的機內碼均用雙字節表示      

                B.我國臺灣地區使用的漢字編碼標準BIG 5收錄的是繁體漢字

                C.GB 18030漢字編碼標準收錄的漢字在GB 2312標準中一定能找到

                D.GB 18030漢字編碼標準既能與UCS(Unicode)接軌,又能保護已有中文信息資源

            18.若波形聲音未進行壓縮時的碼率為64kb/s,已知取樣頻率為8kHz,量化位數為8,那么它的聲道數是    18    。

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

            19.從信息處理的深度來區分信息系統,可分為業務處理系統、信息檢索系統和信息分析系統等。在下列幾種信息系統中,不屬于業務處理系統的是    19    。

                A.DSS  B.CAI   C.CAM   D.OA

             20.在下列有關信息系統開發、管理及其數據庫設計的敘述中,錯誤的是    20    。

                A.常用的信息系統開發方法可分為結構化生命周期方法、原型法、面向對象方法和CASE方法等

                B.在系統分析中常常使用結構化分析方法,并用數據流程圖和數據字典來表達數據和處理過程的關系

                C.系統設計分為概念結構設計、邏輯結構設計和物理結構設計,通常用E-R模型作為描述邏輯結構的工具

                D.從信息系統開發過程來看,程序

             

            21.下列關于"for(e1;e2;e3) s1;"的描述中不正確的是______

            A.存在"for(;;) s1;"的情況    B.表達式e1e3可為空,e2不能為空

            C.表達式e2的值可增可減       D.循環體s1可以為空,但分號(;)必須有

            22.下列函數定義中存在語法錯誤的是______

                Avoid f5();f6(){f5;cout<<200;} void f5(){cout<<100;}

                Bvoid f3(){cout<<100;} void f4(){tout<<200;}

                Cvoid f7(int a){if(a)f7(--a);cout<””;}

                Dvoid f1(){cout<<100;void f2(){tout<<200;}}   

            23.設有說明語句;   

                int a=7,b=12,e;

              以下表達式選項中,e值為2的是_______

              Ae=b%=(a-a%5)    Be=b%=(a%=5)

              Ce=b%=b+1-a%5    De=(b%=a)-(a%=5)

            24.以下敘述中不正確的是_____

              A.一個函數中可以有多個return語句  B.一個函數中可以沒有return語句

              C.一個return語句可返回多個值      D.一個return語句可不返回值

            25.以下雙目運算符中要求兩個操作數均為整型的運算符是______。

                A||    B&&    C/   D %

            26.以下對break語句的描述中,不正確的是______

              Abreak語句可用在循環語句中,其作用是結束本層循環的執行

              Bbreak語句可用在switch語句中,其作用是結束該switch語句的執行

              Cbreak語句可用在if語句中,其作用是結束該if語句的執行

              Dbreak語句在同一循環體中可以多處使用

            27.以下對類的析構函數的敘述中,正確的是______

              A.析構函數完成類的初始化   

              B.析構函數完成對象的初始化

              C.析構函數完成撤銷對象的相關處理

              D.析構函數和成員函數一樣可以顯式地調用   

            28.以下有關多態性的敘述中不正確的是________ 。

                AC++語言的多態性分為編譯時的多態性和運行時的多態性

                B.編譯時的多態性通過重載函數來實現

                C.運行時的多態性通過虛函數來實現

                D.函數重載和虛函數均可實現編譯時的多態性和運行時的多態性

            29.設已定義了一個類名為MyClass的類:

                MyClass sl,*s2,**s3,*s4 E2];

                當該語句執行后,調用該類的構造函數的次數是 _______

                A1    B2    C3    D.5

             30.在公有派生的情況下,派生類中定義的成員函數能訪問其基類的_________。

                A.公有成員和保護成員    B.公有成員和私有成員

                C.保護成員和私有成員    D.公有成員、保護成員和私有成員

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

            ●基本概念題(5)

            1.以下循環語句的循環體的執行次數為  ( )  。

                  for(int s=0,j=1;j<=10;s+=j);j++;

            2void類型的指針是其指向變量的數據類型是不固定的,對該類型指針進行操作時,通常應進行________

            3.C++變量的存儲類型有自動類型、靜態類型、 _________________。

            4.c++函數的參數傳遞方式有三種:  (_________)  、指針傳遞和引用傳遞。

            ●閱讀程序題(13)

            5.[程序](2)

                #include

                void fa(int&a,int&b)

                {int t=a;a=b;b=t;}

                void fb(int a,int b)

                {  int t=a;a=b;b=t;}   

                void main(void)

                {int c[2]={100,200},d[2]={300,400};

                fa(c[0],c[1]);    cout<

                rb(d[0],d[1]);    cout<

                }   

                程序輸出的第一行是(   )  ,第二行是(  )。

            6.[程序](2)

                #include   

                void main(void)

                {  int n=0,m=0;

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

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

                    if(j>=i)n++;m++;

                cout<

                }.

              程序輸出的第一行是(   )  ,第二行是(   )  。

            7.[程序](2)

                #include

                int a=10;

                void main(void)

                {  int a=20,b=30;

                    { int a=0,b=0;

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

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

                       }

                      cout<程序輸出的第一行是  (  )  ,第二行是(  )  。

            8.[程序](3)  

                #include

                void f2(int x[],int n);   

               

                void fl(int x[],int n)   

                {  cout<

                   x[n]++;

                   if(n<3){n=n+2;f2(x,n);}

                }   

                void f2(int x[],int n)

                {cout<

                 x[n]++;

                if(n<3){n=n+3;fl(x,n);  }

                }

                void main(void)

                {int y[7]={3,4,5,6,7,8,9};

                 f1(y,0);

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

                cout<   

                }

                程序輸出的第一行是(  )  ,第二行是(  )  ,第三行是( )

              9[程序](2)  

                #include

                class A{

                    int n;

                public:

                    static int s;

                    A(int a){n=a;}

                    void add(){s+=n;}

                    void print(){cout<

                    int get(){return n;}

                };

                int A::s=0;

                class B:public A{

                      int y;

                public:

                    B(int b,int c):A(c){y=b;}

                    void p(){cout<

                };

                void main(void)

                {  A a1(10),a2(20);

                   B b1(5,15),b2(10,15);

                   a1.add();a2.add();b1.add();b2.add();

                   a1.print();a2.print();

                   b1.p();b2.p();

                }

                程序輸出的第一行是(  )  ,第三行是(  )。

                10[程序](2)

                #include

                class A{

                     int x;

                public:

                   A(int a){x=a;}

                   virtual void print(){cout<<"x="<

                   void fun(){print();}

                };

                class B:public A{

                      int y:

                public:

                     B(int a,int b):A(a){y=b;}   

                     void print(){cout<<"y="<    }

                     void fun(){print();}

                };

                class C:public B{

                      int z;  

                public:

                      C(int a,int b,int C):B(a,b){z=c;}

                      void print(){cout<<"z="<    }

                      void fun(){print();}

                };

                void main(void)

                {  A a1(5),*p1;  

                   B bl(10,15);   

                   C c1(20,30,40);  

                   a1.fun();b1.fun();c1.fun();  

                   pl=&b1;  pl->fun();p1=&c1;pl->fun();

                } 

              程序輸出的第四行是()  ,第五行是( )

            ●完善程序題(12)  

            11.以下程序的功能是:采用插入排序的方法將數組s1中的元素升序排序,并刪除重復的元

              (值相同的元素只保存一個)。函數insert(int p[],int c,int x)將整數x插入到已排序

              的數組P(并仍保持升序),參數c為數組P的元素個數。函數sort(int s[],int n)將數

              s中的數據按升序排序。先將s[0]放到臨時數組tern[0],然后,依次從s中取一個

              元素,若該元素不在數組tem,則調用函數insert()將該元素插入到數組tern中。最后

              將數組tem拷貝到數組s中。

              [程序](4)

                #include

                void insert(int p[],int c,int x)

                {  for(int i=0;i

                      if(p[i]>x)break;

                      if(i==c)_____________;   

                      else{for(int J=c;j>i;j--)p[j]=P[j-1];________;}

                }

                int sort(int s[],int n)

                {int tem[200];  

                 int len,j,k;

                 tem[O]=s[O];

                 len=1    //len記錄數組tern中的元素個數

                 for(j=1;j

                  for(k=0;k

                    if(s[j]==tem[k])_____________;

                 }

                 if(k>=len){

                    insert(_________);len=len+1;

                    }

                }

                for(j=0;j

                retum len;    //返回數組的大小

                }   

                void main(void)

                {int s1[200]={34,22,11,55,66,30,22,100,66};

                int n;n=sort(s1,9);

                for(int i=0;i

                cout<<'\n';

                }   

            12.以下程序通過重載運算符+、*實現集合(用數組表示)的并(u),(n)運算。集

              的元素不能相同。兩個集合的并包含了兩個集合的所有元素。兩個集合的交僅包含

              集合中共同存在的元素。設sl={1,2,3,4,5,6},s2={3,5,7,9,11}。s1 u s2={1,

              4,5,6,7,9,11},s1 n s2={3,5}。

              [程序](4)

                #include

                class Set{

                      float x[20];

                      int size;

                public:

                     int In(float e,int n)    //元素e已在集合x,則返回1,否則返回0

                     {  int flag=0;

                       for(int i=o;i

                       return flag;

                     }

                     Set(float a[],int n)   

              {  x[0]=a[0];size=1;

                for(int i=1;i

                   if(In(a[i],size)==0){

                   (________)  ;

                   size++;

                   }

              }

                Set(){size=0;}

                Set operator +(Set);

                Set operator *(Set);

                Set &operator =(Set&);

                int GetSet(float y[])

                { for(int i=0;i

                  return size;

                } 

                void print()

                {  for(int i=0;i

                   cout<<'\n'<<"size=”<

                };

            }

            Set Set::operator +(Set a)

            {   Set tem; 

                for(int i=0;i  ______;

                tem.size=size;

                for(i=0;i

                if(tem.In(a.x[i]i,tern.size)==0)tem.x[tem.size++]=a.x[i];

                return tem;

            }

            Set Set::operator *(Set a)

            {  Set tem;

              tem.size=0;

              for(int i=0;i

                if(a.In(x[i],a.size)==1)

                tem.x[tem.size++]=x[i];

                retum tem;

            }    Set &Set::operator =(Set &a)

                {for(int i=0;i   

                (__________)  ;  

                return *this;

                }

                void main(void)

                {float b1[6]={1,2,3,4,5,6};

                float b2[6]={3,5,7,9,11},b3[6];

                Set a1(b1,6),a2(b2,5),a3,a4,a5;   

                a3=a1+a2;a3.print();  

                a5=a1*a2;a5.print();  

                int n=a1.GetSet(b3);

                for(int i=0;i

                cout<<'\n'<

                }

            13,以下程序的功能是:先產生一條帶頭結點(鏈表的第一個結點不存儲數據,而是存儲鏈表的

              表長,即結點個數)的無序鏈表,每一個結點包含一個整數。然后將該鏈表分成兩條帶頭結

              點的鏈表:_條鏈表上的數據均為偶數,另一條鏈表上的數據均為奇數。函數Cleate()創建

              了一條帶有頭結點的單鏈表。函數Print()輸出鏈表上各結點的值。函數Split()把鏈表

              分割成兩條鏈表,值為奇數的結點保留在原鏈表上,值為偶數的結點移到另一個鏈表中,

              并將指向偶數鏈表的頭指針返回。 

              [程序](4)   

                #include

                struct Node{

                int data; 

                struct Node *next;

                };

                Node *Create(void)    //創建一條帶有頭結點的單向鏈表

                {  Node *p1,*head;

                   int a;    //創建頭結點,頭結點的數據域儲存鏈表的結點個數

                   head=new Node;

                   head->data=0;head->next=0   

                   cout<<"創建一條無序鏈表,請輸人數據,-l結束,\n";

                   cin>>a;

                   while(a!=-1){

                    p1=new Node;

                pl->data=a;pl->next=head->next;

                _________;  

                head->data++; 

                cin>>a

              }   

                (___________)    ;

            }

            void Print(Node *h)

            { h=h->next;

              while(h){eout<data<<" ";h=h->next;}

              cout<

            }

            Node *Split(Node *&link)  //link-個帶頭結點的單鏈表

            {Node *pl=link,*p2=link->next,*head;

              head=new Node;

              head->data=0;head->next=0;

              while(p2){

                if(p2->data%2==O){

                  p1->next=p2->next;link->data--;

                  p2->next=head->next;

                  __________  ; 

                  head->data++;    p2=p1->next;

                }

                else{pl=p2;  ___________;}

              }

              return(head);

            }

            void main(void)

            {  Node *h1,*h2;

               hl=Create();    cout<<"輸入的鏈表為:"<

               Print(h1);

               h2=Split(h1);  cout<<"分割后的奇數鏈表為:"<

               Print(h1);    cout<<"分割后的偶數鏈表為:"<

               Print(h2);

            }

             

             

            一、選擇題 
            21.B 22.D 23.A 24.C 25.D 26.C 27.C 28.D 29.A 30.A
            (1)無數次   (2)強制類型轉換    (3)外部類型
            (4)寄存器類型  (5)值傳遞  (6)200  100
            (7)300 400    (8)6    (9)1
            (10)30   30  (11)20 30   (12)3
            (13)5    (14)8    (15)10   60
            (16)15 60  5    (17)15    (18)40
            (19)p[c]=x或p[i]=x (20)p[j]=x或p[i]=x   (21)break
            (22) tem,len,s[j]  (23)x[i]==e   (24)x[size]=a[i]
            (25)tem.x[i]=x[i]    (26)  size=a.size    (27) head->next=p1
            (28)retum head    (29)head->next=p2     (30)p2=p2->next

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