<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>
            等級考試

            9月二級C++筆試

            時間:2025-03-05 10:24:00 等級考試 我要投稿
            • 相關推薦

            2009年9月二級C++筆試

            百分網小編收集整理了2009年9月全國計算機二級筆試C++,請閱讀。
            一、選擇題(1-10,21-40每題2分,11-20每題1分)
            (1)下列數據結構中,屬于非線性結構的是
            A)循環隊列B)帶鏈隊列C)二叉樹D)帶鏈棧
            (2)下列數據結構中,能夠按照“先進后出”原則存取數據的是
            A)循環隊列B)棧C)隊列D)二叉樹
            (3)對于循環隊列,下列敘述中正確的是
            A)隊頭指針是固定不變的B)隊頭指針一定大于隊尾指針C)隊頭指針一定小于隊尾指針D)隊頭指針可以大于隊尾指針,也可以小于隊尾指針
            (4)算法的空間復雜度是指
            A)算法在執行過程中所需要的計算機存儲空間B)算法所處理的數據量C)算法程序中的語句或指令條數D)算法在執行過程中所需要的臨時工作單元數
            (5)軟件設計中劃分模塊的一個準則是
            A)低內聚低耦合B)高內聚低耦合C)低內聚高耦合D)高內聚高耦合
            (6)下列選項中不屬于結構化程序設計原則的是
            A)可封裝B)自頂向下C)模塊化D)逐步求精
            (7)軟件詳細設計產生的圖如下:
            該圖是
            A)N-S圖B)PAD圖C)程序流程圖D)E-R圖
            (8)數據庫管理系統是
            A)操作系統的一部分B)在操作系統支持下的系統軟件C)一種編譯系統D)一種操作系統
            (9)在E-R圖中,用來表示實體聯系的圖形是
            A)橢圓形B)矩形C)菱形D)三角形
            (10)有三個關系R,S,和T如下:
            R #FormatTableID_0#
            S #FormatTableID_1#
            T #FormatTableID_2#
            其中關系T由關系R和S通過某種操作得到,該操作為
            A)選擇B)投影C)交D)并
            (11)已知函數FA調用FB,若要把這兩個函數定義在同一個文件中,則
              A)FA必須定義在FB之前
              B)FB必須定義在FA之前
              C)若FA定義在FB之后,則FA的原型必須出現在FB的定義之前
              D)若FB定義在FA之后,則FB的原型必須出現在FA的定義之前  
            (12)有如下兩個類定義
              class AA{};
              class BB{      AA v1,*v2;      BB v3;      int *v4;  };
              其中有一個成員變量的定義是錯誤的,這個變量是
              A)v1  B)v2  C)v3  D)v4  
            (13)有如下類定義:
              class XX{       int xdata;
              public:     XX(int n=0) : xdata (n) { }  };
              class YY : public XX{      int ydata;  public:      YY(int m=0, int n=0) : XX(m), ydata(n) { }  };
              YY類的對象包含的數據成員的個數是
              A)1  B)2  C)3  D)4
            (14)下列有關運算符函數的描述中,錯誤的是
              A)運算符函數的名稱總是以operator為前綴  B)運算符函數的參數可以是對象
              C)運算符函數只能定義為類的成員函數  D)在表達式中使用重載的運算符相當于調用運算符重載函數  
            (15)下列關于模板形參的描述中,錯誤的是
              A)模板形參表必須在關鍵字template之后  B)模板形參表必須用括弧( )括起來
              C)可以用class修飾模板形參  D)可以用typename修飾模板形參  
            (16)在下列枚舉符號中,用來表示“相對于當前位置”文件定位方式的是
              A)ios_base::cur  B)ios_base::beg  C)ios_base::out  D)ios_base::end  
            (17)下列字符串可以用作C++標識符的是
              A)2009var  B)goto  C)test - 2009  D)_123  
            (18)下列枚舉類型的定義中,包含枚舉值3的是
              A)enum test {RED, YELLOW, BLUE, BLACK};  B)enum test {RED, YELLOW=4, BLUE, BLACK};
              C)enum test {RED=-1, YELLOW,BLUE, BLACK};  D)enum test {RED, YELLOW=6, BLUE, BLACK};
            (19)有如下程序段:
              int i=1;
              while (1) {      i++;      if(i == 10) break;      if(i%2 == 0) cout << '*';  }
              執行這個程序段輸出字符*的個數是
              A)10  B)3  C)4  D)5  
            (20)已知數組arr的定義如下:
              int arr[5] = {1,2,3,4,5}; 下列語句中輸出結果不是2的是
              A)cout << *arr+1 <<endl;  B)cout << *(arr+1)<<endl;  C)cout << arr[1] <<endl;  D)cout << *arr <<endl;   
            (21)計算斐波那契數列第n項的函數定義如下:
              Int fib(int n){      if (n == 0) return 1;      else if (n == 1) return 2;      else return fib(n-1)+fib(n-2);  }
              若執行函數調用表達式fib(2),函數fib被調用的次數是
              A)1  B)2  C)3  D)4
            (22)Sample是一個類,執行下面語句后,調用Sample類的構造函數的次數是
              Sample a[2], *p = new Sample;
              A)0  B)1  C)2  D)3  
            (23)下列關于虛基類的描述中,錯誤的是
              A)使用虛基類可以消除由多繼承產生的二義性  B)構造派生類對象時,虛基類的構造函數只被調用一次
              C)聲明“class B : virtual public A”說明類B為虛基類  D)建立派生類對象時,首先調用虛基類的構造函數  
            (24)將運算符重載為類成員函數時,其參數表中沒有參數,說明該運算是
              A)不合法的運算符  B)一元運算符  C)無操作數的運算符  D)二元運算符
            (25)有如下模板聲明:
              template<typename T1, typename T2> class A;
              下列聲明中,與上述聲明不等價的是
              A)template <class T1,class T2>  class A;  B)template <class T1,typename T2> class A;
              C)template <typename T1,class T2> class A;  D)template <typename T1,T2> class A;  
            (26)下列關于C++流的描述中,錯誤的是
              A)cout>>'A'表達式可輸出字符A  B)eof()函數可以檢測是否到達文件尾
              C)對磁盤文件進行流操作時,必須包含頭文件fstream  D)以ios_base::out模式打開的文件不存在時,將自動建立一個新文件
            27)有如下程序:
              #include <iostream>
              using namespace std;
              class Toy{  public:      Toy(char* _n) { strcpy (name,_n); count++;}      ~Toy(){ count--; }      char* GetName(){ return name; }      static int getCount(){ return count; }
              private:
                  char name[10];
                  static int count;
              };
              int Toy::count=0;
              int mail(){
                  Toy t1(“Snoopy”),t2(“Mickey”),t3(“Barbie”);
                  cout<<t1.getCount()<<endl;
              return 0;  }
              運行時的輸出結果是
              A)1  B)2  C)3  D)運行時出錯  
              (28)有如下程序
              #include<iostream>  using namespace std;
              class A {  public:       A(int i):rl(i) { }       void print( ) {cout<<'e'<<r1<<'-';}       void print( ) const {cout<<'C'<<r1*r1<<'-';}  private:      int rl;  };
              int main(){      A al(2);     const A a2(4);      al.print();    a2.print();     return 0;  }
              運行時的輸出結果是
              A)運行時出錯  B)E2-C16-  C)C4-C16-  D)E2-E4-
            29)有如下程序:
              #include<iostream>
              using namespace std;
              class Name{
                  char name[20];
              public:
                  Name(){
                      strcpy(name,"");     cout<<'?';
              }
              Name(char *fname)){
                  strcpy(name,fname);     cout<'?';
              }
              };
              int main(){
                 Name names[3]={Name(“張三”),Name(“李四”)};
              Return 0;
              }
              運行此程序輸出符號?的個數是
              A)0  B)1  C)2  D)3
            (30)有如下程序:
            #include<iostream>
            using namespace std;
            public:
            AA(){ cout<<'1'; }
            };
            class BB: public AA{
            int k;
            public:
            BB():k(0){ cout<<'2'; }
            BB(int n):k(n){ cout<<'3';}
            }
            int main(){
            BB b(4), c;
            return 0;
            }
            運行時的輸出結果是
            A)1312             D)132              C)32               D)1412 

            (31)有如下程序:
            #include<iostream>
            using namespace std;
            class C1{
            public:
            ~C1(){ cout<<1; }
            };
            Class C2: public c1{
            public:
            ~c2(){ cout<<2; }
            };
            int main(){
            C2 cb2;
            C1 *cb1;
            return 0;
            }
            運行時的輸出結果是
            A)121              B)21               C)211              D)12
            (32)有如下程序
            #include<iostream>
            using namespace std;
            class Publication{ //出版物類
            char name[30];
            public:
            Publication(char *name="未知名稱"){
            strcpy(this->name,name);
            }
            const char * getName()const{ return name; }
            virtual const char * getType()const{ return "未知類型";}
            };
            class Book: public Publication{ //書類
            public:
            Book(char *name): Publication(name){}
            virtual const char * getType()const{ return "書";}
            };
            void showPublication( Publication &p){
            cout<<p.getType()<<":"<<p.getName()<<endl;
            }
            int main(){
            Book book("精彩人生");
            showPublication(book);
            return 0;
            }
            運行時的輸出結果是
            A)未知類型:未知名稱     B)未知類型:精彩人生C)書:未知名稱                         D)書:精彩人生 
            (33)下列關于運算符重載的描述中,錯誤的是
            A)::運算符不能重載B)類型轉換運算符只能作為成員函數重載C)將運算符作為非成員函數重載時必須定義為友元D)重載[]運算符應完成“下標訪問”操作 
            (34)有如下程序:
            #include<iostream>
            #include<iomanip>
            Using namespace std;
            int main(){
            int s[]={123, 234};
            cout<<right<<setfill('*')<<setw(6);
            for(int i=0; i<2; i++) { cout<<s[i]<<endl; }
            return 0;
            }
            運行時的輸出結果是
            A)123              B)***123           C)***123           D)***123
               234                 234                    ***234           234***
             
            (35)有如下類定義
            class A {char *a;public:A():a(0){}A(char *aa){  //把aa所指字符串拷貝到a所指向的存儲空間
            a=                ;strcpy(a,aa);
            strcpy(a,aa);
            }
            ~A() {delete []a;}
            };
            橫線處應填寫的表達式是
            A)nes char[strlen(aa)+1]               B)char[strlen(aa)+1]
            C)char[strlen(aa)]                     D)new char[sizeof(aa)-1]
             二、填空題(每空2分,共30分)
             (1)某二叉樹有5個度為2的結點以及3個度為1的結點,則該二叉樹中共有  【1】  個結點。
             (1)某二叉樹有5個度為2的結點以及3個度為1的結點,則該二叉樹中共有  【1】  個結點。
             (2)程序流程圖中的菱形框表示的是  【2】  。
             (3)軟件開發過程主要分為需求分析、設計、編碼與測試四個階段,其中  【3】  階段產生“軟件需求規格說明書”。
            (4)在數據庫技術中,實體集之間的聯系可以是一對一或一對多或多對多的,那么“學生”和“可選課程”的聯系為  【4】  。
            (5)人員基本信息一般包括:身份證號,姓名,性別,年齡等。其中可以作為主關鍵字的是  【5】  。
            (6)若表達式(x+(y-z)*(m/n))+3中的變量均為double型,則表達式值的類型為 【6】 。
            (7)有如下循環語句:
            For(int i=50; i>20; i-=2)  cout<<i<<',';
            運行時循環體的執行次數是 【7】 。
            (8)利用表達式a[i]可以訪問int型數組a中下標為i的元素。在執行了語句int *p=a;后,利用指針p也可訪問該元素,相應的表達式是 【8】 。
            (9)下面是一個遞歸函數,其功能是使數組中的元素反序排列。請將函數補充完整。
            void reverse(int *a, int size){
            if(size<2) return;
            int k=a[0];
            a[0]=a[size-1];
            a[size-1]=k;
            reverse(a+1,  【9】 );
            }
             
            (10)類Sample的構造函數將形參data賦值給數據成員data。請將類定義補充完整。
            class Sample{
            public:
            Sample(int data=0);
            Private:
            Int data;
            };
            Sample::Sample(int data){
             【10】
            }
             
            (11)有如下類定義:
            class Sample{
            public:
            Sample();
            ~Sample();
            Private:
            Static int date;
            };
            將靜態數據成員data初始化為0的語句是 【11】 。
             
            (12)“圖形”類Shape中定義了純虛函數CalArea(),“三角形”類Triangle繼承了類Shape,請將Triangle類中的CalArea函數補充完整。
            class Shape{
            public:
            virtual int CalArea()=0;
            }
            class Triangle: public Shape{
            public:
            Triangle{int s, int h}: side(s),height(h) {}
             【12】 { return side*height/2 ; }
            private:
                int side;
                int height;
            };
             
            (13)有如下程序:
            #include <iostream>
            using namespace std;
            class GrandChild{
            public:
            GrandChild(){ strcpy (name,"Unknown"); }
            const char * getName()const { return name; }
            virtual char * getAddress()const=0;
            private:
            char name[20];
            };
            class GrandSon : public GrandChild{
            public:
            GrandSon{char *name} {}
            Char * getAddress() const { return "Shanghai";}
            };
            int main(){
            GrandChild *gs=new GrandSon("Feifei");
            cout<<gs->getName()<<"住在"<<gs->getAddress()<<endl;
            delete gs;
            return 0;
            }
            運行時的輸出結果是 【13】 。
            (14)如下程序定義了“單詞”類word,類中重載了<運算符,用于比較“單詞”的大小,返回相應的邏輯值。程序的輸出結果為:After Sorting: Happy Welcome,請將程序補充完整。
            #include <iostream>
            #include <string>
            using namespace std;
            class Word{
            public:
            Word(string s) : str(s) { }
            string getStr(){ return str; }
             【14】 const { return (str<w.str); }
            friend ostream& operator << (ostream& output, const Word &w)
            { output<<w.str; return output; }
            private:
            string str;
            };
            Int main(){
            Word w1("Happy"),w2("Welcome");
            Cout<<"After sorting: ";
            if(w1<w2) cout<<w1<<' '<<w2;
            else cout<<w2<<' '<<w1;
            return 0;
            }
             
            (15)請將下列模板類Data補充完整。
            template <typename T>
            class Data{
            public:
            void put (T v) { val=v; }
             【15】 get()   //返回數據成員val的值,返回類型不加轉換
            { return val; }
            private:
            T val;
            };
            參考答案
            選擇題  
            (1)C +(5)身份證號 (6)double (7)15 (8)*(p+i)
            (9)size-1  (10)this->data=data;
            (11)int Sample::data = 0;
            (12)int CalArea(size,height)
            (13)Unknown住在Shanghai
            (14)bool operator < (Word w)  (15)T

            【9月二級C++筆試】相關文章:

            2008年9月二級C++筆試08-07

            計算機二級C++語言筆試試卷及答案03-10

            計算機二級C++筆試選擇題08-13

            全國計算機等級考試二級C++筆試題02-06

            2010年9月全國計算機二級C++筆試05-31

            全國計算機等級考試二級C++筆試真題05-01

            計算機等級考試二級C++筆試選擇題06-27

            2010年3月計算機等級考試二級C++筆試03-06

            全國計算機二級考試C++筆試模擬題及答案04-16

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看