2016年計(jì)算機(jī)二級(jí)《C++》基礎(chǔ)選擇練習(xí)題及答案

字號(hào):

2[單選題] 有下列程序:
    #include
    intfun(intx,inyy)
    {if(x==y)return(x);
    elsereturn((x+y)/2);
    }
    voidmain(  )
    {inta=4,b=5,c=6;
    printf("%d\n",fun(2*a,fun(b,c)));
    }
    程序運(yùn)行后的輸出結(jié)果是(  )。
    A.3B.6C.8D.12
    參考答案:B
    參考解析:在程序中子函數(shù)fun(intX,inty)的功能是如果X的值等于y的值,則返回X的值,否則返回這兩個(gè)數(shù)的算術(shù)平均值,在主函數(shù)中首先計(jì)算fun(5,6),其值等于5,然后再計(jì)算fun(8,5),其值等于6。所以正確答案為選項(xiàng)B。
    3[單選題]下列選項(xiàng)中,作為是數(shù)據(jù)庫系統(tǒng)的核心的是(  )。
    A.數(shù)據(jù)庫B.數(shù)據(jù)模型C.軟件工具D.數(shù)據(jù)庫管理系統(tǒng)
    參考答案:D
    參考解析:數(shù)據(jù)庫管理系統(tǒng)DBMS是數(shù)據(jù)庫系統(tǒng)的核心。DBMS是負(fù)責(zé)數(shù)據(jù)庫的建立、使用和維護(hù)的軟件。DBMS建立在操作系統(tǒng)之上,實(shí)施對(duì)數(shù)據(jù)庫的統(tǒng)一管理和控制。
    4[單選題] 下列程序的輸出結(jié)果是(  )。#include
    voidmain()
    (char*str="12123434";
    intx1=0,x2=0,x3=0,x4=0,i;
    for(i=0;str[i]!='\0';i++)
    switch(str[i])
    {case'1':x4++;
    case'2':x3++;
    case'3':x2++;
    case'4':x1++;
    }
    cout<
    <","<
    }
    A.8,6,4,1B.8,6,3,2C.8,8,4,1D.8,6.4,2
    參考答案:D
    參考解析:本題考查循環(huán)的嵌套、for和switch語句的應(yīng)用、C++中各種條件判斷,循環(huán)語句的用法。只要注意在C++語言中,系統(tǒng)在字符指針的最后位置會(huì)增加一個(gè)字符串結(jié)束符'\0',執(zhí)行8次for循環(huán),再根據(jù)switch語句中的條件易知答案。
    7[單選題]對(duì)長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是( )。
    A.快速排序B.冒泡排序C.直接插入排序D.堆排序
    參考答案:D
    8[單選題] 下列運(yùn)算符函數(shù)中肯定不屬于類FunNumber的成員函數(shù)的是(  )。
    A.int operator一(FunNumber);
    B.FunNumber operator一();
    C.FunNumber operator一(int);
    D.int operator一(FunNumber,F(xiàn)unNumber);
    參考答案:D
    參考解析:本題考查運(yùn)算符重載的一些規(guī)則:①一般情況下,單目運(yùn)算符重載為類的成員函數(shù),雙目運(yùn)算符則重載為類的友元函數(shù);②雙目運(yùn)算符=、()、[]、->不能重載為類的友元函數(shù);③類型轉(zhuǎn)換函數(shù)只能定義為一個(gè)類的成員函數(shù),而不能定義為類的友元函數(shù);④若一個(gè)運(yùn)算符的操作需要修改對(duì)象的狀態(tài),選擇重載為成員函數(shù)較好;⑤若運(yùn)算符所需的操作數(shù)(尤其是第一個(gè)操作數(shù))希望有隱式類型轉(zhuǎn)換,則只能選用友元函數(shù);⑥當(dāng)運(yùn)算符函數(shù)是一個(gè)成員函數(shù)時(shí),最左邊的操作數(shù)(或者只有最左邊的操作數(shù))必須是運(yùn)算符類的一個(gè)類對(duì)象(或者是對(duì)該類對(duì)象的引用);如果左邊的操作數(shù)必須是一個(gè)不同類的對(duì)象,或者是一個(gè)內(nèi)部類型的對(duì)象,該運(yùn)算符函數(shù)必須作為一個(gè)友元函數(shù)來實(shí)現(xiàn)。所以答案為D。
    9[單選題]下列數(shù)據(jù)結(jié)構(gòu)中,插入時(shí)不需要移動(dòng)其他元素的是(  )。
    A.有序線性鏈表B.無序線性鏈表C.棧和隊(duì)列D.以上三種都是
    參考答案:D
    參考解析:在線性鏈表中插入或刪除元素都不需要移動(dòng)其他元素,只需改變指針即可;棧只能在一端插入或刪除元素,也不需要移動(dòng)其他元素;隊(duì)列只能在一端插人元素.在另一端刪除元素,也不需 要移動(dòng)其他元素。
    10[單選題]有如下程序:
    #include
    #include
    using namespace std;
    int main(){
    cout << setfill('*')<
    return 0;
    }
    運(yùn)行輸出結(jié)果是( )。
    A.***123***456B.***123456***C.***123456D.123456
    參考答案:C
    參考解析:在主函數(shù)中第一次輸出時(shí)調(diào)用函數(shù)setfill('*')設(shè)置填充字符為‘*’,調(diào)用函數(shù) setw(6)設(shè)置每次輸出的寬度為6,所以第一次輸出123時(shí),多余的三個(gè)空位用‘*’填充,即結(jié)果為***123,第二次從輸出流中輸出456。