收藏 分享(赏)

编程题练习.doc

上传人:HR专家 文档编号:11514683 上传时间:2020-05-27 格式:DOC 页数:30 大小:36.83KB
下载 相关 举报
编程题练习.doc_第1页
第1页 / 共30页
编程题练习.doc_第2页
第2页 / 共30页
编程题练习.doc_第3页
第3页 / 共30页
编程题练习.doc_第4页
第4页 / 共30页
编程题练习.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、1、主函数中通过键盘输入年份,调用函数fun判断该年是否为闰年。#includefun(int year)int flag;/*Program*/* End */main() int year,np; printf(Pleae input a year:);scanf(%d,&year); np=fun(year); if (!np) printf(%d is not a leap yearn,year); else printf(%d is a leap yearn,year);答案if (year%400=0) flag=1;else if (year%4!=0) flag=0;else

2、if (year%100!=0) flag=1;else flag=0;return(flag);2、编写函数fun其功能是:根据整型参数n,计算如下公式a1=1,a2=1/(1+a1),a3=1/(1+a2),an=1/(1+a(n-1)数列的第n项。#include stdio.h#includeconio.hfloat fun(int n)/*Program*/* End */ main() int m; printf(Enter m: ); scanf(%d, &m); printf(nThe result is %fn, fun(m); 答案float a=1;int i;for(i

3、=1;in;i+)a=1.0/(1+a);return a;3、求表达式的前20项之和。程序的运行结果为1.950000。 1 1 1 S = 1 + + + . + 1*2 2*3 n*(n+1)#includefloat fun(int n) int i; float s,t;/*Program*/* End */ return(s);main() float s; s=fun(20); printf(%fn,s);答案 s=0; t=1; for(i=1;i0) d=n%10; s+=d*d*d; n/=10; return s;5、编写函数fun,功能是:用下面的和式求圆周率的近似值。

4、直到最后一项的绝对值小于等于eps。 1 1 1 = 1 - + - + . 4 3 5 7运行结果:pi=3.141397#include math.h#include stdio.hfloat fun(float eps)int i=1;float s=0,t=1,p=1;/*Program*/* End */ main() printf(pi=%fn,fun(0.0001);答案: while(fabs(t)eps) s=s+t; p=-p; i=i+2; t=p/i; return s*4;6、编写函数fun,功能是求如下表达式: 1 1 1 S = 1 + + + . + 1+2 1

5、+2+3 1+2+3+.+n 如:n=5 运行结果:1.666667#include stdio.hfloat fun(int n) int i,j; float t,s=0;/*Program*/* End */main() int n; printf(Please input a number:); scanf(%d,&n) ; printf(%10.6fn,fun(n);-答案 for(i=1;i=n;i+) t=0; for(j=1;j=i;j+) t=t+j; s=s+1/t; return s;7、编写函数fun,函数的功能是:求一分数序列2/1,3/2,5/3,8/5,13/8,

6、21/13的前n项之和。 每一分数的分母是前两项的分母之和 每一分数的分子是前两项的分子之和 例如:求前20项之和的值为32.660259。#include stdio.hfloat fun(int n)/*Program*/* End */main()float y;y=fun(20);printf(y=%fn,y);答案: int i; float f1=1,f2=1,f3,s=0; for(i=1;i=n;i+) f3=f1+f2; f1=f2; f2=f3; s=s+f2/f1; return s;8、编写函数fun求sum=d+dd+ddd+dd.d(n个d),其中d为1-9的数字。

7、 例如3+33+333+3333+33333(此时d=3,n=5),d和n在主函数中输入。#include stdio.hmain() int d,n; long sum,fun(); printf(d=); scanf(%d,&d); printf(n=); scanf(%d,&n); sum=fun(d,n); printf(sum=%ldn,sum);long int fun(int d,int n)/*Program*/* End */答案:long int s=0,t=0; int i; for(i=1;i=n;i+) t=t+d; s=s+t; d=d*10; return s;9

8、、编写函数fun,函数的功能是:求1到100之间的偶数之积。#include stdio.hdouble fun(int m)/*Program*/* End */main()printf(ji=%fn,fun(100);答案double y=1; int i; for(i=1;i=m;i+) if(i%2=0)y*=i; return y;10、编写函数fun求1!+2!+3!+ +n!的和,在main函数中由键盘输入n值,并输出运算结果。例如:若n值为20,则结果为268040729。#includefloat fun(int n)/*Program*/* End */main() int

9、 i,n; long int result; scanf(%d,&n); result=fun(n); printf(%ldn,result);答案int i;float f=1,s=0;for(i=1;i=2)&(b10) k-;if(k%13=0)|(k%17=0) a=a+k;b+; return a; t=aj;aj=aj+1;aj+1=t;14、编写函数fun其功能是:根据整型形参m,计算如下公式的值:y=1/2!+1/4!+.+1/m!(m是偶数)#include stdio.hdouble fun(int m) /*Program*/ /* End */ main() int n

