版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
編程題
1、
請(qǐng)編寫(xiě)函數(shù)firn,其功能是:找出IM整型二維數(shù)組中最大元素的值,并將此值返回調(diào)用函數(shù)。
注意:部分源程序在文件PRQGLC中。
請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)ftin的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句.
#include<stdio.h>
#defineM4
intfun(inta[][MJ)
main()
{intarr[2][M]={5,8,3,45,76,-4,12,82};voidNONOQ;
printf(nmax=%d\n'\fun(arr));
NONO();
)
voidNONO()
{/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
FILE*wf;
intarr[][M]={5,8,3,90,76,-4,12,82};
wf=fbpen("out.dat","w");
fprintf(wf,umax=%d\n",fun(arr));
fclose(wf);
)
【參考答案】
intfun(inta[][M])
(
intiJ,max=a[0][0];
for(i=0;i<2;i++)
for(j=0;j<M;j++)
if(max<a[i][j])
max=a[i][j];
returnmax;
)
2、
請(qǐng)編寫(xiě)函數(shù)碗,其功能是:找出2xM整型二維數(shù)組中最大元素的值,并將此值返回調(diào)用函數(shù).
注意:部分源程序在文件PROG1.C中.
請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)客,僅在函數(shù)fUn的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句.
#include<stdio.h>
#defineM4
intfun(inta[][M])
main()
{intarr[2][M]={5,8,3,45,76,-4,12,82};voidNONO();
printf(nmax=%d\n*\fun(arr));
NONO();
voidNONO()
{/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
FILE*wf;
intarr[][M1={5,8,3,90,76,-4,12,82);
wf=fopen(',out.dat,,,,'wu);
fprintf(wf,,'max=%d\n",fun(arr));
fclose(wf);
)
【參考答案】
intfun(inta[][M])
{
intiJ,max=a[0][0];
for(i=0;i<2;i++)
for(j=0;j<M;j++)
if(max<a[i][j])
max=a[i][j];
returnmax;
編寫(xiě)酸firn,其功能急求出倒皿此間能被7或11整除,但不能同時(shí)被7和11整除的所有整數(shù),荊騏放在新雕數(shù)
組中,通過(guò)碰回這些數(shù)的個(gè)乳
注意:部分原程臊文件PR0G1.C中.
許嫩動(dòng)主線mai/艇儆中艙何內(nèi)容,僅在由鄭in的佛號(hào)棚入你囑的若干語(yǔ)句.
#include<stdio.h>
voidfun(int*a,int*n)
main()
{intaa[1000],n,k;
voidNONO();
fun(aa,&n);
for(k=0;k<n;k++)
if((k+1)%10==0)print"。");
elseprintf(n%5d",aa[k]);
NONO();
voidNONO()
{/*本函數(shù)用于打開(kāi)文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
intaa[10001,n,k;
FILE*fp;
fp=fopen("out.dat,,,',wn);
fun(aa,&n);
for(k=0;k<n;k++)
if((k+1)%10==0)fprintf(fp,An“);
elsefprintf(fp,n%5dn,aa(k]);
fclose(fp);
}
【參考答案】
voidfun(int*a,int*n)
(
intij=0;
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;
}
規(guī)定輸入的字符串中只包含字母和俎編寫(xiě)函數(shù)血,其功能是:刪除字符串中所有的*號(hào).編寫(xiě)函數(shù)時(shí),不得使用保
言提供的字符串函數(shù).
例如,字符串中的內(nèi)容為:****A*BC*DEF*G*******,刪除后字符串中的內(nèi)容應(yīng)當(dāng)是:ABCDEFG.
注總部分源程、在文件PRQGLC中.
請(qǐng)勿在動(dòng)主函數(shù)血睜其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fim的花樣號(hào)中填入你編寫(xiě)的若干的語(yǔ)句.
#include<stdio.h>
voidfun(char*a)
main()
{chars[81];
voidNONO();
printf("Enterastring:\nM);gets(s);
fun(s);
printf(*Thestringafterdeleted:\n");puts(s);
NONO();
)
voidNONO()
{/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
FILE*in,*out;
inti;chars|81];
in=fopen("in.datn,',rn);
out=fopen("out.datn,nwn);
for(i=0;i<10;i++){
fscanf(in,M%sn,s);
fun(s);
fprintf(out,"%s\nn,s);
)
fclose(in);
fclose(out);
)
【參考答案】
voidfun(char*a)
(
intij=0;
for(i=0;a[i]!=,\0,;i++)
if(a[i]!=,**)
a[j++]=a[i];/*若不是要?jiǎng)h除的字符'則留下*/
a[j]=\0>;
}
編寫(xiě)函數(shù)fim,具功能息實(shí)現(xiàn)兩個(gè)字符串的連撤不要使用庫(kù)函數(shù)strcat),即把p2所指的字符串連接到pl所指的字符串的
后面。
例如,分別輸入下面兩個(gè)字符串:
FirstString—
SecondString
程序輸出;
FirstString—SecondString
注意:部分源程用在文件PRQG1,時(shí)。
諳勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fiin的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。
#include<stdio.h>
voidfun(charpl[],charp2[])
main()
{charsl[80],s2[40];voidNONO();
printf("Entersiands2:\nH);
scanf(',%s%s,',si,s2);
printf("sl=%s\n",si);
printf(',s2=%s\n",s2);
printf(Invokefun(sl,s2):\n");
fun(sl,s2);
printf(nAfterinvoking:\n");
printf(',%s\n,\si);
NONO();
voidNONO()
{/*本函數(shù)用于打開(kāi)文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
inti;
FILE*rf,*wf;
charsl|80|,s2|40|;
rf=fopen(',in.dat";,rn);
wf=fopen("out,datn,"wn);
for(i=0;i<10;i++){
fscanf(rf,n%sn,si);
fscanf(rf,M%sM,s2);
fun(sl,s2);
fprintf(wf,H%s\nn,si);
)
fclose(rf);
fclose(wf);
)
【參考答案】
voidfun(charpl[],charp2[])
{
intij;
for(i=0;pl[i]!='\0';i++);
forG=0;p2[j]!='\0';j++)
pl[i++]=p2[j];
pl[i]='\O';
某學(xué)生的記錄由學(xué)與捫課程成績(jī)和平均分組成,學(xué)號(hào)和8門(mén)課程的成綣已在主函數(shù)中給出,謫編寫(xiě)函數(shù)ftm,其功能
懸求出該學(xué)生的平均分,并放入記錄的av威員中.
例如,學(xué)生械綣懸85.5,76,69.5,85,91,72,64.5,87.5,則他的平均分應(yīng)為78耶.
注意:部分源程序在文件PRQGL時(shí).
請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)圓部位中境入你給寫(xiě)的若干卷句.
#include<stdio.h>
#defineN8
typedefstruct
{charnum[10];
doubles[N];
doubleave;
}STREC;
voidfun(STREC*a)
)
main()
{STRECs={"GA005”,85.5,76,69.5,85,91,72,64.5,87.5};
inti;
voidNONO();
fun(&s);
printf(/zThe%s'sstudentdata:\n/z,s.num);
for(i=0;i<N;i++)
printf("%4.lf\n”,s.s[i]);
printf(z/\nave=%7.3f\n”,s.ave);
N0N0();
)
voidNONO()
{/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
FILE*out;
inti,j;STRECs[10]={
{“GA005”,85.5,76,69.5,85,91,72,64.5,87.5},
{“GA001”,82.5,66,76.5,76,89,76,46.5,78.5},
{“GA002”,72.5,56,66.5,66,79,68,46.5,58.5},
{“GA003”,92.5,76,86.5,86,99,86,56.5,88.5),
{“GA004”,82,66.5,46.5,56,76,75,76.5,63.5},
{“GA006”,75.5,74,71.5,85,81,79,64.5,71.5},
{〃GA007〃,92.5,61,72.5,84,79,75,66.5,72.5},
{〃GA008〃,72.5,86,73.5,80,69,63,76.5,53.5},
{〃GA009〃,66.5,71,74.5,70,61,82,86.5,58.5},
{〃GA010〃,76,66.5,75.5,60,76,71,96.5,93.5},
);
out=fopen(〃out.dat〃,〃w〃);
for(i=0;i<10;i++){
fun(&s[i]);
fprintf(out,〃%7.3f\n〃,s[i].ave);
)
fclose(out);
)
【參考答案】
oidfun(STREC*a)
(
doubleave=0.0;
inti;
for(i=0;i<N;i++)
a->ave=a->ave+a->s[i];
/*求各門(mén)成績(jī)的總和*/
a->ave/=N;
/*求平均分*/
N名學(xué)生的成績(jī)已在主函數(shù)中放入一個(gè)帶頭節(jié)點(diǎn)的鏈表結(jié)構(gòu)中,城旨向鏈表的頭節(jié)點(diǎn).話編與必?cái)?shù)面,其功能是:求出
平均分,并由函數(shù)值返回。
例如,若學(xué)生的成績(jī)是:8576698591726487,則平均分應(yīng)當(dāng)是,78.625.
注意:部分源程用在文件PR0GLC中。
請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fim的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。
#include<stdio.h>
#include<stdlib.h>
#defineN8
structslist
{doubles;
structslist*next;
);
typedefstructslistSTREC;
doublefun(STREC*h)
STREC*creat(double*s)
{STREC*h,*p,*q;inti=0;
h=p=(STREC*)malloc(sizeof(STREC));p->s=0;
while(i<N)
{q=(STREC*)malloc(sizeof(STREC));
q->s=s[i];i++;p->next=q;p=q;
)
p->next=0;
returnh;
)
outlist(STREC*h)
{STREC*p;
p=h->next;printf(〃head〃);
do
{printf(,z->%4.lf/z,p->s);p=p->next;}
while(p!=0);
printf(〃\n\n〃);
)
main()
{doubles[N]={85,76,69,85,91,72,64,87},ave;
voidNONO();
STREC*h;
h=creat(s);outlist(h);
ave=fun(h);
printf(,zave=%6.3f\n/z,ave);
NONOO;
)
voidN0N0()
{/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
FILE*in,*out;
inti,j;doubles[N],ave;
STREC*h;
in=fopen(in.dat,r);
out=fopen(〃out.dat〃,〃w〃);
for(i=0;i<10;i++){
for(j=0;j<N;j++)fscanf(in,〃%lf,〃,&s[j]);
h=creat(s);
ave=fun(h);
fprintf(out,〃%6.31f\n〃,ave);
)
fclose(in);
fclose(out);
【參考答案】
doublefun(STREC*h)
(
doubleave=0.0;
STREC*p=h->next;
while(p!=NULL)
{ave=ave+p->s;
p=p->next;
)
returnave/N;
8、
編寫(xiě)函數(shù)fUn,其功能是:將所有大于1小于整數(shù)m的非素?cái)?shù)存入xx所指數(shù)組中,非素?cái)?shù)的個(gè)數(shù)通過(guò)施回。
例如,若輸入17,則應(yīng)輸出:46891012141516.
注意:部分源程序在文件PRQG1.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)firn的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。
ttinclude<stdio.h>
voidfun(intm,int*k,intxx[])
main()
(
intm,n,zz[100];
voidNONO();
printf(z,\nPleaseenteranintegernumberbetween10and100:〃);
scanf(〃%d〃,&n);
fun(n,&m,zz);
printf(/z\n\nThereare%dnon-primenumberslessthan%d:〃,m,n);
for(n=0;n<m;n++)
printf(〃\n%4d〃,zz[n]);
NONO();
)
voidNONOO
(
/*請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開(kāi)文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),
輸出數(shù)據(jù),關(guān)閉文件。*/
intm,n,zz[100];
FILE*rf,*wf;
rf=fopen(〃in.dat〃,〃r〃);
wf=fopen(〃out.dat〃,〃w〃);
fscanf(rf,〃%d〃,&n);
fun(n,&m,zz);
fprintf(wf,〃%d\n%d\n〃,m,n);
for(n=0;n<m;n++)
fprintf(wf,zz%d\n/z,zz[n]);
fclose(rf);
fclose(wf);
)
【參考答案】
voidfun(intm,int*k,intxx[])
(
inti,j,n=O;
for(i=4;i<m;i++)/*找出大于1小于整數(shù)m的非素?cái)?shù)*/
{for(j=2;j<i;j++)
if(i%j=0)break;
if(j<i)xx[n++]=i;
)
*k=n;/*返回非素?cái)?shù)的個(gè)數(shù)*/
9、
編寫(xiě)函數(shù)fbn,其功能是:求ss所指字符串中指定字符的個(gè)數(shù),并返回此值。
例如,若輸入字符串123412132,輸入字符為1,則輸出3。
注意:部分源程序在文件PR0GLC中。
請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。
#include<stdio.h>
#include<string.h>
#defineM81
intfun(char*ss,charc)
main()
{chara[M],ch;
voidNONO();
printf(AnPleaseenterastring:'*);gets(a);
printfCAnPleaseenterachar:1');ch=getchar();
printfC^nThenumberofthecharis:%d\nn,fun(a,ch));
NONO();
)
voidNONO()
{/*本函數(shù)用于打開(kāi)文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
inti;
FILE*rf,*wf;
chara[M],b[M],ch;
rf=fopen(',in.dat,\',rH);
wf=fopen(,'out.dat',,"wu);
for(i=0;i<10;i++){
fscanf(rf,M%s",a);
fscanf(rf,M%sM,b);
ch=*b;
fprintf(wf,"%c=%d\nM,ch,fun(a,ch));
)
fclose(rf);
fclose(w0;
)
【參考答案】
intfun(char*ss,charc)
(
inti=0;
for(;*ss!=,\0,;ss4-+)
if(*ss==c)
i++;/*求出ss所指字符串中指定字符的個(gè)數(shù)*/
returni;
}
10、
編寫(xiě)函數(shù)fim,其功能是:計(jì)算課程的平均分,結(jié)果作為函數(shù)值返回.
例如:若有5門(mén)課程的成績(jī)是:90.5,72,80,61.5,55,則函數(shù)的值為:71.80.
注意:部分源程序在文件PRQG1.C中.
詰勿敵動(dòng)主函數(shù)man由其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fim的花括號(hào)中的填入你編寫(xiě)的若干語(yǔ)句.
#include<stdio.h>
floatfun(float*a,intn)
main()
{floatscore[30J={90.5,72,80,61.5,55},aver;
voidNONO();
aver=fun(score,5);
printf(H\nAveragescoreis:%5.2f\nn,aver);
NONO();
)
voidNONO()
{/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
FILE*fp,*wf;
inti,j;
floataver,score[5];
fp=fopen(',in.dat,,,',r");
wf=fopen("\oul.dat"Jw");
for(i=0;i<10;i++){
for(j=0;j<5;j++)fscanf(fp,"%f,”,&score[jD;
aver=fun(score,5);
fprintf(wf,n%5.2f\nn,aver);
)
fclose(fp);
fclose(wf);
)
【參考答案】
floatfun(float*a,intn)
(
inti;
floatav=0.0;
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)械縱中,請(qǐng)朝函數(shù)狐具功能懸把分軟
髓的學(xué)生數(shù)據(jù)放在啾指的數(shù)組中.注意:分颼高的學(xué)生可能不止一個(gè),函數(shù)返回分?jǐn)?shù)最高的學(xué)生的人數(shù).
注新部分源程用在文件PRQG1,時(shí).
陸勿設(shè)動(dòng)主畫(huà)物nain和其它所教中的任何內(nèi)容,僅在函數(shù)fim的花括號(hào)中填入你縮寫(xiě)的若干語(yǔ)句.
#include<stdio.h>
#defineN16
typedefstruct
{charnum[10];
int
}STREC;
intfun(STREC*a,STREC*b)
main()
{STRECs[N]={{nGA05M,85},{nGA03n,76},{HGA02n,69},{nGA04n,85},
{“GA01”,91},{“GA07”,72},{“GA08”,64},{“GA06”,87},
{uGA015,',85},{',GA013n,91},{,,GA012n,64},{',GA014,1,91},
{"GAO11",77},[“GAO17”,64},{“GAO18”,64},{”GAO16”,72}};
STRECh[N];
inti,n;FILE*out;
n=fun(s,h);
printfC'The%dhighestscore:\nu,n);
for(i=0;i<n;i++)
printf("%s%4d\n",h[i].num,h[i].s);
printf(AnM);
out=fopen(',out.dat",',wu);
fprintf(out,"%d\n”,n);
for(i=0;i<n;i++)
fprintf(out,n%4d\n",h[i].s);
fclose(out);
)
【參考答案】
intfun(STREC*a,STREC*b)
(
intiJ=0,max=a[0].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];
/*找出成績(jī)與max相等的學(xué)生的記錄,存入結(jié)構(gòu)體b中*/
returnj;
/*返回最高成績(jī)的學(xué)生人數(shù)*/
航縱孵符耕只包含耨種號(hào).潮^曲勤加其璇同「早解前導(dǎo)削號(hào)之外,解中舵*吃部
除磁馳斛襦期僭言海孵褲函況
例如物串例隨為;*楙*A*BC*DEF*G*******,W賒后鐲釉的檎噌是;搟**ABCDEFG,
#include<stdio.h>
voidfun(char*a)
(
/*以下代碼僅供參考*/
inti=0,k;
while(a[i]=='*')i++;
k=i;
while(a[i]!30)/*以下程序段實(shí)現(xiàn)非*字符前移*/
a[k]=W;
)
main()
{chars[81];voidNONO();
printf("Enterastring:\n");gets(s);
fun(s);
printf('Thestringafterdeleted:\n");puts(s);
NONO();
)
voidNONO()
{/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
FILE*in,*out;
inti;chars[81];
in=fopen("in.dat,V,rn);
out=fopen(',out.dat',,nw,');
for(i=0;i<10;i++){
fscanf(in,"%sH,s);
fun(s);
fprintf(out,,,%s\nM,s);
)
fclose(in);
fclose(out);
)
【參考答案】
voidfun(char*a)
(
inti=0;
char*p=a;
while(*p&&*p=='*')
a[i]=*p;
i++;
P++;
}
while(*p)
(
if(*p!='*')
{a[i]=*p;i++;}
P++;
}
a[i]='\O';
)
13、
編寫(xiě)函數(shù)而dftin(char*pp口),統(tǒng)計(jì)在斷指的字符串中‘a(chǎn)'到'/26個(gè)小寫(xiě)字母各自出現(xiàn)的次數(shù),并依次放在pp所
指的教組中.
例如,當(dāng)輸入字符串a(chǎn)bcdef琳)cdeabc后,程序的輸出結(jié)果應(yīng)該是:
33322110000000000000000000
#include<stdio.h>
#include<string.h>
voidfun(char*tt,intpp[|)
main()
{charaa[1000J;
intbb[26],k;
voidNONO();
printf("\nPleaseenteracharstring:");scanf("%s”,aa);
fun(aa,bb);
for(k=0;k<26;k++)printf(M%d”,bb[k]);
printf("Xn");
NONO();
voidNONO()
{/*本函數(shù)用于打開(kāi)文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
charaa[1000];
intbb[26],k,i;
FILE*rf,*wf;
rf=fopen(nin.datM,nrH);
wf=fopen("out.dat","w");
for(i=0;i<10;i++){
fscanf(rf,aa);
fun(aa,bb);
for(k=0;k<26;k++)fprintf(wf,n%d",bb[k]);
fprintf(wf,n\nn);
)
fclose(rf);
fclose(wf);
)
【參考答案】
voidfun(char*tt,intpp[])
(
inti;
for(i=0;i<26;i4-+)
pp[i]=0;/*初始化pp數(shù)組各元素為0*/
for(;*tt!=,\0f;tt++)
if(*tt>=,a'&&*tt<=,z)
pp[*tt-a]++;
)
14、
規(guī)定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫(xiě)函數(shù)血,其功能是:將字符串尾部的*號(hào)全部刪除,前面和中間的*號(hào)不
動(dòng).
例如,字符串中的內(nèi)容為:****A*BC*DEF*G*******,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是:****A*BC*DEF*G.在編寫(xiě)函
數(shù)時(shí),不得使用C語(yǔ)言提供的字符串函數(shù).
Sinclude<stdio.h>
voidfun(char*a)
main()
{chars[81];voidNONO();
printf("Enterastring:\nz/);gets(s);
fun(s);
printf(,zThestringafterdeleted:\n,z);puts(s);
N0N0();
)
voidNONO()
{/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
FILE*in,*out;
inti;chars[81];
in=fopen(in.dat,r);
out=fopen(〃out.dat〃,〃w〃);
for(i=0;i<10;i++){
fscanf(in,〃%s〃,s);
fun(s);
fprintf(out,〃%s\n〃,s);
)
fclose(in);
fclose(out);
)
【參考答案】
voidfun(char*a)
(
while(*a!='\Of)
a++;
a-;/*指針a指向字符串的尾部*/
while(*a==,*')
a-;/*指針a指向最后,個(gè)字母*/
*(a+l)='\0';/*在字符串最后加上結(jié)束標(biāo)志符*/
)
15、
職能是:出游符串瞇廝(不船用喏言提躺游符瞇翻堿),堿返回魁胛符我
闞個(gè)鐲長(zhǎng)助胴,贖回第一個(gè)都胤
例如輸入beijing<CR>shanghai<CR>(<CR>為回車(chē)圈),曲軟將返班hanghai.
#include<stdio.h>
char*fun(char*s,char*t)
(
)
main()
{chara[20],b[20];
voidNONO();
printf("Input1thstring:");
gets(a);
printf("Input2thstring:z,);
gets(b);
printf("%s\n”,fun(a,b));
NONO();
)
voidNONO()
{/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
FILE*fp,*wf;
inti;
chara[20],b[20];
fp=fopenC'in.dat〃,〃r〃);
wf=fopen(z,out.dat〃,〃w〃);
for(i=0;i<10;i++){
fscanf(fp,〃%s%s〃,a,b);
fprintf(wf,〃如\n”,fun(a,b));
)
fclose(fp);
fclose(wf);
)
【參考答案】
char*fun(char*s,char*t)
(
inti,j;
for(i=0;s[i]!='()&++);/*求字符串的長(zhǎng)度*/
for(j=0;t[j]!='\0';j++);
if(i<=j)/*比較兩個(gè)字符串的長(zhǎng)度*/
returnt;/*函數(shù)返回較長(zhǎng)的字符串,若兩個(gè)字符串長(zhǎng)度相等,則返回第1個(gè)字符串
*/
else
returns;
)
16、
牲猊鼬耨殿麟,楣勝僦脅郵黏蛛微黜,請(qǐng)柄漱趾W:漱蛔
落期蟬例/靛孵號(hào)畫(huà)改輜九智娥鉗能學(xué)號(hào),蹄博幡號(hào)I辨,?-1.慚
傭拜神除觸軟覬卿).
#include<stdio.h>
#include<string.h>
#defineN16
typedefstruct
{charnum[10];
ints;
}STREC;
STRECfun(STREC*a,char*b)
)
main()
{STRECs[N]={{nGA005M,85},{nGA003n,76},{,,GA002H,69},{HGA004M,85},
{nGAOOr\91},{nGA007n,72},{nGAOO8M,64},{nGA006n,87),
{"GAO15”,85},{“GAO13”,91},{“GAO12”,64},{“GAO14*91},
{“GA011”,77},{“GA017”,64},{“GA018”,64},{“GA016”,72}};
STRECh;
charm[10];
inti;FILE*out;
printf(*Theoriginaldata:\nn);
for(i=0;i<N;i++)
{if(i%4==0)printf('\nu);
n
printf("%s%3d,s[i].numts[i].s);
)
printf('\n\nEnterthenumber:");gets(m);
h=fun(s,m);
printf('Thedata:");
printf(An%s%4d\n",h.num,h.s);
printf(AnH);
out=fopen("out.dat'\"wM);
h=fun(s,nGAO13M);
fprintf(out,M%s%4d\nH,h.num,h.s);
fclose(out);
}
【參考答案】
STRECfun(STREC*a,char*b)
(
inti;
STRECstr={”\O”,-l};/*若沒(méi)找到指定的學(xué)號(hào),在結(jié)構(gòu)體變量中給學(xué)號(hào)置空串,給成績(jī)置一
1*/
for(i=0;i<N;i++)
if(strcmp(a[i].num,b)=0)/*找到指定學(xué)號(hào)的學(xué)生數(shù)據(jù)*/
str=a[i];
str=a[i];
returnstr;/*返回學(xué)生記錄*/
}
17、
螂加mbw-w&f,轆槌赫肝蝴懈
減械械鼾處躺懈??舶酬越
聊,當(dāng)例5,問(wèn)就,跚i邈娠c=5Wl
#include<stdio.h>
voidfun(inta,intb,long*c)
main()
{inta,b;longc;
voidNONO();
printf(nInputa,b:n);scanf("%d,%d”,&a,&b);
fun(a,b,&c);
printf('Theresultis:%d\n",c);
NONO();
)
voidNONO()
{/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
FILE*rf,*wf;
inti,a,b;longc;
rf=fopen(uin.dat';Mr");
wf=fopen(,'out.dat,,,,'wn);
for(i=0;i<10;i++){
fscanf(rf,H%d,%d",&a,&b);
fun(a,b,&c);
fprintf(wf,na=%d,b=%d,c=%ld\nu,a,b,c);
)
fclose(rf);
fclose(w0;
)
【參考答案】
voidfun(inta,intb,long*c)
(
*c=b%10+(a/10)*l0+(b/10)*100+(a%10)*1000;
)
18
編寫(xiě)函數(shù)firn,其功能是:利用下面的簡(jiǎn)單迭代方法求方程cos(x)—x=0的一個(gè)實(shí)根.
%=cos1)
迭代步驟如下:
(1)取幻初值為0.0;
(2)x0=xl,將xl的值賦給xO;
(3)xl=cos(x0),求出一個(gè)新的xl;
(4)若X。-xl的絕對(duì)值小于0.000001,執(zhí)行步聚(5),否則執(zhí)行步聚(2);
(5)所求xl就是方程cos(x)—x=0的一個(gè)實(shí)根,作為函數(shù)值返回.
程序烙給中結(jié)更Rnnt=D7祀DM.
#include<math.h>
#include<stdio.h>
doublefun()
main()
(
voidNONO();
printf("Root=%f\n",fun());
NONO();
)
voidNONO()
{/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
FILE*wf;
wf=fopen(,'out.dat',,"wn);
fprintf(wf,fun());
fclose(wf);
)
【參考答案】
doublefun()
(
doublexO,xl;
x1=0.0;
do
(
x0=x1;
xl=cos(x0);
}while(fabs(xO-xl)>=le-6);
returnxl;
)
18、
規(guī)定輸入的字符串中只包含錮和號(hào)請(qǐng)編寫(xiě)函數(shù)加頻能懸將字符串中的前導(dǎo)*號(hào)全部移到字符串的尾鼠
例如,字符串中的內(nèi)容為:*******A*BC*DEF*G****,移動(dòng)后,字符串中的內(nèi)容應(yīng)當(dāng)懸A*BC*DEF*G***********.
在編鋤時(shí),不雕用笳言雕的字符串函船
#include<stdio.h>
voidfun(char*a)
main()
{chars[81];intn=0;voidNONO();
printf("Enterastring:\n");gets(s);
fun(s);
printf('Thestringaftermoveing:\nM);puts(s);
NONO();
)
voidNONO()
{/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
FILE*in,*out;
inti;chars[81];
in=fopen(,,in.dat,,,Y,);
out=fopen("out.dat",nw");
for(i=0;i<10;i++){
fscanf(in,"%s",s);
fun(s);
fprintf(out,H%s\nM,s);
}
fclose(in);
fclose(out);
)
【參考答案】
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++;
}
while(*p)/*將前導(dǎo)*號(hào)后的字符傳遞給a*/
{
a[i]=*p;i++;p++;
}
while(n!=0)
{
a[i]='*';i++;n-;
)
a[i]-\0';
)
19、
規(guī)定輸入的字符串中只包含字母和*號(hào).請(qǐng)編寫(xiě)函數(shù)fon,具功能是:將字符串中的前導(dǎo)*號(hào)全部移到字符串的尾部.
例如,字符串中的內(nèi)容為:*******A*BC*DEF*G****,移動(dòng)后,字符串中的內(nèi)容應(yīng)當(dāng)是:A*BC*DEF*G***********.
在編寫(xiě)函數(shù)時(shí),不得使用C語(yǔ)言提供的字符串函數(shù).
#include<stdio.h>
voidfun(char*a)
)
main()
{chars[81];intn=0;voidNONO();
printf("Enterastring:\n");gets(s);
fun(s);
printf(*Thestringaftermoveing:\nn);puts(s);
NONO();
)
voidNONO()
{/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
FILE*in,*out;
inti;chars[81];
in=fopen(,,in.dat,,,T,);
out=fopen("out.datn,"w");
for(i=0;i<10;i++){
fscanf(in,"%sM,s);
fun(s);
fprintf(out,"%s\n”,s);
}
fclose(in);
fclose(out);
)
【參考答案】
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++;
)
while(*p)/*將前導(dǎo)*號(hào)后的字符傳遞給a*/
(
a[i]=*p;i++;p++;
)
while(n!=0)
{
a[i]-*';i++;n-;
)
a[i]-\0";
)
20
聯(lián)虢物懶眥瞬帶蝌微B中,?幀想糠肝酗懶
臧鐮腑躺處觸掰他微械楙料處
胸,組=45,b=lM酬嫡f(shuō)ec=151
#include<stdio.h>
voidfun(inta,intb,long*c)
main()
{inta,b;longc;
voidNONO();
printf(nInputa,b:n);
scanf(n%d,%dM,&a,&b);
fun(a,b,&c);
printf(°Theresultis:%ld\nn,c);
NONO();
}
voidNONO()
{/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
FILE*rf,*wf;
inti,a,b;longc;
rf=fopen(uin.dat';nrH);
wf=fopen(',out.dat,,,"wn);
for(i=0;i<10;i++){
fscanf(rf,,,%d,%d,',&a,&b);
fun(a,b,&c);
fprintf(wf,,,a=%d,b=%d,c=%ld\nu,a,b,c);
)
fclose(rf);
fclose(wf);
)
【參考答案】
voidfun(inta,intb,long*c)
*c=a/10+(b%10)*10+(a%10)*100+(b/10)*1000;
21、
罩寫(xiě)函數(shù)firn,其功能是計(jì)算:
s=Jin⑴+ln(2)+ln⑶+……+ln(㈤5作為函數(shù)值返回.
在C語(yǔ)言中可調(diào)用log(n)函數(shù)求ln(n)□lo唾數(shù)的引用說(shuō)明為:doublelog(doublex).
列如,若m的值為2。,則fun函數(shù)宿為6.506583。
#include<math.h>
#include<stdio.h>
doublefun(intm)
)
main()
(
voidNONO();
printf(u%f\nu,fun(20));
NONO();
}
voidNONO()
{/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
FILE*fp,*wf;
inti,n;
doubles;
fp=fopen("in.datn,nr");
wf=fbpen("out.dat","w");
for(i=0;i<10;i++){
fscanf(fp,"%cT,&n);
s=fun(n);
fprintf(wf,H%f\nn,s);
}
fclose(fp);
fclose(wf);
}
【參考答案】
doublefun(intm)
(
inti;
doubles=0.0;
fbr(i=l;i<=m;i++)
s=s+log(i);/*計(jì)算s=lo(l)+ln(2)+ln(3)+…+ln(m)*/
returnsqrt(s);/*對(duì)s求平方根并返回*/
)
22、
螂麗解怫含哪號(hào),蠲嬲幗聯(lián)齷
W.膀潞即鐲醐颼蟋柵了淵腺啾慎膀檢燈將鐘銅號(hào)舲機(jī)蹄
鼬不微牖雌螂BB,
魏慚****A*BC*DPG******嘛,掰軸擷瑞A*BC*DEF*G.
#include<stdio.h>
voidfun(char*a,intn,inth,inte)
)
main()
{chars[81],*t,*f;intm=0,tn=O,fn=0;voidNONO();
printf("Enterastring:\n");gets(s);
t=f=s;
while(*t){t++;m++;}
t-;
while(*t==*r){t—;tn++;}
while(*f=**'){f++;fn++;}
fun(s,m,fn,tn);
printf(*Thestringafterdeleted:\n");puts(s);
NONO();
)
voidNONO()
{/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
FILE*in,*out;
inti;chars[81],*t,*f;
intm=0,tn=O,fn=O;
in=fopenC'in.dat'VY");
out=fopen("out.dat",nw");
for(i=0;i<10;i++){
fscanf(in,,,%sM,s);
t=f=s;
m=0;tn=O;fn=O;
while(*t){t++;m++;}
while(*t=='*'){t--;tn++;}
while(*f='*'){f++;fn++;}
fun(s,m,fn,tn);
fprintf(out,"%s\n",s);
)
fclose(in);
fclose(out);
)
【參考答案】
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í)*/
}
23、
函數(shù)血的功能是將蜥指字符串中下標(biāo)為儡數(shù)的字符刪除,剩余字符形成的新串放在慚指數(shù)組中。
例如,當(dāng)新指字符串中的內(nèi)容為"ABCDEFGHIJK"時(shí),在儕微組中的內(nèi)容應(yīng)急"BDF肌
\、—&fI-、laIa*———.—I
#include<stdio.h>
#include<string.h>
voidfun(char*s,chart[])
main()
(
chars[100Lt[100];
voidNONO();
printf(H\nPleaseenterstringS:n);scanf("%s",s);
fun(s,t);
printf("\nTheresultis:%s\nu,t);
NONO();
)
voidNONO()
{/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
chars[100Lt[100];
FILE*rf,*wf;
inti;
rf=fopen("in.dat"Jr”);
wf=fopen(out.dat","wn);
for(i=0;i<10;i++){
fscanf(rf,"%s",s);
fun(s,t);
fprintf(wf,"%s\n",t);
)
fclose(rf);
fclose(wf);
)
【參考答案】
voidfun(char*s,chart[J)
(
inti,j=O,k=strlen(s);/*k為字符串的長(zhǎng)度*/
for(i=l;i<k;i=i+2)/*將s所指字符串中下標(biāo)為奇數(shù)的字符存入t所指字符串中*/
t[j++]=s[i];
t[j]=\0';
}
24、
蒯加欺據(jù)榆、b中卿酈躥撇鋪舫疆;版神)制ft
雕源在翹曲百毓個(gè)處b神橫舲餓麻轆建而十拗]也上
瓶當(dāng)a=45,b=12,跚翅垢c=2415.
#include<stdio.h>
voidfun(inta,intb,long*c)
main()
{inta,b;longc;voidNONO();
printf("Inputa,b:n);
scanf(u%d%dn,&a,&b);
fun(a,b,&c);
printf(°Theresultis:%ld\nn,c);
NONO();
)
voidNONO()
{/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
FILE*rf,*wf;
inti,a,b;longc;
rf=fopen("in.dat'\nrH);
wf=fopen("out.dat","wn);
for(i=0;i<10;i++){
fscanf(rf,n%d,%d",&a,&b);
fun(a,b,&c);
fprintf(wf,,,a=%d,b=%d,c=%ld\n'\a,b,c);
fclose(rf);
fclose(wf);
)
【參考答案】
voidfun(inta,intb,long*c)
(
*c=a%10+(b/10)*10+(a/10)*100+(b%10)*1000;
)
25
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 跨境包裹運(yùn)輸協(xié)議2025
- 朝陽(yáng)單招考試題目及答案
- 礦山救護(hù)工試題及答案
- 2025-2026九年級(jí)道德與法治上學(xué)期期末測(cè)試
- 衛(wèi)生院應(yīng)急值守管理制度
- 中學(xué)生教室衛(wèi)生管理制度
- 落實(shí)美發(fā)店衛(wèi)生管理制度
- 行車(chē)室衛(wèi)生管理制度
- 鄉(xiāng)鎮(zhèn)衛(wèi)生院廉政管理制度
- 寢室值日衛(wèi)生制度
- 四川省遂寧市2026屆高三上學(xué)期一診考試英語(yǔ)試卷(含答案無(wú)聽(tīng)力音頻有聽(tīng)力原文)
- 福建省寧德市2025-2026學(xué)年高三上學(xué)期期末考試語(yǔ)文試題(含答案)
- 建筑施工行業(yè)2026年春節(jié)節(jié)前全員安全教育培訓(xùn)
- 2026屆高考語(yǔ)文復(fù)習(xí):小說(shuō)人物形象復(fù)習(xí)
- 2026及未來(lái)5年中國(guó)防病毒網(wǎng)關(guān)行業(yè)市場(chǎng)全景調(diào)查及發(fā)展前景研判報(bào)告
- 2026年山東省煙草專賣(mài)局(公司)高校畢業(yè)生招聘流程筆試備考試題及答案解析
- 八年級(jí)下冊(cè)《昆蟲(chóng)記》核心閱讀思考題(附答案解析)
- 煤礦復(fù)產(chǎn)安全培訓(xùn)課件
- 2025年中職藝術(shù)設(shè)計(jì)(設(shè)計(jì)理論)試題及答案
- 2026屆高考?xì)v史二輪突破復(fù)習(xí):高考中外歷史綱要(上下兩冊(cè))必考??贾R(shí)點(diǎn)
- 鐵路交通法律法規(guī)課件
評(píng)論
0/150
提交評(píng)論