《全国计算机二级C语言考试》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、给定程序中,函数fun的功能是:在带有头结点的单向链表中,查找数据域中值为ch的结点。找到后通过函数值返回该结点在链表中所处的顺序号;若不存在值为ch的结点,函数返回0值。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#defineN8typedefstruct1st{intdata;structlist*next;}SLIST;SLIST*creatlist(char*);voidoutlist(SLIST*);intfun(SLIST*h,charch){SLIST*p;intn=0;p=h->next;/*******************/while(p!=1){n++;/**********found**********/if(p->data=ch)return2;elsep=p->next;}return0;}main(){SLIST*head;intk;charch;chara[N]={'m7p\,gVal;wVxVrVd,);head=creatlist(a);outlist(head);printf(HEnteraletter:M);scanf("%c",&ch);/*******************/k=fun(_3-);if(k==0)printf("
1Notfound!
2");elseprintf("Thesequencenumberis:%d
3",k);}第1处:内容为[while(p!=0)]第2处:内容为[if(p->data==ch)returnn;]第3处:内容为[k=fun(head,ch);]2、给定程序modi.c中,函数fun的功能是:给定n个实数,输出平均值,并统计在平均值以上(含平均值)的实际个数。例如,n=8时输入:193.199、195.673、195.757,196.051、196.092、196.596、196.579,196,763所得平均值为:195.838745,在平均值以上的实数个数应为:5请改正程序中的错误,使它能得出正确结果。#include 4,',xa);for(j=0;j 5,',fun(x,8));第1处:内容为[{intj,c=0;floatxa=0.0;]第2处:内容为[if(x[j]>=xa)]3、假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导和尾部的*号之外,将串中其它*号全部删除。形参h一指向字符串中第一个字母,形参p已指向字符串中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为:****A*BC*DEF*G********,删除后,字符串中的内容应当是:****abcdefg********。在编写函数时,不得使用C语言提供的字符串函数。voidfun(char*a,char*h,char*p){charb[81],*x;inti=0,j=0;while(x 6}SLIST;SLIST*creatlist(int*a);voidoutlist(SLIST*);voidfun(SLIST*h,int*n){SLIST*p;/**********found**********/—1—=0;p=h->next;while(p){(*n)++;/*******************/P=p->2;main(){SLIST*head;inta[N]={12,87,45,32,91,16,20,48),num;head=creatlist(a);outlist(head);/*********nd字*********/fun(3,&num);printf(" 7number=%d 8H,num);}第1处:内容为K*n)=0;]第2处:内容为[p=p->next;]第3处:内容为[fun(head,&num);]2、给定程序modi.c中,fun函数的功能是:将n个无序整数从小到大排序。请改正程序中的错误,使它能得出正确结果。fun(intn,int*a){inti,j,p,t;for(j=O;j 9printf(', 10sum=%d 11n,fun(3));elsereturnt;第1处:内容为[s+=p->data;]第2处:内容为[p=p->next;]笫3处:内容为[printf(" 12sum=%d 13",fun(head));]2、给定程序modi.c中,函数fun的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序时每五个元素求一个平均值,并将这些值依次存放在W所指的数组中,若s所指数组中元素的个数不是5的倍数,多余部分忽略不计。例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。#defineSIZE20fun(double*s,double*w){intkjdoubleaim;for(k=2,i=0;i 14Notfound! 15n);else{printf(M 16Succeed! 17");printf(u%s%d-%d-%d 18",p.num,p.year,p.month,p.day);))第1处:内容为[STU£in(STU*std,char*num)]第2处:内容为[if(strcmp(std「].num,num)==O)]第3处:内容为[return(std[i])J2^给定程序modi.c中,函数fun的功能是:从s所指字符串中,找出t所指子串的个数作为函数值返回。例如,当s所指字符串中的内容为:"abcdabfab",t所指字符串的内容为:“ab”,则函数返回整数3。#include 19#include 20PleaseenterstringS:");scanf(,,%s,',s);printf(u 21Pleaseentersubstringm=fun(s,t);printf(n 22Theresultis:m=%d 23,',m);)第1处:内容为[if(*==*p){r++;p++;}]第2处:内容为[if(*r==W)]3、规定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串最前面连续的*号不得多于n个:若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。例如,字符串中的内容为:*******A*BC*DEF*G****,若n的值为4,删除后,字符串中的内容应当是:****A*BC*DEF*G****:若n的值为8,则字符串中的内容仍为:*******A*bc*DEF*G****。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。voidfun(char*a,intn){charb[81];inti=O,j=O,s=O,k;while(a[i]==**){s++;i++;}if(s>n){for(c=0;k 24Nopersonwasbomin%d 25",year);else{printf(" 26Thesepersonswerebomin%d 27H,year);for(i=0;i 28",k[i].num,k[i].year,k[i].month,k[i].day);})第1处:内容为[if(std[i].year==year)]第2处:内容为[k[n++]=std[i];]第3处:内容为[return(n);]2,给定程序modi.c中,函数fun的功能是:将十进制正整数m转换成k(2Wk<9)进制数,并按位输出。例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)«#include 29m/=k;)/************found************/for(;i;i-)printf(H%dH,aa[i]);)main(){intb,n;system(nclsn);printf(" 30Pleaseenteranumberandabase: 31H);scanf(w%d%dH,&n,&b);fun(n,b);printf(,) 32M);)第1处:内容为[aa[i]=m%k;]第2处:内容为[for(i=i-l;i>=0;i—)]3、请编写一个函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数值返回。例如:若有5门课程的成绩是:90.5,72,80,61.5,55,则函数的值为:71.80,floatfun(foat*a,intn){inti;floataverage;doublesum=0;for(i=0;i 33H);)/*********字found**********/voidmodify(1*ss,floata){inti;for(i=0;i<3;i++)/*********字found**********/ss->2*=a;)main(){STUstd={1,"ZhanghuaM,76.5,78.0,82.0Jfloata;printf(" 34Theoriginalnumberandnameandscores: 35");show(std);printf(" 36lnputanunber:");scanf(M%f\&a);/*******************/modify(-3—,a);printf(" 37Aresultofmodifying: 38H);show(std);}第1处:内容为[voidmxlify(STU*ss,floata)]第2处作:内容为[ss->score[i]*=a;J第3处:内容为[modify(&std,a);]2^给定程序modi.c中,函数fun的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCH码升序排序后输出。例如:若输入:edcba,则应输出:abcde0#defineM20voidfun(chart[])chare;inti,j;/************found************/for(i=strlen(t);i;i-)for(j=0;j 39if(tU] 40Theresultis: 41M);for(i=0;i<3;i++)printf(M%d,%s 42,',std[i].num,std[i].name);)第1处:内容为[void£in(PERSONstd[3])]第2处:内容为[PERSONtemp;]第3处:内容为[fun(std);]2、给定程序modi.c中,函数fun的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。例如变量a中的值为3,b中的值原为8,程序运行后a中的值为8,b中的值为3。intfun(int*x,inty)intt;/************found************/t=x;x=y;/************found************/return(y);)main()inta=3,b=8;system(HclsM);printf(H%d%d 43",a,b);b=fun(&a,b);printf("%d%d 44M,a,b);}第1处:内容为[t=*x;*x=y;]第2处:内容为[returnt;]3、学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把高于等于平均分的学生数据放在h所指的数组中,高于等于平均分的学生人数通过形参传回,平均分通过函数值返回。doublefun(STREC*a,STREC*b,int*n){inti,j;doubleaver=0;*n=0;for(i=0;i 45}第8题1、给定程序中,函数fun的功能是:将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在main函数中输出。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include 46Theresult: 47");/**********f^)und**********/printf(n 48Name:%s,Age:%d 49”,3,max.age);)第1处:内容为[max=*std;]第2处:内容为[if(max.agevstd[i].age)max=std[i];]第3处:内容为[printf(" 50Name:%s,Age:%d 51';max.name,max.age);]2、给定程序modi.c中,函数fun的功能是:计算正整数num的各位上的数字之积,例如,若输入:252,则输出应该是:20o若输入:202,则输出应该是:0o#include 52%ld 53,,,fun(n));}第1处:内容为[longk=l;]第2处:内容为[num/=10;]3、学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。voidfun(STRECa[]){inti,j,p,t,k;charh;for(i=0;i 54}}}第1处:内容为[for(j=i+l;j 55处理后字符串=",s);fun(s);printf(H 56");}第1处:内容为[fun(char*a)]第2处:内容为[printf(”%c”,*a);]3、函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的上位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。例如,当a=45,b=12。调用该函数后,c=2415。voidfun(inta,intb,long*c)inta_up,a_low,b_up,b_low;a_up=a/10;ajow=a%10;b_up=b/10;b」ow二b%10;*c=bjow*1000+a_up*100+b_up*10+a_low;)第10题1、给定程序中,函数fun的功能是:求出形参SS所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符用数组中共有M个字符串,且串长 57H,x,y,z);if(x==ylly==z){printf(nDataerror! 58n);}sum=fun(x,y,z);printf("Theresultis:%5.2f 59n,sum);)第1处:内容为[value=FU((a+b),(a・b))+FU((c+b),(c・b));]第2处:内容为[retum(value);]3、学生的记录由学号和成绩组成,N名学生的数据上在主函数中放入结构体数组s中,请编写函数fun,它的功能是:函数返回指定学号的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。(用于字符串比较的函数是strcmp)o 60STRECfun(STREC*a,char*b){inti,f=O;STRECp;p=a[O];for(i=0;i 61值为1,失败时返回值为Oo在复制的过程中,把复制的内容输出到终端屏幕。主函数中源文件名放在变量sfname中,目标文件名放在变量tfname中。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。intfun(char*source,char*target)charch;/**********,ound**********/if((fs=fopen(source,1))==NULL)return0;if((ft=fopen(target,,,w,,))==NULL)return0;printf(" 62Thedatainfile: 63");ch=fgetc(fs);/**********found字*********/while(!feof(2)){putchar(ch);/*******************/fputc(ch,3);ch=fgetc(fs);fclose(fs);fclose(ft);printf(n 64 65M);return1;第1第2第32、处:处:处:内容为[if((fs=fopen(source,"r"))==NULL)]内容为[while(!feof(fs))]内容为[fputc(ch,ft);]给定程序modi.c中函数fun的功能是:用递归算法计算斐波拉契数列中第n项的值,从第1项起,斐波拉契级数序列为:1、1、2、3、5,8、13、21、……例如,若给n输入7,该项的斐波拉契级数值为:13o#include 66',,n);fib=fun(n);printf(,'fib=%d 67 68,,,fib);第1处:内容为[switch(g)]第2处:内容为[casel:case2:retum1;]3、N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:求出平均分,由函数值返回。例如,若学生的成绩是:85,76,69,85,91,72,64,87;则平均分应当是:78.625odoublefun(STREC*h){STREC*p;doubleaver=0;p=h->next;while(p!=0){aver=aver+p->s;p=p->next;)aver=aver/N;returnaver;)第13题1、给定程序中,函数fun的功能是:将自然数1〜10以及它们的平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。intfun(char*fname){FILE*fp;inti,n;floatx;if((fp=fopen(fname,W"))==NULL)return0;for(i=l;i<=10;i++)/**********tound**********/fprintf(1,”%d%f 69",i,sqrt((double)i));printf(n 70Succeed! 71n);/**********found**********/2:printf(" 72Thedatainfile: 73M);/**********j'iound**********/if((fp=fopen(—3—Jr"))==NULL)return0;fscanf(fp,"%d%f;&n,&x);while(!feof(fp)){printf(H%d%f 74H,n,x);fscanf(fp;,%d%f;&n,&x);}fclose(fp);return1;)main(){charfname[]="myfile3.txtM;fun(fname);)第1处:内容为[fprintf(fp,"%d%f 75”,i,sqrt((double)i));]第2处:内容为[fclose(fp);]第3处:内容为[if((fp二fopen(fname,T))==NULL)]2、给定程序modi.c中,函数fun的功能是:统计子字符串substr在字符串str中出现的次数。例如,若字符串为aaasIkaaas,子字符串为as,则应输出2。fun(char*str,char*substr){inti,j,k,num=0;/************[ound************/ 76for(i=0,str[i],i++)for(j=i,k=0;substr[k]==str[j];k++j++)/************found************/If(substr[k+1]==AO'){num++;break;}returnnum;)第1处:内容为[for(i=0;str[i];i++)]第2处:内容为[if(substr[k+l]==V))]3、请编写一个函数unsignedfun(unsignedw),w是一个大于10的无符号整数,若w是n(n22)位的整数,函数求出w的低n-1位的数作为函数值返回。例如:w值为5923,则函数返回923;w值为923,则函数返回23o解法一:unsignedfun(unsignedw){inti,j,sqr=1;unsignedresult;char*str,ch[5];str=ch;for(i=1;(i<6)&&(w>=1);i++){str[i-1]=,0,+w%10;w/=10;}str[i-1]=0;result=str[O]-'O';for(j=l;j 77M);ecit(O);}WriteText(fp);fclose(fp);if((fp=fopen("myfile4.txt,,;'r',))==NULL){printf(Hopenfail!! 78H);ait(0);}ReadText(fp);fclose(fp);}/**********fQund**********/voidWriteText(FILE—1_){charstr[81];printf(" 79Enterstringwith-1toend: 80H);gets(str);while(strcmp(str,"-r,)!=0){/**********found**********/fputs(2,fw);fputs(H 81H,fw);gets(str);))voidReadText(FILE*fr){charstr[81];printf(,, 82Readfileandoutputtoscreen: 83");fgets(str,81,fr);while(!feof(fr)){/**********fQund**********/printf("%s",—3_);fgets(str,81,fr);))第1处:内容为[voidWriteText(FILE*fw)]第2处:内容为[fputs(str,fw);fputs(" 84",fw);]第3处:内容为[printf("%s",str);]1、给定程序modi.c中,函数fun的功能是:从字符串s中删除所有小写字母c.#include 85main(){char$80];printf(nEnterairing:M);gets(s);printf(uTheoiginaliring:M);puts(s);fun(s);printf(HThestringafterdeleted:,,);puts(s);printf(H 86 87H);}第1处:内容为[sU++]=s[i];]第2处:内容为[sUkxr;]3、请编写一个函数intfun(int*s,intt,int*k),用来求出数组的最大元素在数组中的下标,用k返回。例如,输入如下整数:876675896101301401980431451777则输出结果为:6,980intfun(int*s,intt,int*k){intmax_integer=0;inti=0;max_integer=s[0];for(i=0;i 88Oulpuldatatofile! 89H);for(i=0;i 90 91n,a,b,c);fun(&a,&b,&c);printf(Ha=%4.1f,b=%4.1f,c=%4.1An 92'\a,b,c);第1处:内容为[floatk;]第2处:内容为[if(*s>*p)]3、请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串"-1234”,则函数把它转换为整数值-1234。longfun(char*p)longn=0;intflag=O;while(*p!=W){if(*p=='J)flag=l;elseif(*p=,+,)flag=O;elsen=n*10+(*p-'0');p++;)if(flag=l)n=-n;returnn;}第16题1、给定程序中已建立一个带有头结点的单向链表,在main 93函数中将多次调用fun函数,每调用一次fun函数,输出链表尾部结点中的数据,并释放该结点,使链表缩短。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#defineN8typedefstruct1st{intdata;structlist*next;}SLIST;voidfun(SLIST*p){SLIST*t,*s;t=p->next;s=p;while(t->next!=NULL)t=t->1printf(H%d",—2_);s->next=NULL;/**********found**********/free(_3一);}第1处:内容为[t=t->next;]第2处:内容为[printf("%d”,t->data);]第3处:内容为[free(。;]2、给定程序MODI1.C中函数fun的功能是:将tt所指字符串中的小写字母都改为对应的大写字母,其它字符不变。例如,若输入"Ab,cD",则输出"AB,CD"。char*fun(chartt[])inti;for(i=0;tt[i];i++)/*********nd***********/if(('a'<=tt[i])11(tt[i]<='z*))/**********found***********/tt[i]+=32;retum(tt);)main()Ichartt[81];printf(" 94Pleaseenterastring:");gets(tt);printf(" 95Theresultstringis: 96%s",fun(tt));)第1处:内容为[if(('a,<=tt[i])&&(tt[i]<=Z))]第2处:内容为3、请编写一个函数fun,它的功能是:求出1到m之内(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。例如,若传送给m的值为50,则程序输出:711142122283335424449voidfun(intm,int*a,int*n)|inti,count=0;for(i=l;i<=m;i++){if(i%7==0IIi%ll==0){a[count+4-]=i;)*n=count;}第17题1、给定程序中一建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序链接。函数fun的功能是,删除链表中数据域值相同的结点,使之只保留一个。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#defineN8typedefstructlist{intdata;structlist*next;}SLIST;voidfun(SJST*h){SLIST*p,*q;p=h->next;if(p!=NULL){q=p->next; 97while(q!=NULL){if(5->data==q->data){p->next=q->next;/**********found**********/free(-1_);/**********nd**********/q=p->2;else{p=q;/**********found**********/q=q->3;)}}}第1处:内容为[free(q);]第2处:内容为[q=p->next;]第3处:内容为[q=q->next;]2、给定程序modi.c中fun函数的功能是:分别统计字符串中大写字母和小写字母的个数。例如:给字符串ss输入:"AAaaBBbl23CCccccd”,则输出结果应为:upper=6,lower=8请改正fun函数中的错误,使它能计算出正确的结里XfS.O#include 98Pleaseastring:");gets(s);fun(s,&upper,&lower);printf(" 99upper=%dlower=%d 100",upper,lower);)第1处:内容为[voidfun(char*s,int*a,int*b)]第2处:内容为[*a=l+*a;]第3处:内容为[++(*b);]1、请编写一个函数ftm,它的功能是:找出一维整型数组元素中最大的值和它所在的卜标,最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。voidfin(inta[],intn,rit*max,ht*d)(inti,base,subscript;base=a[0];subscript=O;for(i=l;i 101Theresult: 102n);printf(Hn=%ldcl=%dc2=%dc3=%d 103",n,cI,c2,c3);第1处:内容为[switch(n%10)]第2处:内容为[case1:cl++;break;]第3处:内容为[case2:c2++;break;J2、给定程序modi.c中函数fun的功能是:判断字符ch是否与字符串str中的某个字符相同,若相同,什么也不做;若不同,则插在串的最后。#include 104voidfun(charstr,charch){while(*str&&*str!=ch)str++;/**********found**********/if(*str=(h){str[0]=ch;/**********found字*********/str[l]=O;)}main(){chars[81J,c;system,cis");printf(M 105Pleaseenterastring: 106H);gets(s);printf(" 107Pleaseenterthecharactertosearch:");c=getchar();fun(s,c);printf(M 108Theresultis%s 109H,s);)第1处:内容为[voidfun(char*str,charch)]第2处:内容为[if(*str!=ch)]第3处:内容为[str[l]=为3、函数fun的功能是:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。例如,当S所指字符串中的内容为:"ABCDEFGHIJK",在t所指数组中的内容应是:"BDFHJ"。voidfun(char*s,chart[]){inti,slenth,n=O;slenth=strlen(s);for(i=l;i 110Theesult: 111");cl='w*;c2=£in(cl);printf(Mcl=%cc2=%c 112M,cl,c2);cl='W';c2=£m(cl);printf(Hcl=%cc2=%c 113M,c1,c2);cl=8;c2=£in(cl);printf(Hcl=%cc2=%c 114M,c1,c2);}第1处:内容为[if((ch>=,a)&&(ch<='z))]第2处:内容为[returnchfa'-'A';]第3处:内容为[returnch;]2、已知一个数列的前三项分别为0,0,1,以后的各项都是其相邻的前三项之和。给定程序modi.c中函数fun的功能是:计算并输出该数列前n项的平方根之和sum。n的值通过形参传入。例如,当n=10时,程序的输出结果应为:23.197745«请改正函数fun中的错误,使程序能输出正确的结果。#include 115doubleavg=0.0,sum=0.0;for(i=0;i<8;i++){avg=(x[i]+x[i+l])/2;sum+=sqrt(avg);returnsum;)第20题1、给定程序中,函数fun的功能是:有NXN矩阵,根据给定的m(m<=N)值,将每行元素中的值均右移m个位置,左边置为0。例如,N=3,m=2,有下列矩阵123456789程序执行结果为001004007请在程序的下划线处填入正确的内容并把F划线删除,使程序得出正确结果。#include 116Theoriginalarray: 117u);for(i=0;i 118");)printf("Inputm(m<=%d):",N);scanf("%d",&m);fun(t,m);printf(H 119Theresultis: 120n);for(i=0;i 121");))第1处:内容为[for(i=0;i 122Pleaseentersomedata(endwith0):“);do{scanf("%d'\&x[i]);}while(x[i++]!=0);printf(,,%f 123M,fun(x));)第1处:内容为[floatsum=0.0;]第2处:内容为[sum=sum/c;]3、请编写函数fun,其功能是:计算并输出下列多项式的值:11111S=(l——)+()+…+()2342n-l2n例如,在主函数中从键盘给n输入8后,输出为:s=0.662872o注意:要求n的值大于1但不大于100。部分源程序在文件prog.c中。doublefun(intn){inti;doublesum=0.0;if(n>l&&n<=100) 124{for(i=l;i<=n;i++)sum+=1.0/(2*i-1)-1.0/(2*i);)returnsum;)第21题1、给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,将其余字符串右边用字符*补齐,使其与最长的字符串等长。ss所指字符串数组中共有M个字符串,且串长 125u);for(i=0;i 126M,ss[i]);printfCXn'1);fun(ss);printf(nTheresultis: 127H);for(i=0;i 128,,,ss[i]);}第1处:内容为[n=strlen(ss[i]);]第2处:内容为[ss[i][n+j]=w;]第3处:内容为[ss[川n+j+1]=、(),;]2、给定程序modi.c中函数fun的功能是:把m(lWmW10)个字符串连接起来,组成一个新串,放入pt中。例如:把3个串:"abc","CD","EF"串连起来,结果是"abcCDEF”。#include 129Pleaseentern:n);scanf(n%dM,&n);printf(" 130Pleaseenter%dstring: 131M,n);for(h=0;h 132Theesultis:%s 133u,p);)第1处:内容为[intk,q,i;]第2处:内容为[pt[i]=str[k][i];]2、请编写函数fun,它的功能是:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。例如,在主函数中从键盘给n输入20后,输出为:s=0.583333odoublefun(intn){inti;doublesum=0.0;/*将sum定义为双精度型变量,并给其赋初值为0.0*/if(n>0&&n<=100){for(i=l;i<=n;i++)if(i%5=0lli%9=0)sum+=1.0/i;|returnsum;}第22题1、给定程序中,函数fun的功能是:求ss所指字符串数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共有M个字符串,且串长 134{charss[M][N]={Shanghai1',,'guangzhou,,,,,beijing',,,,tianjing,,;,cChongqing'1);intn,k,i;printf(n 135Theoriginalstringsare: 136u);for(i=0;i 137Thelengthoflongeststringis:%d 138n,n);printf(" 139Thelongeststringis:%s 140",ss[k]);}第1处:内容为[int£in(char(*ss)[NJ,ht*n)J第2处:内容为[if(i==0)*n=len;]第3处:内容为[*n=len;]2、给定程序modi.c中函数fun的功能是:从m个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,aver返回平均分。例如,若输入8名学生的成绩:80.5607290.59851.58864则低于平均分的学生人数为:4(平均分为:75.5625)»#include 141Pleaseenterm:");scanf(”%d”,&m);printf(n 142Pleaseenter%dmark: 143",m);for(i=0;i 144Thenumberofstudents:%d 145n,fun(s,m,&aver));printf("Ave=%f 146H,aver);)第1处:内容为[t+=s[k];]第2处:内容为广aver=ave;]3、请编写函数fun,其功能是:计算并输出当x<0.97时下列多项式的值,直至lJIS(n)-S(n-l)lv0.000001为止。0.5(0.5-1)0.5(0.5-1)(0.5-2)0.5(0.5-1)S=l+0.5x+x*2+x*3-+2!3!例如,在主函数中从键盘给x输入0.21后,输出为:s=l.100000。doublefun(doublex)(intn=l;/*循环计数*/doublesn=l;/*累计数*/doublexn=l,xnl=0;/*x的n值,以及x的n・l值;*/while(fabs(xn-xn1)>=0.000001)/*绝对值是否合格*/(xn=xn*x*(0.5-n+l)/n;n+=l;sn+=xn;/*sn累力□上xn*/return(sn);第23题1、给定程序中,函数fun的功能是:求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共有M个字符串,且串长 147H);for(i=()»i 148Thelengthofshorteststringis:%d 149",n);printf(n 150Theshorteststringis:%s 151u,ss[kl);} 152第1处:内容为[for(i=0;i 153Pleaseenters:H);scanf(H%ldH,&s);fun(s,&t);printf("Theresultis:%ld 154n,t);}第1处:内容为[voidfun(longs,long*。]第2处:内容为⑻=3、请编写函数fun,其功能是:计算并输出给定10个数的方差:r110-10.5S=|—L(Xk-X')A2|L10k=l」110其中X,=—EXk10k=l例如,给定的10个数为95.0、89.0、76.0、65.0、88.0、72.0、85.0、81.0、90.0、56.0,输出为s=l1.730729。doublefun(doublex[10]){ntidoubleavg=0.0;doublesum=0.0;doubleabs=0.0;doublefc;for(i=0;i<10;i++)sum+=x[i];avg=sum/10;for(i=0;i<10;i++)abs+=(x[i]-avg)*(x[i]-avg);fc=sqrt(abs/10);returnft;}第24题1、给定程序中,函数fun的功能是:将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的先后次序。例如,形参s所指的字符串为:def35adh3kjsdf7o执行结果为:defadhkjsdf3537o请在程序的下划线处填入正确的内容并把F划线删除,使程序得出正确的结果。#include 155Theoriginalstringis:%s 156u,s);fun(s);printf(n 157Theresultis:%s 158n,s);)第1处:内容为[t2|j]=s[i];j++;]第2处:内容为[for(i=0;i 159*t=s%10*sl+*t;si=si*10;))main(){longs,t;system("cls");prinlf(" 160Pleaseenters:");scanf("%ld",&s);fun(s,&t);printf("Theresultis:%ld 161",t);)第1处:内容为[voidfun(longs,long*。]第2处:内容为[while(s>0)]3、请编写函数fun,其功能是:计算并输出3到nN间所有素数的平方根之和。例如,在主函数中从键盘给n输入100后,输出为:sum=148.874270o注意:要求n的值大于2但不大于100。部分源程序在文件prog.c中。doublefun(intn)(inti,j=0;/*定义两个整型变量*/doubles=0;/*定义变量s为双精度型*/for(i=3;i<=n;i++){for(j=2;j)s=s+sqrt(i);/*sqrt⑴函数是计算i的平方根*/)returns;/*返回结果*/)第25题1、给定程序中,函数fun的功能是:在形参s所指字符串中的每个数字字符之后插入一个*号。例如,形参s所指的字符串为:def35adh3kjsdf7.执行结果为:def3*5*adh3*kjsdf7*。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include 162Theoriginalstringis:%s 163H,s);fun(s);printf(n 164Theresultis:%s 165*',s);)第1处:内容为[if(s[i]>=O&&s[i]v=9)]第2处:内容为[while(s[i+l+n]!=O)n++;]第3处:内容为[s[j+l]=sU];]2、给定程序modi.c中函数fun的功能是:输出M行M列整数方阵,然后求两条对角线上各元素之和,返回此和数。请改正程序中的错误,使它能得出正确的结果。#include 166The%dx%dmatrix: 167M,M,M);for(i=0;i 168");for(i=0;i 169Thesumofallelementson2diagnalsis%d.",fun(M,aa));)第1处:内容为[intfun(intn,intxxWM])]第2处:内容为[printf("%4d",xx[i][j]);]3、请编写函数fun,其功能是:计算并输出S=1+(1+2A0.5)+(1+2A0.5+3A0.5)+—・・・+(1+2八0.5+3八0.5++nA0.5)例如,在主函数中从键盘给n输入20后,输出为:s=534.188884o注意:要求n的值大于1但不大于100。部分源程序在文件prog.c中。doublefun(intn){inti;/*定义一个整形变量刃 170doublefac=1.0;户定义变量fac、sum为双精度型*/doublesum=1.0;if(n>l&&n<=100)for(i=2;i<=n;i++){fac+=sqrt(i);/*使用sqrt()函数求出每一个多项式的值蚓sum+=fac;/*通过sum+=fac;计算出所有多项式之和*/}returnsum;/*返回结果*/}第26题1、给定程序中,函数fun的功能是:统计形参s所指字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出。例如,形参s所指的字符串为:abcdef35adgh3kjsdf7o输出结果为:4。请在程序的下划线处填入正确的内容并把F划线删除,使程序得出正确的结果。#include 171Theoriginalstringis:%s 172H,s);fun(s,&t);printf(" 173Theresultis:%d 174",t);}第1处:内容为[fbr(i=O;s[i]!=(int)NULL;i++)]第2处:内容为[if(s[i]>=O&&s[i]<='9')n++;]第3处:内容为[*t=n;]2、给定程序modi.c中函数fun的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为:87653142时,t中的数为:7531.#include 175Pleaseenters:n);scanf(n%ldn,&s);fun(s,&t);printf(nTheresultis:%ld 176n,t);}第1处:内容为[%=0;]第2处:内容为[if(d%2!=0)]3、请编一个函数fun(char*s),函数的功能是把字符串中的内容逆置。例如:字符串中原有的内容为:abcdefg,则调用该函数后,串中的内容为:gfedcbaovoidfun(char*s){inti,length;chartmp;length=strlen(s);/*统计字符串s中字符的个数*/for(i=0;i 177elsek=n-2;/**********found**********/c=_2一;for(i=k-2;i>=l;i=i-2)s[i+2]=s[i];/**********found**********/s[l]=—3—;}main(){chars[80]=Habcdefghu;printf(H 178Theoriginalstringis:%s 179u,s);fun(s);printf(u 180Theresultis:%s 181M,s);}第1处:内容为[if(n%2=0)k=n・l;]第2处:内容为[c=s[k];]第3处:内容为[s[I]=c;]2、给定程序modi.c中函数fun的功能是:将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中。例如,当s所指字符串为:"ABCD"时,则t所指字符串中的内容应:"ABCDDCBA"。#include 182inti;char*p,*r,*a;d=strlen(s);for(i=0;i 183PleaseenterstringS:n);scanf(n%s",s);fun(s,t);printf(u 184Theresultis:%s 185M,t);)第1处:内容为[voidfinChar*s,diar*t)]第2处:内容为[t[2*d]=W;]3、编写程序,实现矩阵(3行3歹IJ)的转置(即行列互换)。例如,输入下面的矩阵:100200300400500600700800900程序输出:100400700200500800300600900voidfun(intarray[3][3]){inti,j;intb[3][3];for(i=0;i<3;i++)for(j=0;j<3;j++)b[j][i]=array[i][j];for(i=0;i<3;i++)for(j=0;j<3;j++)arrayli][j]=b[i][jj;}第28题1、给定程序中,函数fun的功能是:对形参s所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p所指字符数组中,形成一个新串。例如,形参s所指的字符串为:baawrskjghzlicda,执行后p所指字符数组中的字符串应为:aachjlsw#include 186Theoriginalstringis:%s 187",s);fun(s,p);printf(n 188Theresultis:%s 189",p);)第1处:内容为第2处:内容为[for(j=i+2;jvn;j=j+2)]第3处:内容为[p(j]=O;]2、给定程序modi.c中函数fun的功能是:将s所指字符串中出现的、tl所指子串全部替换成t2所指子字符串,所形成的新串放在w所指的数组中。在此处,要求tl和t2所指字符串的长度相同。例如,当s所指字符串中的内容为:"abcdabfab”,tl所指子串中的内容为:”ab“,t2所指子串中的内容为:“99”时,结果,在w所指的数组中的内容应:"99cd99f99”。#include 190chars[100],tl[100],t2[100],w[100];system("cls");printf(" 191PleaseenterstringS:");scanf("%s",s);printf(" 192Pleaseentersubstringtl:");scanf("%s",tl);printf(" 193Pleaseentersubstring⑵)scanf("%s",t2);if(strlen(t1)==strlen(t2)){fun(s,tl,t2,w);printf(" 194Theresultis:%s 195",w);}elseprintf("Error:strlen(tl)!=strlen(⑵ 196");)第1处:内容为[while(*r)]第2处:内容为[while(*r){*a=*r;a++;r++;}]3、编写函数intfun(intlimjntaa[MAX]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回求出素数的个数。intfun(intlim,intaa[MAXJ){inti,j=O,k=O;for4=2;i<=lim;i++)/*判断i是否小于或等于lim,如果i小于等于lim执行循环*/{for(j=2;jvi;j++)/*判断i是否能被比它小的整数整除*/if(i%j==0)break;/*假如i能被整除,则退出该层循环*/if(j==i)aa[k++]=i;/*假如i不能被比它小的整数整除,则将i存入aa数组中*/}returnk;)第29题1、给定程序中,函数fun的功能是:在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则函数不做任何处理。例如,s所指字符串为:baacda,c中的字符为:a,执行后s所指字符串为:baaaacdaa,请在程序的下划线处填入正确的内容并把F划线删除,使程序得出正确的结果。#include 197TheEng:%s 198*',s);printf(" 199lnputacharacter:");scanf(H%cn,&c);fun(s,c);printf(" 200Theresultis:%s 201”,s);}第1处:内容为[for(i=0;s[i]!=0;i++)]第2处:内容为m=o;]第3处:内容为[s[j+l]=c;]1、给定程序modi.c中函数fun的功能是:将s所指字符串中最后一次出现的、tl所指子串替换成t2所指子串,所形成的新串放在w所指的数组中。在此处,要求tl和12所指字符串的长度相同。例如,当s所指字符串中的内容为:"abcdabfabc”,tl所指子串中的内容为:"ab”,t2所指子串中的内容为:"99”时,结果,在w所指的数组中的内容应为:"abcdabf99c"o请改正程序中的错误,使它能得出正确的结果。#include 202}第1第2第3chars[100],tl[100],t2[100],w[100];system(nclsn);printf(n 203PleaseenterstringS:n);scanf(n%sn,s);printf(n 204Pleaseentersubstring11:");scanf("%sH,tl);printf(" 205Pleaseentersubstringt2:H);scanf(M%sM,t2);if(strlen(t1)==strlen(t2)){fun(s,tl,t2,w);printf(" 206Theresultis:%s 207",w);)elseprintf(u 208Error:strlen(tl)!=strlen(t2) 209H);)第1处:内容为[while(*w)]第2处:内容为[if(*r==*p)]1、请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。例如:二维数组中的值为13579299946999813570则函数值为61。intfun(inta[M][N]){inti,j,sum=0;for(i=0;i 210u);for(i=0;i 211n);}fun(t);printf(" 212Theresultis: 213*');for(i=0;i 214M);处:内容为[for(i=0;i 215returnj;/**********found**********/main(){inta[N],n,11m=0,jdo{printf(n 216Entern(<=1000):");scanf(H%dM,&n);}while(n>1000);num=fun(a,n);printf(" 217 218Theresult: 219u);for(i=0;i 220 221n);}第1处:内容为[k=i;]第2处:内容为[c=k;]3、请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按降序排列。例如,原来的字符串为CEAedca,排序输出为CedcEAa。注意:部分源程序存在文件prog.c中。intfun(char*s,intnum){inti,j,h,t;for(i=1;i 222wM);fprintf(fp,'%s%d%f 223M,s,a,f);/:,,*********found字*********/_2_;fp=fopen(ufilel.txt1','Y*');fscanf(_3_,M%s%s%sH,str,strl,str2);fclose(fp);al=atoi(strl);fl=atof(str2);printf(H 224Theresult: 225 226%s%d%f 227u,str,al,fl);)main(){(hara[10]=nHello!n;intb=12345;doublec=皿76;fun(a,b,c);}第1处:内容为[FILE*fp;]第2处:内容为[fclose(fp);]第3处:内容为[fscanf(fp,"%s%s%s",str,strl,str2);]2、给定程序modi.c中函数fun的功能是:计算n的5次方的值(规定n的值大于2、小于8),通过形参指针传回主函数。并计算该值的个位、十位、百位上数字之和作为函数值返回。例如,7的5次方是16807,其低3位数的和值是15o请改正函数fun中指定部位的错误,使它能得出正确的结果。#include 228Entern(&nv8):");scanf("%d”,&n);}while(n<=2lln>=8);sum=fun(n,&v);printf(M 229 230Theresult: 231value=%dsum=%d 232 233",v,sum);第1处:内容为[d=l;s=0;]第2处:内容为[d=d/10;]3、请编一个函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中 234最小元素,并依次放入PP所指一维数组中。二维数组中的数已在主函数中赋予。voidfun(intintpp[N])(inti,j,min;for(i=0;i<4;i++)(min=tt[O][i];for(j=0;j<3;j++)if(min>tt[j][i])min=tt[j][i];pp[i]=min;)}第32题1、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是电写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其它学生的数据不变。请在程序的下划线处填入正确的内容并把F划线删除,使程序得出正确的结果。#defineN5typedefstructstudent{longsno;charname[10];floatscore[3];}STU;voidfin(char"filename,STUn){intp,m;FILE*fp;p=sizeof(STU);m=p*(-lL);/**********found**********/fp=fopen(_l_,"rb+");/**********found**********/fseek(_2_,m,SEEK_END);/**********found**********/fwrite(&n,sizeof(STU),1,_3_);fclose(fp);}第1处:内容为[fp=fopen(filename,"rb+");]第2处:内容为[fseek(fp,m,SEEK_END);]第3处:内容为[fwrite(&n,sizeof(STU),l,fp);]2、数列中,第一项值为3,后一项都比前一项的值增5。给定程序modi.c中函数fun的功能是:计算前n(4 235Entern(l 236 237Theresult: 238H);for(i=0;i 239 240H);)第1处:内容为[sum=0;j=0;]第2处:内容为[if(sum%4==2)]3、编写--个函数,从传入的num个字符串找出最长的一个字符串,并通过形参指针max传回该串地址。(注意:用****作为结束输入的标志。)fun(char(*a)[81],intnum,char**max){inti;*max=a⑼;/*将第一个字符串赋值给max指针*/for(i=l;i<=num;i++)if(strlen(a[i])>strlen(*max))*max=a[i];}第33题1、给定程序blankl.c中,函数fun的功能是:计算2!3!4n-1xL+...+(-严+(7产L4!(«-1)!"!的前n项之和。若x=2.5,n=15时,函数值为:1.917914.请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include 241/**********found¥*********/t*=(—2—)*x/i;/**********found**********/f+=—3—;returnf;}main(){doublex,yx=2.5;y=fun(x,15);printf(H 242Theresultis: 243M);printf(nx=%-12.6fy=%-12.6f 244M,x,y);第1处:第2处:第3处:2、给定程序modi.c中函数fun的功能是:统计一个无符号整数中各位数字值为零的个数,通过形参传回主函数:并把该整数中各位上最大的数字值作为函数值返回。例如,若输入无符号整数30800,则数字值为零的个数为3,各位上数字值最大的是8。请改正函数fun中指定部位的错误,使它能得出正确的结果。#include 245lnputn(insigned):");scanf(H%dM,&n);max=fun(n,&zero);max=%dprintf(n 246Theresult:zero=%d 247",max,zero);}第1处:内容为[if(t==o)]第2处:内容为产zero二counl;]3、编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为:asdasasdfgasdaszx67askmklo,子字符串为:as,则应输出6。intfun(char*str,char*substr){unsignedinti=0;intj,k=O,add;while(i 248Theresultis: 249M);printf("x=%-12.6fy=%-12.6f 250",x,y);)第1处:内容为[t=1;]第2处作:内容为[for(i=l;ivn;i++)J第3处:内容为[t*=x/i;]2、给定程序modi.c中函数fun的功能是:给一维数组a输入任意4个整数,并按下例的规律输出。例如输入1、2、3、4,程序运行后将输出以下方阵。 2514123341223411234请改正函数fun中指定部位的错误,使它能得出正确的结果。#include 252 253Theesult: 254 255M);for(i=M;i>0;i-){k=a[M-l];for(j=M-l;j>0;j-)/*************fovi**************Ia[j]=a[j+l];a[0]=k;for(m=0;ncM;m++)printf(M%dM,a[m]);printf(M 256n);}}main(){inta[MJ;fun(a);printf(u 257 258");}第1处:内容为[voidfun(int*a)]第2处:内容为3、请编写函数fun,函数的功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。例如,若输入:17,则应输出:9和46891012141516ovoidfun(intm,int*k,intxx[J){inti,j;*k=0;for(i=2;ivm;i++){for仁2;jvi;j++)/*判断i是否能被比它小的整数整除*/if(i%j==0)break;if(jdoublefun(doublex){doublef,thtn;/*********nd**********/f=1.0+—1—;n=1;do{n++;/*********不found**********/t*=x/2;/**********found**********/f+=—3—;}while(fabs(t)>=le-6);returnf;)main(){doublex,xx=2.5;y=fun(x);printf(H 259Theresultis: 260M);printf(nx=%-12.6fy=%-12.6f 261u,x,y);)第1处:内容为[f=1.0+x;]第2处:内容为[t*=x/n;]第3处作:内容为[f+=t;]2、给定程序modi.c中函数fun的功能是:从3个红球,5个白球,6个黑球中任意取出8个作为一组,进行输出。在每组中,可以没有黑球,但必须要有红球和白球。组合数作为函数值返回。正确的组合数应该是15。程序中i的值代表红球数,j的值代表白球数,k的值代表黑球数。请改正函数fun中指定部位的错误,使它能得出正确的结果。#include 262Theesult: 263 264M);/**************f^)und豕*************/for(i=0;i<=3;i++){for(j=l;j<=5;j++){k=8-i-j;/**************f^)und字*************/if(k>=l&&k<=6){sum=sum+l; 265printf("red:%4dwhite:%4dblack:%4d 266”,i,j,k);returnsum;|main(){intsum;sum=fun();printf("sum=%4d 267 268",sum);)第1处:内容为[for(i=l;i<=3;i++)]第2处:内容为[if(k>=O&&k<=6)]3、程序定义了NXN的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的So例如:a数组中的值为10127911197451a=£38311145682115914II则返回主程序后s的输出结果为:3.375000。doublefun(intw[][N])inti,j,count=0;doubleaverage,sum=0.0;for(i=0;i 269Theoriginalarray: 270u);for(i=0;i 271Theresultis: 272H);for(i=0;i 273for(i=l;i 274lnputxandy:");scanf("%ld%ld",&x,&y);t=fun(x,y,&r);printf(" 275 276x=%d,y=%d,r=%ld,last=%ld 277 278",x,y,u);)第1处:内容为[for(i=l;iv=y;i++)]第2处:内容为[t=t%1000;]3、编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat)。例如,分别输入下面两个字符串:FirstString-SecondString程序输出:FirstString—SecondStringvoidfun(charpl[],charp2[]){char5if>ointl,*point2;pointl=pl;point2=p2;while(*pointl!='\0')point1++;while(*point2!='\0'){*pointl=*point2;point1++;point2++;}*pointl=W}第37题1、给定程序中,函数fun的功能是:有NXN矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。例如,若N=3,有下列矩阵:123456789计算结果为10065010149请在程序的下划线处填入正确的内容并把卜划线删除,使程序得出正确的结果#include 279Theoriginalarray: 280u);for(i=0;i 281H);}fun(t);printf(" 282Theresultis: 283u);for(i=0;i 284n);})第1处:内容为[void£in(int(*t)[N])]第2处:内容为第3处:内容为2、给定程序modi.c中函数fun的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。请改正函数fun中指定部位的错误,使它能得出正确的结果。#include 285#defineN3d=i-a;for(j=2;j<=sqrt((double)d);j++)if(d%j==O)y=0;if(y==l){*b=i;*c=d;}}}}main(){inta,b,c;do{printf(" 286lnputa");scanf(,,%d,,,&a);}while(a%2);fun(a,&b,&c);printf(" 287 288%d=%d+%d 289H,a,b,c);}第1处:内容为[y=l;]第2处:内容为[d=a-i;]3、请编写函数fun,函数的功能是:实现B=A+A1即把矩阵A加上A的转置,存放在矩阵B中。计算结果在main函数中输出。例如,输入下面的矩阵:其转置矩阵为II2311147114561125811789113691程序输出:126101161014111014181voidfun(inta[3][3],intb[3][3]){inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)b[i]U]=a[i][j]+a[j][i];}第38题1、给定程序中,函数fun的功能是:计算NXN矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。注意:要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。例如,若N=3,有下列矩阵:123456789fun函数首先累加1、5、9,然后累加3、5、7,函数的返回值为30。请在程序的下划线处填入正确的内容并把F划线删除,使程序得出正确的结果。#include 290Theoriginaldata: 291H);for(i=0;i 292");)printf(''Theresultis:%d",fun(t,N));)第1处:内容为[sum=0;]第2处:内容为[sum+=t[i][i]J第3处:内容为[sum+=t[川n-i-1];]2、给定程序modi.c中函数fun的功能是:根据输入的三个边长(整型值),判断能否构成三角形:构成的是等边三角形,还是等腰三角形。若能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0«请改正函数fun中指定部位的错误,使它能得出正确的结果。#include 293lnputa,b,c:");scanf(u%d%d%dH,&a,&b,&c);printf(H 294a=%d,b=%d,c=%d 295M,a,b,c); 296a[j]=a[i];—2一:shape=fun(a,b,c);printf(" 297 298TheSape:%d 299n,shape);/字*********found**********/}第1处:内容为[return3;]第2处:内容为[elsereturn1;]3、m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回。例如,当score数组中的数据为:10、20、30、40、50、60、70、80、90时,函数返回的人数应该是4,below中的数据应为:10203040ointfun(intscore[],intm,intbelow[])(inttotal=0;/*用于计算m个学生的成绩之和*/intaverage=0;int*p_below=below;inti=0;intj=0;/*用于计算成绩低于平均分的学生的人数*/for(i=0;i 300Theoriginaldata: 301");for(i=0;i 302n);n=fun(b,N);printfCAnThenumberofodd:%d 303H,n);printf(" 304Theoddnumber: 305H);for(i=0;i 306H);第1处:内容为[if(a[i]%2==l)]第2处:内容为[a[j]=a[i];j++;]第3处:内容为[returnj;]2、给定程序modi.c中函数fun的功能是:首先将大写字母转换为对应小写字母;若小写字母为a〜u,则将其转换为其后的第5个字母:若小写字母为v〜z,使其值减21。转换后的小写字母作为函数值返回。例如若形参是字母A,则转换为小写字母f;若形参是字母W,则转换为小写字母b。请改正函数fun中指定部位的错误,使它能得出正确的结果。#include 307Enteraletter(A-Z):");d=getchar();if(isupper(cl)){c2=fun(cl);printf(n 308 309TheletterV%cVchangetoV%cV 310”,cl,c2);)elseprintf(H 311Enter(A-Z)! 312u);第1处:内容为[c=tolower(c);]第2处:内容为[c=c+5;]3、请编写一个函数voidfun(charpp[]),统计在tt字符串中支到N26个字母各自出现的次数,并依次放在PP所指数组中。例如,当输入字符串:abcdefgabcdeabc后,程序的输出结果应该是:33322110000000000000000000void 313fun(charpp[]){inti;for(i=0;i<26;i++)pp[i]=O;/*for()循环用于给数组pp[]赋初值0*/for(;*tt;tt++)if(*iy='z'&&*tt>='a')pp[*tt-97]++;1第40题1、函数fun的功能是:把形参a所指数组中的偶数按原顺序依次存放到a[0]、a。]、a[2],……中,把奇数从数组中删除,偶数个数通过函数值返回。例如:若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7,删除奇数后a所指数组中的数据为:4、2、6、8,返回值为4o请在程序的下划线处填入正确的内容并把F划线删除,使程序得出正确的结果。#include 314Theoriginaldata: 315H);for(i=0;i 316M);n=fun(b,N);printf(H 317Thenumberofeven:%d 318' 319);printf(" 320Thee/en: 321M);for(i=0;i 322");)第1处:内容为[if(a[i]%2==0){]第2处:内容为[a|j]=a[i];j++;]第3处:内容为[returnj;]2、给定程序modi.c中,fun函数的功能是:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之和。请改正程序中的错误,或在横线处填上适当的内容并把横线删除,使它能得出正确的结果。#include 323n,sum);1main(){fun();}第1处:内容为[sum=0;]第2处:内容为[scanf("%d,”,&a[i]|j]);]3、函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中,合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的个位和百位上。例如,当a=45,b=12。调用该函数后,c=4251=voidfun(inta,intb,long*c)(inta_up,a_low,b_up,b_low;a_up=a/10;a_low=a%10;b_up=b/10;b_low=b%10;*c=a_up*1000+b_low*100+a_low*10+b_up;)第41题1、函数fun的功能是:把形参a所指数组中的最小值放在元素a[0]中,接着把形参a所指数组中的最大值放在a[l]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3];其余以此类推。例如:若a所指数组中的数据最初排列为:9、1、4、2、3、6、5,8、7;则按规则移动后,数据排列为: 3241、9、2、8,3、7、4、6、5。形参n中存放a所指数组中数据的个数。注意:规定fun函数中的max存放当前所找的最大值,px存放当前所找最大值的下标。#defineN9void£in(inta[],htn){intij,max,min,px,pn,t;for(i=0;i 325TheoriginaldataAn");for(i=0;i 326M);fun(b,N);printf(u 327Thedataaftermoving: 328n);for(i=0;i 329n);)第1第2第32、处:内容为[max=min=a[i];]处:内容为[if(maxva[j])]处:内容为给定程序modi.c的功能是:读入一个整数k(2Wk〈10000),打印它的所有质因子(即所有为素数的因子)。例如,若输入整数:2310,则应输出:2、3、5、7、11。请改正程序中的语法错误,使程序能得出正确的结更yT«.o#include"windows.hn/************found************/Isprime(intn);{intim;m=l;for(i=2;i 330Pleaseenteranintegernumberbetween2and10000:”);scanf("%d”,&k);printf(" 331 332Theprimefactor(s)of%dis(are):n,k);for(j=2;j<=k;j++)if((!(k%j))&&(Isprime(j)))printf(H 333%4dn,j);printf(M 334M);)第1处:内容为[Isprime(n)]第2处:内容为[if(!(n%i))]3、请编写一个函数voidfun(intm,intk,intxx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入xx所指的数组中。例如,若输入17,5,则应输出:19,23,29,31,37ovoidfun(intm,intk,intxx[])(inti,j,total=0;int*p_xx=xx;for(i=m+l;;i++){for(j=2;j 335请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include 336Theoriginaldata: 337n);for(i=0;i 338M);fun(b,N);printf(" 339Thedataaftermoving: 340n);for(i=0;i 341H);}处:内容为[voidfun(int*a,intn)]处:内容为[for(i=0;ivn-l;i+=2)]处:内容沏for(j=i+l;jvn;j++)]2、给定程序modi.c中,函数fun的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。请改正程序中的错误,使它能得出正确的结果。#include 342#include 343Pleaseenterstrings:”);gets(s);fun(s,t);printf(H 344Theresultis:%s 345'\t);}第1处:内容为[if(i%211s[i]%2==0)]第2处:内容为3、已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。fun(STUa[],STU*s)(inti;STU*m;m=a;for(i=l;i 346Theoriginaldata: 347");for(i=0;i<9;i++)printf(H%4d”,b[i]);printf(" 348n);fun(b,9);printf(" 349Thedataafterinvert: 350H);for(i=0;i<9;i++)printf(H%4d”,b[i]);printf('V);)第l处:内容为[for(i=0;i 351/************found************/n=stlen(aa);for(i=l;i 352TheesultAn");cl=2;c2=fin(cl);printf(ncl=%cc2=%c 353M,cl,c2);cl=8;c2=£in(cl);printf(ncl=%cc2=%c 354M,cl,c2);cl='a*;c2=fin(cl);printf(ncl=%cc2=%c 355M,cl,c2);}第1处:内容为[charfin(charch)]第2处:内容为[if(ch>=O&&chv=9)]第3处:内容为[return'9'-(ch--O1);]2、给定程序modi.c中,函数fun的功能是:实现两个整数的交换。例如给a和b分别输入:60和65,输出为:a=65b=60请改正程序中的错误,使它能得出正确结果。#inciude 356",a,b);)第1处:内容为[voidfun(int*a,int*b)]第2处作:内容为[t=*b;*b=*a;*a=t;]3、函数fun的功能是:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s中剩余的字符形成的新串放在t所指的数组中。例如,若s所指字符串中的内容为"ABCDEFG12345",其中字符C的ASCII码值为奇数,在数组中的下标为偶数,因此必须删除;而字符1的ASCII码值为奇数,在数组中的下标也为奇数,因此不应当删除,其它依次类推。最后t所指的数组中的内容应是"BDF12345"。voidfun(char*s,chart[])(inti,slenth,n=O;slenth=strlen(s);for(i=0;i 357数的个数,素数的个数作为函数值返回。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include 358Theprimenumberbetween3to%d 359",n);for(i=3;i<=n;i++){/**********found**********/for(_1—;j=i){count-H-;printf(count%15?“%5d":" 360%5d”,i);})returncount;)main(){intn=20,?r=fun(n);printf(H 361Thenunberofprimek:%d 362n,r);}处:内容为[for(j=2;jvi;j++)]处:内容为[if(i%j==O)]处:内容为[if(j>=i)]2、给定程序modi.c中,函数fun的功能是:计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值由主函数传入,若k的值为500,则函数值为4622。请改正程序中的错误,使它能得出正确的结果。intfun(intk){intm=0,mc=0;while((k>=2)&&(mc<10))/************found************/{if(k%13=0)ll(k%17=0)){m=m+k;mc++;}k-;)returnm;/************found************/main(){system,cis");printf("%d 363”,fun(500));)第1处:内容为[{if((k%13=0)ll(k%17==0))]第2处:内容为[}]3、编写函数fun,它的功能是:根据以下公式求P的值,结果由函数值带回。m与n为两个正整数且要求m>nom!n!(m-n)!例如:m=12,n=8时,运行结果为495.0(X)000。floatfun(intm,intn){inti;floats=l,f=l,h=1;floatx;for(i=m;i>=l;i—)=*i;/*求出m的阶乘*/for(i=n;i>=l;i—)fef*i;/*求出n的阶乘*/for(i=m-n;i>=l;i--)h=h*i;/*求出m-n的阶乘*/x=s/(f*h);return(x);第47题1、用筛选法可得到2〜n(nvlOOOO)之间的所有素数,方法是:首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中相应位置的值置成0);接着从数表中找下一个非0数,并从数表中删去该数的所有倍数;依此类推,直到所找的下一个数等于n为止。这样会得到一个序列:2,3,5,7,11,13,17,19,23,函数fun用筛选法找出所有小于等于n的素数,并统计素数的个数作为函数值返回。#include 364Theprimenumberbetween2to%d 365”,n);for(i=2;i<=n;i++)/**********found**********/if(a[i]!=—3—)count++;printf(count%15?',%5d,,:" 366%5dn,a[i]);}returncount;}main(){intn=20,rr=fun(n);printf(u 367Thenunberofprimes:%d 368”,r);)第1处:内容为[for(j=a[i]*2;j<=n;j+=a[i])]第2处:内容为[while(a[i]==0)]第3处:内容为[if(a[i]!=O)]2、给定程序modi.c中,函数fun的功能是:先将在字符串s中的字符按正序存放到t串中,然后把s中的字 369符按逆序连接到t串的后面。例如,当s中的字符串为:"ABCDE"时,贝Ut中的字符串应为:"ABCDEEDCBA"o请改正程序中的错误,使它能得出正确结果。voidfun(char*s,char*t){int,sl;sl=strlen(s);/************found************/for(i=0;i<=sl;i++)t[i]=s[i];for(i=0;i 370Pleaseenterstrings:");scanf(”%s”,s);fun(s,t);printf(nTheresultis:%s 371u,t);)第1处:内容为[for(i=0;i 372",r);}第1处:内容为[#defineOK(i,tn)((i%t==0)&&(i/t 373{intn;system(',cls,');printfC^nPleaseentern:M);scanf(”%d”,&n);printf(',%d 374,\fun(n));)第1处:内容为[if(i%k==0)]第2处:内容为[if(k>=i)]3、函数fun的功能是:将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。例如,若s所指字符串中的内容为:“ABCDEFG12345",其中字符B的ASCII码值为偶数、…、字符2的ASCII码值为偶数、…都应当删除,其它依次类推。最后I所指的数组中的内容是:“ACEG135”。voidfun(char*s,chart[J){inti,slenth,n=O;slenth=strlen(s);for(i=0;i 375Themiddlenumberis:%d 376",r);)第」处:内容为[t=(a>b)?(b>c?b:(a>c?c:a)):((a>c)?a:((b>c)?c:b));]2、给定程序modi.c中,函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。请改正程序中的错误,使它能得出正确结果。#defineN20voidfun(inta[],intn){intij,t,p;for(j=0;j 377,');fun(a,m);printf("排序后的数据:");for(i=0;i 378");}第1处:内容为[p=j;J第2处:内容为[p=i;]3、编写函数fun,它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回。例如若n为1000时,函数值应为:s=153.909064.doublefun(intn){inti,s=0;for(i=l;i 379*s,a,f);fclose(fp);fp=fopen(,,filel.txt,\HrH);printf(u 380Theresult: 381 382u);ch=fgetc(fp);/**********found**********/while(!feof(—2—)){/**********found**********/putchar(_3_);(h=getc(fp);} 383putchar('n');fclose(fp);)main(){(hara[10]="Hello!H;intb=12345;doublec=9876;fun(a,b,c);}第1处:内容为[FILE*fp;]第2处:内容为[while(!feof(fp)){]第3处:内容为[putchar(ch);ch=fgetc(fp);}]1、给定程序modi.c中,函数fun和funx的功能是:用二分法求方程2xA3-4xA2+3x-6=0的一个根,并要求绝对误差不超过0.001o例如,若给m输入・100,给n输入90,则函数求得的一个根值为2.000。#includenstdio.hH#include"math.h"doublefunx(doublex){retum(2*x*x*x-4*x*x+3*x-6);}doublefun(doublem,doublen){/************found************/intr;r=(m+n)/2;/************found************/while(fabs(n-m)<0.001){if(funx(r)*funx(n)<0)m=r;elsen=r;r=(m+n)/2;)returnr;)main(){doublem,n,root;prinlf("Entermn: 384");scanf("%lf%lr,&m,&n);root=fun(m,n);printf(,,root=%6.3f 385,,,root);)第一处:int改为double第二处:小于〈改为大于〉2、函数fun的功能是:将s所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。例如,若s所指字符串中的内容为"ABCDEFG12345",其中字符A的ASCII码值为奇数、…、字符1的ASCII码值也为奇数、…都应当删除,其它依次类推。最后t所指的数组中的内容应是:"BDF24".voidfun(char*s,chart[])(inti,slenth,n=O;slenth=strlen(s);for(i=0;i 386Theresultis%lf 387",fun(n));}3、编写函数fun,它的功能是:求Fibonacci数列中大于s的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为: 388F(0)=0,F(l)=lF(n)=F(n-l)+F(n-2)例如:当s=1000时,函数值为:1597。intfun(ints){intxl=0,x2=l,m=0;while(s>m)(m=xl+x2;xl=x2;x2=m;}returnm;)第52题1、给定程序中,函数fun的功能是:找出100至x(XW999)之间各位上的数字之和为15的所有整数,然后输出;符合条件的整数个数作为函数值返回。例如,当x值为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 389Theresultis:%d 390",fun(x));)2、给定程序modi.c中,函数fun的功能是:统计字符串中各元音字母(即:A、E、I、0、U)的个数。注意:字母不分大、小写。例如:若输入:THIsisaboot则输出应该是:10220请改正程序中的错误,使它能得出正确结果。#include 391caseb':case,O,:{i=3;break;}case'u':caseU:{i=4;break;}}if(i>=0)num[i]++;t=100;/字*********nd**********/while(t<=_l_){//999/字*********found**********/s3=t/100;//t/10sl=t%10;s2=(_2_)%10;main(){charsl[81];intnuml[5],i;system("cls");printf(u 392Pleaseenterastring:n);gets(sl);fun(sl,numl);for(i=0;i<5;i++)printf(',%d',,numl[i]);printf(', 393M);13、函数fun的功能是:将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。例如,若s所指字符串中的内容为:"ABCDEFG12345",其中字符A的ASCII码值虽为奇数,但所在元素的卜标为偶数,因此必需删除:而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其它依此类推。最后t所指的数组中的内容应是:"135"。voidfun(char*s,chart[]){inti,slenth,n=O;slenth=strlen(s);for(i=1;i 394Theresultis:%d 395”,fun(x));)2、给定程序modi.c中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向后顺序移动。例如,调用fun函数之前给字符串输入:GABCDeFGH调用后字符中的内容为:eGABCDFGH请改正程序中的错误,使它能得出正确结果。#include p{*q=*(q-l);q・・;}p[0]=max;)main(){charstr[80];printf("Enterastring:n);gets(str);printf(', 396Theoiginaliring:H);puts(str);fun(str);printf(" 397Thestringaftermoving:M);puts(str);printf(M 398 399M;13、编写函数fun,它的功能是计算:s=(In(l)+In(2)+In(3)+……+In(m))A0.5,s作为函数值返回。在C语言中可调用k)g(n)函数求In(n)olog函数的引用说明是:doublelog(doublex)。例如,若m的值为:20,fun函数值为:6.506583。doublefun(intm){inti;doubles=0; 400for(i=l;i<=m;i++)s=s+log(i);s=sqrt(s);returns;}第54题1、给定程序中,函数fun的功能是:将形参s所指字符串中的所有字母字符顺序前移,其它字符顺序后移,处理后新字符串的首地址作为函数值返回。例如,s所指字符串为:asd123fgh543df,处理后新字符串为:asdfghdf123543c#include 401Theresultis:%s 402M,fun(s));)2、给定程序modi.c中,函数fun的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指数组的尾部。例如,当a所指字符串中的内容为"abcdefg",b所指字符串中的内容为"1234"时,c所指数组中的内容应该为“a4b3c2dlefg";而当a所指字符串中的内容为"1234",b所指字符串中的内容为"abcdefg”时,c所指数组中的内容应该为"lg2f3erdcba"。请改正程序中的错误,使它能得出正确结果。voidfun(char*a,char*b,char*c)(intij;charch;i=0;j=strlen(b)-l;/************found************/while(>j)〃第一处:改为i 403中的所有字符复制到字符串b中,要求每复制三个字符之后插入一个空格。例如,在调用fun函数之前给字符串a输入:ABCDEFGHUK调用函数之后,字符串b中的内容则为:ABCDEFGHIJK请改正程序中的错误,使它能得出正确结果voidfun(char*p,char*b){intik=0;while(*p){i=l;/************found************/while(<3ll*p)〃第一处:改为:i<4&&*p{b[k]=*p;k++;p++;i++;}if(*p)/************[ound************/b[k]=:〃第二处:改为b[k++]=";}blkJ^O';}3、规定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部删除,中间和尾部的*号不删除。例如,字符串中的内容为:*******A*BC*DEF*G****,删除后,字符串中的内容应当是:A*BC*DEF*G****。在编写函数时,不得使用C语言提供的字符串函数。voidfun(char*a){charb[81J;inti=0,j=0;while((a[j]!=l\O)&&(a|j]=*))j++;while(a(j]!=W)(b[i]=a[j];j++;i++;)b[i]=AO';i=0;j=0;while(b[i]!=,0')(a[j]=b[i];i++;j++;)am=vr;)第56题1、给定程序中,函数fun的功能是将a和b所指的两个字符串转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含9以下数字字符。例如,主函数中输入字符串:32486和12345,在主函数中输出的函数值为:44831»请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。longctod((har*s){bngd=0;while(*s)if(isdigit(*s)){/字*********found**********/d=d*10+*s-_l_;〃第一处:填'O'/字*********found**********/_2_;}〃第二处填:s++;returnd;)longfun((har*a,(har*b)(/不*********found**********/return_3_;//第三处填:ctod(a)+ctod(b);)2、给定程序modi.c中,函数fun的功能是:将长整型数中每一位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为:87653142时,t中的数为:8642,voidfun(longs,long*t){intd;longsl=l;*t=0;while(s>0){d=s%10;/************found************/ifd%2=0)〃第一处:改为d%2==0{*t=d*sl+*t;sl*=10;)/************found************/s\=10;〃第二处:改为/3、请编一个函数fun,函数的功能是使实型数保留2位小数,并对第三位进行四舍五入(规定实型数为正»I>A,数。例如:实型数为1234.567,则函数返回1234.570000:实型数为1234.564,则函数返回1234.560000ofloatfun(floath){ 404h=h*100;h=h+0.5;h=(int)h;h=h/100;returnh;第57题1、给定程序中,函数fun的功能是:计算出形参s所指字符串中包含的单词个数,作为函数值返回。为便于统计,规定各单词之间用空格隔开。例如,形参s所指的字符串为:ThisisaClanguageprogram.,函数的返回值为6。intfin(char*s){intn=0,flag=0;while(*s!=A0'){if(*s!=''&&flag==0){/**********found**********/_1_;flag=l;}//n++/*********字found**********/if风=='')flag=_2_;//0/**********found**********/_3_;〃s++)returnn;)2、给定程序modi.c中,函数fun的功能是:求三个数的最小公倍数。例如,给变量xl、x2、x3分别输入15112,则输出结果应当是:330。fun(intx,inty,intz){intj,t,n,m;/************found************/j=0;〃改为j=lt=j%x;/字***********found************/m=t%y;〃改为j%yn=j%z;while(t!=0llm!=0lln!=0){j=j+l;t=j%x;/,***********found************/m=t%y;//改为j%yn=j%z;)returnj;)3、请编写函数fun,它的功能是:求出能整除形参x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。例如,若x中的值为:35,则有4个数符合要求,它们是:1,5,7,35。voidfun(intx,intpp[],int*n)|inti,k,j=O;for(i=l;i<=x;i+=2)(if((x%i)==0)PPlj++]=i;*n=j;)for(i=0;i 405voidfin(char(*ss)[M]){(har*ps[N],*tp;inti,j,k;for(i=0;i 406Thestringaftersortingbylength: 407 408");for(i=0;i 409Theoriginalstring 410 411n);for(i=0;i 412u);printf(" 413Enterastringforsearch:");gets(t);n=fun(ch,t);/*******************/if(n==_3_)printfC'XnDon'tfound! 414");〃第三处:-1elseprintf(" 415Thepositionis%d. 416",n);}2、给定程序modi.c中,函数fun的功能是:计算n!例如,给n输入5,则输出120.000000。请改正程序中的错误,使它能得出正确结果。#include 417 418%d!=%lf 419 420,',n,fun(n));)3、规定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了尾部连续的*号之外,将字符串中其它*号全部删除。形参p已指向字符串中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为: 421****A*BC*DEF*G******,删除后,字符串中的内容应当是:ABCDEFG*******。voidfun(char*a,char*p){charb[81],*k;inti=0,j=0;k=a;while(k<=p)if(*k!='*'){b[i]=*k;i++;k++;}elsek++;while(*(++p)){b[i]=*p;i++;}b[i]=AO';i=0;while(b[i]!=,0'){a[j]=b[i];j++;i++;}a[j]=^';)第60题1、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中的学号和姓名,最后输出修改后的数据。例如:a所指变量中的学号、姓名、和三门课的成绩依次是:1000k"ZhangSan",95、80、88,则修改后输出b中的数据应为:10002,"LiSi\95、80、88。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。voidfin(structstudenta){Jructstudentb;inti;/**********found**********/b=_1_;b.sno=10002;/*********nd**********/strcpy(_2_,"LiSi");printf(H 422Thedataaftermodified: 423H);printf(H 424No:%ldName:%s 425Scores:",b.sno,b.name);/**********found**********/for(i=0;i<3;i++)printf("%6.0f",b._3_);printf(" 426");)第1处:内容为[b=a;]第2处:内容为[strcpy(b.name,"LiSi");]第3处:内容为[for(i=0;i<3;i++)printf(*%6.Of”,b.score[i]);]2、给定程序modi.c中函数fun的功能是:计算S=f(-n)+f(-n+1)+-+f(O)+f(1)+f(2)+・“+f(n)的值。例如,当n为5时,函数值应为:10.407143。f(x)函数定义如下:xX)且x#2f(x)=H0x=0或x=2uGc-l)/(x-2)x<0请改正程序中的错误,使程序能输出正确的结果。#include 427M,fun(5));}第1处:内容为[doublef(doublex)]第2处:内容为[returns;]3、请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置上的字母转换成大写(若该位置上不是字母,则不转换)。例如,若输入〃abc4EFG”,则应输出"aBc4EFG”。voidfun(char*ss)(inti,n=0;char*p;P=ss; 428while(*p++!='\0')/*判断是否到了字符串的末尾*/n++;for(i=l;i 429*,k,fun(k));}第1处:内容为[if(k>0)]第2处:内容为[elseif(k-0)]3、编写函数fun,它的功能是:计算并输事下列级数和:11S=+1X22X3nX(n+1)例如,当n=10时,函数值为:0.909091odoublefun(intn){inti;doubles=0;for(i=l;i〈=n;i++)s=s+1.0/(i*(i+l));return(s);)第62题1、给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。例如,输入一个数:27638496,新的数:为739。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include 430Theresultis:%ld 431';n); 432|第1处:内容为[{t=*n%10;]第2处:内容为[if(t%2!=0)J第3处:内容为[*n=x;]2,给定程序M0DI1.C中函数fun的功能是:根据形参m的值(2Wm<9),在m行m列的二维数组中存放如下所示规律的数据,由main函数输出。请改正程序函数中的错误,使它能得出正确的结果。#include 433");}}第1处:内容为[fun(inta[UM],intm)]第2处:内容为[a|j][k]=(k+D*(j+l);J3、编写函数fun,它的功能是计算下列级数和,和值由函数值返回。x*2x*3x*ns=1+x++++2!3!zi!例如,当n=10,x=0.3时,函数值为1.349859。doublefun(doublex,intn){inti;doublef=l.0,h=x;doubles=l;s=s+h/f;/*求公式中1、2两项的和(即1+x)*/for(i=2;i<=n;i++){f=f*i;/*求公式中每一项分母的阶乘值*/h=h*x;/*求公式中每一项分子的乘方值*/s=s+h/f;}return(s);}第63题1、给定程序中,函数fun的功能是:计算x所指数组中N个数的平均值(规定所有数均为正数),平均值通过形参返回主函数,将小于平均值且最接近平均值的数作为函数值返回,在主函数中输出。例如,有10个正数:4630324061745154826,平均值为:30.500000主函数中输出:m=30.0请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。doublefin(doublex[],double*av){nti,j;doubled,s;s=0;for(i=0;i 434例如,字符串中的内容为:****a*bc*def*g*******,删除后,字符串中的内容应当是:****A*BC*DEF*G。在编写函数时,不得使用C语言提供的字符串函数。voidfun(char*a){charb[81];inti=O,j,s=O;j=strlen(a)-l;while&&(a[j]==**,))j-;while(j!=-l){b[i]=a[j];j-;i++;}b[i]=,\O,;j=O;i=O;while(b[i++]!=A0')S++;i=0;while(b[i]!=V)'){a[j+s]=b[i];j++;i++;}a[s]=W;}第64题1、给定程序中,函数fun的功能是:找出NXN矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一维数组中。请在程序的下划线处填入正确的内容并把F划线删除,使程序得出正确的结果。#defineN4void£in(int(*a)[N],ht*b){hti,j;for(i=0;i 435Thematrix: 436u);for(i=0;i 437n);fun(_3_);printf(" 438Theresultis:n);for(i=0;i 439H);)第1处:内容为[b[i]=a[0][i];]第2处:内容为[if(b[i]=num)(pi=pi+t;n=n+2;s=-s;/************found************/t=s%n;)pi=pi*4;returnpi;)第1处:内容为[while((fabs(t))>=num)]第2处:内容为3、假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。例如,字符串中的内容为:****A*BC*DEF*G******,删除后,字符串中的内容应当是:****ABCDEFG。voidfun(char*a){charb[81];inti=0,j=0;while(a[i]&&(a[i]==,)) 440{b[j]=a[i];j++;i++:}while(a[i])if(a[i]!='*'){b[j]=a[i];j++;i++;}elsei++;b[j]=\0>;j=O;i=O;while(b[j]){a[i]=b[j];i++;j++;}a[i]='\0':)第65题1、给定程序中,函数fun的功能是建立一个NXN的矩阵。矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,…依次类推。例如,若N=5,生成的矩阵为:1111112221123211222111111请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include 441Theresultis: 442M);for(i=0;i 443H);))第1第2第3处:内容为[voidfin(int(*a)[N])]处:内容为[for(j=i;j 444 445%d!=%lg 446 447,',n,fun(n));}第1处:内容为[result*=(double)n--;]第2处:内容为[returnresult;]3、假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中最后*号的个数。在编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为:****A*BC*DEF*G******,删除后,字符串中的内容应当是:A*BC*DEF*Go注意:部分源程序存在文件prog.c中。voidfun(char*a,intn,inth,inte){charb[81],*c,*d;inti=0,j=0;c=a;d=a;c=c+h;d=d+n-e-l;while(c<=d){b[i]=*c;i++;c++;}bfiJ^O';i=0;while(b[i]){a[j]=b[i];j++;i-H-;}aUi;)第66题1、给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新的数,并作为函数值返回。例如,输入个整数:27638496,函数返回值为:64862o请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include 448/**********found**********/n=_3_;}returnx;}main(){unsignedlongn=-l;while(n>99999999lln<0){printf(MPleaseinput(0 449Theresultis:%ld 450'\fun(n));}第1处:内容为[if(t%2==0)]第2处:内容为[x=x*10+t;]第3处:内容为[n=n/10J2、给定程序modi.c中,函数fun的功能是:从N个字符串中找出最长的那个串,并将其地址作为函数值返回。各字符串在主函数中输入,并放入一个字符串数组中。请改正程序中的错误,使它能得出正确结果#defineN5#defineM81/************found************/fun(char(*sq)[N]){intichar*sp;sp=sq[0];for(i=0;i 451returns}main(){system(MclsH);printf("%f 452”,fun(10));}第1处:内容为[doublefun(intk)]第2处:内容为[returns;]2、函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的个位和百位上。例如,当a=45,b=12。调用该函数后,c=5241voidfun(inta,intb,long*c){inta_up,ajow,b_up,b_low;a_up=a/10;/*求正整数a的十位数*/a_low=a%10;/*求正整数a的个位数*/b_up=b/10;/*求正整数b的十位数*/b_low=b%10;/*求正整数b的个位数*/*c=a_low*1000+b_low*100+a_up*10+b_up;}第68题1、给定程序中,函数fun的功能是计算下式«357,、孰_](2xn+1)234262(2xn)2直到(2xn+l)£10-3(2xn)2,并把计算结果作为函数值返回。例如:若形参e的值为le-3,函数的返回值为0.551690c#include 453n,fun(e));}第1处:内容为[x=3.0/4;]第2处:内容为[while(x>e)]第3处作:内容为[x=(2*i+l)/(t*t);]2、给定程序modi,c中,函数fun的功能是:应用递归算法求形参a的平方根,求平方根的迭代公式如下:1axl=—(x0+)2xO例如,2的平方根值为:1.414214。#include 454n,x,fun(x,1.0));)第1处:内容为[doublefun(doublea,doublexO)]第2处:内容为[if(fabs(xl-xO)>0.00001)]3、学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把分数最低的学生数据放在h所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数. 455intfun(STREC*a,STREC*b){inti,j=0,min,k,f=0:min=(*a).s;for(i=l;i 456n,a,b);}第1处:内容为[voidfun(inl*x,inl*y)]第2处:内容为[t=*x;*x=*y;*y=t;]3、函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的千位和十位上。例如,当a=45,b=12。调用该函数后,c=1425ovoidfun(inta,intb,long*c)(inta_up,a_low,b_up,b_low;a_up=a/10;/*求正整数a的十位数*/a_low=a%10;/*求正整数a的个位数*/b_up=b/10;/*求正整数b的十位数*/b_low=b%10;/*求正整数b的个位数*/*c=b_up*1000+a_up*100+b_low*10+a_low;}第70题1、给定程序中,函数fun的功能是:调用随机函数产生20个互不相同的整数放在形参a所指数组中(此数组在主函数中已置0)。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#defineN20voidfun(ht*a){inti,x,n=0;x=rand()%20;/**********found**********/while(n<―1—){for(i=0;i 457}第1处:内容为[intk=O;]第2处:内容为[while(*pII*q)]3、N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:找出学生的最高分,由函数值返回。doublefun(STREC*h){STREC*c;doublemax;c=h->next;max=c->s;/*假定首结点为最大值*/while(c->next!=0){c=c->next;/*c后移一个结点*/if(max 458Thevalueoffunctionis:%lf 459M,fun(n));)第1处:内容为[doublefun(intn)]第2处:内容为[s=s+(double)a/b;]3、程序定义了NXN的二维数组,并在主函数中自动赋值。请编写函数fun,函数的功能是:使数组右上三角元素中的值乘以m。例如:若m的值为2,a数组中的值为11971I218141a=l238I则返回主程序后a数组中的值应为12616114561145121注意:部分源程序存在文件prog.c中。voidfun(inta[][N],intm){intij;for(i=0;i 460请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#defineM3#defineN5voidfin(int(*a)[N],intk){hti,j,p,temp;/*********不found**********/for(p=l;p<=_1_;p++)for(i=0;i 46155555555则一维数组中的内容应是:333333334444444455555555。voidfun(int(*s)[10],nt*b,nt*n,htmm,ntnn){intx,y;for(x=0;x 462Thevalueoffunctionis:%lf 463u,fun(n));}第1处:内容为[doublefun(n)]第2处:内容为[c=a;a+=b;b=c;]3、请编写函数fun,函数的功能是:将M行N列的二维数组中的数据按列的顺序依次放到一维数组中。例如,二维数组中的数据为:333333334444444455555555则一维数组中的内容应是:334455334455334455334455ovoidfun(int(*s)[10],ht*b,ht*n,htmm,htm){intx,y;for(x=0;x 464for(y=0;y 465Aftercount: 466H);for(i=0;iv26;i++)%dif(k[i]=max)printfC^Xnletter\'%cV:times 467n,i+,a\k[ij);)第1处:内容为[ch=tolower(*s);]第2处:内容为[k[n]+=l;]第3处:内容为[if(max 468PleaseenteranEnglishtextline:");gets(chrstr);printf(u 469 470Beforechanging: 471%sM,chrstr);upfst(chrstr)printf(u 472Afterchanging: 473%sn,chrstr);)第1处:内容为悌include"stdio.h"]第2处:内容为[upfst(char*p)]3、请编写函数fun,函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。例如,字符串数组中的M个字符串为:AAAABBBBBBBCC则合并后的字符串的内容应是:AAAABBBBBBBCC»提示:strcat(a,b)的功能是将字符串b复制到字符串a的串尾上,成为一个新串。#defineM3#defineN20voidfun(chara[M][N],char*b)(inti,j,k=O;for(i=0;i 474/**********found¥*********/if(len<=_2_)/**********found**********/strcpy(ss[j++],_3_);}returnj;|第1第2第3处:内容为[for(i=0;i 475M);}/*******************/if(find=_3_)printf(" 476Don'tfound! 477n);)第[1]处:内容为[for(i=0;i 478Dontfound! 479");]2、给定程序modi.c中函数fun的功能是:判断一个整数m是否是素数,若是返回1,否则返回0。在main。函数中,若fun返回1输出YES,若fun返回0输出NO!。intfun(intm){intk=2;while(k<=m&&(m%k))/***********************/k++/***********************/if(m=k)return1;elsereturn0;)第[1]处:第2处:内容为[k++;]内容为[if(m==k)]3、请编写函数fun,函数的功能是:移动字符串中的内容,移动的规则如下:把第1到第m个字符平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。例如,字符串中原有的内容为:ABCDEFGHIJK,m的值为3,则移动后字符串中的内容应该是:DEFGH1JKABC。voidfun(char*w,intm){inti=O,x,j;charch;for(j=0;w|j];j+4-)i++;for(x=0;x 480while(p)longcharfloatw[i-l]=ch;/*将m+l到最后的字符之间的字符依次向前平移m个存储单元*/})第78题1、给定程序中,函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串中右边的字符删除,只保留左边的k个字符。ss所指字符串数组中共有N个字符串,且串长小于M。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#defineN5#defineM10/**********found**********/voidfin(char(*ss)_1_,litk){hti=0;/**********found**********/while(i<_2_){/**********found不*********/ss[i]lk]=_3_;i++;})main()charx[N][M]={,,Create,';,Modify,,;,Sort,,;,skipu:,DeleteM};inti;printf(u 481Theoriginalstring 482 483H);for(i=0;i 484");fun(x,4);printf(" 485Thestringafterdeleted: 486 487n);for(i=0;kN;详+)puts(x[i]);printf(,' 488M);)第1处:内容为[void£in(char(*ss)[M],htk)]第2处:内容为[while(ivN){]第3处:内容为[ss[i][k]=0;i++;}]2、给定程序modi.c是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。if(p->data%2==0)sum+=p->data;/***********found**********/p=h->next;)returnsum;第1处:内容为[p=h->next;]第2处:内容为[p=p->next;]3、请编写函数fun,函数的功能是:将M行N列的二维数组中的字符数据按列的顺序依次放到一个字符串中。例如,二维数组中的数据为:WWWWSSSSHHHH则字符串中的内容应是:WSHWSHWSHWSHovoidfun(char(*s)[N],char*b){intx,y;for(x=0;x<100;x++)*(b+x)=0;for(x=0;x 489求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。typedefstructaa{intdata;structaa*next;}NODE;fun(NODE*h){htmax=-l;NODE*p;/***********found**********/p=h;while(p){if(p->data>max)max=p->data;/***********found**********/p=h->next;}returnmax;}第1处:内容为[p=h->next;]第2处:内容为[p=p->next;]3、请编写函数fun,函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。例如,一维数组中的数据是:2223445666677899101010o删除后数组中的内容应该是:2345678910,intfun(inta[],htn){inti,j,x;for(i=0;i 490b[i]=0;for(i=0;i 491Enterastringwithlength<80.: 492 493");gets(s);printf(n 494Thestring: 495 496");puts(s);fun(s);printf(M 497 498TheCords 499 500");puts(s);}第1处:内容为[whi侬*s)]第2处:内容为[s++;]3、请编写函数fun,函数的功能是:统计一行字符串中单词的个数作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。intfun( 501if(5=_2_)return;q=p->next;p->next=NULL;while(q){r=q>next;q->next=p;/**********found**********/p=q;q=_3_;}h->next=p;}第1处:内容为[p=h->next;]第2处:内容为[if0=0)return;]第3处:内容为[p=q;q=?]2、给定程序modi.c中函数fun的功能是:比较两个字符串,将长的那个字符串的首地址作为函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果。#include 502Enterastring:");gets(a);printf(M 503Enterastringagain:");gets(b);printf(H 504Thelongeris: 505 506V'%s\', 507,\fun(a,b));)第1处:内容为[char*fun(char*s,char*t)]第2处:内容为[ss++;]第3处:内容为[tt++;]3、请编写函数fun,它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串:123412132,输入字符为:1,则输出:3。intfun(char*ss,charc)(inttimes=0,i,len;len=strlen(ss);for(i=0;i
此文档下载收益归作者所有