10、; clrscr(); printf(Enter n: ); scanf(%d, &n); printf(nThe result is %1fn, fun(n);答案double y=0.0;int i,j;double s=1;for (i=2;i=m;i+=2)for(j=i-1;j=i;j+)s=s*j;y=y+1.0/s;return y;15、从键盘输入一个大于3的整数,调用函数fun判断其是否素数,然后在main函数中输出相应的结论信息。例如:7是素数,8不是素数。请编写fun函数。素数是仅能被1和自身整除的数#include stdio.hmain() int m,flag; p

11、rintf(input an integer:); scanf(%d,&m); flag=fun(m); if(flag) printf(%d is a prime.n,m); else printf(%d is not a prime.n,m); int fun(int n)/*Program*/* End */答案int i;int j;j= 1;if (i0) j=0;for(i=2;in;i+)if(n%i=0) j= 0;return j;16、请编写函数fun,它的功能是:判断m是否为素数。主函数的功能是:求出100到200之间的素数的个数。#include stdio.hmain

12、() int m,k=0; for(m=100;m200;m+) if(fun(m) printf(%4d,m); k+; if(k%5=0)printf(n); printf(k=%dn,k);int fun(int m)/*Program*/* End */答案int i,k=1; if(m=1) k=0; for(i=2;im;i+) if(m%i=0) k=0; return k;17、编写函数fun其功能是:求给定正整数n以内的素数之积。(n28)#include stdio.h#includeconio.hlong fun(int n)/*Program*/* End */ mai

13、n() int m; printf(Enter m: ); scanf(%d, &m); printf(nThe result is %ldn, fun(m);答案long i,k;long s=1; for(i=2;i=n;i+) for(k=2;ki;k+) if(i%k=0)break; if(k=i)s=s*i; return s;18、编写函数fun,函数的功能是:计算n门课程的平均值,计算结果作为函数值返回。例如,若有5门课程的成绩是:92,76,69,58,88,则函数的值为72.599998。#include stdio.hfloat fun(int a,int n)/*Pro

14、gram*/* End */main()int a=92,76,69,58,88;printf(y=%fn,fun(a,5);答案int i; float y=0; for(i=0;in;i+) y+=ai; y=y/n; return y;19、求一批数中小于平均值的数的个数。#includeint average_num(int a,int n)/*Program*/* End */main() int n,a100,i,num; clrscr(); scanf(%d,&n); for(i=0;in;i+) scanf(%d,&ai); num=average_num(a,n); prin

15、tf(the num is:%dn,num);答案int i,sum=0,k=0; float average; for(i=0;in;i+) sum=sum+ai; average=sum*1.0/n; for(i=0;iai) k+;return(k);20、从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函数中输出。请编写fun函数。#include stdio.hint fun(int x,int n)/*Program*/* End */main() int a10,i,min; for(i=0;i10;i+) scanf(%d,&ai); for(i

16、=0;i10;i+) printf(%3d,ai); printf(n); min=fun(a,10); printf(%dn,min); 答案int min,i;min=x0;for(i=1;in;i+)if(ximin) min=xi;return min;21、编写函数fun,函数的功能是:找出一批正整数中的最大的偶数。#include stdio.hint fun(int a,int n)/*Program*/* End */main()int a=1,2,9,24,35,18,k;k=fun(a,6);printf(max=%dn,k);答案int i,amax=-1;for(i=0

17、;iamax) amax=ai; return amax;22、程序的功能是: 把20个随机数存入一个数组,然后输出该数组中的最大值。其中确定最大值的下标的操作在fun函数中实现,请给出该函数的定义。 #include stdio.h#define VSIZE 20 int vectorVSIZE ; int fun(int list,int size) /*Program*/* End */ main() int i; clrscr() ; for (i=0;iVSIZE;i+)vectori=rand(); printf(Vector%d=%6dn,i,vectori); i=fun(ve

18、ctor,VSIZE); printf(nMaxnum: Vector%d=%6dn,i,vectori); 答案int i,max=0; for(i=1; i size; i+)if(listmaxlisti) max=i; return max;23、求一批数中最大值和最小值的差。int max_min(int a,int n)/*Program*/* End */#define N 30#include stdlib.h#include stdio.hmain() int aN,i,k; clrscr(); for(i=0;iN;i+) ai=random(51)+10; for(i=0

19、;iN;i+) printf(%5d,ai); if(i+1)%5=0) printf(n); k=max_min(a,N); printf(the result is:%dn,k); 答案int i,max,min; max=min=a0; for(i=1;imax) max=ai; else if(aimin) min=ai; return(max-min);24、给定n个数据, 求最大值出现的位置(如果最大值出现多次,求出第一次出现的位置即可)。#includeint station(int s,int n)/*Program*/* End */main() int a100,n,i,t

20、; clrscr(); scanf(%d,&n); for(i=0;in;i+) scanf(%d,&ai); t=station(a,n); printf(the max_value position is:%dn,t); 答案int i,k; k=0; for(i=1;isk) k=i; return(k+1);25、从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函数中输出。请编写fun函数。#include stdio.hint fun(int x,int n)/*Program*/* End */main() int a10,i,min; for(i=

21、0;i10;i+) scanf(%d,&ai); for(i=0;i10;i+) printf(%3d,ai); printf(n); min=fun(a,10); printf(%dn,min); 答案 int min,i;min=x0;for(i=1;in;i+)if(ximin) min=xi;return min;26、请编写一个函数fun,函数的功能是:统计出若干个学生的平均成绩,最高分以及得最高分的人数。例如,输入10名学生的成绩分别为92,87,68,56,92,84,67,75,92,66,则输出平均成绩为77.9,最高分为92,得最高分的人数为3人。#include stdi

22、o.hfloat Max=0;int J=0;float fun(float array,int n)/*Program*/* End */main( ) float a10,ave; int i=0; for(i=0;i10;i+) scanf(%f,&ai); ave=fun(a,10); printf(ave=%fn,ave); printf(max=%fn,Max); printf(Total:%dn,J); 答案int i,j=0;float sum=0,ave; Max=array0;for(i=0;in;i+) if(Maxarray i) Max=array i; sum=su

23、m+array i; ave=sum/n; for(i=0;in;i+) if(array i=Max) J+;return(ave);27、一个数组有8个元素,其初始数据为:1 2 3 4 5 6 7 8 要求在不增加数组,也不增加数组的存储单元的情况下,通过移动数组元素将数组变化为:4 5 6 7 8 1 2 3#includevoid fun(int a)int i,j,t;/*Program*/* End */main() int a8=1,2,3,4,5,6,7,8,i,j; fun(a); for(i=0;i8;i+) printf(%5d,ai); printf(n);答案: i

24、nt i,j,k,t; for(i=0;i3;i+) t=a0; for(j=0;j8;j+) aj=aj+1; a7=t; 28、产生15个20,80上的随机整数,用顺序法(比较法)按从小到大排序后输出。#include #includevoid fun(int a, int n)int i,j,t;/*Program*/* End */ #define N 15 main() int i,aN; for(i=0;iN;i+) ai=random(61)+20; fun(a,N); for(i=0;iN;i+) printf(%5d,ai); printf(n); 答案 for(i=0;in

25、-1;i+) for(j=i+1;jaj) t=ai; ai=aj; aj=t; 29、编写函数用选择排序法对数组中的数据进行从小到大的排序。#include #includevoid sort(int a,int n)/*Program*/* End */ main()int a13,i; clrscr(); for(i=0;i13;i+) ai=random(20)-5; for(i=0;i13;i+) printf(%3d,ai); printf(n-n); sort(a,13); for(i=0;i13;i+) printf(%3d,ai); 答案 int i,j,k,t; for(i

26、=0;in-1;i+) k=i; for(j=i+1;jaj) k=j; if(k!=i) t=ai; ai=ak; ak=t; 30、编写函数用冒泡排序法对数组中的数据进行从小到大的排序。#include #includevoid sort(int a,int n)/*Program*/* End */ main()int a16,i; clrscr(); for(i=0;i16;i+) ai=random(30)+15; for(i=0;i16;i+) printf(%3d,ai); printf(n-n); sort(a,16); for(i=0;i16;i+) printf(%3d,a

27、i); 答案int i,j,t; for(i=0;in-1;i+) for(j=0;jaj+1) t=aj;aj=aj+1;aj+1=t;31、编写函数fun,在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。#define N 11#includevoid fun(int aN,int number) int i;/*Program*/* End */ main()int i,j,t,number,aN=1,2,4,6,8,9,12,15,149,156; printf(please enter an integer to insert in the array:n); s

28、canf(%d,&number); printf(The original array:n); for(i=0;iN-1;i+) printf(%5d,ai); printf(n); fun(a,number); printf(The result array:n); for(i=0;i=0;i-) if(number=ai) ai+1=ai; else ai+1=number; break; if(numbera0) a0=number;32、编写函数fun其功能是在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出主对角线元素的平方和,并在fun()函数中输出。#include stdio.hmain() int i,j,s,a33; for(i=0;i3;i+)for(j=0;j3;j+)scanf(%d,&aij); s=fun(a); printf(Sum=%dn,s);int fun(int a33)/*Program*/* End */答案int sum;int i,j;sum=0;for(i=0;i3;i+) sum=sum+aii*aii; return sum;33、有一个33的数组,求其右上三角(含主对角线)的元素之和。#include#define N 3 int fun(int aNN) int i,j,s;/*Program*/*

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 网络科技 > 计算机原理

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报