1: 第1題第請編寫函數fun,該函數的功能使:統計各年齡段的人數。N個年齡通過調用隨機函數獲得,并放在主函數的age數組中;要求函數把0至9歲年齡段的人數放在d[0]中,把10至19歲年齡段的人數放在d[1]中,把20至29歲的人數放在d[2]中,其余以此類推,把100歲(含100以上年齡的人數都放在d[10]中。結果在主函數中輸出。
答案:
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題請編寫函數fun,該函數的功能是:統一一含字符串中單詞的個數,作為函數值返回。一行字符串在主函數中輸入,規定所有單詞由小寫字母組成,單詞之間由若干個空格格開,一行的開始沒有空格。
答案:
int fun (char *s)
{int i,n=0;
for(i=0;i
{if(s=‘a’&s<=‘z’&s[i+1]==‘’
‖s[i+1]==‘\0’)
n++;}
return n;}
3: 第3題請編寫一個函數fun,它的功能是:計算并輸出給定整數n的所有因子(不包括1與自身)之和。規定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題請編寫函數fun,其功能是:將s所指字符串中ascii值為奇數的字符刪除,串中剩余字符形成一個新串放在t所指的數組中。
答案:
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題請編寫函數fun,其功能是:將兩位數的正整數a、b合并成一個整數放在c中。合并的方式是:將a數的十位和個位數依次放在c數的百位和個位上,b數的十位和個位數依次放在c數的十位和千位上。
答案:
void fun(int a,int b,long *c)
{*c=(b)*1000+(a/10)*100+(b/10)*10+a;}
6: 第6題假定輸入的字符串中只包含字母和*號。請編寫函數fun,它的功能是:刪除字符串中所有*號。在編寫函數時,不得使用c語言提供的字符串函數。
答案:
void fun(char *a)
{int i=0;char *p=a;
while(*p)
{if(*p!=‘*’)
{a=*p;
i++;}
p++;}
a=‘\0’;}
7: 第7題學生的記錄時由學號和成績組成,n名學生的數據已在主函數中放入結構體數組s中,請編寫函數fun,它的功能時:函數返回指定學號的學生數據,指定的學號在主函數中輸入。若沒找到指定學號,在結構體變量中給學號置空串,給成績置-1,作為函數值返回(用于字符串比較的函數時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題請編寫函數fun,其功能時:計算并輸出下列多項式的值:
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題請編寫一個函數fun,它的功能時:求fibonacci數列中大于t的最小的一個數,結果由函數返回。其中fibonacci數列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題編寫函數fun,它的功能時:計算并輸出下列級數和:
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;}
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |