二級(jí)C語(yǔ)言筆試只有選擇題和填空題兩種題型。這兩種題型的解題方法有所不同,考生在備考時(shí)要深化對(duì)基本概念和知識(shí)點(diǎn)的理解,并注重實(shí)踐,同時(shí)要作一些針對(duì)性的練習(xí),特別是歷年真題,從中找出規(guī)律性的東西以及解題技巧。
一、選擇題
這種類型的題,要求考生從四個(gè)待選答案中選擇一個(gè)正確答案??忌删C合運(yùn)用直選法,排除法等多種方法。但是這類題目考的知識(shí)點(diǎn)往往都比較多且細(xì),容易出錯(cuò),考生在做這類題時(shí),切忌不加分析,一看就選,從而漏掉正確的答案。如2003年9月筆試第49題:
有以下程序
mai( )
{ int a[3][3],p,i;
p=&&a[0][0];
for (i=0;i<9;i++) p[i]=i+1;
printf("%d ",a[1][2]);
}
程序運(yùn)行后的輸出結(jié)果是
(A)3 (B)6 (C)9 (D)2
此題主要考的知識(shí)點(diǎn)有:(1)數(shù)組與指針的關(guān)系;(2)數(shù)組的初始化和數(shù)組元素的引用。在C語(yǔ)言中,數(shù)組與指針有著非常密切的聯(lián)系。任何能用數(shù)組下標(biāo)完成的操作也都可以用指針來(lái)實(shí)現(xiàn)。語(yǔ)句“p=&&a[0][0];”使p指向數(shù)組中的第0號(hào)元素,即a[0][0],指針變量p中存放了數(shù)組元素a[0][0]的地址,由于數(shù)組元素在內(nèi)存中是連續(xù)存儲(chǔ)的,因此,我們就可以通過(guò)指針變量p訪問(wèn)數(shù)組中的任何一個(gè)元素。本題中通過(guò)“for (i=0;i<9;i++) p[i]=i+1;”語(yǔ)句使a[3][3]={1,2,3,4,5,6,7,8,9},所以a[1][2]=6。這里要特別注意C語(yǔ)言中數(shù)組的下標(biāo)從0開始,不要錯(cuò)選a[1][2]=3。
二、填空題
填空題主要考查考生對(duì)基礎(chǔ)知識(shí)的準(zhǔn)確理解。對(duì)于這類型的題,考生應(yīng)深刻理解題意,明確題目要求,運(yùn)用相關(guān)知識(shí)做出正確回答。在歷年考試中,考生這部分試題的得分直接決定考試成績(jī)。由于這部分共20個(gè)空,計(jì)40分,有的考生能得35~40分,而有的考生卻得不到10分,直接拉開了最后成績(jī)。在判卷過(guò)程中發(fā)現(xiàn)考生常犯的錯(cuò)誤有以下幾個(gè)方面:
1.基礎(chǔ)知識(shí)掌握不扎實(shí),概念理解不準(zhǔn)確。
如2003年9月填空第8題:
main( )
{int a=1,b=3,c=5;
if (c=a+b) printf ("yes ");
else printf("no");
}
題目問(wèn)程序運(yùn)行后的輸出結(jié)果,答案應(yīng)是yes。因?yàn)椤癷f (c=a+b) printf ("yes ");”中的條件“c=a+b”是一個(gè)賦值語(yǔ)句,c的值為a+b=1+3=4,所以條件為真。而許多考生卻把賦值語(yǔ)句“c=a+b”理解為關(guān)系表達(dá)式“c==a+b”即5=1+3為邏輯假,故答no。
2.答案表述不準(zhǔn)確,會(huì)做的題卻不得分或少得分。
如第12題:
main( )
{int i,n[ ]={0,0,0,0,0};
for(i=1;i<=4;i++)
{n[i]=n[i-1]2+1;
printf("%d ",n[i]);
}
}問(wèn)程序運(yùn)行后的輸出結(jié)果是____。答案是“1 3 7 15”許多考生雖然寫對(duì)了但卻在每個(gè)數(shù)字后加了標(biāo)點(diǎn)而不得分如“1,3,7,15”或“1. 3. 7. 15”。
又如第19題:
以下程序的功能是將字符串s中的數(shù)字字符放入d數(shù)組中,最后輸出d中的字符串;例如,輸入字符串:abc123edf456gh,執(zhí)行后輸出:123456。請(qǐng)?zhí)羁眨?BR> #include
#include
main( )
{char s[80], d[80]; int i, j;

一、選擇題
這種類型的題,要求考生從四個(gè)待選答案中選擇一個(gè)正確答案??忌删C合運(yùn)用直選法,排除法等多種方法。但是這類題目考的知識(shí)點(diǎn)往往都比較多且細(xì),容易出錯(cuò),考生在做這類題時(shí),切忌不加分析,一看就選,從而漏掉正確的答案。如2003年9月筆試第49題:
有以下程序
mai( )
{ int a[3][3],p,i;
p=&&a[0][0];
for (i=0;i<9;i++) p[i]=i+1;
printf("%d ",a[1][2]);
}
程序運(yùn)行后的輸出結(jié)果是
(A)3 (B)6 (C)9 (D)2
此題主要考的知識(shí)點(diǎn)有:(1)數(shù)組與指針的關(guān)系;(2)數(shù)組的初始化和數(shù)組元素的引用。在C語(yǔ)言中,數(shù)組與指針有著非常密切的聯(lián)系。任何能用數(shù)組下標(biāo)完成的操作也都可以用指針來(lái)實(shí)現(xiàn)。語(yǔ)句“p=&&a[0][0];”使p指向數(shù)組中的第0號(hào)元素,即a[0][0],指針變量p中存放了數(shù)組元素a[0][0]的地址,由于數(shù)組元素在內(nèi)存中是連續(xù)存儲(chǔ)的,因此,我們就可以通過(guò)指針變量p訪問(wèn)數(shù)組中的任何一個(gè)元素。本題中通過(guò)“for (i=0;i<9;i++) p[i]=i+1;”語(yǔ)句使a[3][3]={1,2,3,4,5,6,7,8,9},所以a[1][2]=6。這里要特別注意C語(yǔ)言中數(shù)組的下標(biāo)從0開始,不要錯(cuò)選a[1][2]=3。
二、填空題
填空題主要考查考生對(duì)基礎(chǔ)知識(shí)的準(zhǔn)確理解。對(duì)于這類型的題,考生應(yīng)深刻理解題意,明確題目要求,運(yùn)用相關(guān)知識(shí)做出正確回答。在歷年考試中,考生這部分試題的得分直接決定考試成績(jī)。由于這部分共20個(gè)空,計(jì)40分,有的考生能得35~40分,而有的考生卻得不到10分,直接拉開了最后成績(jī)。在判卷過(guò)程中發(fā)現(xiàn)考生常犯的錯(cuò)誤有以下幾個(gè)方面:
1.基礎(chǔ)知識(shí)掌握不扎實(shí),概念理解不準(zhǔn)確。
如2003年9月填空第8題:
main( )
{int a=1,b=3,c=5;
if (c=a+b) printf ("yes ");
else printf("no");
}
題目問(wèn)程序運(yùn)行后的輸出結(jié)果,答案應(yīng)是yes。因?yàn)椤癷f (c=a+b) printf ("yes ");”中的條件“c=a+b”是一個(gè)賦值語(yǔ)句,c的值為a+b=1+3=4,所以條件為真。而許多考生卻把賦值語(yǔ)句“c=a+b”理解為關(guān)系表達(dá)式“c==a+b”即5=1+3為邏輯假,故答no。
2.答案表述不準(zhǔn)確,會(huì)做的題卻不得分或少得分。
如第12題:
main( )
{int i,n[ ]={0,0,0,0,0};
for(i=1;i<=4;i++)
{n[i]=n[i-1]2+1;
printf("%d ",n[i]);
}
}問(wèn)程序運(yùn)行后的輸出結(jié)果是____。答案是“1 3 7 15”許多考生雖然寫對(duì)了但卻在每個(gè)數(shù)字后加了標(biāo)點(diǎn)而不得分如“1,3,7,15”或“1. 3. 7. 15”。
又如第19題:
以下程序的功能是將字符串s中的數(shù)字字符放入d數(shù)組中,最后輸出d中的字符串;例如,輸入字符串:abc123edf456gh,執(zhí)行后輸出:123456。請(qǐng)?zhí)羁眨?BR> #include
#include
main( )
{char s[80], d[80]; int i, j;
