专升本C语言各种程序

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1.m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。intfun(intscore[],intm,intbelow[]){inti,k=0,aver=0;for(i=0;im;i++)aver+=score[i];aver/=m;for(i=0,im;i++)if(score[i]aver){below[k]=score[i];k++;}returnk;}2.请编写函数fun,它的功能是:求出1到100之内能被7或者11整除,但不能同时北7和11整除的所有整数,并将他们放在a所指的数组中,通过n返回这些数的个数。voidfun(int*a,int*n){inti,j=0;for(i=2;i1000;i++)if((i%7==0||i%11==0))&i%77!=0)a[j++]=i;*n=j;}3请编写一个函数voidfun(char*tt,intpp[]),统计在tt字符中a到z26各字母各自出现的次数,并依次放在pp所指的数组中。voidfun(char*tt,intpp[]){inti;for(i=0;i26;i++)pp[i]=0;while(*tt){if(*tt=’a’&&*tt=’z’)pp[*tt-97]++;}}4.编写函数fun,功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。s=1+1/(1+2)+1/(1+2+3)+.......+1/(1+2+3+4+......+n)floatfun(intn){inti;floats=1.0,t=1.0;for(i=2;i=n;i++){t=t+i;s=s+1/t;}returns;}5.编写一个函数fun,它的功能是:根据以下公式求P的值,结果由函数值带回。m与n为两个正整数,且要求mn。p=m!/n!(m-n)!floatfun(intm,intn){floatp,t=1.0;inti;for(i=1;i=m;i++)t=t*i;p=t;for(t=1.0,i=1;i=n;i++)t=t*i;p=p/t;for(t=1.0,i=1;im-n;i++)t=t*i;p=p/t;returnp;}6.编写函数fun,它的功能是:利用以下的简单迭代方法求方程cos(x)-x=0的一个实根。迭代步骤如下:(1)取x1初值为0.0;(2)x0=x1,把x1的值赋各x0;(3)x1=cos(x0),求出一个新的x1;(4)若x0-x1的绝对值小于0.000001,则执行步骤(5),否则执行步骤(2);(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。程序将输出Root=0.739085。folatfun(){floatx1=0.0,x0;do{x0=x1;x1=cos(x0);}while(fabs(x0-x1)=1e-6);returnx1;}7.请编写一个函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中。二维数组中的数已在主函数中赋予。voidfun(inttt[M][N],intpp[N]){inti,j,min;for(j=0;jN;j++){min=tt[0][j];for(i=0;iM;i++){if(tt[i][j]min)min=tt[i][j];}pp[j]=min;}}8.请编写一个函数fun(char*s),该函数的功能使把字符串中的内容逆置。voidfun(char*s){charch;inti,m,n;i=0;m=n=strlen(s)-1;while(i(n+1)/2){ch=s[i];s[i]=s[m];s[m]=ch;i++;m--;}}9.编写程序,实现矩阵(3行3列)的转置(即行列互换)。voidfun(intarray[3][3]){inti,j,temp;for(i=0;i3;i++)for(j=0;j3;j++){temp=array[i][j];array[i][j]=array[j][i];array[j][i]=temp;}}10.编写函数fun,该函数的功能是:从字符中删除指定的字符,同一字母的大、小写按不同字符处理。voidfun(chars[],intc){inti=0;char*p;p=s;while(*p){if(*p!=c){s[i]=*p;i++;}p++;}s[i]='\0';}11.N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:找出学生的最高分,由函数值返回。doublefun(STREC*h){doublemax;STREC*q=h;max=h-s;do{if(q-smax)max=q-s;q=q-next;}while(q!=0);returnmax;}12.请编写函数fun,该函数的功能是:判断字符串是否为回文?若是则函数返回1,主函数中输出YES,否则返回0,主函数中输出NO。回文是指顺读和倒读都是一样的字符串。intfun(char*str){inti,n=0,fg=1;char*p=str;while(*p){j++;p++;}j--;for(i=0;i=j;i++){if(str[i]!=str[j]){fg=0;break;}returnfg;}13.请编写一个函数fun,它的功能是:将一个字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。longfun(char*p){longs=0,t;inti=0,n=strlen(p);if(p[0]=='-')i++;for(;i=n-1;++){if(p[i]=’0’&&p[i]=’9’)s=s*10+p[i]-'0';}if(p[0]=='-')return-s;elsereturns;}14.请编写一个函数fun,它的功能是:输出一个字符串的长度。(不得调用C语言提供的求字符串长度的函数)。Intfun(char*s){inti=0;While(*s++)i++;ReturnI;}15.请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。voidfun(char*ss){inti,n;n=strlen(ss);for(i=1;in;i+=2;)if(ss[i]='a'&&ss[i]='z')ss[i]=ss[i]-32;}16.请编写函数fun,其功能是:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的一个数组中。voidfun(char*s,chart[]){inti,j,n;n=strlen(s);for(i=0;in;i++)if(i%2==0&s[i]%2==0){t[j]=s[j];j++;}t[j]='\0';}17..编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。voidfun(charp1[],charp2[]){inti=0,n=0;char*p=p1,*q=p2;while(*p){p++;n++;}i=n;while(*p){p1[i]=*q;q++;i++;}p1[i]='\0';}18.请编写函数fun,该函数的功能是:统计字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格格开,一行的开始没有空格。intfun(char*s){inti,n=0;for(i=1;istrlen(s);i++){if(s[i]='a'&s[i]='z'&s[i-1]=='')n++;}returnn+1;}19.请编写一个函数fun,它的功能是:计算并输出给定整数n的所有因子(不包括1与自身)之和。规定n的值不大于1000。.intfun(intn){ints=0,i;for(i=2;i=n-1;i++)if(n%i==0)s+=i;returns;}20.请编写一个函数fun,它的功能时:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)intfun(intt){inta=1,b=1,c=0,i;for(i=4;;i++){if(ct){c=a+b;a=b;b=c;}elsebreak;}returnc;}21.删除子字符串voidDelete_SubString(char*source,intstart,intnum){inti,l;l=strlen(source);if(numl-start+1||num==-1)num=l-start+1;if(start1||startl)return;for(i=start;il-num+2;i++)source[i-1]=source[i+num-1];}22.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?#includemath.hmain(){longinti,x,y,z;for(i=1;i100000;i++){x=sqrt(i+100);/*x为加上100后开方后的结果*/y=sqrt(i+268);/*y为再加上168后开方后的结果*/if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/printf(\n%ld\n,i);}}23.打印出杨辉三角形(要求打印出10行如下图)11112113311464115101051main(){inti,j;inta[10][10];printf(\n);for(i=0;i10;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i10;i++)for(j=1;ji;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=0;i10;i++){for(j=0;j=i;j++)printf(%5d,a[i][j]);printf(\n);}}24.判断101-200之间有多少个素数,并输出所有素数。#includemath.hmain(){intm,i,k,h=0,leap=1;printf(\n);for(m=101;m=200;m++){k=sqrt(m+1);for(i=2;i=k;i++)if(m%i==0){leap=0;break;}if(leap){printf(%-4d,m);h++;if(h%10==0)printf(\n);}leap=1;}printf(\nThetotalis%d,h);}25.打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。main(){inti,j,k,n;printf('waterflower'numberis:);for(n=100;n1000;n++){i=n/100;/*分解出百位*/j=n/10%10;/*分解出十位*/k=n%10;/*分解出个位*/if(i*100+j*10+k==i*i*i+j*j*j+k*k*k){printf(%-5d,n);}}printf(\n);}26.将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可

1 / 13
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功