首頁 - 網(wǎng)校 - 題庫 - 直播 - 雄鷹 - 團(tuán)購 - 書城 - ? - 學(xué)習(xí)通 - 導(dǎo)航 - 510 -
首頁考試吧網(wǎng)校題庫直播雄鷹510團(tuán)購書城?論壇實(shí)用文檔作文大全寶寶起名
2015中考
法律碩士
2015高考
MBA考試
2015考研
MPA考試
在職研
中科院
考研培訓(xùn)
專升本
自學(xué)考試 成人高考
四 六 級
GRE考試
攻碩英語
零起點(diǎn)日語
職稱英語
口譯筆譯
申碩英語
零起點(diǎn)韓語
商務(wù)英語
日語等級
GMAT考試
公共英語
職稱日語
新概念英語
專四專八
博思考試
零起點(diǎn)英語
托福考試
托業(yè)考試
零起點(diǎn)法語
雅思考試
成人英語三級
零起點(diǎn)德語
等級考試
華為認(rèn)證
水平考試
Java認(rèn)證
職稱計(jì)算機(jī) 微軟認(rèn)證 思科認(rèn)證 Oracle認(rèn)證 Linux認(rèn)證
公 務(wù) 員
導(dǎo)游考試
物 流 師
出版資格
單 證 員
報 關(guān) 員
外 銷 員
價格鑒證
網(wǎng)絡(luò)編輯
駕 駛 員
報檢員
法律顧問
管理咨詢
企業(yè)培訓(xùn)
社會工作者
銀行從業(yè)
教師資格
營養(yǎng)師
保險從業(yè)
普 通 話
證券從業(yè)
跟 單 員
秘書資格
電子商務(wù)
期貨考試
國際商務(wù)
心理咨詢
營 銷 師
司法考試
國際貨運(yùn)代理人
人力資源管理師
廣告師職業(yè)水平
衛(wèi)生資格 執(zhí)業(yè)醫(yī)師 執(zhí)業(yè)藥師 執(zhí)業(yè)護(hù)士
會計(jì)從業(yè)資格
基金從業(yè)資格
統(tǒng)計(jì)從業(yè)資格
經(jīng)濟(jì)師
精算師
統(tǒng)計(jì)師
會計(jì)職稱
法律顧問
ACCA考試
注冊會計(jì)師
資產(chǎn)評估師
高級經(jīng)濟(jì)師
審計(jì)師考試
高級會計(jì)師
注冊稅務(wù)師
國際內(nèi)審師
理財(cái)規(guī)劃師
美國注冊會計(jì)師
一級建造師
安全工程師
設(shè)備監(jiān)理師
公路監(jiān)理師
公路造價師
二級建造師
招標(biāo)師考試
物業(yè)管理師
電氣工程師
建筑師考試
造價工程師
注冊測繪師
質(zhì)量工程師
巖土工程師
注冊給排水
造價員考試
注冊計(jì)量師
環(huán)保工程師
化工工程師
暖通工程師
咨詢工程師
結(jié)構(gòu)工程師
城市規(guī)劃師
材料員考試
消防工程師
監(jiān)理工程師
房地產(chǎn)估價
土地估價師
安全評價師
房地產(chǎn)經(jīng)紀(jì)人
投資項(xiàng)目管理師
環(huán)境影響評價師
土地登記代理人
寶寶起名
繽紛校園
實(shí)用文檔
入黨申請
英語學(xué)習(xí)
思想?yún)R報
作文大全
工作總結(jié)
求職招聘 論文下載 直播課堂
您現(xiàn)在的位置: 考試吧 > 計(jì)算機(jī)等級考試 > 計(jì)算機(jī)二級考試 > C語言 > 模擬試題 > 正文

2015年計(jì)算機(jī)二級C語言測試題及答案解析(2)

考試吧整理了“2015年計(jì)算機(jī)二級C語言測試題及答案解析”,提供給各位考生備考,更多考試資料請持續(xù)關(guān)注考試吧計(jì)算機(jī)等級考試頻道!

  點(diǎn)擊查看:2015年計(jì)算機(jī)二級C語言測試題及答案解析匯總

  基本輸入輸出及流程控制

  1.

  #include

  main()

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

  if (c==a+b)

  printf("yes\n");

  else

  printf("no\n");

  }

  運(yùn)行結(jié)果為:no

  詳見教材p89 選擇結(jié)構(gòu)

  詳見教材p91關(guān)系符號

  詳見附錄D p378符號的優(yōu)先級

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

  本題考點(diǎn)是選擇結(jié)構(gòu)3種基本形式的第二種

  選擇結(jié)構(gòu)三種一般形式中的“語句”皆為復(fù)合語句,復(fù)合語句要用{ }括起來,只有當(dāng)復(fù)合語句中只包括一條語句時可以省略{ },此題即如此,因此兩個printf操作沒有加{ }

  若c==a+b成立,則執(zhí)行printf("yes\n");

  否則(即c==a+b不成立),執(zhí)行printf("no\n");

  +的優(yōu)先級高于==,因此先算a+b,值為4, 表達(dá)式5==4不成立,因此執(zhí)行printf("no\n");即輸出字符串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);

  }

  運(yùn)行結(jié)果為: min=-34

  詳見教材p89 選擇結(jié)構(gòu)

  本題考點(diǎn)是選擇結(jié)構(gòu)3種基本形式的第一種

  一共包含了兩個選擇結(jié)構(gòu)(兩個if語句)

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

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

  若min>b成立,則執(zhí)行min=b;

  若min>c成立,則執(zhí)行min=c;

  輸出min中的值

  12大于-34,第一個if語句的表達(dá)式成立,因此執(zhí)行min=b; 執(zhí)行后min中的值被更新為-34.

  -34小于56,第二個if語句的表達(dá)式不成立,因此不執(zhí)行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(“%d\n”,z);

  }

  運(yùn)行結(jié)果為:5

  遇到選擇結(jié)構(gòu),首先要明確條件表達(dá)式成立時執(zhí)行哪些操作。本題中,第一個if語句,其后的復(fù)合語句沒有大括號{ },說明復(fù)合語句中只包含一條語句,進(jìn)而省略了{(lán) }。內(nèi)層的if...else...是選擇結(jié)構(gòu)的第二種基本形式,在結(jié)構(gòu)上視為一條語句。因此內(nèi)層的if...else...作為第一個if語句的復(fù)合語句。

  若表達(dá)式x  若y<0,則執(zhí)行z=0;

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

  輸出z

  2>-1,表達(dá)式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);

  }

  運(yùn)行結(jié)果為:1.00,2.00,7.00

  詳見教材p72數(shù)據(jù)的輸出形式

  本題包含了3個if語句,每個if語句后的{ }都不可省略,因?yàn)槊總{ }中都包含了多條語句

  若表達(dá)式a>b成立,則執(zhí)行{t=a;a=b;b=t;}

  若表達(dá)式a>c成立,則執(zhí)行{t=a;a=c;c=t;}

  若表達(dá)式b>c成立,則執(zhí)行{t=b;b=c;c=t;}

  輸出a,b,c中的值,要求輸出的每個數(shù)據(jù)寬度為5個空格,小數(shù)部分保留2位,數(shù)據(jù)右對齊

  3小于7,因此表達(dá)式a>b不成立,因此不執(zhí)行{t=a;a=b;b=t;}

  3大于1,因此表達(dá)式a>c成立,則執(zhí)行{t=a;a=b;b=t;}。第一句,將a中的3拷貝,粘貼到t中;第二句,將c中的1拷貝,粘貼到a中,覆蓋掉先前的3;第三句。將t中的3拷貝到c中,覆蓋掉c中先前的1. 執(zhí)行完復(fù)合語句后實(shí)現(xiàn)了a,c元素的值的互換,a為1,c為3,t為3,。

  7大于c中的3,因此b>c成立,執(zhí)行則執(zhí)行{t=b;b=c;c=t;},過程同上,執(zhí)行后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 ( “%.1f\n”,c ) ;

  }

  運(yùn)行結(jié)果為:7.0

  此題為if...else...語句的嵌套,第二if...else...作為第一個if...else...語句else部分的復(fù)合語句。

  若表達(dá)式c>d成立,則執(zhí)行c=5.0;

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

  若表達(dá)式c==d成立,則執(zhí)行c=6.0;

  否則,執(zhí)行c=7.0;

  輸出c中的值

  3.0小于4.0,因此表達(dá)式c>d不成立,執(zhí)行第二個if…else…。

  3.0不等于4.0,因此表達(dá)式c==d不成立,執(zhí)行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 even\n", m);

  else printf("%d is a positive odd\n", m); }

  else

  { if (m % 2 == 0)printf("%d is a negative even\n", m);

  else printf("%d is a negative odd\n", m); }

  }

  若鍵入-9,則運(yùn)行結(jié)果為: -9 is a negative odd

  7.

  #include

  main()

  { int num=0;

  while(num<=2){ num++;printf("%d\n",num);}

  }

  運(yùn)行結(jié)果為:

  1

  2

  3

  詳見教材p115循環(huán)結(jié)構(gòu)

  當(dāng)循環(huán)條件num<=2成立的時候,執(zhí)行循環(huán)體{ num++;printf("%d\n",num);}中的語句。

  循環(huán)初值num為0;

  循環(huán)條件num<=2成立

  第1次循環(huán):執(zhí)行num++;即將num中的值加1,執(zhí)行后num為1;

  執(zhí)行printf("%d\n",num);在屏幕上輸出num中的值,即輸出1,之后換行

  此時num中的值為1,循環(huán)條件num<=2成立

  第2此循環(huán):執(zhí)行num++;即將num中的值加1,執(zhí)行后num為2;

  執(zhí)行printf("%d\n",num);在屏幕上輸出num中的值,即輸出2,之后換行

  此時num中的值為2,循環(huán)條件num<=2成立

  第3此循環(huán):執(zhí)行num++;即將num中的值加1,執(zhí)行后num為3;

  執(zhí)行printf("%d\n",num);在屏幕上輸出num中的值,即輸出3,之后換行

  此時num中的值為3,循環(huán)條件num<=2不成立,結(jié)束循環(huán)。

  8.

  #include

  main( )

  { int sum=10,n=1;

  while(n<3) {sum=sum-n;n++; }

  printf(“%d,%d”,n,sum);

  }

  運(yùn)行結(jié)果為:3,7

  當(dāng)循環(huán)條件n<3成立的時候,執(zhí)行循環(huán)體{sum=sum-n;n++; }中的語句。

  循環(huán)初值sum為10,n為1;

  循環(huán)條件n<3成立

  第1次循環(huán):執(zhí)行sum=sum-n=10-1=9;

  執(zhí)行n++,即將n中的值加1,執(zhí)行后n為2;

  此時n中的值為2,sum中的值為9,循環(huán)條件n<3成立,繼續(xù)執(zhí)行循環(huán)

  第2次循環(huán):執(zhí)行sum=sum-n=9-2=7;

  執(zhí)行n++,即將n中的值加1,執(zhí)行后n為3;

  輸出此時n,sum中的值,即為3,7。需要注意,在printf(“%d,%d”,n,sum); 中要求輸出的數(shù)據(jù)彼此間用逗號間隔,因此結(jié)果的兩個數(shù)據(jù)間一定要有逗號

  9.

  #include

  main()

  { int num,c;

  scanf("%d",&num);

  do{c=num%10;printf("%d",c);}while((num/=10)>0);

  printf("\n");

  }

  從鍵盤輸入23,則運(yùn)行結(jié)果為:32

  詳見教材p117循環(huán)結(jié)構(gòu);p60復(fù)合的賦值運(yùn)算符

  do{ }while(表達(dá)式);

  先無條件執(zhí)行循環(huán)體,再判斷循環(huán)條件。注意while(表達(dá)式)后有分號

  定義整型變量num,c;

  為num賦一個整型值;

  執(zhí)行{c=num%10;printf("%d",c);}直到循環(huán)條件(num/=10)>0不成立;

  輸出換行

  已知為num賦值23

  第1次執(zhí)行循環(huán)體

  執(zhí)行c=num%10=23%10=3;

  執(zhí)行printf("%d",c);輸出3

  判斷循環(huán)條件 num/=10等價于num=num/10; 因此num=23/10=2, 2大于0,因此循環(huán)條件(num/=10)>0成立,繼續(xù)執(zhí)行循環(huán)體。執(zhí)行完第1次循環(huán)時,num為2,c為3

  第2次執(zhí)行循環(huán)體

  執(zhí)行c=2%10=2;

  執(zhí)行printf("%d",c);再輸出2

  判斷循環(huán)條件num=2/10=0,0等于0,因此循環(huán)條件(num/=10)>0不成立。結(jié)束循環(huán)

  10

  #include

  main()

  { int s=0,a=5,n;

  scanf("%d",&n);

  do { s+=1;a=a-2; }while(a!=n);

  printf("%d,%d\n",s,a);

  }

  若輸入的值1,運(yùn)行結(jié)果為: 2,1

  詳見教材p117循環(huán)結(jié)構(gòu);p60復(fù)合的賦值運(yùn)算符

  執(zhí)行{ s+=1;a=a-2; }直到循環(huán)條件a!=n不成立;

  已知為n賦值1,s為0,a為5

  第1次執(zhí)行循環(huán)體

  執(zhí)行s+=1;等價于s=s+1=0+1

  執(zhí)行a=a-2; a=5-2=3

  判斷循環(huán)條件,3不等于1,因此循環(huán)條件a!=n成立,繼續(xù)執(zhí)行循環(huán)體。

  執(zhí)行完第1次循環(huán)時,s為1,a為3

  第2次執(zhí)行循環(huán)體

  執(zhí)行s+=1;等價于s=s+1=1+1=2

  執(zhí)行a=a-2; a=3-2=1

  判斷循環(huán)條件,1等于1,因此循環(huán)條件a!=n不成立,結(jié)束循環(huán)。

  執(zhí)行完第2次循環(huán)時,s為2,a為1

  輸出此時s,a中的值,結(jié)果為2,1

  相關(guān)推薦:

  各地2015上半年計(jì)算機(jī)等級考試報名時間匯總

  考試吧特別策劃:2015年計(jì)算機(jī)等級考試報考指南

  2015年全國計(jì)算機(jī)等級考試無紙化考試系統(tǒng)操作指南

文章搜索
版權(quán)聲明:如果計(jì)算機(jī)等級考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系800@exam8.com,我們將會及時處理。如轉(zhuǎn)載本計(jì)算機(jī)等級考試網(wǎng)內(nèi)容,請注明出處。
Copyright © 2004- 考試吧計(jì)算機(jī)等級考試網(wǎng) All Rights Reserved 
中國科學(xué)院研究生院權(quán)威支持(北京) 電 話:010-62168566 傳 真:010-62192699