第五套上機(jī)試卷
一、改錯(cuò)題
【分析】:對(duì)于改錯(cuò)題的程序中的錯(cuò)誤一般可分為兩類,一類是語法錯(cuò)誤,程序中的語句不符合C語言的語法,拼寫錯(cuò)誤,這類的錯(cuò)誤可通過調(diào)試程序改正。另一類是邏輯錯(cuò)誤,程序調(diào)試已通過,但運(yùn)行結(jié)果不正確,這類錯(cuò)誤的修改必須要看懂和理解程序。
#include
#define N 50
void sum(int n,int *pa)
/*屬第一類錯(cuò)誤。若聲明為void類型,則該函數(shù)沒有返回值,但程序要求返回前n的和,所以類型聲明不正確,應(yīng)改為: int 或去掉*/
{ int count, total,temp;
*pa=3;*++pa=2;
total=5; count=2;
while(count++ { temp=*(pa-1)**pa; if(temp<10) { total+=temp; *(++pa)=temp; } else {*++pa=temp/10; total+=*pa; if(count /*屬第二類錯(cuò)誤。若乘積為兩位數(shù),已把其十位數(shù)字作為數(shù)列的后續(xù)項(xiàng),但若數(shù)列的個(gè)數(shù)沒有超過n時(shí),將該乘積個(gè)位數(shù)字作為數(shù)列的后續(xù)項(xiàng)。*++pa 與*pa++不同,此處應(yīng)為: *++pa */ } } return total; } main() { int tol,n,i,num[n]; /*屬第一類錯(cuò)誤。數(shù)組的聲明不正確,數(shù)組的下標(biāo)必須為常量或常量標(biāo)識(shí)符。應(yīng)改為:num[N] 或 num[50] */ do { printf("Input n=?(2 scanf("%d",&n); }while(n<=2||n>=50); tol=sum(N,num); /*屬第二類錯(cuò)誤。本題要求生成數(shù)列的前n(n<50)項(xiàng),而N是常量。應(yīng)改為:sum(n,num) */ for(i=0;i printf((i+1)%5?"%5d":"%5d\n",num[i]); printf("\n"); printf("%d",tol); }
2010全國計(jì)算機(jī)等考二級(jí)C語言考前密卷匯總
2010年計(jì)算機(jī)等級(jí)考試二級(jí)C語言常見知識(shí)點(diǎn)
計(jì)算機(jī)等級(jí)考試二級(jí)C語言題型分析與應(yīng)試技巧
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |