點(diǎn)擊查看:2015年計(jì)算機(jī)二級(jí)C語言測(cè)試題及答案解析匯總
1: 第1題第請(qǐng)編寫函數(shù)fun,該函數(shù)的功能使:統(tǒng)計(jì)各年齡段的人數(shù)。N個(gè)年齡通過調(diào)用隨機(jī)函數(shù)獲得,并放在主函數(shù)的age數(shù)組中;要求函數(shù)把0至9歲年齡段的人數(shù)放在d[0]中,把10至19歲年齡段的人數(shù)放在d[1]中,把20至29歲的人數(shù)放在d[2]中,其余以此類推,把100歲(含100以上年齡的人數(shù)都放在d[10]中。結(jié)果在主函數(shù)中輸出。
答案:
void fun(int *a,int *b)
{int i,j;
for(j=0;i
b[j]=0;
for(i=0;i
if(a>=0&a<=9)
b[0]+=1;
else if(a>=10&a<=19)
b[1]+=1;
else if(a>=20&a<=29)
b[2]+=1;
else if(a>=30&a<=39)
b[3]+=1;
else if(a>=40&a<=49)
b[4]+=1;
else if(a>=50&a<=59)
b[5]+=1;
else if(a>=60&a<=69)
b[6]+=1;
else if(a>=70&a<=79)
b[7]+=1;
else if(a>=80&a<=89)
b[8]+=1;
else if(a>=90&a<=99)
b[9]+=1;
else
b[10]+=1;}
2: 第2題請(qǐng)編寫函數(shù)fun,該函數(shù)的功能是:統(tǒng)一一含字符串中單詞的個(gè)數(shù),作為函數(shù)值返回。一行字符串在主函數(shù)中輸入,規(guī)定所有單詞由小寫字母組成,單詞之間由若干個(gè)空格格開,一行的開始沒有空格。
答案:
int fun (char *s)
{int i,n=0;
for(i=0;i
{if(s=‘a(chǎn)’&s<=‘z’&s[i+1]==‘’
‖s[i+1]==‘\0’)
n++;}
return n;}
3: 第3題請(qǐng)編寫一個(gè)函數(shù)fun,它的功能是:計(jì)算并輸出給定整數(shù)n的所有因子(不包括1與自身)之和。規(guī)定n的值不大于1000。
答案:
int fun(int n)
{int s=0,i;
for(i=2;i<=n-1;i++)
if(n%i==0)
s+=i;
return s;}
4: 第4題請(qǐng)編寫函數(shù)fun,其功能是:將s所指字符串中ascii值為奇數(shù)的字符刪除,串中剩余字符形成一個(gè)新串放在t所指的數(shù)組中。
答案:
void fun(char *s,char t[])
{int i,j=0,n;
n=strlen(s);
for(i=0;i
if(s%2==0)
{t[j]=s;
j++;}
t[j]=‘\0’;}
5: 第5題請(qǐng)編寫函數(shù)fun,其功能是:將兩位數(shù)的正整數(shù)a、b合并成一個(gè)整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的百位和個(gè)位上,b數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的十位和千位上。
答案:
void fun(int a,int b,long *c)
{*c=(b)*1000+(a/10)*100+(b/10)*10+a;}
6: 第6題假定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫函數(shù)fun,它的功能是:刪除字符串中所有*號(hào)。在編寫函數(shù)時(shí),不得使用c語言提供的字符串函數(shù)。
答案:
void fun(char *a)
{int i=0;char *p=a;
while(*p)
{if(*p!=‘*’)
{a=*p;
i++;}
p++;}
a=‘\0’;}
7: 第7題學(xué)生的記錄時(shí)由學(xué)號(hào)和成績(jī)組成,n名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫函數(shù)fun,它的功能時(shí):函數(shù)返回指定學(xué)號(hào)的學(xué)生數(shù)據(jù),指定的學(xué)號(hào)在主函數(shù)中輸入。若沒找到指定學(xué)號(hào),在結(jié)構(gòu)體變量中給學(xué)號(hào)置空串,給成績(jī)置-1,作為函數(shù)值返回(用于字符串比較的函數(shù)時(shí)strcmp)。
答案:
strec fun(strec*,char *b)
{int i;
strec h;
for(i=0;i
if(strcmp(a.num,b)==0)
{h=a;
break; }
else
{h.num=="";
h.s=-1;}
return h;}
8: 第8題請(qǐng)編寫函數(shù)fun,其功能時(shí):計(jì)算并輸出下列多項(xiàng)式的值:
sn=1+1/1!+1/2!+1/3!+1/4!+…+1/n!
答案:
sn=1+1/1!+1/2!+1/3!+1/4!+...+1/n!
double fun(int n)
{double t,sn=1.0;
int i,j;
for(i=1;i
{t=1.0;
for(j=1;j<=i;j++)
t*j;
sn+=1.0/t;}
return sn;}
9: 第9題請(qǐng)編寫一個(gè)函數(shù)fun,它的功能時(shí):求fibonacci數(shù)列中大于t的最小的一個(gè)數(shù),結(jié)果由函數(shù)返回。其中fibonacci數(shù)列f(n)的定義為:
f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2)
答案:
f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2)
int fun(int t)
{int a=1,b=1,c=0,i;
for(i=4;i<=t;i++)
{if(c
{c=a+b;
a=b;
b=c;}
else
break;}
return c;}
10: 第10題編寫函數(shù)fun,它的功能時(shí):計(jì)算并輸出下列級(jí)數(shù)和:
s=1/1*2+1/2*3+…+1/n(n+1)
答案:
double fun (int n)
{double s=0.0;
int i;
for(i=1;i<=n;i++)
s=s+1.0/(i*(i+1));
return s;}
相關(guān)推薦:
各地2015上半年計(jì)算機(jī)等級(jí)考試報(bào)名時(shí)間匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |