c语言上机试题1数学计算.docx
- 文档编号:1151464
- 上传时间:2022-10-18
- 格式:DOCX
- 页数:21
- 大小:360.14KB
c语言上机试题1数学计算.docx
《c语言上机试题1数学计算.docx》由会员分享,可在线阅读,更多相关《c语言上机试题1数学计算.docx(21页珍藏版)》请在冰豆网上搜索。
c语言上机试题1数学计算
1整型、实型
1.1实型四舍五入
请编一个函数fun,函数的功能是使实型数保留2位小数,并对第三位进行四舍五入(规定实型数为正数)。
例如:
实型数为1234.567,则函数返回1234.57;实型数为1234.564,则函数返回1234.56。
注意:
部分源程序存在文件PROG1.C文件中。
请勿改动主函数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/in.dat","r");
wf=fopen("./05/out.dat","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)/100.0;
else
return(i/10+1)/100.0;
答案2:
longtemp=a*1000,temp2;
temp2=temp/10;
temp=temp%10;
floatresult;//被除数定义成float
if(temp>4)
result=temp2+1;
else
result=temp2;
returnresult/100;
1.2根据公式求圆周率
#include
#include
doublefun(doubleeps){
}
main(){
doublex;
printf("Inputeps:
");
scanf("%lf",&x);
printf("\neps=%lf,PI=%lf\n",x,fun(x));
NONO();
}
NONO(){/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。
*/
FILE*fp,*wf;
inti;
doublex;
fp=fopen("c:
\\test\\in.dat","r");
wf=fopen("c:
\\test\\out.dat","w");
for(i=0;i<10;i++){
fscanf(fp,"%lf",&x);
fprintf(wf,"%lf\n",fun(x));
}
fclose(fp);
fclose(wf);
}
答案1:
doublei=1,a=1,b=1,c=1,s=0;
while(c>=eps){
s+=c;
a*=i;
b*=2*i+1;
c=a/b;
i++;
}
returns*2;
答案2:
doublen=1.0,m,s1,s2;
m=2*n+1;
s1=n;
s2=m;
doubletemp=s1/s2,sum=0.0;
while(temp>=eps){
sum+=temp;
n+=1;
m+=2;
s1*=n;
s2*=m;
temp=s1/s2;
}
return(sum+1)*2;
1.3求阶乘
#include
floatfun(intm,intn){
}
intmain(void)/*主函数*/{
printf("P=%f\n",fun(12,8));
//NONO();
return1;
}
intNONO(void){/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。
*/
FILE*fp,*wf;
inti,m,n;
floats;
fp=fopen("c:
\\test\\in.dat","r");
wf=fopen("c:
\\test\\out.dat","w");
for(i=0;i<10;i++){
fscanf(fp,"%d,%d",&m,&n);
s=fun(m,n);
fprintf(wf,"%f\n",s);
}
fclose(fp);
fclose(wf);
return1;
}
答案:
floatresult;
intx,y,z,o=1,p=1,q=1;
for(x=1;x<=m;x++){
o=o*x;
}
for(y=1;y<=n;y++){
p=p*y;
}
for(z=1;z<=m-n;z++){
q=q*z;
}
result=o/(p*q);
returnresult;
尝试建立一个专门求阶乘的函数。
1.4求公式
#include
doublefun(intn){
}
intmain(void)/*主函数*/{
printf("%f\n",fun(10));
//NONO();
return1;
}
intNONO(void){/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。
*/
FILE*fp,*wf;
inti,n;
doubles;
fp=fopen("c:
\\test\\in.dat","r");
wf=fopen("c:
\\test\\out.dat","w");
for(i=0;i<10;i++){
fscanf(fp,"%d",&n);
s=fun(n);
fprintf(wf,"%f\n",s);
}
fclose(fp);
fclose(wf);
return1;
}
答案:
inti;
doublem,sum=0.0;
for(i=1;i<=n;i++){
m=i*(i+1);
sum+=1/m;
}
returnsum;
1.5整数分解
函数fun的功能是:
将a、b中的两个两位正整数合并形成一个新的整数放在c中。
合并的方式是:
将a中的十位和个位数依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的个位和百位上。
例如,当a=45,b=12。
调用该函数后,c=5241。
注意:
部分源程序存在文件PROG1.C中。
数据文件IN.DAT中的数据不得修改。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
voidNONO(void);
longfun(inta,intb){
}
intmain(void){
inta,b;
longc;
printf("Inputa,b:
");
scanf("%d%d",&a,&b);
c=fun(a,b);
printf("Theresultis:
%ld\n",c);
NONO();
return0;
}
voidNONO(void){/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。
*/
FILE*rf,*wf;
inti,a,b;
longc;
rf=fopen("./44/in.dat","r");
wf=fopen("./44/out.dat","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;
1.6数学公式
#include
/************found************/
fun(intm){
doubley=0,d;
inti;
/************found************/
for(i=100;i d=(double)i*(double)i; y+=1.0/d; } return(y); } main(){ intn=2000; printf("\nTheresultis%lf\n",fun(n)); } 答案: doublefun(intm){ for(i=100;i<=m;i+=100){ 1.7数学公式 修正: 当k=1时,第一项为4/1*3 #include #include floatfun(intk){ } main(){ printf("%f\n",fun(10)); } 答案1: intn; floats,w,p,q; n=1; s=1.0; while(n<=k){ w=2.0*n; p=w-1.0; q=w+1.0; s=s*w*w/p/q;n++; } returns; 改错: inti; floatsum=1.0; for(i=2;i<=k;i++){ sum*=(2*i*2*i)/((2*i+1)*(2*i-1));//注意数据类型 } returnsum; 1.8最小公倍数 给定程序MODI1.C中函数fun的功能是: 求三个数的最小公倍数。 例如,给主函数中的变量x1、x2、x3分别输入15
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 上机 试题 数学 计算
![提示](https://static.bdocx.com/images/bang_tan.gif)