2. 改錯(cuò)題
下列給定的程序中,函數(shù)fun()的功能是:計(jì)算并輸出k以內(nèi)最大的6個(gè)能被7或11整除的自然數(shù)之和。K的值由主函數(shù)傳入,若k的值為500,則函數(shù)的值為2925。
請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include
#include
int fun(int k)
{
int m=0,mc=0, j;
/**********************found***********************/
while(k>=2)&&(mc<6)
{
/**********************found***********************/
if((k%7=0)||(k%11=0))
{
/**********************found***********************/
m=k;
mc++;
}
k--;
}
return m;
}
main()
{
clrscr();
printf("%d\n ",fun(500));
}
答案及評(píng)析:
(1)錯(cuò)誤:while(k>=2)&&(mc<6)
正確:while((k>=2)&&(mc<6))
(2)錯(cuò)誤:if((k%7=0)||(k%11=0))
正確:if((k%7==0)||(k%11= =0))
(3)錯(cuò)誤:m=k;
正確:m=m+k;
【解析】錯(cuò)誤1:C語(yǔ)言規(guī)定while語(yǔ)句后的表達(dá)式兩側(cè)必須要有圓括號(hào)。
錯(cuò)誤2:if語(yǔ)句的判斷條件應(yīng)用關(guān)系運(yùn)算符,而不是賦值運(yùn)算符。
錯(cuò)誤3:根據(jù)題意,將滿足條件的數(shù)求累加和。
相關(guān)鏈接:2011計(jì)算機(jī)等級(jí)二級(jí)C語(yǔ)言模擬試題及答案匯總
計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言歷年真題匯總(2005-2010)
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |