您好,欢迎访问三七文档
程序编写题1、请编写函数fun,其功能是:统计s所指字符串中的数字字符个数,并作为函数值返回。例如,s所指字符串中的内容是:2def35adh253kjsdf7/kj8655x,函数fun返回值为:11注意:部分源程序在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#includestdio.hintfun(char*s){intcount=0;while(*s!='\0'){if(*s=48&&*s=57)count++;s++;}returncount;}intmain(){char*s=2def35adh253kjsdf7/kj8655x;printf(%s\n,s);printf(%d\n,fun(s));}2、编写一个函数,从num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址。(注意:主函数中用****作为结束输入的标志,函数fun中给出的语句仅供参考。)注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#includestdio.h#includestring.hvoidfun(char(*a)[81],intnum,char**max){/*以下代码仅供参考*/inti,k=0,len,maxlen;/*k为a数组中最长串所在元素的下标,初始为0,maxlen为其串长*/maxlen=strlen(a[k]);for(i=1;inum;i++){/*以下完成查找最长串*/}*max=a[k];}main(){charss[10][81],*ps;voidintn,i=0;printf(输入若干个字符串:);gets(ss[i]);puts(ss[i]);while(!strcmp(ss[i],****)==0){i++;gets(ss[i]);puts(ss[i]);}n=i;fun(ss,n,&ps);printf(\nmax=%s\n,ps);}3、请编写函数fun,它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串:123412132,输入字符为:1,则输出:3。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#includestdio.h#includestring.h#defineM81intfun(char*ss,charc){}main(){chara[M],ch;voidprintf(\nPleaseenterastring:);gets(a);printf(\nPleaseenterachar:);ch=getchar();printf(\nThenumberofthecharis:%d\n,fun(a,ch));}4、规定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部删除,中间和尾部的*号不删除。例如,字符串中的内容为:*******A*BC*DEF*G****,删除后,字符串中的内容应当是:A*BC*DEF*G****。在编写函数时,不得使用C语言提供的字符串函数。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#includestdio.hvoidfun(char*a){}main(){chars[81];voidprintf(Enterastring:\n);gets(s);fun(s);printf(Thestringafterdeleted:\n);puts(s);}5、请编写一个函数voidfun(chara[],charb[],intn),其功能是:删除一个字符串中指定下标的字符。其中,a指向原字符串,删除指定字符后的字符串存放在b所指的数组中,n中存放指定的下标。例如,输入一个字符串:World,然后输入3,则调用该函数后的结果为:Word。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#includestdio.h#includestring.h#defineLEN20voidfun(chara[],charb[],intn){}main(){charstr1[LEN],str2[LEN];intn;voidprintf(Enterthestring:\n);gets(str1);printf(Entertheindexofthechardeleted:);scanf(%d,&n);fun(str1,str2,n);printf(Thenewstringis:%s\n,str2);}6、请编写一个函数unsignedfun(unsignedw),w是一个大于10的无符号整数,若w是n(n≥2)位的整数,函数求出w的低n-1位的数作为函数值返回。例如:w值为5923,则函数返回923;w值为923则函数返回23。注意:部分源程序存在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#includestdio.hunsignedfun(unsignedw){}main(){voidunsignedx;printf(Enteraunsignedintegernumber:);scanf(%u,&x);printf(Theoriginaldatais:%u\n,x);if(x10)printf(Dataerror!);elseprintf(Theresult:%u\n,fun(x));}7、假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导和尾部的*号之外,将串中其它*号全部删除。形参h已指向字符串中第一个字母,形参p已指向字符串中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为:****A*BC*DEF*G********,删除后,字符串中的内容应当是:****ABCDEFG********。在编写函数时,不得使用C语言提供的字符串函数。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#includestdio.hvoidfun(char*a,char*h,char*p){}main(){chars[81],*t,*f;voidprintf(Enterastring:\n);gets(s);t=f=s;while(*t)t++;t--;while(*t=='*')t--;while(*f=='*')f++;fun(s,f,t);printf(Thestringafterdeleted:\n);puts(s);}8、已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。注意:部分源程序存在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#includestdio.h#includestring.h#defineN10typedefstructss{charnum[10];ints;}STU;voidfun(STUa[],STU*s){}main(){STUa[N]={{A01,81},{A02,89},{A03,66},{A04,87},{A05,77},{A06,90},{A07,79},{A08,61},{A09,80},{A10,71}},m;inti;voidprintf(*****Theoriginaldata*****\n);for(i=0;iN;i++)printf(No=%sMark=%d\n,a[i].num,a[i].s);fun(a,&m);printf(*****THERESULT*****\n);printf(Thelowest:%s,%d\n,m.num,m.s);}9、请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。例如:二维数组中的值为13579299946999813570则函数值为61。注意:部分源程序存在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#includestdio.h#defineM4#defineN5intfun(inta[M][N]){}main(){intaa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,0}};inti,j,y;voidprintf(Theoriginaldatais:\n);for(i=0;iM;i++){for(j=0;jN;j++)printf(%6d,aa[i][j]);printf(\n);}y=fun(aa);printf(\nThesum:%d\n,y);printf(\n);}10、程序定义了N×N的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返给主函数中的s。例如:a数组中的值为|01279||19745|a=|23831||45682||59141|则返回主程序后s的值应为:3.375。注意:部分源程序存在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#includestdio.h#includestdlib.h#defineN5doublefun(intw[][N]){}main(){inta[N][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1};inti,j;voiddoubles;printf(*****Thearray*****\n);for(i=0;iN;i++){for(j=0;jN;j++){printf(%4d,a[i][j]);}printf(\n);}s=fun(a);printf(*****THERESULT*****\n);printf(Thesumis:%lf\n,s);}11、假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:删除字符串中所有的*号。在编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:ABCDEFG。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#includestdio.hvoidfun(char*a){}main(){chars[81];voidprintf(Enterastring:\n);gets(s);fun(s);printf(Thestringafterdeleted:\n);puts(s);}12、请编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。例如,若输入:17,则应输出:46891012141516。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#includestdio.hvoidfun(intm,int*k,intxx[]){}main(){intm,n
本文标题:50道程序设计题
链接地址:https://www.777doc.com/doc-3272951 .html