编程题练习.docx

上传人:b****5 文档编号:8376559 上传时间:2023-01-30 格式:DOCX 页数:41 大小:24.04KB
下载 相关 举报
编程题练习.docx_第1页
第1页 / 共41页
编程题练习.docx_第2页
第2页 / 共41页
编程题练习.docx_第3页
第3页 / 共41页
编程题练习.docx_第4页
第4页 / 共41页
编程题练习.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

编程题练习.docx

《编程题练习.docx》由会员分享,可在线阅读,更多相关《编程题练习.docx(41页珍藏版)》请在冰豆网上搜索。

编程题练习.docx

编程题练习

1、主函数中通过键盘输入年份,调用函数fun判断该年是否为闰年。

#include

fun(intyear)

{intflag;

/**********Program**********/

/**********End**********/

}

main()

{intyear,np;

printf("Pleaeinputayear:

");scanf("%d",&year);

np=fun(year);

if(!

np)

printf("%disnotaleapyear\n",year);

else

printf("%disaleapyear\n",year);

}

答案

if(year%400==0)flag=1;

elseif(year%4!

=0)flag=0;

elseif(year%100!

=0)flag=1;

elseflag=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"

#include"conio.h"

floatfun(intn)

{/**********Program**********/

/**********End**********/

}

main()

{intm;

printf("Enterm:

");

scanf("%d",&m);

printf("\nTheresultis%f\n",fun(m));

}

答案

floata=1;inti;

for(i=1;i

a=1.0/(1+a);

returna;

3、求表达式的前20项之和。

程序的运行结果为1.950000。

111

S=1+——+——+......+————

1*22*3n*(n+1)

#include

floatfun(intn)

{inti;

floats,t;

/**********Program**********/

/**********End**********/

return(s);

}

main()

{floats;

s=fun(20);

printf("%f\n",s);

}

答案

s=0;

t=1;

for(i=1;i<=n;i++)

{s=s+t;

t=1.0/(i*(i+1));

}

4、编写函数fun,函数的功能是:

求一个四位数的各位数字的立方和。

#include"stdio.h"

intfun(intn)

{/**********Program**********/

/**********End**********/

}

main()

{intk;

k=fun(1234);

printf("k=%d\n",k);

}

答案:

intd,k,s=0;

while(n>0)

{d=n%10;

s+=d*d*d;

n/=10;

}

returns;

5、编写函数fun,功能是:

用下面的和式求圆周率的近似值。

直到最后一项的绝对值小于等于eps。

π111

—=1-—+—-—+...

4357

运行结果:

pi=3.141397

#include"math.h"

#include"stdio.h"

floatfun(floateps)

{inti=1;

floats=0,t=1,p=1;

/**********Program**********/

/**********End**********/

}

main()

{printf("pi=%f\n",fun(0.0001));

}

答案:

while(fabs(t)>eps)

{s=s+t;

p=-p;

i=i+2;

t=p/i;

}

returns*4;

6、编写函数fun,功能是求如下表达式:

111

S=1+——+———+......+———————

1+21+2+31+2+3+......+n

如:

n=5运行结果:

1.666667

#include"stdio.h"

floatfun(intn)

{inti,j;

floatt,s=0;

/**********Program**********/

/**********End**********/

}

main()

{intn;

printf("Pleaseinputanumber:

");

scanf("%d",&n);

printf("%10.6f\n",fun(n));

}

--------------------------------------------------

答案

for(i=1;i<=n;i++)

{t=0;

for(j=1;j<=i;j++)

t=t+j;

s=s+1/t;

}

returns;

7、编写函数fun,函数的功能是:

求一分数序列2/1,3/2,5/3,8/5,13/8,21/13…的前n项之和。

每一分数的分母是前两项的分母之和

每一分数的分子是前两项的分子之和

例如:

求前20项之和的值为32.660259。

#include"stdio.h"

floatfun(intn)

{/**********Program**********/

/**********End**********/

}

main()

{floaty;

y=fun(20);

printf("y=%f\n",y);

}

答案:

inti;

floatf1=1,f2=1,f3,s=0;

for(i=1;i<=n;i++)

{f3=f1+f2;

f1=f2;

f2=f3;

s=s+f2/f1;

}

returns;

8、编写函数fun求sum=d+dd+ddd+……+dd...d(n个d),其中d为1-9的数字。

例如3+33+333+3333+33333(此时d=3,n=5),d和n在主函数中输入。

#include"stdio.h"

main()

{intd,n;

longsum,fun();

printf("d=");

scanf("%d",&d);

printf("n=");

scanf("%d",&n);

sum=fun(d,n);

printf("sum=%ld\n",sum);

}

longintfun(intd,intn)

{/**********Program**********/

/**********End**********/

}

答案:

longints=0,t=0;

inti;

for(i=1;i<=n;i++)

{t=t+d;

s=s+t;

d=d*10;

}

returns;

9、编写函数fun,函数的功能是:

求1到100之间的偶数之积。

#include"stdio.h"

doublefun(intm)

{/**********Program**********/

/**********End**********/

}

main()

{printf("ji=%f\n",fun(100));

}

答案

doubley=1;

inti;

for(i=1;i<=m;i++)

if(i%2==0)y*=i;

returny;

10、编写函数fun求1!

+2!

+3!

+……+n!

的和,在main函数中由键盘输入n值,并输出运算结果。

例如:

若n值为20,则结果为268040729。

#include

floatfun(intn)

{/**********Program**********/

/**********End**********/

}

main()

{inti,n;

longintresult;

scanf("%d",&n);

result=fun(n);

printf("%ld\n",result);

}

答案

inti;

floatf=1,s=0;

for(i=1;i<=n;i++)

{f=f*i;

s=s+f;}

returns;

11、调用函数fun判断一个三位数是否是"水仙花数"。

在main函数中从键盘输入一个三位数,并输出判断结果。

请编写fun函数。

所谓"水仙花数"是指一个3位数,其各位数字立方和等于该数本身。

例如,153是一个水仙花数,因为153等于1的立方加上5的立方加上3的立方之和。

#include"stdio.h"

intfun(intn)

{/**********Program**********/

/**********End**********/

}

main()

{intn,flag;

scanf("%d",&n);

flag=fun(n);

if(flag)

printf("%d是水仙花数\n",n);

else

printf("%d不是水仙花数\n",n);

}

答案

intbw,sw,gw;

bw=n/100;sw=(n-bw*100)/10;gw=n%10;

if(n==bw*bw*bw+sw*sw*sw+gw*gw*gw)return1;

elsereturn0;

12、编写函数fun其功能是:

判断一个整数w的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0。

#include"stdio.h"

#include"conio.h"

intfun(intw)

{/**********Program**********/

/**********End**********/

}

main()

{intm;

printf("Enterm:

");

scanf("%d",&m);

printf("\nTheresultis%d\n",fun(m));

}

答案

intk,s=0;

do

{s=s+(w%10)*(w%10);

w=w/10;

}while(w!

=0);

if(s%5==0)k=1;

elsek=0;

return(k);

13、编写函数fun其功能是:

计算出k以内最大的10个能被13或17整除的自然数之和。

(k〈3000)。

#include"stdio.h"

#include"conio.h"

intfun(intk)

{/**********Program**********/

/**********End**********/

}

main()

{intm;

printf("Enterm:

");

scanf("%d",&m);

printf("\nTheresultis%d\n",fun(m));

}

答案

inta=0,b=0,j;

while((k>=2)&&(b<10))

{k--;

if((k%13==0)||(k%17==0))

{a=a+k;b++;}

}

returna;

{t=a[j];a[j]=a[j+1];a[j+1]=t;}

14、编写函数fun其功能是:

根据整型形参m,计算如下公式的值:

y=1/2!

+1/4!

+...+1/m!

(m是偶数)

#include"stdio.h"

doublefun(intm)

{/**********Program**********/

/**********End**********/

}

main()

{intn;

clrscr();

printf("Entern:

");

scanf("%d",&n);

printf("\nTheresultis%1f\n",fun(n));

}

答案

doubley=0.0;

inti,j;

doubles=1;

for(i=2;i<=m;i+=2)

{for(j=i-1;j<=i;j++)

s=s*j;

y=y+1.0/s;

}

returny;

15、从键盘输入一个大于3的整数,调用函数fun判断其是否素数,然后在main函数中输出相应的结论信息。

例如:

7是素数,8不是素数。

请编写fun函数。

素数是仅能被1和自身整除的数

#include"stdio.h"

main()

{intm,flag;

printf("inputaninteger:

");

scanf("%d",&m);

flag=fun(m);

if(flag)

printf("%disaprime.\n",m);

else

printf("%disnotaprime.\n",m);

}

intfun(intn)

{/**********Program**********/

/**********End**********/

}

答案

inti;

intj;

j=1;

if(i<0)j=0;

for(i=2;i

{if(n%i==0)j=0;

}

returnj;

16、请编写函数fun,它的功能是:

判断m是否为素数。

主函数的功能是:

求出100到200之间的素数的个数。

#include"stdio.h"

main()

{intm,k=0;

for(m=100;m<200;m++)

if(fun(m))

{printf("%4d",m);

k++;

if(k%5==0)printf("\n");

}

printf("k=%d\n",k);

}

intfun(intm)

{/**********Program**********/

/**********End**********/

}

答案

inti,k=1;

if(m<=1)k=0;

for(i=2;i

if(m%i==0)k=0;

returnk;

17、编写函数fun其功能是:

求给定正整数n以内的素数之积。

(n<28)

#include"stdio.h"

#include"conio.h"

longfun(intn)

{/**********Program**********/

/**********End**********/

}

main()

{intm;

printf("Enterm:

");

scanf("%d",&m);

printf("\nTheresultis%ld\n",fun(m));

}

答案

longi,k;

longs=1;

for(i=2;i<=n;i++)

{for(k=2;k

if(i%k==0)break;

if(k==i)s=s*i;

}

returns;

18、编写函数fun,函数的功能是:

计算n门课程的平均值,计算结果作为函数值返回。

例如,若有5门课程的成绩是:

92,76,69,58,88,则函数的值为72.599998。

#include"stdio.h"

floatfun(inta[],intn)

{/**********Program**********/

/**********End**********/

}

main()

{inta[]={92,76,69,58,88};

printf("y=%f\n",fun(a,5));

}

答案

inti;

floaty=0;

for(i=0;i

y+=a[i];

y=y/n;

returny;

19、求一批数中小于平均值的数的个数。

#include

intaverage_num(inta[],intn)

{/**********Program**********/

/**********End**********/

}

main()

{intn,a[100],i,num;

clrscr();

scanf("%d",&n);

for(i=0;i

scanf("%d",&a[i]);

num=average_num(a,n);

printf("thenumis:

%d\n",num);

}

答案

inti,sum=0,k=0;

floataverage;

for(i=0;i

sum=sum+a[i];

average=sum*1.0/n;

for(i=0;i

if(average>a[i])k++;

return(k);

20、从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函数中输出。

请编写fun函数。

#include"stdio.h"

intfun(intx[],intn)

{/**********Program**********/

/**********End**********/

}

main()

{inta[10],i,min;

for(i=0;i<10;i++)

scanf("%d",&a[i]);

for(i=0;i<10;i++)

printf("%3d",a[i]);

printf("\n");

min=fun(a,10);

printf("%d\n",min);

}

答案

intmin,i;

min=x[0];

for(i=1;i

{if(x[i]

returnmin;

21、编写函数fun,函数的功能是:

找出一批正整数中的最大的偶数。

#include"stdio.h"

intfun(inta[],intn)

{/**********Program**********/

/**********End**********/

}

main()

{inta[]={1,2,9,24,35,18},k;

k=fun(a,6);

printf("max=%d\n",k);

}

答案

inti,amax=-1;

for(i=0;i

if(a[i]%2==0)if(a[i]>amax)amax=a[i];

returnamax;

22、程序的功能是:

把20个随机数存入一个数组,然后输出该数组中的最大值。

其中确定最大值的下标的操作在fun函数中实现,请给出该函数的定义。

#include"stdio.h"

#defineVSIZE20

intvector[VSIZE];

intfun(intlist[],intsize)

{/**********Program**********/

/**********End**********/

}

main()

{inti;

clrscr();

for(i=0;i

{vector[i]=rand();

printf("Vector[%d]=%6d\n",i,vector[i]);

}

i=fun(vector,VSIZE);

printf("\nMaxnum:

Vector[%d]=%6d\n",i,vector[i]);

}

答案

inti,max=0;

for(i=1;i

if(list[max]

max=i;

returnmax;

23、求一批数中最大值和最小值的差。

intmax_min(inta[],intn)

{/**********Program**********/

/**********End**********/

}

#defineN30

#include"stdlib.h"

#include"stdio.h"

main()

{inta[N],i,k;

clrscr();

for(i=0;i

a[i]=random(51)+10;

for(i=0;i

{printf("%5d",a[i]);

if((i+1)%5==0)printf("\n");

}

k=max_min(a,N);

printf("theresultis:

%d\n",k);

}

答案

inti,max,min;

max=min=a[0];

for(i=1;i

if(a[i]>max)max=a[i];

elseif(a[i]

return(max-min);

24、给定n个数据,求最大值出现的位置(如果最大值出现多次,求出第一次出现的位置即可)。

#include

intstation(ints[],intn)

{/**********Program**********/

/**********End**********/

}

main()

{inta[100],n,i,t;

clrscr();

scanf("%d",&n);

for(i=0;i

scanf("%d",&a[i]);

t=station(a,n);

printf("themax_valuepositionis:

%d\n",t);

}

答案

inti,k;

k=0;

for(i=1;i<=n;i++)

if(s[i]>s[k])k=i;

return(k+1);

25、从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函数中输出。

请编写fun函数。

#include"stdio.h"

intfun(intx[],intn)

{/**********Program**********/

/**********End**********/

}

main()

{inta[10],i,min;

for(i=0;i<10;i++)

scanf("%d",&a[i]);

for(i=0;i<10;i++)

printf("%3d",a[i]

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

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1