c语言上机试题1数学计算.docx
- 文档编号:6760795
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:15
- 大小:358.28KB
c语言上机试题1数学计算.docx
《c语言上机试题1数学计算.docx》由会员分享,可在线阅读,更多相关《c语言上机试题1数学计算.docx(15页珍藏版)》请在冰豆网上搜索。
c语言上机试题1数学计算
1整型、实型
1.1实型四舍五入
请编一个函数fun,函数的功能是使实型数保留2位小数,并对第三位进行四舍五入(规定实型数为正数)。
例如:
实型数为,则函数返回;实型数为,则函数返回。
注意:
部分源程序存在文件文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include<>
intNONO(void);
floatfun(floath){
}
intmain(void){
floata;
printf("Entera:
");
scanf("%f",&a);
printf("Theoriginaldatais:
");
printf("%f\n\n",a);
printf("Theresult:
%f\n",fun(a));
NONO();
return1;
}
intNONO(void){/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。
*/
inti;
floata;
FILE*rf,*wf;
rf=fopen("./05/","r");
wf=fopen("./05/","w");
for(i=0;i<20;i++){
fscanf(rf,"%f",&a);
fprintf(wf,"%f\n",fun(a));
}
fclose(rf);
fclose(wf);
return1;
}
答案1:
longi=h*1000;
if(i%10<5)
return(i/10)/;
else
return(i/10+1)/;
答案2:
longtemp=a*1000,temp2;
temp2=temp/10;
temp=temp%10;
floatresult;
44/","r");
wf=fopen("./44/","w");
for(i=0;i<10;i++){
fscanf(rf,"%d,%d",&a,&b);
fun(a,b,&c);
fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c);
}
fclose(rf);
fclose(wf);
}
答案:
longi1=(a%10)*1000;
printf("aa=%d,bb=%d",b%10,b/10);
longi2=(b%10)*100;
longi3=a/10*10;
longi4=b/10;
//returna%10*1000+b%10*100+a/10*10+b/10;
returni1+i2+i3+i4;
数学公式
#include<>
/************found************/
fun(intm){
doubley=0,d;
inti;
/************found************/
for(i=100;i d=(double)i*(double)i; y+=/d; } return(y); } main(){ intn=2000; printf("\nTheresultis%lf\n",fun(n)); } 答案: doublefun(intm){ for(i=100;i<=m;i+=100){ 数学公式 修正: 当k=1时,第一项为4/1*3 #include<> #include<> floatfun(intk){ } main(){ printf("%f\n",fun(10)); } 答案1: intn; floats,w,p,q; n=1; s=; while(n<=k){ w=*n; p=w-; q=w+; s=s*w*w/p/q;n++; } returns; 改错: inti; floatsum=; for(i=2;i<=k;i++){ sum*=(2*i*2*i)/((2*i+1)*(2*i-1));//注意数据类型 } returnsum; 最小公倍数 给定程序中函数fun的功能是: 求三个数的最小公倍数。 例如,给主函数中的变量x1、x2、x3分别输入15112,则输出结果应当是: 330。 请改正程序中的错误,使它能得出正确结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 #include<> /************found************/ fun(intx,y,z){ intj,t,n,m; j=1; t=j%x; m=j%y; n=j%z; while(t! =0||m! =0||n! =0){ j=j+1; t=j%x; m=j%y; n=j%z; } /************found************/ returni; } main(){ intx1,x2,x3,j; printf("Inputx1x2x3: "); scanf("%d%d%d",&x1,&x2,&x3); printf("x1=%d,x2=%d,x3=%d\n",x1,x2,x3); j=fun(x1,x2,x3); printf("Theminimalcommonmultipleis: %d\n",j); } 答案: intfun(intx,inty,intz){ returnj; 编程: #include<> //求三个数的最大数 intmax(intx,inty,intz){ } //求三个数最小公倍数 intfun(intx,inty,intz){ } main(){ intx1,x2,x3,j; printf("Inputx1x2x3: "); scanf("%d%d%d",&x1,&x2,&x3); printf("x1=%d,x2=%d,x3=%d\n",x1,x2,x3); j=fun(x1,x2,x3); printf("Theminimalcommonmultipleis: %d\n",j); } 答案: inttemp; if(x>y)temp=x; elsetemp=y; if(temp>z)returntemp; elsereturnz; inttemp=max(x,y,z); intresult=temp; while (1){ if(result%x==0&&result%y==0&&result%z==0)returnresult; result=result+temp; } n! 改错 给定程序中函数fun的功能是: 计算n! 。 例如,给n输入5,则输出。 请改正程序中的错误,使程序能输出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! #include<> doublefun(intn){ doubleresult=; /************found************/ ifn==0return; while(n>1&&n<170) /************found************/ result*=n-- returnresult; } main(){ intn; printf("InputN: "); scanf("%d",&n); printf("\n\n%d! =%lf\n\n",n,fun(n)); } 答案: if(n==0)return; result*=n--; 数学公式 #include<> doublefun(intn){ } main(){ intn=5; printf("\nThevalueoffunctionis: %lf\n",fun(n)); } 答案: inta,b,c,k; doubles; s=; a=2; b=1; for(k=1;k<=n;k++){ s=s+(double)a/b; c=a; a=a+b; b=c; } returns; 数列 已知一个数列从第0项开始的前三项分别为0,0,1,以后的各项都是其相邻的前三项之和。 给定程序中函数fun的功能是: 计算并输出该数列前n项的平方根之和。 n的值通过形参传入。 例如,当n=10时,程序的输出结果应为: 。 请改正程序中的错误,使程序能输出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! #include<> #include<> doublefun(intn){ } main(){ intn; printf("InputN="); scanf("%d",&n); printf("%f\n",fun(n)); } 答案: doublesum,s0,s1,s2,s; intk; sum=; if(n<=2)sum=; s0=; s1=; s2=; for(k=4;k<=n;k++){ s=s0+s1+s2; sum+=sqrt(s); s0=s1; s1=s2; s2=s; } returnsum; 数学公式 #include<> /************found************/ intfun(intn){ floatA=1; inti; /************found************/ for(i=2;i returnA; } main(){ intn; printf("\nPleaseentern: "); scanf("%d",&n); printf("A%d=%f\n",n,fun(n)); } 答案: floatfun(intn){ if(2<=n)return(1+fun(n-1));//递归 或: for(i=2;i<=n;i++)A=(1+A);//另一种 数学公式 给定程序中函数fun的功能是: 根据整型形参m的值,计算如下公式的值。 #include<> doublefun(intm){ doubley=; inti; /**************found**************/ for(i=2;i /**************found**************/ y-=1/(i*i); return(y); } main(){ intn=5; printf("\nTheresultis%lf\n",fun(n)); } 答案: for(i=2;i<=m;i++) y-=(i*i); 数学公式 #include<> #include<> doublefun(doubleeps){ doubles,t; intn=1; s=; /************found************/ t=0; while(t>eps){ s+=t; t=t*n/(2*n+1); n++; } /************found************/ return(s); } main(){ doublex; printf("\nPleaseenteraprecision: "); scanf("%lf",&x); printf("\neps=%lf,Pi=%lf\n\n",x,fun(x)); } 答案: t=; return(s*2); 素数 给定程序中函数fun的功能是: 找出一个大于形参m且紧随m的素数,并作为函数值返回。 请改正程序中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! #include<> intfun(intm){ inti,k; for(i=m+1;;i++){ for(k=2;k /**************found**************/ if(i%k! =0)break; /**************found**************/ if(k } } voidmain(){ intn; n=fun(20); printf("n=%d\n",n); } 答案: if(i%k==0)break; if(k==i)return(i); 整数处理 给定程序中函数fun的功能是: 从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。 高位仍在高位,低位仍在低位。 例如,当s中的数为: 7654321时,t中的数为: 642。 请改正程序中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! #include<> /************found************/ //voidfun(longs,longt){ voidfun(longs,long*t){ longsl=10; s/=10; *t=s%10; /************found************/ //while(s<0){ while(s>0){ s=s/100; *t=s%10*sl+*t; sl=sl*10; } } main(){ longs,t; printf("\nPleaseenters: "); scanf("%ld",&s); fun(s,&t); printf("Theresultis: %ld\n",t); } 自然数 给定程序中函数fun的功能是: 计算小于形参k的最大的10个能被13或17整除的自然数之和。 k的值由主函数传入,若k的值为500,则函数值为4622。 请改正程序中的错误,使程序能输出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! #include<> intfun(intk){ intm=0,mc=0,j; while((k>=2)&&(mc<10)){ /************found************/ if((k%13=0)||(k%17=0)){ m=m+k; mc++; } k--; } returnm; /************found************/ _____ } main(){ printf("%d\n",fun(500)); } if(k%13==0||k%17==0){ //____
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 上机 试题 数学 计算