2016年9月計算機二級C++備考練習(xí)題及答案(4)

字號:


    1)有以下程序
    #include
    void main()
    { int a=5,b=0,c=0;
    if(a=b+c)cout << "***"<< ?$$$?<下列選項敘述正確的是<>
    A)有語法錯不能通過編譯
    B)可以通過編譯但不能通過連接
    C)輸出***
    D)輸出$$$
    (2)已知各變量的定義如下
    int i=8,k,a,b;
    unsigned long w=5;
    double x=1.42,y=5.2;
    則以下符合C++語言語法的表達式是
    A)a+=a-=(b=4)*(a=3)
    B)a=a*3+2
    C)x%(-3)
    D)y=float i
    (3)以下程序中循環(huán)體總的執(zhí)行次數(shù)是
    int i,j;
    for(i=6;i>1;i--)
    for(j=0;j{……}
    A)20
    B)261
    C)15
    D)25
    (4)對于下面的程序,說法正確的是
    #include
    void main()
    { int x=3,y=4,z=2;
    if(x=y+z)cout << "x=y+z";
    else cout << "x!=y+z";}
    A)不能通過編譯
    B)輸出6
    C)輸出x!=y+z
    D)輸出x=y+z
    (5)下列程序的輸出結(jié)果是
    #include
    void main()
    { int a[3],i,j,k=2;
    for(i=0;i<3;i++)a[i]=i;
    for(i=0;ifor(j=0;ja[j]=a[i];
    cout << a[2];}
    A)2
    B)3
    C)1
    D)0
    參考答案:
    (1)D
    解析: 解答本題時,先判斷if語句,因為a=b+c為零,則執(zhí)行else語句。
    (2)A
    解析: 選項B)中a在運算前未賦初值,在C++語言里變量在運算前必須賦初值;選項C)中的模運算符"%"兩側(cè)均應(yīng)為整型數(shù)據(jù);選項D)應(yīng)改為y=(float)i。
    (3)A
    解析: 本題中第1個for循環(huán)執(zhí)行5次后結(jié)束,第2個for循環(huán)執(zhí)行5次。第2個for循環(huán)中第1次執(zhí)行了6次,第2次執(zhí)行了5次,第3次執(zhí)行了4次,第4次執(zhí)行了3次,第5次執(zhí)行了2次,共20次。
    (4)D
    解析: 解答本題關(guān)鍵是要理解if后面的括號里的是賦值語句而并非關(guān)系判斷,賦完值后x不等于零,C++語言里非零都作真處理,所以輸出結(jié)果為"x=y+z",故答案為選項D),注意"="與"=="的區(qū)別。
    (5)A
    解析: 本題里有三個for循環(huán),但要分清楚,第一個是單獨的給三個元素賦值,賦完值后三個a[0]=0,a[1]=1,a[2]=2;后面的兩個for是嵌套循環(huán),對數(shù)組元素的賦值,但由于k=2,初值已定for里的條件是小于k,所以不管怎么處理都影響不到a[2],故答案為2。