2016年9月計算機二級《C++》機考試題及答案
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)以下程序中循環體總的執行次數是
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)下列程序的輸出結果是
#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為零,則執行else語句。
(2)A
解析: 選項B)中a在運算前未賦初值,在C++語言裏變量在運算前必須賦初值;選項C)中的模運算符"%"兩側均應為整型數據;選項D)應改為y=(float)i。
(3)A
解析: 本題中第1個for循環執行5次後結束,第2個for循環執行5次。第2個for循環中第1次執行了6次,第2次執行了5次,第3次執行了4次,第4次執行了3次,第5次執行了2次,共20次。
(4)D
解析: 解答本題關鍵是要理解if後面的括號裏的是賦值語句而並非關係判斷,賦完值後x不等於零,C++語言裏非零都作真處理,所以輸出結果為"x=y+z",故答案為選項D),注意"="與"=="的`區別。
(5)A
解析: 本題裏有三個for循環,但要分清楚,第一個是單獨的給三個元素賦值,賦完值後三個a[0]=0,a[1]=1,a[2]=2;後面的兩個for是嵌套循環,對數組元素的賦值,但由於k=2,初值已定for裏的條件是小於k,所以不管怎麼處理都影響不到a[2],故答案為2。