計算機等級考試改革后,三級考試由A、B兩類(lèi)改為PC技術(shù)、數據庫技術(shù)、網(wǎng)絡(luò )技術(shù)、信息管理技術(shù)四類(lèi)。其后三類(lèi)的上機考試內容均為C語(yǔ)言程序設計。
三級上機不同于二級,它只有一道編程題,風(fēng)險更大。但只要能達到題目的要求,一般都能拿到3分。
參加過(guò)考試的人都應該知道一本書(shū)――南開(kāi)大學(xué)出版的《全國計算機等級考試?上機考試習題集》,這本書(shū)基本上包含了所有的上機考試題目類(lèi)型。這本書(shū)里一共有100道題,都很經(jīng)典。但也許有人會(huì )覺(jué)得太多了,沒(méi)時(shí)間看完所有的題目。下面我給大家介紹一個(gè)復習技巧。
簡(jiǎn)化問(wèn)題
每道試題的程序都很長(cháng),而且涉及的知識點(diǎn)很多。實(shí)際上,在考試時(shí)看完全部程序并沒(méi)有必要。每次只用把主要精力放在子程序的編制上,認真思考其“功能要求”。所以平時(shí)我們只用關(guān)注需要編制的子程序。
試題歸類(lèi)
要學(xué)會(huì )找出題目之間的規律,復習起來(lái)就會(huì )事半功倍。在一百道題目中,實(shí)際上只需要仔細分析其中的二十多道題就足夠了,其他的只用看一下就行。因為大部分的題目都是類(lèi)似的,總結出規律來(lái)之后,我們可以舉一反三。例如下面兩類(lèi)題目:
例1. (占題庫10%)已知在文件IN.DAT中存有100個(gè)產(chǎn)品銷(xiāo)售記錄,每個(gè)產(chǎn)品銷(xiāo)售記錄由產(chǎn)品代碼dm(字符型4位)、產(chǎn)品名稱(chēng)mc(字符型10位)、單價(jià)dj(整型)、數量sl(整型)、金額je(長(cháng)整型)幾部分組成。其中:金額=單價(jià)×數量可計算得出。函數ReadDat()的功能是讀取這100個(gè)銷(xiāo)售記錄并存入結構數組sell中。請編制函數SortDat(),其功能要求:按產(chǎn)品代碼從大到小進(jìn)行排列,若產(chǎn)品代碼相同,則按金額從大到小進(jìn)行排列,最終排列結果仍存入結構數組sell中,最后調用函數WriteDat()把結果輸出到文件OUT10.DAT中。
程序:void SortDat( )
{int I,J;
PRO xy;
for (I=0;I<100;I++)
{if (strcmp(sell[I].dm,sell[J].dm)<0)①
{ xy=sell[I];
sell[I]=sell[J];
sell[J]=xy; }
else if (strcmp(sell[I].dm,sell[J].dm)==0)②
if (sell[I].je
{ xy=sell[I];
sell[I]=sell[J];
sell[J]=xy;}
}
}
分析:這類(lèi)程序題目的關(guān)鍵部分在于①、②、③三句上。它們的作用就是給出調換記錄次序的條件。與其類(lèi)似的題目只是在功能要求上有所不同(例如把“從大到小”改為“從小到大”,把“產(chǎn)品代碼”換成“產(chǎn)品名稱(chēng)”等),所以我們只需要修改這三句。如果我們抽到的題目是“金額從小到大,如相同,則產(chǎn)品名稱(chēng)從大到小”,我們就將
?、俑臑椋篿f (sell[I].je>sell[J].je)
?、诟臑椋篹lse if (sell[I].je= =sell[J].je)
?、鄹臑椋篿f (strcmp(sell[I].mc,sell[J].mc)<0)
而對于將記錄次序進(jìn)行調換的程序xy=sell[I]、sell[I]=sell[J]、sell[J]=xy,我們只需要套用就行。
例2. (占題庫10%)函數ReadDat()的功能是實(shí)現從文件ENG.IN中讀取一篇英文文章,存入大字符串數組xx中;請編制函數encryptChar(),按給定的代替關(guān)系對數組xx中的所有字符進(jìn)行代替,仍存入數組xx的對應的位置上,最后調用函數WriteDat()把結果xx輸出到文件PS1.DAT中。
代替關(guān)系:f(p)=p*11 mod 256。其中p是數組xx中某一個(gè)字符的ASCII值,f(p)是計算后的新字符的ASCII值,如果計算后f (p)的值小于等于32或大于130,則該字符不變,否則將f(p)所對應的字符進(jìn)行代替。
程序:void encryptChar()
{ int I;
char *pf;
for (I=0;I
{ pf=xx[I];
while(*pf!=0)
{ if(*pf*11%256>130||*pf*11%256<=32)①
{ pf++;
continue;}
*pf=*pf*11%256;
pf++;
}
}
}
分析:這一類(lèi)題目較例1更為簡(jiǎn)單,其關(guān)鍵只有①一句,它是對條件“如果計算后f(p)的值小于等于32或大于130”的描述。上機考試中類(lèi)似的題目可能只對這個(gè)條件作少許變動(dòng)。例如:“如果原字符是大寫(xiě)字母或計算后f(p)的值小于等于32”,則只需把①改為:if ((*pf>=`A`&&&&*pf<=`Z`)||*pf*11%256<=32)
其他試題也可以按照上述方法進(jìn)行總結??偠灾?,對于三級上機考試,我們不僅要提高編程能力,還應該注意分析試題,尋找規律,用更少的時(shí)間和精力解決更多的問(wèn)題!
聯(lián)系客服