一般在考二級C語言筆試的時候,題型只有選擇題和填空題。這兩種題型的解題方法有所不同,考生在備考時要深化對基本概念和知識點的理解,并注重實踐,同時要作一些針對性的練習,特別是歷年真題,從中找出規律性的東西以及解題技巧。
一、選擇題這種類型的題,要求考生從四個待選答案中選擇一個正確答案。
考生可綜合運用直選法,排除法等多種方法。但是這類題目考的知識點往往都比較多且細,容易出錯,考生在做這類題時,切忌不加分析,一看就選,從而漏掉正確的答案。
如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(“%dn”,a[1][2]);
}
程序運行后的輸出結果是
(A)3
(B)6
(C)9
(D)2
此題主要考的知識點有:
(1)數組與指針的關系;
(2)數組的初始化和數組元素的引用。
在C語言中,數組與指針有著非常密切的聯系。任何能用數組下標完成的操作也都可以用指針來實現。
語句”p=&&a[0][0];”使p指向數組中的第0號元素,即a[0][0],指針變量p中存放了數組元素a[0][0]的地址,由于數組元素在內存中是連續存儲的,因此,我們就可以通過指針變量p訪問數組中的任何一個元素。本題中通過”for (i=0;i<9;i++)p[i]=i+1;”語句使a[3][3]={1,2,3,4,5,6,7,8,9},所以a[1][2]=6.這里要特別注意C語言中數組的下標從0開始,不要錯選a[1][2]=3.
二、填空題 填空題主要考查考生對基礎知識的準確理解。
對于這類型的題,考生應深刻理解題意,明確題目要求,運用相關知識做出正確回答。
在歷年考試中,考生這部分試題的得分直接決定考試成績。由于這部分共20個空,計40分,有的考生能得35~40分,而有的考生卻得不到10分,直接拉開了最后成績。
在判卷過程中發現考生常犯的錯誤有以下幾個方面:
1.基礎知識掌握不扎實,概念理解不準確。
如2003年9月填空第8題:
main( ){int a=1,b=3,c=5;if
(c=a+b)printf (“yesn”);
else printf(“no”);
}
題目問程序運行后的輸出結果,答案應是yes.因為”if (c=a+b)printf (“yesn”);”中的條件”c=a+b”是一個賦值語句,c的值為a+b=1+3=4,所以條件為真。而許多考生卻把賦值語句”c=a+b”理解為關系表達式”c==a+b”即5=1+3為邏輯假,故答no.
2.答案表述不準確,會做的題卻不得分或少得分。
如第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]);
}
}
問程序運行后的輸出結果是____.
答案是”1 3 7 15″許多考生雖然寫對了但卻在每個數字后加了標點而不得分如”1,3,7,15″或”1. 3. 7. 15″.
又如第19題:
以下程序的功能是將字符串s中的數字字符放入d數組中,最后輸出d中的字符串;
例如,
輸入字符串:
abc123edf456gh,執行后輸出:123456.
請填空:
#include #include main( ){char s[80],d[80];
int i,j;
gets(s);
for(i=j=0;s[i]!=”
;i++)
if( )
{d[j]=s[i];j++} d[j]=” ;puts(d);
}
答案應是s[i]<=’9’&&&&s[i]>=’0’或s[i]<=48&&&&s[i]>=57而許多考生卻把”>=”,”<=”寫成”≥”,”≤”導致不能得分。
3.注意答題卡的號碼并不是試題卷上的題號,而是填空的順序號。
許多考生答題時將答案張冠李戴,位置寫錯,白白丟了分。
總之,只要考生能準確理解基本知識點,善于動手動腦多練習,舉一反三,觸類旁通,就能從中找出規律性的東西,輕松通過筆試。