當前位置:才華齋>計算機>計算機二級>

2015年計算機二級C語言測試題及答案

計算機二級 閱讀(1.38W)

基本輸入輸出及流程控制

2015年計算機二級C語言測試題及答案

1.

#include

main()

{ int a=1,b=3,c=5;

if (c==a+b)

printf("yesn");

else

printf("non");

}

執行結果為:no

詳見教材p89 選擇結構

詳見教材p91關係符號

詳見附錄D p378符號的優先順序

==表示判斷符號兩邊的值是否相等;=表示將符號右邊的值賦給左邊的變數

本題考點是選擇結構3種基本形式的第二種

選擇結構三種一般形式中的“語句”皆為複合語句,複合語句要用{ }括起來,只有當複合語句中只包括一條語句時可以省略{ },此題即如此,因此兩個printf操作沒有加{ }

若c==a+b成立,則執行printf("yesn");

否則(即c==a+b不成立),執行printf("non");

+的優先順序高於==,因此先算a+b,值為4, 表示式5==4不成立,因此執行printf("non");即輸出字串no

2.

#include

main()

{ int a=12, b= -34, c=56, min=0;

min=a;

if(min>b)

min=b;

if(min>c)

min=c;

printf("min=%d", min);

}

執行結果為: min=-34

詳見教材p89 選擇結構

本題考點是選擇結構3種基本形式的第一種

一共包含了兩個選擇結構(兩個if語句)

定義變數,並賦值 此時a=12, b= -34, c=56, min=0

將a中值拷貝,賦給min,覆蓋了min中的0,此時min中的值被更新為12。

若min>b成立,則執行min=b;

若min>c成立,則執行min=c;

輸出min中的值

12大於-34,第一個if語句的表示式成立,因此執行min=b; 執行後min中的值被更新為-34.

-34小於56,第二個if語句的表示式不成立,因此不執行min=c;

最後輸出min中的值,為-34.

3.

#include

main()

{ int x=2,y= -1,z=5;

if(x  if(y<0)

z=0;

else

z=z+1;

printf(“%dn”,z);

}

執行結果為:5

遇到選擇結構,首先要明確條件表示式成立時執行哪些操作。本題中,第一個if語句,其後的複合語句沒有大括號{ },說明覆合語句中只包含一條語句,進而省略了{ }。內層的'...是選擇結構的第二種基本形式,在結構上視為一條語句。因此內層的...作為第一個if語句的複合語句。

若表示式x  若y<0,則執行z=0;

否則(即y>=0),執行z=z+1;

輸出z

2>-1,表示式x  輸出z中的值為5

4.

#include

main()

{ float a,b,c,t;

a=3;

b=7;

c=1;

if(a>b)

{t=a;a=b;b=t;}

if(a>c)

{t=a;a=c;c=t;}

if(b>c)

{t=b;b=c;c=t;}

printf("%5.2f,%5.2f,%5.2f",a,b,c);

}

執行結果為:1.00,2.00,7.00

詳見教材p72資料的輸出形式

本題包含了3個if語句,每個if語句後的{ }都不可省略,因為每個{ }中都包含了多條語句

若表示式a>b成立,則執行{t=a;a=b;b=t;}

若表示式a>c成立,則執行{t=a;a=c;c=t;}

若表示式b>c成立,則執行{t=b;b=c;c=t;}

輸出a,b,c中的值,要求輸出的每個資料寬度為5個空格,小數部分保留2位,資料右對齊

3小於7,因此表示式a>b不成立,因此不執行{t=a;a=b;b=t;}

3大於1,因此表示式a>c成立,則執行{t=a;a=b;b=t;}。第一句,將a中的3拷貝,貼上到t中;第二句,將c中的1拷貝,貼上到a中,覆蓋掉先前的3;第三句。將t中的3拷貝到c中,覆蓋掉c中先前的1. 執行完複合語句後實現了a,c元素的值的互換,a為1,c為3,t為3,。

7大於c中的3,因此b>c成立,執行則執行{t=b;b=c;c=t;},過程同上,執行後b為3,c為7,t為7

此時輸出a,b,c中的值為1.00,2.00,7.00

5.

#include< stdio .h >

main ( )

{floatc=3.0 , d=4.0;

if ( c>d ) c=5.0;

else

if ( c==d ) c=6.0;

elsec=7.0;

printf ( “%.1fn”,c ) ;

}

執行結果為:7.0

此題為...語句的巢狀,第二...作為第一個...語句else部分的複合語句。

若表示式c>d成立,則執行c=5.0;

否則(表示式c>d不成立)

若表示式c==d成立,則執行c=6.0;

否則,執行c=7.0;

輸出c中的值

3.0小於4.0,因此表示式c>d不成立,執行第二個if…else…。

3.0不等於4.0,因此表示式c==d不成立,執行c=7.0,將7.0賦給c, 覆蓋掉c中的3.0,此時c中的值為7.0

輸出此時的c中的值

6.

#include

main()

{ int m;

scanf("%d", &m);

if (m >= 0)

{ if (m%2 == 0) printf("%d is a positive evenn", m);

else printf("%d is a positive oddn", m); }