2016年計算機二級考試《C++》基礎(chǔ)練習(xí)題及答案

字號:


    1[填空題]運算符重載仍然保持其原來的優(yōu)先級、 和 。
    參考解析:結(jié)合性、語法結(jié)構(gòu)。
    解析:運算符重載不能改變操作數(shù)的個數(shù)、運算符的優(yōu)先級、運算符的結(jié)合性和運算符的語法結(jié)構(gòu)。
    2[單選題] 有以下程序:
    #include
    void fun(int a,int b,int C.
    { a=456,b=567,c=678;}
    void main()
    {
    int X=10,Y=20,Z=30;
    fun(X,Y,z);
    aout<
    }
    輸出結(jié)果是( )。
    A.30,20,10B.10,20,30C.456,567,678D.678,567,456
    參考答案:B
    參考解析:本題考查函數(shù)中變量的作用范圍,在主函數(shù)中給變餐x、Y、Z賦值,然后將其作為實參傳遞給了函數(shù)fun(),雖然在函數(shù)fun()中改變了這3個變量的值,但只是同名的局部變量,不影響函數(shù)中變量的值,所以在調(diào)用函數(shù)fun()結(jié)束后,主函數(shù)3個變量的值未改變。
    3[單選題] 若有定義語句“doublex,y,*px,*Py;執(zhí)行了px=&x;py=&y;”后,正確的輸入語句是(  )。
    A.scanf("%f%f",x,y);B.scanf("%f%f"&x,&y);C.scanf("%If%le",px,py);D.scanf("%lf%If"x,y);
    參考答案:C
    參考解析:此題主要考查輸入函數(shù)的字符格式,lf和le表示以帶小數(shù)點的數(shù)學(xué)形式或指數(shù)形式輸入浮點數(shù)。
    4[單選題] 繼承機制的作用是( )。
    A.信息隱藏B.數(shù)據(jù)封裝C.定義新類D.數(shù)據(jù)抽象
    參考答案:C
    參考解析:數(shù)據(jù)封裝就是數(shù)據(jù)抽象,即信息隱藏;而繼承是實現(xiàn)程序復(fù)用的基礎(chǔ)。
    5[單選題]若有如下類聲明
    class My Class {
    public:
    MyClass() {cout <<1;}
    };
    執(zhí)行下列語句
    MyClass a,b[2],*P[2];
    以后,程序的輸出結(jié)果是(  )。
    A.11 B.111 C.1111 D.11111
    參考答案:B
    6[單選題] 下列選項中正確的語句是(  )。
    A.chars[];s="BOOK!";B.char*s;S={"BOOK!");C.chars[10];s="BOOK";D.char*S;s="BOOK!";
    參考答案:D
    參考解析:在選項D中,字符指針s指向字符串常量BOOK!。故選項D正確。
    7[填空題] __________是一種特殊的成員函數(shù),它主要用來為對象分配內(nèi)存空間,對類的數(shù)據(jù)成員進行初始化并執(zhí)行對象的其他內(nèi)部管理操作。
    參考解析:構(gòu)造函數(shù)
    【解析】構(gòu)造函數(shù)的主要作用是對數(shù)據(jù)成員初始化,系統(tǒng)為成員分配內(nèi)存時,保留這些存儲單元的原狀。
    8[簡答題]使用VC++6.0打開考生文件夾下的源程序文件2.cpp。完成函數(shù)fun(char*sl,char*s2)的空出部分。函數(shù)fun(char*s1,char*s2)的功能是將在字符串s1中下標為偶數(shù)的字符,緊隨其后重復(fù)出現(xiàn)一次,放在一個新串s2中,s2中字符按原字符串中字符的順序排列。(注意0為偶數(shù))
    例如:當s1中的字符串為“abcdef”時,s2中的字符串應(yīng)為“aaccee”。
    注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
    試題程序:
    #include(iostream.h)
    voidfun(char*s1,char*s2)
    {
    }
    voidmain()
    {
    charsi[100】,s2【1OO];
    cout<<"Pleaseenterstringstrin9:"<
    cin.getline(s1,100);
    fun(s1,s2);
    cout<<"Theresultis:"<
    return;
    }
    參考解析:
    inti;
    for(i=0;s1[i]!=0;i++)//循環(huán)判斷每一個字符
    {
    if(i%2==0)//判斷字符串中下標為偶數(shù)位置
    {
    s2[i]=s1[3];
    s2[i+1]=s1[i];
    s2[i+2]='\0';//新串添加尾符
    }
    }
    【解析】判斷一個字符串中的某一個字符下標i是否為偶數(shù),可用“i%2==0”來判斷。對串s1中各個字符串逐個進行考查,滿足條件的字符就順序放在新串s2中,否則就不存放。所有字符處理完成后,記得在新串s2的末尾加上結(jié)束符“'\0'。
    9[簡答題]使用VC6打開考生文件夾下的源程序文件2.cpp。閱讀下列函數(shù)說明和代碼,補充空出的代碼。函數(shù)sum(intn)返回1,2,3,…,n的和。其中n大于0。
    程序要求使用遞歸實現(xiàn)上述功能。
    注意:不能修改程序的其他部分,只能補充sum函數(shù)。
    試題程序:
    #include
    #include
    intsum(intn)
    {
    }
    voidmain()
    {
    cout<<"1+2+3+…+100="<
    endl;
    return;
    }
    參考解析:return(n==1)?1:n+sum(n-1);
    【解析】本題主要考查三目運算符?:的使用和遞歸函數(shù)的編制。程序功能是計算前n個自然數(shù)的和,n為參數(shù)。程序的運算過程如下,不是一般性,假設(shè)n為3,首先執(zhí)行sum(3),因為3不等于1,所以return語句返回的值為3+sum(3-1),然后執(zhí)行sum(3-1)即sum(2),2不等于1,所以return語句返回的值為2+sum(2-1),然后執(zhí)行sum(2-1)即sum(1),因為1等于1,所以return語句返回的值為1,即問號后的值,所以最終結(jié)果為3+2+1=6,而題中n為100,所以結(jié)果為5050。
    10[填空題]下面程序的輸出結(jié)果是【9】。
    #include
    void main()
    {
    int a[6]={1,2,3,4,5,6};
    for(int i=0;i <5;i++)
    cout <<
    cout <
    }
    參考解析:12345
    11[單選題]下列關(guān)于條件語句的描述中,錯誤的是(  )。
    A.一條if語句中最多只能有一個else子句
    B.if語句的if體內(nèi)可以出現(xiàn)開關(guān)語句
    C.if語句中else if子句和else子句的順序是沒有限制的
    D.if語句中else子句是與它最近的if子句配對的
    參考答案:C
    12[單選題]下列描述中正確的是(  )
    A.軟件工程只是解決軟件項目的管理問題
    B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問題
    C.軟件工程的主要思想是強調(diào)在軟件開發(fā)過程中需要應(yīng)用工程化原則
    D.軟件工程只是解決軟件開發(fā)中的技術(shù)問題
    參考答案:C
    13[單選題]下列關(guān)于靜態(tài)成員的描述中,錯誤的是(  )。
    A.靜態(tài)成員都是使用static來說明的
    B.靜態(tài)成員是屬于類的,不是屬于某個對象的
    C.靜態(tài)成員只可以用類名加作用域運算符來引用,不可用對象引用
    D.靜態(tài)數(shù)據(jù)成員的初始化是在類體外進行的
    參考答案:C
    14[單選題] 下面關(guān)于c+十語言變量的敘述錯誤的是( )。
    A.c++語言中變量分為aut0、static、extem和register4種存儲類型
    B.自動變量和外部變量的作用域為整個程序
    C.內(nèi)部靜態(tài)變量的作用域是定義它的函數(shù)
    D.外部靜態(tài)變量的作用域是定義它的文件
    參考答案:B
    參考解析:自動變量是函數(shù)體或分程序內(nèi)定義的變量,它的作用域在所定義的函數(shù)體內(nèi)或分程序體內(nèi)。
    15[單選題] 下面關(guān)于運算符重載的描述錯誤的是( )。
    A.運算符重載不能改變操作數(shù)的個數(shù)、運算符的優(yōu)先級、運算符的結(jié)合性和運算符的語法結(jié)構(gòu)
    B.不是所有的運算符都可以進行重載
    C.運算符函數(shù)的調(diào)用必須使用關(guān)鍵字operat。
    D.在C+十語言中不可通過運算符重載創(chuàng)造出新的運算符
    參考答案:C
    參考解析:例如“::”運算符就不能被重載;通過重載可以創(chuàng)造新的運算方式,但是不能臆造新的運算符;定義的時候必須使用關(guān)鍵字0perator,而調(diào)用時可直接使用運算符。
    16[單選題]用樹形結(jié)構(gòu)來表示實體之間聯(lián)系的模型稱為(  )。
    A.關(guān)系模型B.層次模型C.網(wǎng)狀模型D.格式化模型
    參考答案:B
    參考解析:用樹形結(jié)構(gòu)來表示實體之間聯(lián)系的模型稱為層次模型。
    17[單選題]程序設(shè)計方法要求在程序設(shè)計過程中(  )。
    A.先編制出程序,經(jīng)調(diào)試使程序運行結(jié)果正確后再畫出程序的流程圖
    B.先編制出程序,經(jīng)調(diào)試使程序運行結(jié)果正確后再在程序中的適當位置處加注釋
    C.先畫出流程圖,再根據(jù)流程圖編制出程序,最后經(jīng)調(diào)試使程序運行結(jié)果正確后再在程序中的適當位置處加注釋
    D.以上三種說法都不對
    參考答案:D
    參考解析:在程序設(shè)計過程中,一個很重要的環(huán)節(jié)是首先確定實現(xiàn)各種功能的算法,并且用某種工具將它精確地表達出來。流程圖是其中的工具之一。因此,程序設(shè)計的過程應(yīng)是先畫出流程圖,然 后根據(jù)流程圖編制出程序。因此,選項A中的說法是錯誤的。 程序中的注釋是為了提高程序的可讀性。使程序易于理解、易于維護,注釋必須在編制程序的同時加 入。因此,選項B和C中的說法也都是錯誤的。
    18[單選題] 下列敘述中錯誤的是(  )。
    A.gets函數(shù)用于從終端讀入字符串
    B.getchar函數(shù)用于從磁盤文件讀入字符
    C.fputs函數(shù)用于把字符串輸出到文件
    D.fwrite函數(shù)用于以二進制形式輸出數(shù)據(jù)到文件
    參考答案:B
    參考解析:本題考查的是C語言中輸入、輸出函數(shù)的使用,9ets和getchar函數(shù)用于從標準輸入設(shè)備鍵盤讀入字符串和字符;fputs用于把字符串輸出到文件;fwrite用于以二進制形式輸出數(shù)據(jù)到文件。
    19[單選題] 下列關(guān)于數(shù)據(jù)庫設(shè)計的敘述中,正確的是( )。
    A.在需求分析階段建立數(shù)據(jù)字典
    B.在概念設(shè)計階段建立數(shù)據(jù)字典
    C.在邏輯設(shè)計階段建立數(shù)據(jù)字典
    D.在物理設(shè)計階段建立數(shù)據(jù)字典
    參考答案:A
    參考解析:數(shù)據(jù)字典是在需求分析階段建立,在數(shù)據(jù)庫設(shè)計過程中不斷修改、充實和完善的
    20[填空題]在面向?qū)ο蠓椒ㄖ?,一個對象請求另一對象為其服務(wù)的方式是通過發(fā)送_______實現(xiàn)。
    【答案】消息
    【解析】這是概念題,通過發(fā)送消息實現(xiàn)。