![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
2014年9月全國計算機二級C上機題目第1套 |
一、基本操作 給定程序中,函數(shù)fun的作用是:不斷從終端讀入整數(shù),由變量a統(tǒng)計大于0的個數(shù),用變量c來統(tǒng)計小于0的個數(shù),當(dāng)輸入0時結(jié)束輸入,并通過形參pa和pb把統(tǒng)計的數(shù)據(jù)傳回主函數(shù)進行輸出。 請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié) 果。 注意:源程序存放在考生文件夾下的BLANK1.C中。 不得增行或刪行,也不得更改程序的結(jié)構(gòu)! #include <stdio.h> 二、簡單應(yīng)用 給定程序modi1.c的主函數(shù)中,將a、b、c三個結(jié)點鏈成一個單向鏈表,并給各結(jié)點的數(shù)據(jù)域賦值,函數(shù)fun( )的作用是:累加鏈表結(jié)點數(shù)據(jù)域中的數(shù)據(jù)作為函數(shù)值返回。 請改正函數(shù)fun中指定部位的錯誤,使它能得出正確的結(jié)果。 注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。 #include <stdio.h> 三、綜合應(yīng)用 請編寫函數(shù)fun,其功能是分別統(tǒng)計形參t所指二維數(shù)組中字母A和C的個數(shù)。 注意:部分源程序存在PROG1.C中,請勿改動主函數(shù)main和其他函數(shù)中的任何 內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。 #include <stdio.h>
} void get( char (*s)[M] ) main() void NONO() fp = fopen("in.dat","r") ;
一、基本操作答案 【參考答案】 (1) a=0,b=0,k (2) (k!=0) (3) scanf( "%d", &k ) 【考點分析】 主要考察考生對循環(huán)結(jié)構(gòu)的理解。 【解題思路】 填空1:a=0,b=0,k下面的scanf函數(shù)用到變量k,需要提前定義,在while循環(huán)中使用了臨時存放正負數(shù)個數(shù)的變量a,b,因此也要提前定義。 填空2:( k!=0 )根據(jù)題意,輸入0時結(jié)束程序,因此當(dāng)k!=0時進入循環(huán)記錄正負數(shù)的個數(shù)。 填空3:scanf( "%d", &k ) 需要不斷從終端輸入整數(shù),因此在循環(huán)體內(nèi)添加輸入操作。 二、簡單應(yīng)用答案 【參考答案】 (1) int t;改為int t=0; (2) *p 改為p或者p!=NULL (3) p.data改為p->data 【考點分析】 主要考察考生對于操作符.與->的異同的理解,指針只能有->,數(shù)組元素可以有.或者-> 【解題思路】 (1) int t;改為int t=0; 題目中變量t是用來存放累加和的,必須初始化。 (2)*p 改為p或者p!=NULL,題目中*p是結(jié)構(gòu)體,不能轉(zhuǎn)化為bool型; (3)p.data改為p->data,p是指針,只能用p->,不能用p.。 三、綜合應(yīng)用答案 【參考答案】 int i=0,j=0;//循環(huán)統(tǒng)計的下標(biāo) *a=0;//初始化a字符統(tǒng)計的個數(shù) *c=0; //初始化c字符統(tǒng)計的個數(shù) for(i=0;i<M;i++)//行 { for(j=0;j<M;j++)//列 { if(t[i][j]=='A')//字符是a,計數(shù) (*a)++; if(t[i][j]=='C') //字符是c,計數(shù) (*c)++; } } 【考點分析】 主要考察考生對多重循環(huán)的理解與使用,以及字符串的比較 【解題思路】 對二維數(shù)組的行列分別循環(huán),行優(yōu)先,查找數(shù)組中元素為A或者C,分別對其進行計數(shù) |