【考點(diǎn)分析】 本題考查對(duì)整數(shù)的篩選及數(shù)組排序。考查的知識(shí)點(diǎn)主要包括:C語(yǔ)言循環(huán)結(jié)構(gòu),邏輯表達(dá)式等。
【解題思路】 此題屬于2位數(shù)的篩選題。分析題干要求,本題要求實(shí)現(xiàn)jsVal()函數(shù)的功能,歸納可以得出2個(gè)問(wèn)題:問(wèn)題1如何根據(jù)判斷條件(數(shù)組a和b中相同下標(biāo)位置的數(shù)必須符合一個(gè)是偶數(shù),另一個(gè)是奇數(shù))篩選出滿足條件的數(shù),同時(shí)統(tǒng)計(jì)其個(gè)數(shù),問(wèn)題2如何將這些數(shù)按從小到大的書(shū)序排列。
通過(guò)問(wèn)題分析,得出解此題的思路為:先根據(jù)題目中的條件篩選出滿足條件的數(shù)并存入新的數(shù)組中,再對(duì)新數(shù)組進(jìn)行排序。對(duì)于問(wèn)題1通過(guò)if條件判斷語(yǔ)句和邏輯表達(dá)式可以實(shí)現(xiàn)。問(wèn)題2排序可以通過(guò)循環(huán)嵌套的起泡法實(shí)現(xiàn)。
【參考答案】
void jsVal()
{
int i,j; /*定義循環(huán)變量*/
int temp; /*用于存儲(chǔ)排序中的中間變量*/
for (i = 0;i <= MAX - 1;i++) /*循環(huán)查找符合條件的元素*/
if (((a[i] % 2 == 0) && (b[i] % 2 != 0)) || ((a[i] % 2 != 0) && (b[i] % 2 == 0))){ /*判斷數(shù)組a和b中相同下標(biāo)位置的數(shù)是否符合一個(gè)是偶數(shù),另一個(gè)是奇數(shù)*/
c[i] = (a[i]<<8) + b[i]; /*a[i]按二進(jìn)制左移8位再加上b[i]*/
cnt++; /*記錄c中個(gè)數(shù)*/
}
for (i = 0;i < MAX - 1;i++) /*將C中的元素按從小到大順序排列*/
for (j = 0;j < MAX - i - 1; j++)
if (c[j] > c[j+1]){
temp = c[j];
c[j] = c[j + 1];
c[j+1] = temp;
}
}
【易錯(cuò)提示】 分解4位數(shù)算法的使用, 對(duì)4位數(shù)篩選和排序時(shí)if結(jié)構(gòu)中的邏輯表達(dá)式。
相關(guān)推薦:
2014年計(jì)算機(jī)等級(jí)考試過(guò)關(guān)技巧
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |