《【编程题库】2010年C语言考试题库》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1.给定程序中,函数FUN的功能是:计算出带有头接点的单向链表中各结点数据域之和作为函数值返回。ttinclude
1sum=%d
2*,fun(3));head}SLIST*creatlist(inta[]){SLIST*h,*p,*q;inti;h=p=(SLIST*)malloc(sizeof(SLIST));for(i=0;i
3");else{printf(*
4Head");do{printf("一>%d”,p->data);p=p->next;}while(p!=NULL);printf("->End
5");2.给定程序中,函数FUN的功能是:求出形参SS所指字符串数组中最长字符串的长度,其余字符串左边用字符・补齐,使其与最长的字符串等长。字符串数组中工有M个字符串,且串长くN。^include
6^defineM5#defineN20voidfun(char(*ss)[N]){inti,j,k=0,n,m,len;for(i=0;i 7Theoriginalstringsare: 8");for(i=0;i 9",ss[i]);printf(' 10");fun(ss);printf(" 11Theresult: 12*);for(i=0;i 13",ss[i]);3.人员记录由编号和出生年,月,日组成,N名人员的数据已在主函数中存入结构体数组std且编号唯一。函数fun的功能是;找出指定编号人员的数据,作为函数值返回,有主函数输出,若指定编号不存在,返回数据中的编号为空串。#include 14}STU;*******/1fun(STU*std,char*num)STU{inti;STUa={"〃,9999,99,99};for(i=0;i 15Notfound! 16");elseprintf(^XnSucceed! 17");printf("%s%d-%d-%d 18^,p.num,p.year,p.month,p.day);4.给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序链接。函数fun的功能:删除链表中数据域值相同的结点,使之保留一个。[include 19{q=p->next;while(q!=NULL){if(p->dataニニqー〉data){p-〉next二q-〉next;*******/free(1);q*******/q=p->2;next)else{p=q;*******/q=q->3;next)SLIST*creatlist(int*a){SLIST*h,*p,*q;inti;h=p=(SLIST*)malloc(sizeof(SLIST));for(i=0;i 20ThelistisNULL! 21*);else{printf(" 22Head");do{printf("ー>%d”,p-〉data);p=pー〉next;}while(p!=NULL);printf("->End 23");))main(){SLIST*head;inta[N]={l,2,2,3,4,4,4,5};head=creatlist(a);printf(' 24Thelistbeforedeleting: 25");outlist(head);fun(head);printf(" 26Thelistafterdeleting八n");outlist(head);5.函数fun的功能是进行数字字符转换。若形参ch中是数字字符‘0~9',则’0‘转换成’9',’1'转换成'8',’2'转换成‘ア…'9'转换成‘。’;若是其他字符则保持不变;并将转换后的结果作为函数值返回.#include 27*******/if(ch〉ニ'〇'&&_2)chくヨ9'*******/return'9'-(ch-3):'0'returnch;)main(){charcl,c2;printf(" 28Theresult: 29");cl='2';c2=fun(cl);printf("cl=%cc2=%c 30",cl,c2);cl='8';c2=fun(cl);printf("cl=%cc2=%c 31",cl,c2);cl二'a';c2二fun(cl);printf("cl=%cc2=%c 32",cl,c2);6.给定程序中,函数fun的功能是:对形参ss所指字符串数组中的M字符串按长度由短到长进行排序。SS所指字符串数组中共有M个字符串,且串长くN#include 33}}main(){chars[M][N]={*shanghai*,“guangzhou,“beijing","tianjing","cchongqing”}inti;printf(" 34Theoriginalstringsare: 35");for(i=0;i 36〃,ss[i]);printf< 37");fun(ss);printf(" 38Theresult: 39");for(i=0;i 40”,ss[i]);7.函数FUN的功能是:从三个形参a,b,c中找出中间的哪个数,作为函数值返回。例如,当a=3,b=5,c=4时,中数为4〇#include 41Themiddlenumberis:%d 42”,r);)8.给定程序中,函数FUN的功能是:统计出带有头结点的单向链表中接点的个数,存放在形参N所指的存储单元中。#include 43)main(){SLIST*head;inta[N]={12,87,45,32,91,16,20,48},num;head=creatlist(a);outlist(head);*******/fun(head,3);&numprintf(" 44number=%d 45”,num);)SLIST*creatlist(inta[]){SLIST*h,*p,*q;inti;h=p=(SLIST*)malloc(sizeof(SLIST));for(i=0;i 46");else{printf(" 47Head");do{printf〈ー〉%d”,p->data);p=p->next;}while(p!=NULL);printf('ー〉End 48");}}7.给定程序的功能是:调用函数FUN将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回值为〇〇在复制的过程中,把复制的内容输出到终端屏幕。主函数中源文件名房子变量sfname中,目标文件名放在变量tfname中。^include 49Thedatainfile: 50"); 51ch=fgetc(fs);while(!feof(2))fs{putchar(ch);fputc(ch,3);ftch=fgetc(fs);}fclose(fs);fclose(ft);printf(" 52 53");return1;}.main(){charsfname[20]="myfilel”,tfname[20]="myfile2”;FILE*myf;inti;charc;myf=fopen(sfname,"w");printf(" 54Theoriginaldata: 55");for(i=l;i<30;i++){c='A'+rand()%25;fprintf(myf,"%c",c);printf("%c",c);}fclose(myf);printf(" 56 57");if(fun(sfname,tfname))printf("Succeed!");elseprintf("Fail!");7.给定程序中,函数FUN的功能是:在形参S所指字符串中的每个数字字符之后插入一个・。例如,形参S所指字符串为:def35adh3kjsdf7.执行结果为:def3*5*adh3*kjsdf7*#include 58s[j+l]-**;i=i+l;)}main(){chars[80]="ba3a54cd23a”;printf(" 59Theoriginalstringis:%s 60",s);fun(s);printf(" 61Theresultis:%s 62",s);)7.给定程序中,函数FUN的功能是:将形参STD所指结构体数组中年龄最大者的数据作为函数值返回,并将main函数输出。ttinclude 63Theresult: 64");printf(" 65Name:%s,Age:%d 66",3,max.age);max.name}8.给定程序中,函数fun功能是:在带有头结点的单向链表中,查找数据域中为CH的结点,找到后通过函数值返回该结点在链表中所处的顺序号;若不存在值为CH的结点,函数返回〇值。ttinclude 67structlist*next;}SLIST;SLIST*creatlist(char*);voidoutlist(SLIST*);intfun(SLIST*h,charch){SLIST*p;intn=0;p=h->next;while(p!=1)NULL{n++;if(p->data==ch)return2;nelsep=p->next;}return0;)main(){SLIST*head;intk;charch;chara[N]={,m,,,p,,,g,,,a,,,w,,,x,,,r,,,d,};head=creatlist(a);outlist(head);printf("Enteraletter:");scanf("%c",&ch);k=fun(_3_);head,chif(k==0)printf(" 68Notfound! 69");elseprintf("Thesequencenumberis:%d 70",k);}SLIST*creatlist(char*a){SLIST*h,*p,*q;inti;h=p=(SLIST*)malloc(sizeof(SLIST));for(i=0;i 71ThelistisNULL! 72");else{printf(" 73Head");do{printf(“ー〉%c”,pー〉data);p=p->next;}while(p!=NULL);printf("->End 74");}) 757.给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结素的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数readText和writeText实现.^include 76");exit(0);}WriteText(fp);fclose(fp);if((fp=fopen("myfile4.txt","r"))ニニNULL){printf("openfail!! 77");exit(0);}ReadText(fp);fclose(fp);)voidWriteText(FILE1)*fw{charstr[81];printf(" 78Enterstringwith-1toendハn");gets(str);while(strcmp(str,"-1")!=0){fputs(2,fw);fputs(" 79",fw);strgets(str);voidReadText(FILE*fr){charstr[81];printf(" 80Readfileandoutputtoscreen: 81");fgets(str,81,fr);while(!feof(fr)){printf3);strfgets(str,81,fr);})8.给定程序中,函数FUN的功能是:有NXN矩阵,根据给定的m(m〈=N) 82值,将每个元素中的值均右移m个位置,左边置为〇〇例如,N=3,m=2,有下列矩阵123001456程序执行结果为004789007ttinclude 83Theoriginalarray: 84*);for(i=0;i 85");}printf(*Inputm(m<=%d):",N);scanf("%d",&m);fun(t,m);printf(" 86Theresultis: 87");for(i=0;i 88");7.函数FUN的功能是;把形参a所指数组中的最大值放杂a[〇]中,接着求出a所指数组中的最小值防在a[l]中;再把a所指数组元素中的次大值a[2]中,把a所指数组的数据最初排列为:1,4,2,3,9,6,5,8,7,则按规则移动后,数据排列为:9,1,8,2,7,3,6,4,5。形参n中存放a所指数组中数据的个数。^include 89voidfun(int1,intn)*a{inti,j,max,min,px,pn,t;for(i=0;i 90Theoriginaldata八n");for(i=0;i 91");fun(b,N);printfl 92Thedataaftermoving: 93");for(i=0;i 94");7.给定程序中,函数FUN的功能是;求SS所指字符串数组中长度最厂的字符串所在的行下标,作为函数值返回,并把其串长防在形参n所指变量中。SS所指字符串数组中共有M个字符串,且串长くN.ttinclude 95lenif(len>*n){*n=3;lenk=i;)}return(k);}main(){charssLMJLNJ={shanghai,guangzhou,beijing,tianjmg,cchongqmgつ;intn,k,i;printf(" 96Theoriginalstringsare: 97");for(i=0;i 98Thelengthoflongeststringis:%d 99”,n);printf(" 100Thelongeststringis:%s 101”,ss[k]);7.函数FUN的功能是:逆置数组元素中的值。例如:若a所指数组中的数据依次为:1,2,3,4,5,6,7,8,9,则逆置后依次为:9,8,7。6,5,4,3,2,1»形参n给出数组中数据的个数。4include 102Theoriginaldata: 103");for(i=0;i<9;i++)printf(*%4d",b[i]);printf(" 104");fun(b,9);printf(" 105Thedataafterinvert: 106"); 107for(i=0;i<9;i++)printf("%4d",b[i]);printf(" 108");7.给定程序中,函数FUN的功能是:在形参S所指字符串中寻找与参数C相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则函数不做任何处理。例如,S所指字符串:baacda,c中的字符为:a,执行后S所指字符串为:baaaacdaa#include 109Thestring:%s 110,s);printf( 111Inputacharacter:つ;scanf(飞c”,&c);fun(s,c);printf(* 112Theresultis:%s 113*,s);8.函数FUN的功能是:把形参a所指数组总的奇数原顺序依次存放到a[0],a[l],a[2],……中,把偶数从数组中删除,奇数个数通过函数值返回。例如:若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7,删除偶数后,a所指数组中数据为:9、1、3、5、7,返回值为5。#include 114if(a[i]%2==1)1a[j]=a[i];2;j++) 115return3jmain(){intb[N]={9,1,4,2,3,6,5,8,7},i,n;printf(" 116Theoriginaldata: 117");for(i=0;i 118");n=fun(b,N);printf(' 119Thenumberofodd:%d 120',n);printfi 121Theoddnumber: 122");for(i=0;i 123");7.给定程序的功能是:调用函数FUN将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为〇〇在复制的过程中,把复制的内容输出到终端屏幕。主函数中源文件名防在变量sfname中,目标文件名放在变量tfname中。#include 124Thedatainfile: 125");ch=fgetc(fs);while(!feof(2))fs{putchar(ch);ftfputc(ch,3);ch=fgetc(fs);}fclose(fs);fclose(ft);printf(" 126 127");return1;main(){charsfname[20J="myfilel”,tfname[20]="myfile2”;FILE*myf;inti;charc;myf=fopen(sfname,"w");printf(" 128Theoriginaldata: 129");for(i=l;i<30;i++){c='A'+rand()%25;fprintf(myf,"%c",c); 130printf("%c",c);}fclose(myf);printf(" 131 132");if(fun(sfname,tfname))printf("Succeed!");elseprintf("Fail!");7.函数FUN的功能是:计算直到—く10".若x=2.5,函数值为:12.182494.n\^include 133Theresultis: 134");printf(*x=%-12.6fy=%-12.6f 135”,x,y);22.给定程序中,函数FUN的功能是:统计形参S所指字符串中数字字符出现的次数,并存放在形参t所指的变量中最后在函数中输出。例如,形参所指的字符串为:abcdef35adgh3kjsdf7.输出结果为:4^include 136if(s[i]>=0'&&sFi1<=2—)n++;,y*t=___3;n)main(){chars[80]="abcdef35adgh3kjsdf7”;intt;printf(* 137Theoriginalstringis:%s 138',s);fun(s,&t);printf(" 139Theresultis:%d 140*,t);22.用筛选法可得到2—n(n<10000)之间的所有素数,方法是:首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中相应位置的值置成〇)接着从数表中找下ー个非〇数,并从数表中找下一个非〇数,并从数表中删去该书的所有倍数:依次类推,直到所找的下ー个数等于n为止。这样会得到ー个序列:2,3,5,7,11,13,17,19,23,函数FUN用筛选法找出所有小于等于n的素数,并统计素数的个数作为函数值返回。^include 141for(j=a[i]*2;a[i]a[j]=0;j<=n;i++;while(a[i]==_1—)i++;}printf(* 142Theprimenumberbetween2to%d 143,n);for(i=2;i<=n;i++)if(a[i]!=3){count++;printf(count%15?"%5d":" 144%5d”,a[i]);}returncount;)main(){intn=20,r;r=fun(n);printf(" 145Thenumberofprimeis:%d 146',r);24给定程序中,函数FUN的功能是:将NXN矩阵主对角线元素中的值与反向对角线对应位置上元素中的值进行交换。例如,若N=3,有下列矩阵:123321456交换后为:456789987^include 147t[i][n-l-i]=3;s)}main(){intt[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,J;printf(* 148Theoriginalarray: 149*);for(i=0;i 150");)fun(t,N);printf(* 151Theresultis: 152*);for(i=0;i 153");25.给定程序中,函数FUN的功能是:在形参S所指字符串中寻找与参数C相同的字符,并在其后插入一个与相同的字符,若找不到相同的字符则函数不做任何处理。例如,S所指字符串为:baacda,执行后S所指字符串为:baaaacdaattinclude 154Thestring:%s 155,s);printf(" 156lnputacharacter:");scanf("%c,&c);fun(s,c);printf(* 157Theresultis:%s 158',s); 15925.函数FUN的功能是:把形参a所指数组中的最小值防在元素a[0]中,接着把形参a所指数组中的最大值放在a[l]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3];其余以次类推。例如:若a所指数组中的数据最初排列为:9,1,4,2,3,6,5,8,7I则按规则移动后,数据排列为:1,9,2,8,3,7,4,6,5。形参n中存放a所指数组中数据的个数。注意:规定FUN函数中的MAX存放当前所找的最大值,PX存放当前所找最大值的下标。#include 160Theoriginaldata: 161");for(i=0;i 162");fun(b,N);printf(* 163Thedataaftermoving: 164");for(i=0;i 165");} 16625.甲乙丙丁四人同时开始放鞭炮,甲每隔tl秒放一次,乙每隔t2秒放一次,丙每隔t3秒放一次,丁每隔t4秒放一次,每人各放n次函数FUN的功能是根据形参提供的值,求出总共听到多少次鞭炮声作为函数值返回。注意,当几个鞭炮同时炸响,只算ー次响声,每次响声,第一次响声是在第0秒。ttinclude 167",r);}26.给定程序的功能是调用FUN函数建立班级通讯录。通讯录中记录每位同学的编号,姓名和电话号码。班级的人数和学生的信息从键盘读入,每个人的信息作为ー个数据块写到名为myfile5.dat的二进制文件中。#include 168STYPE{*******/2*fp;inti;FILEif((fp=fopen(^myfile5.dat","wb"))==NULL)return(0);printf(" 1690utputdatatofile! 170");for(i=0;i 171");exit(0);}printf(" 172Readfileandoutputtoscreen: 173");printf(* 174numnametel 175");for(i=0;i 176^,s[i].num,s[i].name,s[i].tel);)fclose(fp);29.函数FUN的功能是:将形参a所指数组中的前半部分元素中的值和后半部分元素中的值对换。形参n中存放数组中数据的个数,若n为奇数,则中间元素不动。例如:若a所指数组中的数据依次为:1234567.89,则调换后为:6,7,8,9,1,2,3,4。^include 177a[3]=t;p+Ip+i})main(){intb[N]={l,2,3,4,5,6,7,8,9},i;printf(* 178Theoriginaldata: 179*);for(i=0;i 180");fun(b,N);printf(" 181Thedataaftermoving: 182");for(i=0;i 183");29.给定程序中,函数FUN的功能是:有NXN矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为〇〇例如,若N=3,有下列矩阵:计算结果为12210045665078910149^include 184Theoriginalarray: 185*);for(i=0;i 186{for(j=0;j 187");)fun(t);printf(" 188Theresultis: 189");for(i=0;i 190");))31.给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用FUN函数,每调用一次FUN函数,输出链表尾部结点中的数据,并释放该结点,使链表缩短。^include 191}voidoutlist(SLIST*h){SLIST*p;p=h->next;if(p==NULL)printf(" 192ThelistisNULL! 193");else{printf(" 194Head");do{printf("ー)%d”,p->data);p=pー〉next;}while(p!=NULL);printf("->End 195");main(){SLIST*head;inta[N]={ll,12,15,18,19,22,25,29);head=creatlist(a);printf(" 196Outputfromhead: 197");outlist(head);printf(" 198Outputfromtail: 199");while(head->next!=NULL){fun(head);printf(* 200 201*);printf(* 202Outputfromheadagain: 203");outlist(head);))31.函数FUN的功能是:计算r2r3r<ゴ-1”」(x)l+x--+-+213!4!(ね-1)!n\的前n项。若X=2.5,N=15时,函数值为:1.142857〇^include 204f+=_3_;t)returnf;}main(){doublex,y;x=2.5;y=fun(x,15);printf(* 205Theresultisハn");printf(*x=%-12.6fy=%-12.6f 206”,x,y);31.给定程序中,函数FUN的功能是:计算NXN矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。注意:要求先累加主对角线元素中的值,软后累加反向对角线的值。例如,若N=3有下列矩阵:123456789FUN函数首先累加1,5,9,然后累加3,5,7«喊素的返回值为30〇#include 207Theoriginaldata: 208*);for(i=0;i 209");}printf("Theresultis:%d",fun(t,N));32.给定程序中,函数FUN的功能是:将S所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符原有的先后次序。例如,形参S所指的字符串为:def35adh3kjsdf7.执行结果为:defadhkjsdf3537.^include 210for(i=0;s[i]!=*\0*;i++)if(s[i]>=’〇'&&s[i]<='9')(t2[j]=s[i];1_;J++elsetl[k++]=s[i]; 211t2[j]=0;tl[k]=O;for(i=0;s[i]=tl[i]i 212Theoriginalstringis:%s 213,s);fun(s);printfi' 214Theresultis:%s 215,s);31.程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。函数FUN的功能是输出这位学生的信息。^include 216%d%s%c%d-%d-%d”,tt.num,tt.name,tt.sex,tt.birthday,month,tt.birthday,year,tt.birthday,day);for(i=0;i<3;i++)printf(*%5.If*,―2—);tt.score[i]printf(" 217");)main(){STUstd={1,"Zhanghua",',1961,10,8,76.5,78.0,82.0};printf(" 218Astudentdata: 219");show(3);std32.给定程序中,函数FUN的功能是:求SS所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。SS 220所指字符串数组中共有M个字符串,且串长くN〇ttinclude 221Theoriginalstringsare: 222);for(i=0;i 223Thelengthofshorteststringis:%d 224',n);printf(" 225Theshorteststringis:%s 226”,ss[k]);31.函数FUN的功能是:把形参a所指数组中的偶数按原顺序依次存防到a[0],a[l],a[2]……,把奇数从数组中删除,偶数个数通过函数值返回。例如:若a所指数组中的数据最初排列为:9,1,4,2,3,6,5,8,7,删除奇数后a所指数组中的数据为:4,2,6,8,返回值为4〇ttinclude 2272=a[i];j++;a[j])return3;j}main(){intb[N]={9,1,4,2,3,6,5,8,7},i,n;printfi 228Theoriginaldata八n");for(i=0;i 229");n=fun(b,N);printf(" 230Thenumberofeven:%d 231",n);printfi 232Theeven: 233");for(i=0;i 234");38.函数FUN的功能是:统计长整数N的各个位上出现数字1,2,3的次数,并通过外部(全部)变量cl,c2,c3,返回主函数。例如:当n=123114350时,结果为:cl=3c2=lc3=2^include 235Theresult: 236");printf(*n=%ldcl=%dc2=%dc3=%d 237”,n,cl,c2,c3);) 23839.给定程序中,函数FUN的功能是:把形参S所指字符中下标为奇数的字符右移到下ー个奇数位置,最右边被移出字符串的字绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大雨等于2)〇例如,形参S所指的字符串为:ahcbedgf.^include 239Theoriginalstringis:%s 240',s);fun(s);printf(" 241Theresultis:%s 242',s);40.给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序连接。函数FUN的功能是:把形参X的值放入ー个新结点并插入到链表中,插入后各结点仍保持递增有序ttinclude 243sー〉next二p;q->next=3;s)SLIST*creatlist(int*a){SLIST*h,*p,*q;inti;h=p=(SLIST*)malloc(sizeof(SLIST));for(i=0;i 244ThelistisNULL! 245");else{printf(" 246Head");do{printf("ー>%d”,p->data);p=pー〉next;}while(p!=NULL);printf("ー〉End 247");}}main(){SLIST*head;intx;inta[N]={ll,12,15,18,19,22,25,29);head=creatlist(a);printf(" 248Thelistbeforeinserting: 249");outlist(head);printf(" 250Enteranumber:");sccnf("%d",&x);fun(head,x);printf(" 251Thelistafterinserting: 252");outlist(head);)39.函数FUN的功能是进行字母的转换,若形参ch中是小写英文字母,则转换成对应的大写英文字母;若ch中是大写英文字母,则转换成对应的小写英文字母;若是其它字符保持不变,并将转换后的结果作为函数值返回。4include 253,バreturn3;ch}main(){charcl,c2;printf(" 254Theresult: 255");cl二'w';c2=fun(cl);printf("cl=%cc2=%c 256",cl,c2);cl='W';c2=fun(cl);printf(*cl=%cc2=%c 257”,cl,c2);cl=,8*;c2=fun(cl);printf(*cl=%cc2=%c 258*,cl,c2);39.给定程序中,函数FUN的功能是:求形参SS所指字符串数组中最长字符串的长度,将其余字符串右边用字符・补齐,使其与最长饿字符串等长。SS所指字符串数组中共有M个字符串,且串长くN.#include 259"); 260for(i=0;i 261”,ss[i]);printf(' 262");fun(ss);printf("Theresultis: 263");for(i=0;i 264",ss[i]); 26543.给定程序通过定义并赋初值的方式,利用结构体变量存储了一个学生的学号,姓名和3门课的成绩。函数FUN的功能是将学生的各科成绩都乘以ー个系数a。^include 266");)voidmodify(*ss,floata)STU{inti;for(i=0;i<3;i++)ss->2*=a;score[i]}main(){STUstd={1,"Zhanghua",76.5,78.0,82.0};floata;printf(" 267Theoriginalnumberandnameandscores: 268");show(std);printf(" 269lnputanumber:");scanf("%f",&a);modify(3,a);&stdprintf(" 270Aresultofmodifying: 271");show(std);}44.给定程序中,函数FUN的功能是:将形参指针所指结构体数组中的三个元素按NUM成员进行升序排列。ttinclude 272{intnum;charname[10];*std}PERSON;voidfun(PERSON1)2temp;PERSONif(std[0].num>std[l].num){temp=std[0];std[0]=std[l];std[l]=temp;}if(std[0].num>std[2].num){temp二std[0];std[0]=std[2];std[2]=temp;}if(std[l].num>std[2].num){temp=std[l];std[l]=std[2];std[2]=temp;})main(){PERSONstd[]={5,"Zhanghu”,2,"WangLi”,6,"LinMin"};inti;fun(3);stdprintfl 273Theresultis: 274");for(i=0;i<3;i++)printf1%d,%s 275,std[i].num,std[i].name);44.给定程序中,函数FUN的功能是:将自然数广10以及他们的平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。#include 276",i,sqrt((double)i));fpprintf(" 277Succeed!! 278");―2—;fclose(fp)printf(* 279Thedatainfile: 280");if((fp=fopen(3,*r*))==NULL)fnamereturn0;fscanf(fp,&n,&x);while(!feof(fp)){printf("%d%f 281”,n,x);fscanf(fp,&n,&x);}fclose(fp);return1;}main() 282{charfname口="myfile3.txt”;fun(fname);}44.给定程序中,函数fun的功能是:将NXN矩阵中元素的值按列右移1个位置,右边被移出矩阵的元素绕回左边。例如,N=3,有下列矩阵计算结果是123312456645789978^include 283*);for(i=0;i 284Theresultis: 285*);for(i=0;i 286");)45.给定程序中,函数FUN的功能是:对形参S所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参P所指字符数组中,形成一个新串。 287例如,形参S所指的字符串为:baawrskjghzlicda,执行后P所指字符数组中的字符串应为:aachjlsw#include 288Theoriginalstringis:%s 289',s);fun(s,p);printf(" 290Theresultis:%s 291',p);)48.各定程序的功能是:从键盘输入若干行文字(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结束的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和writetext实现。^include 292^);exit(0);} 293WriteText(fp);fclose(fp);if((fp=fopen(^myfile4.txt","r"))=NULL){printf("openfail!! 294");exit(0);}ReadText(fp);fclose(fp);)voidWriteText(FILE1)*fw{charstr[81];printf(" 295Enterstringwith-1toendハn");gets(str);while(strcmp(str,"-1")!=0){fputs(2,fw);fputs(" 296",fw);strgets(str);)}voidReadText(FILE*fr){charstr[81];printf(" 297Readfileandoutputtoscreen: 298");fgets(str,81,fr);while(Ifeof(fr)){printf("如",3);strfgets(str,81,fr);49.给定程序中,函数FUN的功能是:有NXN矩阵的外围元素顺时针旋转。操作顺序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为最后一行,临时数组中的元素成为最后一列。例如,若N=3,有下列矩阵:计算结果为123741456852789963 299^include 300Theoriginalarray: 301"); 302for(i=0;i 303");}fun(t);printf(" 304Theresultis: 305");for(i=0;i 306");)50.函数fun的功能是:计算#include 307Theresultis: 308");printf("x=%T2.6fy二%-12.6f 309”,x,y);}51.程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将形参a中的数据进行修改,把修改后的数据作为函数值 310返回主函数进行输出。例如:传给形参a的数据中,学号、姓名、和三门课的成绩依次是:10001、“ZhangSan”95、80、88,修改后的数据应为:10002、“LiSi”、96、81、89〇^include 311 312Theoriginaldata: 313);printf(' 314No:%ldName:%s 315Scores:",s.sno,s.name);for(i=0;i<3;i++)printf("%6.2f”,s.scoreti]);printf(" 316");t=fun(s);printf(" 317Thedataaftermodified: 318");printf( 319No:%ldName:%s 320Scores:",t,sno,t.name);for(i=0;i<3;i++)printf("%6.2f",t.score[i]);printf(* 321*);}52.给定程序中,函数fun的功能是:利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。ss所指字符串数组中共有N个字符串,且串长小于M〇ttinclude 322{char*ps[N],*tp;inti,j,k;for(i=0;i 323Thestringaftersortingbylength: 324 325");for(i=0;i 326Theoriginalstring 327 328");for(i=0;i 329");fun(ch);}52.给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。#include 330”,s,a,f);fclose(fp);fp=fopen("filel・txt","r");printf(' 331Theresult: 332 333");ch=fgetc(fp);**/while(!feof(—2—.))fp**/{putchar(_3_);ch=fgetc(fp);}chputchar(' 334);fclose(fp);)main() 335{chara[10]="Hello!”;intb=12345;doublec=98.76;fun(a,b,c);}52.给定程序中,函数fun的功能是:将形参s所指字符串中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数值返回。例如,形参s所指的字符串为:abs5defl26jkm8,程序执行后的输出结果为:22〇ttinclude 336Enterastring: 337 338");gets(s);n=fun(s);printf(" 339Theresultis:%d 340 341",n);}53.给定程序中,函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串中右边的字符删除,只保留左边的k个字符。ss所指字符串数组中共有N个字符串,且串长小于M。ttinclude 342{charx[N][M]={"Create","Modify","Sort","skip","Delete"};inti;printf(" 343Theoriginalstring 344 345");for(i=0;i 346");fun(x,4);printf(" 347Thestringafterdeleted: 348 349");for(i=0;i 350");}52.给定程序中,函数fun的功能是:计算x所指数组中N个数的平均值(规定所有数均为正数),平均值通过形参返回主函数,将小于平均值且最接近平均值的数作为函数值返回,在主函数中输出。例如,有!0个正数:4630324061745154826,平均值为:30.500000主函数中输出:m=30.0#include 351");m=fun(x,&av);printf(* 352Theaverageis:%f 353*,av);printf(*m=%5.If*,m);printf(* 354*);}53.给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。1x33x55x7/1ヽ"t(2x〃-1)x(2x〃+1)224262、ノ(2x〃)2例如,当形参n的值为10时,函数返回:-0.204491o 355^include 356Theresultis:%f 357*,fun(n));}52.程序通过定义学生结构体数组,存储了若干名学生的学号、姓名和3门课的成绩。函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大)排序。^include 358a[i].name,a[j].name{t=a[i];a[i]=a[j];a[j]=t;})main(){structstudents[4]={{10001,"ZhangSan”,95,80,88},{10002,"LiSi”,85,70,78),“0003,"CaoKai”,75,60,88},{10004,"FangFang”,90,82,87}};inti,j;printf(" 359 360Theoriginaldata: 361 362");for(j=0;j<4;j++){printf(* 363No:%ldName:%-8sScores:",s[j].sno,s[j].name);for(i=0;i<3;i++)printf("%6.2f",s[j].score[i]);printf(" 364");}fun(s,4);printf(" 365 366Thedataaftersorting: 367 368");for(j=0;j<4;j++){printf(" 369No:%ldName:%-8sScores:s[j].sno,s[j].name);for(i=0;i<3;i++)printf("%6.2f”,s[j].score[i]);printf(" 370");}}52.给定程序中,函数fun的功能是:将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。例如,s所指字符串为:asdl23fgh5##43df,处理后新字符串为:12543asdfgh##dfottinclude 371return_3_;p)main(){chars[80];printf("Pleaseinput:");scanf("%s",s);printf(" 372Theresultis:%s 373",fun(s));}52.给定程序中,函数fun的功能是将不带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。^include 374");else{printf(" 375Head");do{printf("一〉%d”,p->data);p=p->next;}while(p!=NULL);printf("ー)End 376");}main(){NODE*head;inta[N]={0,10,4,2,8,6); 377head=creatlist(a);printf(" 378Theoriginallist: 379");outlist(head);fun(head);printf(" 380Thelistafterinverting: 381");outlist(head);}52.给定程序中,函数fun的功能是根据形参i的值返回某个函数的值。当调用正确时,程序输出:xl=5.000000.x2=3.000000.xl*xl+xl*x2=40.000000ttinclude 382xl=%f,x2=%f,xl*xl+xl*x2=%f 383 384",xl,x2,r);}53.给定程序中,函数fun的功能是将带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。Sinclude 385while(q)♦*/{if(p->data_3_q->data)>{t=p->data;p->data=q->data;q->data=t;}q=q->next;}p=p->next;}}NODE*creatlist(intaロ){NODE*h,*p,*q;inti;h=(NODE*)malloc(sizeof(NODE));h->next=NULL;for(i=0;i 386");else{printf(' 387Head");do{printfl->%d”,p->data);p=p->next;}while(p!=NULL);printf("ー〉End 388");}main(){NODE*head;inta[N]={0,10,4,2,8,6};head=creatlist(a);printf(* 389Theoriginallist: 390");outlist(head);fun(head);printf(" 391Thelistaftersorting: 392");outlist(head);}52.给定程序中,函数fun的功能是:找出100至x(xW999)之间各位上的数字之和为15的所有整数,然后输出;符合条件的整数个数作为函数值返回。例如:当n值为500时,各位数字之和为15的整数有:159、168、177、186、195、249、258、267、276、285、294、339、348、357、366、375、384、393、429、438、447、456、465、474、483、492〇共有26个。^include 393**/while(t<=_2_)x{sl=t%10;s2=(t/10)%10;s3=t/100;if(sl+s2+s3==15){printf(*%d",t);n++;}**/_3_;}t++returnn;)main(){intx=-l;while(x>999||x<0){printf("Pleaseinput(0 394Theresultis:%d 395",fun(x));}52.给定程序中,函数fun的功能是将不带头结点的的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2〇ttinclude 396q->data=a[i];q->next=NULL;if(h==NULL)h=p=q;else{p->next=q;p=q;})returnh;}voidoutlist(NODE*h){NODE*p;P=h;if(p==NULL)printf(*ThelistisNULL! 397*);else{printf(* 398Head");do{printf("一>%d”,p->data);p=p->next;}while(p!=NULL);printf("->End 399");}main(){NODE*head;inta[N]={2,4,6,8,10};head=creatlist(a);printf(" 400Theoriginallist: 401*);outlist(head);head=fun(head);printf(^XnThelistafterinverting: 402");outlist(head);}52.给定程序中,函数fun的功能是用函数指针指向要调用的函数,并进行调用。规定在ー2ー处使f指向函数fl,在ー3ー处使f指向函数f2o当调用正确时,程序输出:xl=5.000000.x2=3.000000.xl*xl+xl*x2二4〇.000000^include 403}main(){doublexl=5,x2=3,r;r=fun(xl,x2);printfC 404xl=%f,x2=%f,xl*xl+xl*x2=%f 405”,xl,x2,r);}52.程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到student.dat文件中。函数fun的功能是从指定文件中找出指定学号的学生数据,读入此学生的数据,对该生的分数进行修改,使每门课的分数加3分,修改后重写文件中该学生的数据,即用该学生的新据覆盖原数据,其它学生数据不变;若找不到,则什么都不做。Sinclude 406Theoriginaldata: 407"); 408fp=fopen("student,dat","rb");fread(ss,sizeof(STU),N,fp);fclose(fp);for(j=0;j 409No:%ldName:%-8sScores:",ss[j].sno,ss[j].name);for(i=0;i<3;i++)printf("%6.2f",ss[j].score[i]);printf(" 410");}fun("student.dat",10003);fp=fopen("student,dat","rb");fread(ss,sizeof(STU),N,fp);fclose(fp);printf(" 411Thedataaftermodifing: 412");for(j=0;j 413No:%ldName:%-8sScores:",ss[j].sno,ss[j].name);for(i=0;i<3;i++)printf("%6.2f",ss[j].score[i]);printf(" 414");}}67.程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中的学号和姓名,最后输出修改后的数据。例如:a所指变量中的学号、姓名、和三门课的成绩依次是:10001、“ZhangSan"、95、80、88,则修改后输出b中的数据应为:10002、“LiSi”、95、80、88〇#include 415Thedataaftermodified: 416");printf(" 417No:%ldName:%s 418Scores:",b.sno,b.name);**/for(i=0;i<3;i++)printf("%6.2f",b._3_);score[i]printf(' 419");}main(){structstudents={10001,"ZhangSan",95,80,88);inti;printf(" 420 421Theoriginaldata: 422");printf(" 423No:%ldName:%s 424Scores:",s・sno,s.name);for(i=0;i<3;i++)printf("%6.2f",s.score[i]); 425printf(" 426");fun(s);}67.给定程序中,函数fun的功能是:在形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回所剩字符串的个数。ss所指字符串组中共有N个字符串,且串长小于M。#include 427Theoriginalstring 428 429");for(i=0;i 430");f=fun(x,7);printf("Thestringwitchlengthislessthanorequalto7: 431");for(i=0;i 432");}68.给定程序中,函数fun的功能是:将形参s所指字符串中所有ASCI!码值小于97的字符存入形参t所指字符数组中,形成一个新串,并统计出符合条件的字符个数作为函数值返回。例如,形参s所指的字符串为:Abc@lx56*,程序执行后t所指字符数组中的字符串应为:A0156*O^include 433**/_2_;s++)*(t+n)=O;**/return_3_;n)main(){chars[81],t[81];intn;printf(" 434Enterastring: 435*);gets(s);n=fun(s,t);printf(" 436Thereare%dletterwhichASCIIcodeislessthan97:%s 437”,n,t);}70.给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶然的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。例如,输入ー个数:27638496,新的数:为739。^include 438Theresultis:%ld 439,z,n);}71.给定程序中,函数fun的功能是:把形参s所指字符串中最右边的n个字符复制到形参t所指字符数组中,形成一个新串。若s所指字符串的长 440度小于n,则将整个字符串复制到形参t所指字符数组中。例如,形参s所指的字符串为:abcdefgh,n的值为5,程序执行后t所指字符数组中的字符串数应为:defgho^include 441for(j=0;j<_2_;j++)a[i][j]=a[i][j+1];N***/a[i][N-l]=_3_tempmain(){intx[M][N]={{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5}},i,j;printf("Thearraybeforemoving: 442 443*);for(i=0;i 444");}fun(x,2);printf(*Thearrayaftermoving: 445 446*);for(i=0;i 447");}}73.给定程序中,函数fun的功能是:将a所指4X3矩阵中第k行的元素与第〇行元素交换。例如,有下列矩阵:若k为2,程序执行结果为:123789456456789123101112101112#include 448}main(){intx[M][N]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}printf(*Thearraybeforemoving: 449 450*);for(i=0;i 451 452");}fun(x,2);printf(*Thearrayaftermoving: 453 454*);for(i=0;i 455 456");}}74.给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。例如,有!0个正数:4630324061745154826,平均值为:30.500000移动后的输出为:4632404548306171526^include 457main(){inti;doublex[N];for(i=0;i 458");printf(* 459Theaverageis:%f 460,fun(x));printf(* 461Theresult: 462,fun(x));for(i=0;i 463");}74.给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y所指数组中,在主函数中输出。例如,有10个正数:4630324061745154826,平均值为:30.500000^include 464");printf(* 465Theaverageis:%f 466”,fun(x,y));for(i=0;y[i]>=0;i++)printf(*%5.If*,y[i]);printf(* 467*);}75.给定程序中,函数fun的功能是:将形参s所指字符串中的所有字母字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。例如,s所指字符串为:asdl23fgh543df,处理后新字符串为:asdfghdfl2543。#include 468else{p[k]=s[i];k++;}}**/for(i=0;i<_2_;i++)t[j+i]=p[i];k**/t[j+k]=_3_;'、0’returnt:}main(){chars[80];printf("Pleaseinput:");scanf("%s",s);printf(" 469Theresultis:%s 470",fun(s));}74.给定程序中,函数fun的功能是:找出10〇〜999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,然后输出;符合条件的整数个数作为函数值返回。例如,当x值为5时,1~999之间各位上数字之和为5的整数有:104、113、122、131、140、203、212、221、230、302、311、320、401、410、500,共有15个。当x值为27时,各位数字之和为27的整数是:9990只有1个。^include 471Theresultis: 472%d 473",fun(x));}74.给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。^include 474",s,a,f);**/_2_;floes(fp)fp=fopen("filel.txt","r");**/fscanf(_3_,"%s%s%s”,str,strl,str2);fpfclose(fp);al=atoi(strl);fl=atof(str2);printf(" 475Theresult: 476 477%s%dstr,al,fl);)main(){chara[10]="Hello!”;intb=12345;doublec=98.76;fun(a,b,c);}75.程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后ー个学生的数据,即用新的学生数据覆盖该学生原来的数据,其它学生的数据不变。ttinclude 478**/fseek(fp,-lL*sizeof(STU),_2_);SEEK_END**/fwrite(_3_,sizeof(STU),1,fp);&nfclose(fp);}mainO{STUt[N]={{10001,“MaChao”,91,92,77},{10002,"CaoKai”,75,60,88},{10003,〃LiSi”,85,70,78},{10004,"FangFang”,90,82,87},{10005,“ZhangSan”,95,80,88}};STUn={10006,"ZhaoSi",55,70,68},ss[N];inti,j;FILE*fp;fp=fopen("student,dat","wb");fwrite(t,sizeof(STU),N,fp);fclose(fp);fp=fopen("student,dat","rb");fread(ss,sizeof(STU),N,fp); 479fclose(fp);printf(" 480Theoriginaldata: 481 482");for(j=0;j 483No:%ldName:%-8sScores:ss[j].sno,ss[j].name);for(i=0;i<3;i++)printf("%6・2f”,ss[j].score[i]);printf(" 484");}fun("student,dat",n);printf(" 485Thedataaftermodifing: 486 487");fp=fopen("student,dat","rb");fread(ss,sizeof(STU),N,fp);fclose(fp);for(j=0;j 488No:%ldName:%-8sScores:",ss[j].sno,ss[j].name);for(i=0;i<3;i++)printf("%6.2f",ss[j].score[i]);printf(" 489");}74.给定程序中,函数fun的功能是计算下式s=lx3_3x5+5x7___,I(2xn-l)x(2xn+l)(2x〃)2直至リュり"+1)W10一6,并把计算结果作为函数值返回。(2xn)~例如:若形参e的值为le-6,函数的返回值为ー0.205601ftinclude 490Theresultis:%f 491”,fun(e));}75.给定程序中,函数fun的功能是:在形参ss所指字符串数组中査找与形参t所指字符串相同的串,找到后返回该串在字符串数组中的位置(下标值), 492未找到则返回・!。ss所指字符串数组中共有N个内容不同的字符串,且串长小于Mo#include 493Theoriginalstring 494 495");for(i=0;i 496");printf(" 497Enterastringforsearch:");gets(t);n=fun(ch,t);**/if(n==-l)printf(" 498DonJtfound! 499");elseprintf(" 500Thepositionis%d.、n”,n);)74.程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是对形参b所指结构体变量中的数据进行修改,最后在主函数中输出修改后的数据。例如:b所指变量t中的学号、姓名、和三门课的成绩依次是:10002、“ZhangQi"、93、85、87,修改后输出t中的数据应为:10004、“Lijie”、93、85、87〇#include 501printf(" 502 503Theoriginaldata: 504");printf(' 505No:%ldName:%s 506Scores:",t・sno,t.name);for(i=0;i<3;i++)printf("%6,2f”,t.score[i]);printf(* 507*);**/fun(_3_);&tprintf(" 508Thedataaftermodified: 509");printf( 510No:%ldName:%s 511Scores:",t,sno,t.name);for(i=0;i<3;i++)printf("%6.2f",t,score[i]);printf(" 512");}74.给定程序中,函数fun的功能是:判定形参a所指的NXN(规定N为奇数)的矩阵是否是“幻方”,若是,函数返回值为1;不是,函数返回值为〇。"幻方”的判定条件是;矩阵每行、每列、主对角线及反对角线上元素之和都相等。例如,以下3X3的矩阵就是ー个“幻方”:492357816ttinclude 513{intx[N][N],i,j;printf(*Enternumberforarray: 514*);for(i=0;i 515");for(i=0;i 516");}if(fun(x))printf("TheArrayisamagicsquare. 517");elseprintf("TheArrayisn'tamagicsquare. 518");}74.程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将形参a所指结构体变量s中的数据进行修改,并把a中地址作为函数值返回主函数,在主函数中输出修改后的数据。例如:a所指变量s中的学号、姓名、和三门课的成绩依次是:10001、“ZhangSan"、95、80、88,修改后输出t中的数据应为:10002、“LiSi”、96、81、89〇#include 519 520Theoriginaldata: 521");printf(" 522No:%ldName:%s 523Scores:",s・sno,s.name);for(i=0;i<3;i++)printf("%6・2f”,s.score[i]);printf(" 524");t=fun(&s);printf(" 525Thedataaftermodified: 526");printf(" 527No:%ldName:%s 528Scores:",t->sno,tー〉name);for(i=0;i<3;i++)printf("%6.2f”,tー〉score[i]);printf(" 529");} 53074.给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。g__lx3+3x5+5x7+…+(2x〃ー1)x(2x〃+1)224ノ6/(2xn)2例如,当形参n的值为10时,函数返回:9.612558。^include 531Theresultis:%f 532",fun(n));}86.给定程序中,函数fun的功能是:计算出形参s所指字符串中包含的单词个数,作为函数值返回。为便于统计,规定各单词之间用空格隔开。例如,形参s所指的字符串为:ThisisaClanguageprogram,函数的返回值为6〇#include 533)main(){charstr[81];intn;printfl 534Enteralinetext: 535");gets(str);n=fun(str);printfl 536Thereare%dwordsinthistext. 537 538”,n);}86.程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。ttinclude 539fclose(fp);printf(" 540 541Theoriginaldata: 542 543");for(j=0;j 544No:%ldName:%-8sScores:",t[j].sno,t[j].name);for(i=0;i<3;i++)printf("%6.2f",t[j].score[i]);printf(" 545");}fun("student,dat");printf(" 546 547Thedataaftersorting: 548 549");fp=fopen("student,dat","rb");fread(ss,sizeof(STU),5,fp);fclose(fp);for(j=0;j 550No:%ldName:%-8sScores:",ss[j].sno,ss[j].name);for(i=0;i<3;i++)printf("%6.2f",ss[j].score[i]);printf(" 551");}88.给定程序中,函数fun的功能是:在形参ss所指字符串数组中,査找含有形参substr所指子串的所有字符串并输出,若没找到则输出相应信息。ss所指字符串数组中共有N个字符串,且串长小于Mo程序中库函数strstr(sl,s2)的功能是在si串中查找s2子串,若没有,函数值为0,若有,为非。。ttinclude 552");}**/if(find==_3_)printf(" 553Don'tfound! 554")0}main(){charx[N][M]={"BASIC","Clangwage","Java","QBASIC","Access"),str[M];inti;printf(" 555Theoriginalstring 556 557");for(i=0;i 558");printf(" 559Enterastringforsearch:");gets(str);fun(x,str);}89.给定程序中,函数fun的功能是:将形参n中,各位上为偶数的取出,并按原来从髙位到低位的顺序组成一个新的数,并作为函数返回。 560例如,从主函数输入ー个整数:27638496,函数返回值为:26846〇#include 561Theresultis:%ld 562",fun(n));}88.给定程序中,函数fun的功能是将带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2〇ttinclude 563hー>next=NULL;for(i=0;i 564");else{printf(" 565Head");do{printfl-〉%d”,p->data);p=p->next;}while(p!=NULL);printf("ー〉End 566");}}main(){NODE*head;inta[N]={2,4,6,8,10};head=creatlist(a);printf(" 567Theoriginallist: 568");outlist(head);fun(head);printf(" 569Thelistafterinverting: 570");outlist(head);)88.给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。例如,有!0个正数:4630324061745154826,平均值为:30.500000移动后的输出为:3061715264632404548#include 571while(i 572");printf(* 573Theaverageis:%f 574”,fun(x));printf(* 575Theresult: 576",fun(x));for(i=0;i 577");}88.给定程序中,函数fun的功能是:判断形参s所指字符串是否是“回文”(Palindrome),若是,函数返回值为1,不是,函数返回值为〇〇“回文"是正读和反读都一样的字符串(不区分大小写字母)。例如,LEVEL和Leve!是“回文”,而しEVLEV不是“回文”。#include