【考點(diǎn)分析】 本題考查對(duì)多個(gè)整數(shù)的右移、統(tǒng)計(jì)以及求平均值?疾榈闹R(shí)點(diǎn)主要包括:位移算法,邏輯表達(dá)式,求平均值的算法。
【解題思路】 本題是數(shù)學(xué)類題。本題的解題思路是:首先利用一個(gè)for循環(huán)來(lái)依次從數(shù)組中取得各數(shù),由于題目要求數(shù)組中正整數(shù)的個(gè)數(shù),如果取得的數(shù)大于零,這時(shí)就給變量totNum(正整數(shù)的個(gè)數(shù))累加1,然后把該正整數(shù)右移一位后的結(jié)果臨時(shí)保存在變量data中,再判斷產(chǎn)生的新數(shù)是否是偶數(shù)。如果是,就給變量totCnt(符合判斷條件的正整數(shù)個(gè)數(shù))累加1,并把原數(shù)的值累加到變量totPjz中,當(dāng)所有符合判斷條件的數(shù)都被找出后,再對(duì)totPjz求平均值。
【參考答案】
void CalValue(void)
{ int i; /*定義循環(huán)控制變量*/
int data; /*用于保存處理后產(chǎn)生的新數(shù)*/
for(i=0;i<200;i++) /*逐個(gè)取數(shù)組xx中的數(shù)進(jìn)行統(tǒng)計(jì)*/
if(xx[i]>0) /*判斷是否正整數(shù)*/
{
totNum++; /*統(tǒng)計(jì)正整數(shù)的個(gè)數(shù)*/
data=xx[i]>>1; /*將數(shù)右移一位*/
if(data%2==0) /*如果產(chǎn)生的新數(shù)是偶數(shù)*/
{
totCnt++; /*統(tǒng)計(jì)這些數(shù)的個(gè)數(shù)*/
totPjz+=xx[i]; /*并將滿足條件的原數(shù)求和*/
}
}
totPjz/=totCnt; /*求滿足條件的這些數(shù)(右移前的值)的算術(shù)平均值*/
}
【易錯(cuò)提示】 位移運(yùn)算表達(dá)式的使用。
相關(guān)推薦:
2014年計(jì)算機(jī)等級(jí)考試過(guò)關(guān)技巧
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |