版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
h
1請(qǐng)編寫函數(shù)fun,其功能是:找出2XM整型二維數(shù)組中最
大元素的值,并將此值返回調(diào)用函數(shù)。
intfun(inta[][M])
(
inti,j,max=a[O][0];
for(i=0;i<2;i++)
for(j=0;j<M;j++)
if(max<a[i][j])
max=a[i][j];
returnmax;
)
2編寫函數(shù)fun,其功能是:根據(jù)以下公式求冗的值(要求
精度0.0005,即某項(xiàng)小于0.0005時(shí)停止迭代)。
7i1I1x21x2x3Ix2x3x4
—=1+—++------+...........
233x53x5x73x5x7
lx2x…x〃
3x5x…x(2"l)程序運(yùn)行后,若輸入精度
0.0005,則程序應(yīng)輸出為3.14…。
r
h
doublefun(doubleeps)
doubles=l.0,sl=l.0;
intn=l;
while(sl>=eps)/*當(dāng)某項(xiàng)大于精度要求時(shí),繼續(xù)求下
一項(xiàng)*/
{sl=sl]s=s+sl;/*求和*/
n++;
)
return2]
3編寫函數(shù)fun,其功能是:求出1到1000之間能被7或H
整除,但不能同時(shí)被7和11整除的所有整數(shù),并將其放在a
所指的數(shù)組中,通過n返回這些數(shù)的個(gè)數(shù)。
voidfun(int*a,int*n)
inti,j=0;
r
h
for(i=l;i<=1000;i++)/*求1到1000之內(nèi)能被7或
11整除但不能同時(shí)被7和11整除的所有整數(shù),并放入數(shù)組
a中*/
if((i%7==0||i%ll==0)&&i%77!=0)
a[j++]=i;
*n=j;/*傳回滿足條件的數(shù)的個(gè)數(shù)*/
}
4規(guī)定輸入的字符串中只包含字母和*號(hào)。編寫函數(shù)fun,其
功能是:刪除字符串中所有的*號(hào)。編寫函數(shù)時(shí),不得使用C
語言提供的字符串函數(shù)。
例如,字符串中的內(nèi)容****A*BC*DEF*G*******,刪除
后字符串中的內(nèi)容應(yīng)當(dāng)是:ABCDEFGo
voidfun(char*a)
(
inti,j=0;
for(i=0;a[i]!='\0';i++)
r
h
if(a[i]I='*r)
a[j++]=a[i];/*若不是要?jiǎng)h除的字符'則留下
*/
a[j]='\0,;/*最后加上字符串結(jié)束符'\0,*/
}
5編寫函數(shù)fun,其功能是:實(shí)現(xiàn)兩個(gè)字符串的連接(不要使
用庫函數(shù)strcat),即把p2所指的字符串連接到pl所指的
字符串的后面。
例如,分別輸入下面兩個(gè)字符串:
FirstString----
SecondString
程序輸出:
FirstString----SecondString
voidfun(charpl[],charp2[])
inti,j;
r
for(i=0;pl[i]!='\0';i++);/*求出的i為
pl字符串的總長度,包括結(jié)束標(biāo)記符*/
for(j=0;p2[j]!='\0';j++)
pl[i++]=p2[j];/*將p2字符串連在pl字符串后面
*/
pl[i]=/\OZ;/*在字符串最后加上結(jié)束標(biāo)記符*/
}
6某學(xué)生的記錄由學(xué)號(hào)、8門課程成績和平均分組成,學(xué)號(hào)
和8門課程的成績已在主函數(shù)中給出,請(qǐng)編寫函數(shù)fun,其
功能是:求出該學(xué)生的平均分,并放入記錄的ave成員中。
例如,學(xué)生的成績是:85.5,76,69.5,85,91,72,64.5,87.5,
則他的平均分應(yīng)為78.875o
voidfun(STREC*a)
(
inti;
a—>ave=0.0;
r
h
for(i=0;i<N;i++)
a—>ave=a—>ave+a—>s[i];
/*求各門成績的總和*/
a—>ave=a—>ave/N;/*求平均分*/
}
7N名學(xué)生的成績已在主函數(shù)中放入一個(gè)帶頭節(jié)點(diǎn)的鏈表結(jié)
構(gòu)中,h指向鏈表的頭節(jié)點(diǎn)。請(qǐng)編寫函數(shù)fun,其功能是:
求出平均分,并由函數(shù)值返回。
例如,若學(xué)生的成績是:8576698591726487,
則平均分應(yīng)當(dāng)是:78.625o
doublefun(STREC*h)
(
doubleav=0.0;
STREC*p=h—>next;/*p直接指向"頭結(jié)點(diǎn)”的下一個(gè)
結(jié)點(diǎn),即第一個(gè)成績*/
while(p!=NULL)
r
h
{av=av+p—>s;/*求總分?jǐn)?shù)*/
p=p—>next;
}
returnav/N;/*返回平均值*/
}
8編寫函數(shù)fun,其功能是:將所有大于1小于整數(shù)m的非
素?cái)?shù)存入xx所指數(shù)組中,非素?cái)?shù)的個(gè)數(shù)通過k返回。
例如,若輸入17,則應(yīng)輸出:468910121415
16o
voidfun(intm,int*k,intxx[])
(
inti,j,n=0;
for(i=4;i<m;i++)/*找出大于1小于整數(shù)m的非
素?cái)?shù)*/
{for(j=2;j<i;j++)
if(i%j==0)break;
r
h
if(j<i)xx[n++]=i;
)
*k=n;/*返回非素?cái)?shù)的個(gè)數(shù)*/
}
9編寫函數(shù)fun,其功能是:求ss所指字符串中指定字符的
個(gè)數(shù),并返回此值。
例如,若輸入字符串123412132,輸入字符為L則輸出3。
intfun(char*ss,charc)
(
inti=0;
for(;*ss!='\0';ss++)
if(*ss==c)
i++;/*求出ss所指字符串中指定字符的個(gè)數(shù)*/
returni;
}
r
h
10編寫函數(shù)fun,其功能是:計(jì)算n門課程的平均分,結(jié)果
作為函數(shù)值返回。
例如:若有5門課程的成績是:90.5,72,80,61.5,55,則函
數(shù)的值為:71.80o
floatfun(float*a,intn)
(
floatav=0.0;
inti;
for(i=0;i<n;i++)/*求分?jǐn)?shù)的總和*/
av=av+a[i];
return(av/n);/*返回平均值*/
)
11學(xué)生的記錄由學(xué)號(hào)和成績組成,N名學(xué)生的數(shù)據(jù)已放入主
函數(shù)中的結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫函數(shù)fun,其功能是:把
分?jǐn)?shù)最高的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中。注意:分?jǐn)?shù)最高
r
h
的學(xué)生可能不止一個(gè),函數(shù)返回分?jǐn)?shù)最高的學(xué)生的人數(shù)。
intfun(STREC*a,STREC*b)
(
inti,j=0,max=a[O].s;
for(i=0;i<N;i++)
if(max<a[i].s)max=a[i].s;
/*找出最大值*/
for(i=0;i<N;i++)
if(max==a[i].s)b[j++]=a[i];/*找出成績與
max相等的學(xué)生的記錄,存入結(jié)構(gòu)體b中*/
returnj;/*返回最高成績的學(xué)生人數(shù)*/
)
12規(guī)定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫函數(shù)fun,
其功能是:除了字符串前導(dǎo)的*號(hào)之外,將串中其它*號(hào)全部
刪除。在編寫函數(shù)時(shí),不得使用C語言提供的字符串函數(shù)。
例如,字符串中的內(nèi)容為:****A*BC*DEF*G*******,刪除
r
h
后,字符串中的內(nèi)容應(yīng)當(dāng)是:****ABCDEFGo
voidfun(char*a)
(
inti=0;
char*p=a;
while(*p&&*p==z)
(
a[i]=*p;i++;p++;
)
while(*p)
(
if(*p!='*')
(
a[i]=*p;i++;
)
p++;
r
h
)
a[i]=,\OZ;
}
13編寫函數(shù)voidfun(char*tt,intpp[]),統(tǒng)計(jì)在tt所
指的字符串中'a至『z'26個(gè)小寫字母各自出現(xiàn)的次數(shù),并依
次放在pp所指的數(shù)組中。
例如,當(dāng)輸入字符串a(chǎn)bcdefgabcdeabc后,程序的輸出結(jié)果
應(yīng)該是:
33322110000000000000000000
voidfun(char*tt,intpp[])
(
inti;
for(i=0;i<26;i++)
pp[i]=0;/*初始化pp數(shù)組各元素為0]='\0';
tt++)
if(*tt>='a'&&*tt<='z')
r
h
pp[*tt—'ar]++;
)
14規(guī)定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫函數(shù)fun,
其功能是:將字符串尾部的*號(hào)全部刪除,前面和中間的*號(hào)
不動(dòng)。
例如,字符串中的內(nèi)容****A*BC*DEF*G*******,刪除
后,字符串中的內(nèi)容應(yīng)當(dāng)是:****A*BC*DEF*G。在編寫函數(shù)
時(shí),不得使用C語言提供的字符串函數(shù)。
voidfun(char*a);
(
while(*a!='\0')
a++;
a一一;/*指針a指向字符串的尾部*/
while(*a==z)
a---;/*指針a指向最后一個(gè)字母*/
*(a+l)='\0';/*在字符串最后加上結(jié)束標(biāo)志
r
h
符*/
)
15編寫函數(shù)fun,其功能是:比較字符串的長度,(不得使
用C語言提供的求字符串長度的函數(shù)),函數(shù)返回較長的字
符串。若兩個(gè)字符長度相同,則返回第一個(gè)字符串。
例如,輸入beijing〈CR>shanghai<CR>(<CR>為回車鍵),函
數(shù)將返回shanghaio
char*fun(char*s,char*t)
(
inti,j;
for(i=0;s[i]!='\0,;i++);/*求字符串的
長度*/
for(j=0;t[j]!='\0';j++);
if(i>=j)/*比較兩個(gè)字符串的長度*/
returns;/*函數(shù)返回較長的字符串,若兩個(gè)字符串長
度相等,則返回第1個(gè)字符串*/
r
h
else
returnt;
}
16學(xué)生的記錄由學(xué)號(hào)成績組成,N名學(xué)生的數(shù)據(jù)已放入主函
數(shù)中的結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫函數(shù)fun,其功能是:函數(shù)
返回該學(xué)號(hào)的學(xué)生數(shù)據(jù),指定的學(xué)號(hào)在主函數(shù)中輸入。若沒
找到指定學(xué)號(hào),在結(jié)構(gòu)體變量中給學(xué)號(hào)置空串,給成績置一
b作為函數(shù)值返回。(用于字符串比較的函數(shù)是strcmp)。
STRECfun(STREC*a,char*b)
inti;
STRECstr=r\O\-1};/*若沒找到指定的學(xué)號(hào),在
結(jié)構(gòu)體變量中給學(xué)號(hào)置空串,給成績置一口+)
if(strcmp(a[i].num,b)==0)/*找到指定學(xué)號(hào)的學(xué)
生數(shù)據(jù)*/
str=a[i];
returnstr;/*返回學(xué)生記錄*/
r
h
)
17編寫函數(shù)fun,其功能是:將兩個(gè)兩位數(shù)的正整數(shù)a、b
合并成一個(gè)整數(shù)放在c中。合并的方式是:將a數(shù)的十位和
個(gè)位數(shù)依次放在c數(shù)的十位和千位上,b數(shù)的十位和個(gè)位數(shù)
依次放在c數(shù)的百位和個(gè)位上。
例如,當(dāng)a=45,b=12時(shí),調(diào)用該函數(shù)后,c=5142。
voidfun(inta,intb,long*c)
(
*c=b%10+(a/10)*10+(b/10)*100+(a%10)*1000;
)
18編寫函數(shù)fun,其功能是:利用下面的簡單迭代方法求方
程cos(x)—x=0的一個(gè)實(shí)根。
xn+l=cos(xn)
迭代步驟如下:
⑴取xl初值為0.0;
r
h
⑵xO=xL將xl的值賦給xO;
(3)xl=cos(x0),求出一個(gè)新的xl;
(4)若xO-xl的絕對(duì)值小于0.00000L執(zhí)行步聚(5),否則
執(zhí)行步聚(2);
(5)所求xl就是方程cos(x)-x=0的一個(gè)實(shí)根,作為函數(shù)
值返回。
程序?qū)⑤敵鼋Y(jié)果Root=0.739086o
floatfun()
(
floatxl=0.0,xO;
do
(
x0=xl;
xl=cos(xO);
)
while(fabs(x0-xl)>=le—6);
returnxl;
r
h
)
19規(guī)定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫函數(shù)fun,
其功能是:將字符串中的前導(dǎo)*號(hào)全部移到字符串的尾部。
例如,字符串中的內(nèi)容為:*******A*BC*DEF*G****,移動(dòng)
后,字符串中的內(nèi)容應(yīng)當(dāng)是:A*BC*DEF*G***********。在
編寫函數(shù)時(shí),不得使用C語言提供的字符串函數(shù)。
voidfun(char*a)
(
inti=0,n=0;
char*p;
p=a;
while(*p==/*')/*判斷*p是否是*號(hào),并統(tǒng)計(jì)
*號(hào)的個(gè)數(shù)*/
(
n++;p++;
}
r
h
while(*p)/*將前導(dǎo)*號(hào)后的字符傳遞給a*/
a[i]=*p;i++;p++;
}
while(n!=0)
(
a[i]='*';i++;n----;
}
a[i]=,\0z;
)
20編寫函數(shù)fun,其功能是:將兩個(gè)兩位數(shù)的正整數(shù)a、b
合并成一個(gè)整數(shù)放在c中。合并的方式是:將a數(shù)的十位和
個(gè)位數(shù)依次放在c數(shù)的個(gè)位和百位上,b數(shù)的十位和個(gè)位數(shù)
依次放在c數(shù)的千位和十位上。
例如,當(dāng)a=45,b=12時(shí),調(diào)用該函數(shù)后,c=1524o
voidfun(inta,intb,long*c)
r
h
*c=a/10+(b%10)*10+(a%10)*100+(b/10)*1000;
}
21編寫函數(shù)fun,其功能是計(jì)算:
s=Jln(l)+ln(2)+im3)+……+ln(,)$作為函數(shù)值返回。
在C語言中可調(diào)用log(n)函數(shù)求ln(n)olog函數(shù)的引用說
明為:doublelog(doublex)。
例如,若m的值為20,則fun函數(shù)值為6.506583。
doublefun(intm)
(
inti;
doubles=0.0;
for(i=l;i<=m;i++)
s=s+log(i);/*計(jì)算s=ln(l)+ln(2)+ln(3)
+???+ln(m)*/
returnsqrt(s);/*對(duì)s求平方根并返回*/
r
h
)
22規(guī)定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫函數(shù)fun,
其功能是:只刪除字符前導(dǎo)和尾部的*號(hào),串中字母間的*號(hào)
都不刪除。形參n給出了字符串的長度,形參h給出了字符
串中前導(dǎo)*號(hào)的個(gè)數(shù),形參e給出了字符串中尾部*號(hào)的個(gè)數(shù)。
在編寫函數(shù)時(shí),不得使用C語言提供的字符串函數(shù)。
例如,字符串中的內(nèi)容****A*BC*DEF*G*******,刪除
后,字符串中的內(nèi)容應(yīng)當(dāng)是:A*BC*DEF*G。
voidfun(char*a,intn,inth,inte)
(
inti,j=0;
for(i=h;i<n-e;i++)/*第一個(gè)字母和最后一個(gè)字
母之間的字符全不刪除*/
a[j++]=a[i];
a[j]='\0,;/*在字符串最后加上結(jié)束標(biāo)
識(shí)*/
}
r
h
23函數(shù)fun的功能是:將s所指字符串中下標(biāo)為偶數(shù)的字符
刪除,剩余字符形成的新串放在t所指數(shù)組中。
例如,當(dāng)s所指字符串中的內(nèi)容為〃ABCDEFGHIJK〃時(shí),在t
所指數(shù)組中的內(nèi)容應(yīng)是:〃BDFHJ”。
voidfun(char*s,chart[])
(
inti,j=0,k=strlen(s);/*k為字符串的長度*/
for(i=l;i<k;i=i+2)/*將s所指字符串中下標(biāo)為
奇數(shù)的字符存入t所指字符串中*/
t[j++]=s[i];
24編寫函數(shù)fun,其功能是:將a、b中的兩個(gè)兩位正整數(shù)
合并成一個(gè)新的整數(shù)放在c中。合并的方式是:將a中的十
位和個(gè)位數(shù)依次放在變量c的百位和個(gè)位上,b中的十位和
個(gè)位數(shù)依次放在變量c的十位和千位上。
例如,當(dāng)a=45,b=12,調(diào)用該函數(shù)后c=2415。
voidfun(inta,intb,long*c)
r
h
*c=a%10+(b/10)*10+(a/10)*100+(b%10)*1000;
}
25假定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫函數(shù)fun,
其功能是:除了尾部的*號(hào)之外,將字符中的其它的*號(hào)全部
刪除。形參P已指向字符串中最后的一個(gè)字母。在編寫函數(shù)
時(shí),不得使用C語言提供的字符串函數(shù)。
例如,字符串中的內(nèi)容為****A*BC*DEF*G*******,刪除后,
字符串中的內(nèi)容應(yīng)當(dāng)是ABCDEFG*******o
voidfun(char*a,char*p)
(
char*t=a;
for(;t<=p;t++)
if(*t!='*')
*(a++)=*t;/*將p以前所有不是*號(hào)的字符
保留下來*/
r
h
for(;*t!=1\0';t++)
*(a++)=*t;/*將p以后的所有*號(hào)保留下來*/
*a='\0,;/*在字符串最后加上字符串結(jié)束標(biāo)識(shí)*/
}
26學(xué)生的記錄由學(xué)號(hào)和成績組成,N名學(xué)生的數(shù)據(jù)已放入主
函數(shù)中的結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫函數(shù)fun,其功能是:按
分?jǐn)?shù)降序排列學(xué)生的記錄,高分在前,低分在后。
voidfun(STRECa[])
inti,j;
STRECt;
for(i=l;i<N;i++)/*用冒泡法進(jìn)行排序,進(jìn)行N
-1次比較*/
for(j=0;j<N-l;j++)/*在每一次比較中要進(jìn)
行N—1次兩兩比較*/
if(a[j].s<a[j+l].s)
r
{t=a[j];a[j]=a[j+l];a[j+l]=t;}
/*按分?jǐn)?shù)的高低排列學(xué)生的記錄,高分在前*/
}
27學(xué)生的記錄由學(xué)號(hào)和成績組成。N名學(xué)生的數(shù)據(jù)已放入主
函數(shù)中的結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫函數(shù)fun,其功能是:把
高于等于平均分的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,高于等于
平均分的學(xué)生人數(shù)通過形參n傳回,平均分通過函數(shù)值返回。
doublefun(STREC*a,STREC*b,int*n)
(
inti;
doubleav=0.0;
*n=0;
for(i=0;i<N;i++)
av=av+a[i].s;
av=av/N;/*求平均值*/
for(i=0;i<N;i++)
r
h
if(av<=a[i].s)
{b[*n]=a[i];*n=*n+l;}
/*將高于等于平均分的學(xué)生存入b所指存儲(chǔ)單元中,并統(tǒng)計(jì)
人數(shù)*/
returnav;/*返回平均分*/
}
28編寫函數(shù)fun,其功能是:將1到m之間(含m)能被7或
11整除的所有整數(shù)放在數(shù)組a中,并通過n返回這些數(shù)的個(gè)
數(shù)。例如,若傳給m的值為50,則程序輸出:
711142122283335424449
voidfun(intm,int*a,int*n)
(
inti,j=0;
for(i=l;i<=m;i++)
if(i%7==0||i%ll==0)/*求出1到m(含m)之內(nèi)能被
7或11整除的所有整數(shù)放在數(shù)組a中*/
a[j++]=i;
r
h
*n=j;/*返回這些數(shù)的個(gè)數(shù)*/
)
29規(guī)定輸入的字符串中只包含字母和*號(hào)。編寫函數(shù)fun,
其功能是:將字符串中的前導(dǎo)*號(hào)全部刪除,中間和尾部的*
號(hào)不刪除。
例如,字符串中的內(nèi)容*******A*BC*DEF*G****,刪除
后字符串中的內(nèi)容應(yīng)當(dāng)是:A*BC*DEF*G****。編寫函數(shù)時(shí),
不得使用C語言提供的字符串函數(shù)。
voidfun(char*a)
(
char*p=a;
while(*p==z)
p++;/*指針P指向字符串第一個(gè)字母*/
for(;*p!='\0';p++,a++)
*a=*p;/*從第一個(gè)字母開始,其后的字符都放入指針
a所指的字符串中*/
r
*a='\0,;/*在字符串最后加上字符串結(jié)束標(biāo)
識(shí)*/
}
30N名學(xué)生的成績已在主函數(shù)中放入一個(gè)帶有頭節(jié)點(diǎn)的鏈
表結(jié)構(gòu)中,h指向鏈表的頭節(jié)點(diǎn)。請(qǐng)編寫函數(shù)fun,其功能
是:找出學(xué)生的最高分,并由函數(shù)值返回。
doublefun(STREC*h)
(
doublemax=h—>s;
while(h!=NULL)/*通過循環(huán)找到最高分?jǐn)?shù)*/
{if(max<h—>s)max=h—>s;
h=h—>next;
)
returnmax;
}
r
h
31請(qǐng)編寫函數(shù)fun,其功能是:找出一維整型數(shù)組元素中最
大的值及其所在的下標(biāo),并通過形參傳回。數(shù)組元素中的值
已在主函數(shù)中賦予。
主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個(gè)數(shù),max存放最大
值,index存放最大值所在元素的下標(biāo)。
voidfun(inta[],intn,int*max,int*d)
inti;
*max=a[0];
*d=0;
for(i=0;i<n;i++)/*將最大的元素放入指針max
所指的單元,最大元素的下標(biāo)放入指針d所指的單元*/
if(*max<a[i])
{*max=a[i];*d=i;}
)
32編寫函數(shù)fun,其功能是:將s所指字符串中除了下標(biāo)為
奇數(shù)同時(shí)ASCH值也為奇數(shù)的字符之外,其余的所有字符全
部刪除,串中剩余字符所形成的一個(gè)新串放在t所指的數(shù)組
r
h
中。
例如,若s所指字符串的內(nèi)容為:“ABCDEFG12345”,其中字
符A的ASCII碼值為奇數(shù),但所在元素的下標(biāo)為偶數(shù),因此
需要?jiǎng)h除;而字符1的ASCII碼值為奇數(shù),所在數(shù)組中的下
標(biāo)也為奇數(shù),因此不應(yīng)當(dāng)刪除,其它依此類推。最后t所指
數(shù)組中的內(nèi)容應(yīng)為:〃135〃。
voidfun(char*s,chart[])
{
inti,j=0,n;
n=strlen(s);
for(i=0;i<n;i++)
if(i%2!=0&&s[i]%2!=0)
(
t[j]=s[i];/*將下標(biāo)為奇數(shù)同時(shí)ASCII碼值為奇
數(shù)的字符放入數(shù)組t中*/
j++;
}
r
h
t[j]=,\oz;/*最后加上結(jié)束標(biāo)識(shí)符*/
)
33編寫函數(shù)fun,其功能是:實(shí)現(xiàn)B=A+A',即將矩陣A
加上A的轉(zhuǎn)置,存放在矩陣B中。計(jì)算結(jié)果在main函數(shù)中
輸出。
例如,輸入下面的矩陣:其轉(zhuǎn)置矩陣為:
123147
456258
789369
程序輸出:
2610
61014
101418
voidfun(inta[3][3],intb[3][3])
(
inti,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
r
h
b[i][j]=a[i][j]+a[j][i];/*把矩陣a加上a
的轉(zhuǎn)置,存放在矩陣b中*/
}
34請(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[l]中,把20至29歲年齡段的
人數(shù)放在d[2]中,依此類推,把100歲(含100歲)以上年齡
的人數(shù)都放在d[10]中。結(jié)果在主函數(shù)中輸出。
voidfun(int*a,int*b)
(
inti,j;
for(j=0;j<M;j++)
b[j]=O;/*數(shù)組b初始化為0]+)
if(a[i]>=100)
b[10]++;/*如果年齡大于等于100,b[10]自增1]+;
/*如果年齡小于100,則將其分別統(tǒng)計(jì)到b[a[i]/10]中*/
}
r
h
35學(xué)生記錄由學(xué)號(hào)和成績組成,N名學(xué)生的數(shù)據(jù)已放入主函
數(shù)中的結(jié)構(gòu)體數(shù)組中,請(qǐng)編寫函數(shù)fun,其功能是:把分?jǐn)?shù)
最低的學(xué)生數(shù)據(jù)放入b所指的數(shù)組中,注意:分?jǐn)?shù)最低的學(xué)
生可能不止一個(gè),函數(shù)返回分?jǐn)?shù)最低的學(xué)生人數(shù)。
intfun(STREC*a,STREC*b)
(
inti,j=0,n=0,min;
min=a[O].s;
for(i=0;i<N;i++)
if(a[i].s<min)
min=a[i].s;
for(i=0;i<N;i++)
if(a[i].s==min)
(
*(b+j)=a[i];j++;n++;
returnn;
r
h
)
36請(qǐng)編寫函數(shù)fun,該函數(shù)的功能是:移動(dòng)字符串中的內(nèi)容,
移動(dòng)的規(guī)則是把第1?m個(gè)字符,平移到字符串的最后,把
第m+1到最后的字符移到字符串的前部。
例如,字符串中原有的內(nèi)容為ABCDEFGHIJK,m的值為3,移
動(dòng)后,字符串中的內(nèi)容應(yīng)該是DEFGHIJKABC。
voidfun(char*w,intm)
(
inti,j;
chart;
for(i=l;i<=m;i++)/*進(jìn)行m次的循環(huán)左移*/
{t=w[0];
for(j=l;w[j]!='\0,;j++)/*從第2個(gè)
字符開始以后的每個(gè)字符都依次前移一個(gè)字符*/
w[j—1]=w[j];
w[j-l]=t;/*將第1個(gè)字符放到最后一個(gè)字
符中*/
r
h
)
)
37編寫函數(shù)fun,其功能是:刪除一個(gè)字符串中指定下標(biāo)的
字符。其中,a指向原字符串,刪除指定字符后的字符串存
放在b所指的數(shù)組中,n中存指定的下標(biāo)。
例如,輸入一個(gè)字符串world,然后輸入3,則調(diào)用該函數(shù)
后的結(jié)果為wordo
voidfun(chara(),charb(),intn)
(
inti,k=0;
for(i=0;a[i]!='\0';i++)
if(i!=n)/*將不是指定下標(biāo)的字符存入數(shù)組b中
*/
b[k++]=a[i];
b[k]='\0,;/*在字符串最后加上結(jié)束標(biāo)識(shí)*/
}
38編寫函數(shù)fun,w是一個(gè)大于10的無符號(hào)整數(shù),若w是
r
h
n(n,2)位的整數(shù),則函數(shù)求出w的后n-1位的數(shù)作為函數(shù)
值返回。
例如,w值為5923,則函數(shù)返回923;若w值為923,則函
數(shù)返回23o
unsignedfun(unsignedw)
(
if(w>=10000)
returnw%10000;/*求出n位整數(shù)w的后n—1位的數(shù)
*/
if(w>=1000)
returnw%1000;
if(w>=100)
returnw%100;
if(w>=10)
returnw%10;
)
39請(qǐng)編寫函數(shù)fun,該函數(shù)的功能是:將M行N列的二維數(shù)
r
h
組中的數(shù)據(jù),按行的順序依此放到一維數(shù)組中,一維數(shù)組中
數(shù)據(jù)的個(gè)數(shù)存放在形參n所指的存儲(chǔ)單元中。
例如,若二維數(shù)組中的數(shù)據(jù)為:
33333333
44444444
55555555
則一維數(shù)組中的內(nèi)容應(yīng)該是33333333444444
4455555555
voidfun(int(*s)[10],int*b,int*n,intmm,intnn)
(
inti,j,k=0;
for(i=0;i<mm;i++)/*將二維數(shù)組s中的數(shù)據(jù)按行
的順序依次放到一維數(shù)組b中*/
for(j=0;j<nn;j++)
b[k++]=s[i][j];
*n=k;/*通過指針返回元素個(gè)數(shù)*/
}
r
h
40編寫函數(shù)fun,其功能是:根據(jù)以下公式計(jì)算s,并計(jì)算
結(jié)果作為函數(shù)值返回,n通過形參傳入。
—+++…+__i
1+21+2+31+2+3+-n例如:若n的值為11時(shí),
函數(shù)的值為1.833333
floatfun(intn)
(
inti,sl=0;
floats=0.0;
for(i=l;i<=n;i++)
(
sl=sl+i;/*求每一項(xiàng)的分母*/
s=s+l.0/sl;/*求多項(xiàng)式的值*/
)
returns;
)
sl=sl+i;/*求每一項(xiàng)的分母*/
s=s+l.0/sl;/*求多項(xiàng)式的值*/
r
h
)
returns;
}
41編寫函數(shù)fun,其功能是:將s所指字符串中ASCII值為
奇數(shù)的字符刪除,剩余字符形成的新串放在t所指數(shù)組中。
例如,若s所指字符串中的內(nèi)容為:〃ABCDEFG12345”,其中
字符A的ASCH碼值為奇數(shù)、…、字符1的ASCII碼值也為
奇數(shù)、…都應(yīng)當(dāng)刪除,其它依此類推。最后t所指的數(shù)組中
的內(nèi)容應(yīng)是:〃BDF24〃。
voidfun(char*s,chart[])
(
inti,j=0,n;
n=strlen(s);
for(i=0;i<n;i++)/*找出ASCH碼值為偶數(shù)的字
符依次存入數(shù)組中*/
if(s[i]%2==0)
r
h
t[j]=s[i];
j++;
}
t[j]=,\oz;
}
?42下列程序定義了NXN的二維數(shù)組,并在主函數(shù)中自動(dòng)
賦值。請(qǐng)編寫函數(shù)fun(inta[][N]),該函數(shù)的功能是:將
數(shù)組左下半三角元素中的值全部置成0。例如a數(shù)組中的值
為:
a=l97
238
456
則返回主程序后a數(shù)組中的值應(yīng)為:
097
008
000
r
h
43規(guī)定輸入的字符串中只包含字母和*號(hào)。編寫函數(shù)fun,
其功能是:除了字符串前導(dǎo)和尾部的*號(hào)外,將串中其它的*
號(hào)全部刪除。形參h已指向字符串中第一個(gè)字母,形參p指
向字符串的中最后一個(gè)字母。在編寫函數(shù)時(shí),不得使用C語
言提供的字符串函數(shù)。
例如,若字符串中的內(nèi)容為****A*BC*DEF*G*******,刪除
后,字符串中的內(nèi)容應(yīng)當(dāng)是:****ABCDEFG********。在編
寫函數(shù)時(shí),不得使用C語言提供的字符串函數(shù)。
voidfun(char*a,char*h,char*p)
(
inti=0;
char*q=a;
while(q<h)/*判斷前導(dǎo)*號(hào)的結(jié)束*/
(
a[i]=*q;q++;i++;
}
while(q<p){/*刪除除了字符串前導(dǎo)和尾部的*號(hào)*/
r
h
if(*q!='*r)
a[i]=*q;i++;
}
q++;
}
while(*q)
(
a[i]=*q;i++;q++;
)
a[i]=,\OZ;
)
44函數(shù)fun的功能是:將a、b的兩個(gè)兩位正整數(shù)合并成一
個(gè)新的整數(shù)放在c中。合并的方式是:將a中的十位和個(gè)位
數(shù)依次放在變量c的百位和個(gè)位上,b中的十
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- YC/T 622-2024烤煙代表性樣品抽樣方法
- 2025年度環(huán)境管理體系認(rèn)證與安全服務(wù)協(xié)議3篇
- 2024年資料員權(quán)益保障協(xié)議3篇
- 親子樂園租賃合同模板
- 造船企業(yè)備用金內(nèi)部控制
- 建筑防水審查合同
- 養(yǎng)老院人工打水井施工合同
- 食品添加劑安全使用條例
- 酒店服務(wù)分包協(xié)議
- 航空航天董事長聘用合同模板
- 經(jīng)典藍(lán)色商務(wù)商業(yè)模板
- 政府機(jī)關(guān)保安服務(wù)項(xiàng)目整體服務(wù)方案
- 藥物分析年終述職報(bào)告
- 中國專利獎(jiǎng)申報(bào)要點(diǎn)
- 餐飲開晨會(huì)班會(huì)講解課件
- 郵政代理保險(xiǎn)營銷方案
- 高壓氧工作總結(jié)
- 丙烯精餾塔工藝設(shè)計(jì)
- 新能源電動(dòng)汽車駕駛技巧與安全注意事項(xiàng)
- 社會(huì)穩(wěn)定風(fēng)險(xiǎn)評(píng)估培訓(xùn)課件
- 譯林版八年級(jí)上冊(cè)初二英語全冊(cè)課時(shí)練(一練一練)
評(píng)論
0/150
提交評(píng)論