2016年計算機二級考試C++試題練習及答案

字號:

1[單選題] 若變量已正確定義,有下列程序段
    inta=3,b=5,c=7;
    if(a>b)a=b;c=a;
    if(C!=a)C=b;
    printf(”%d,%d,%d\n”,a,b,c);
    其輸出的結(jié)果是(  )。
    A.程序段有語法錯B.3,5,3C.3,5,5D.3,5,7
    參考答案:B
    參考解析:如果if判斷條件成立時就執(zhí)行其后的相關(guān)語句,否則不執(zhí)行,第一個if條件a>b不成立,故不執(zhí)行“a=b”,接著執(zhí)行“c=a”,把a的值賦給c后,此時第二個if條件不成立,故不執(zhí)行其后語句,最終點c的值為3。
    2[單選題] 與語句cout<
    A.cout <<’\n’;B.cout<<‘\l2’:C.cout <<’\xA’;D.cout<<‘\0’:
    參考答案:D
    參考解析:題干表示的是回車換行,選項A、B、c都表示回車換行,而選項D是字符串的結(jié)尾標志。
    3[單選題]類O定義了私有函數(shù)F1。P和Q為O的派生類,定義為class P: protected O{…};class Q: public O{…}。(  )可以訪問Fl。
    A.O的對象 B.P類內(nèi) C.O類內(nèi) D.Q類內(nèi)
    參考答案:C
    4[單選題]以下程序的輸出結(jié)果是
    #include(iostream. h>
    void reverse(int a[],int n)
    { int i,t;
    for(i=0;;
    {t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}
    }
    void main()
    { int b[10]={1,2,3,4,5,6,7,8,9,10};int i,s=0;
    reverse(b,8);
    for(i=6;i <10;i++)s+=b[i];
    cout <
    }
    A.22 B.10 C.34 D.30
    參考答案:A
    5[單選題]列選項,不正確的是
    A.for(int a=1;a<=10;a++); B.int a=1;
    do
    {
    a++;
    }while(a<=10) C.int a=1:
    while(a<=10)
    {
    a++;
    } l D.for(int a=1;a<=10;a++)a++;
    參考答案:B
    7[單選題]有如下程序:
    #include
    using namespace std;
    class AA{
    int n;
    public:
    AA(int k):n(k){ }
    int get( ){ return n;}
    int get( )const{ return n+1;}
    };
    int main( )
    {
    AA a(5);
    const AA b(6);
    cout <
    }
    執(zhí)行后的輸出結(jié)果是(  )
    A.55 B.57 C.75 D.77
    參考答案:B
    8[單選題] 決定c++語言中函數(shù)的返回值類型的是( )。
    A.return語句中的表達式類型
    B.調(diào)用該函數(shù)時系統(tǒng)隨機產(chǎn)生的類型
    C.調(diào)用該函數(shù)時的主調(diào)用函數(shù)類型
    D.在定義該函數(shù)時所指定的數(shù)據(jù)類型
    參考答案:D
    參考解析:c++語言中,在定義該函數(shù)時所指定的數(shù)據(jù)類瓔決定函數(shù)的返回值類型。
    9[單選題] C++中的模板包括(  )。
    A.對象模板和函數(shù)模板
    B.對象模板和類模板
    C.函數(shù)模板和類模板
    D.變量模板和對象模板
    參考答案:C
    10[簡答題]使用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'。