1、计算机题库72: 第72题请编写函数fun,其功能是:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成新串放在t所指数组中。 答案: void fun(char *s,char t) int i,j=0,n=strlen(s); for(i=0;in;i+) if(i%2!=0) tj=s; j+; tj=0; 73: 第73题假定输入的字符串中只包含字母和*号,请编写函数fun,它的功能是:除了字符串前导和尾部的*号之外,将串中其他*号全部删除。形参h已指向字符串第一个字符,形参p已指向字符串中最后一个字母。在编写程序时,不得使用c语言提供的字符串函数。 答案: void fun(ch
2、ar *a,char *h,char *p) int i=0; char *q=a; while(qh) a=*q; q+; i+; while(qp) if(*q!=*) a=*q; i+; q+; while(*q) a=*q; i+; q+; a=0; 74: 第74题学生的记录由学号和成绩组成n名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能时:把分数最低的学生数据放在h所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。 答案: int fun(strec *a,strec *b) int i,j=0,n=0,min; min=a0.s
3、; for(i=0;in;i+) if(a.smin) min=a.s; for(i=0;in;i+) if(a.s=min) *(b+j)=a; j+; n+; return n; 75: 第75题请编写函数fun ,该函数的功能:将m行n列的二维数组中的数据,按列的顺学依次放到一维数组中。 答案: void fun(int (*s)10,int *b,int *n,int mm,int nn) int i,j; for(j=0;jnn;j+) for(i=0;imm;i+) b*n=*(*(s+i)+j); *n=*n+1; 76: 第76题请编写函数fun,其功能时:计算并输出当x0.9
4、7时下列多项式的值,直到sn-s(n-1)1e-6); return sum; 77: 第77题请编写一个函数fun,其功能是:将两个两位数的正整数ab合并形成一个整数放在c中。合并方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。 答案: void fun(int a,int b,long *c) *c=(b%10)*1000+(a%10)*100+(b/10)*10+a/10; 78: 第78题请编写函数fun,其功能是:将s所指字符串中ascii值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。 答案: void fun(
5、char *s,char t) int i,j=0,n=strlen(s); for(i=0;in;i+) if (s%2!=0) tj=s; j+; tj=0; 79: 第79题已知学生的记录由学号和学习成绩构成,n名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。 答案: void fun(stu a,stu *s) int i,min; min=a0.s; for(i=0;in;i+) if(a.smin) min=a.s; *s=a; 80: 第80题程序定义了nn的二维数组,并在主函数中自动赋值。请编
6、写函数fun,该函数的功能是:使数组左下半三角元素中的值乘以n。 答案: fun(int an,int n) int i,j; for(i=0;in;i+) for(j=0;j=i;j+) aj=aj*n; 81: 第81题请编写函数fun,其功能使:将两个两位正整数a b合并形成一个整数放在c中。合并的方式使:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的千位和十位上。 答案: void fun(int a,int b,long *c) *c=(b/10)*1000+(a/10)*100+(b%10)*10+a%10; 82: 第82题请编写一个函数fun,
7、它的功能使:计算n门课程的平均分,计算结果作为函数值返回。 答案: float fun(float *a,int n) float ave=0.0; int i; for(i=0;in;i+) ave+=a; ave/=n; return ave; 83: 第83题假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能使:将字符串尾部的*号全部删除,前面和中间的*号不删除。 答案: void fun(char *a) int i=0; char *p,*q; p=q=a; while(*p) p+; p-; while(*p=*) p-; while(q=p) a=*q; i+; q+
8、; a=0; 84: 第84题请编写函数fun,其功能是:将两个两位数的正整数a b合并形成一个整数放在c中,合并的方式是:将a数的十位和个位数依次放在c的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。 答案: void fun(int a,int b,long *c) c=(b/10)*1000+(a%10)*100+(b%10)*10+a/10; 85: 第85题 n名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:求出平均分,由函数值返回。 答案: double fun(strec *h) double aver=0.0
9、; while(h!=null) aver+=h-s; hy=h-next; aver/=n; return aver; 86: 第86题请编写函数fun,计算并输出给定10个数的方差。 答案: double fun(double x10) int i,j; double s=0.0,s1=0.0; for(i=0;i10;i+) s1+=x; s1/=10; for(j=0;j10;j+) s+=(xj-s1)*(xj-s1); s/=10; s=pow(s,0.5); return s; 87: 第87题请编写函数fun,其功能是:将两个两位数的正整数a b合并形成一个整数放在c 中。合并
10、的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的个位和百位上。 答案: void fun(int a,int b,long *c) *c=(a/10)*1000+(a%10)*10+(b%10)*100+b/10; 88: 第88题假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其他*号全部删除。在编写函数亚时,不得使用c语言提供的字符串函数。 答案: void fun(char *a) int i=0; char *p=a; while(*p&*p=*) a=*p; i+; p+; while(*p)
11、 if(*p!=*) a=*p; i+; p+; a=0; 89: 第89题学生的记录是由学号和成绩组成,n名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。 答案: double fun(strec *a,strec *b,int *n) double aver=0.0; int i,j=0; for(i=0;in;i+) aver+=a.s; aver/=n; for(i=0;in;i+) if(a.s)=aver *(b+j)=a; j+; *n=j; re
12、turn aver; 90: 第90题请编写函数fun,其功能是:计算并输出下列多项式值:sn=(1-1/2)+(1/3-1/4)+(1/(2n-1)1/2n). 答案: sn=(1-1/2)+(1/3-1/4)+.+(1/(2n-1)1/2n). double fun(int n) int i; double sn=0.0; for(i=1;i=n;i+) sn+=(1.0/(2*i-1)-1.0/(2*i); return sn; 91: 第91题请编写函数fun,其功能是:将两个两位数的正整数a b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c的十位和千位上,b数
13、的十位和个位数依次放在c数的个位和百位上。 答案: void fun(int a, int b, long *c) *c=(a%10)*1000+(b%10)*100+(a/10)*10+b/10; 92: 第92题请编写函数fun,它的功能是计算:s=(ln(1)+ln(2)+ln(3)+ln(m)(0.5),s作为函数值返回。 答案: double fun(int m) int I; double s=0.0, log(double x); for(i=1;i=m;i+) s=s+log(i); s=sqrt(s); return s; 93: 第93题请编写函数fun,它的功能是计算下列
14、级数和,和值由函数值返回。 S=1+x+x(2)/2!+x(3)/3!+x(n)/n! 答案: double fun(double x, int n) double s=1.0, p=1.0; int I,j,t; for(i=1;i=n;i+) t=1; for(j=1;j=i;j+) t=t*j; p=p*x; s=s+p/t; return s; 94: 第94题规定输入字符串中只包含字母和*号。请编写函数fun,它的功能是:将函数字符串中的前导*号全部删除,中间和尾部的*号不删除。 答案: void fun(char *a) int i=0; char *p=a; while(*p&*
15、p=*) p+; while(*p) a=*p; i+; p+; a=0; 95: 第95题假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串的前导*号不得多于n个;若多于n个,则删除多于的*号;若少于或等于n个,则什么也不做。字符串中间和尾部的*号不删除。 答案: void fun(char *a, int n) int i=0,k=0; char *t=a; while(*t=*) k+; t+; t=a; if(kn) t=a+k-n; while( *t) a=*t; i+; t+; a=0; 96: 第96题请编写函数fun,其功能使:计算并输出给定数组(长度
16、为9)中每相邻两个元素之平均值的平方根之和。 答案: double fun(double x9) double sum=0.0; int I,j=1; for(i=0;i9;i+) if(j=8) sum+=sqrt(x+x)/2.0); j+; return sum; 97: 第97题请编写函数fun,其功能是:计算并输出下列多项式值: s=1+1/(1+2)+1/(1+2+3)+.1/(1+2+3+50) 答案: double fun(int n) int I,j; double sum=0.0, t; for(i=1;i=n;i+) t=0.0; for(j=1;j=I;j+) t+=j
17、; sum+=1.0/t; return sum; 98: 第98题请编写函数fun,它的功能是:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。 答案: double fun(int n) int I; double sum=0.0; for(i=1;i=n;i+) if(i%5=0 | i%9=0) sum+=1.0/I; return sum; 99: 第99题请编写函数fun ,其功能是:计算并输出3到n之间所有素数的平方根之和。 答案: double fun(int n) int m,k,I; double s=0.0; for(m=3;m=n;m+) k=sqrt(m); for(i=2;i=k;i+) if(m%i=0) break; if(i=k+1) s+=sqrt(m); return s; 100: 第100题请编写函数fun,其功能是:计算并输出 s=1+(1+2(0.5)+(1+2(0.5)+3(0.5)+(1+2(0.5)+3(0.5)+n(0.5) 答案: double fun(int n) int I; double =1.0,p=1.0; for(i=2;i=n;i+) p+=pow(I,0.5); s+=p; return s;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1