函数上机题目.docx
- 文档编号:8593088
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:17
- 大小:18.54KB
函数上机题目.docx
《函数上机题目.docx》由会员分享,可在线阅读,更多相关《函数上机题目.docx(17页珍藏版)》请在冰豆网上搜索。
函数上机题目
函数上机题目
/*
*设计程序:
求斐波那契(Fibonacci)数列中大于t的最小的一个数,结果由函数JSValue返回,
*其中斐波那契数列F(n)的定义为:
*F(0)=0,F
(1)=1
*F(n)=F(n-1)+F(n-2)
*分别计算当t=1000和t=3000时的结果,将计算结果输出到考生目录中Paper子目录下的新
*建文件design.dat中。
*/
#include
intJSValue(intt)
{
/*
*
*
*考生在这里添加代码
*
*
*/
}
voidmain()
{
FILE*p;
p=fopen("design.dat","w");
fprintf(p,"%d,%d",JSValue(1000),JSValue(3000));
fclose(p);
}
/*设计程序:
z=f(x,y)=(3.14*x-y)/(x+y),若x、y取值为区间[1,6]的*/
/*整数,找出使z取最小值的x1、y1,并将x1、y1以格式"%d,%d"写入到考*/
/*生目录中Paper子目录下的新建文件design.dat中。
*/
#include
voidmain()
{FILE*p;floatf(floatx,floaty),min;
intx,y,x1,y1;
/*
*
*
*考生在这里添加代码
*
*
*/
}
floatf(floatu,floatv)
{return(3.14*u-v)/(u+v);}
/*设计程序:
对x=1,2,...,10,求函数f(x)=x-10*cos(x)-5*sin(x)的*/
/*最大值,并将该数以格式"%.3f"写到考生目录中Paper子目录下的新建文件design.dat中。
*/
#include
#include
voidmain()
{FILE*p;floatf(float),max,x;
/*
*
*
*考生在这里添加代码
*
*
*/
}
floatf(floatx){
returnx-10*cos(x)-5*sin(x);
}
/*
*设计程序:
寻找并输出11至999之间的数m,它满足m、m*m、m*m*m均为回文数。
*所谓回文数是指各位数字左右对称,例如121、676、94249等。
满足上述条件的数
*如m=11,m^2=121,m^3=1331皆为回文数。
请编制函数intJSValue(longm)实现此功能,
*如果是回文数,则函数返回1,反之则返回0。
最后把结果输出到考生目录中Paper子目
*录下的新建文件design.dat中。
*/
#include
#include
#include
intJSValue(longm)
{
/*
*
*
*考生在这里添加代码
*
*
*/
}
voidmain()
{
FILE*p;longm;
p=fopen("design.dat","w");
for(m=11;m<1000;m++)
{
if(JSValue(m)&&JSValue(m*m)&&JSValue(m*m*m))
fprintf(p,"%ld",m);
}
fclose(p);
}
/*
*设计程序:
*某公司1999年年产量11.5万件,生产能力每年提高9.8%,求出产量能超过x万件的年份,结果由函数Year返回。
*计算当x=20和x=30时的结果,将计算结果输出到考生目录中Paper子目录下的新建文件design.dat中。
*/
#include
intYear(intx)
{inty;
/*
*
*
*考生在这里添加代码
*
*
*/
}
voidmain()
{
FILE*p;
p=fopen("design.dat","w");
fprintf(p,"%d,%d",Year(20),Year(30));
fclose(p);
}
/*
*设计程序:
计算500~800区间内素数的个数cnt和素数和sum。
*请编写函数JSValue()实现程序的要求。
最后把cnt和sum写入到考生目录中Paper子目
*录下的新建文件design.dat中
*/
#include
intcnt,sum;
voidJSValue()
{
inti,j,half;
/*
*
*
*考生在这里添加代码
*
*
*/
}
voidmain()
{
FILE*p;
p=fopen("design.dat","w");
JSValue();
fprintf(p,"%d,%d",cnt,sum);
fclose(p);
}
/*
*在考生目录的Paper子目录下,有Modify.c文件,该文件中"____N____"是根据程序功能
*需要填充部分,请完成程序填充(注意:
不得加行、减行、加句、减句,否则后果自负)。
*该程序功能:
将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。
*/
#include
voidDec2Bin(intm)
{
intbin[32],j;
for(j=0;m!
=0;j++)
{
bin[j]=______1______;
m=m/2;
}
for(;j!
=0;j--)
printf("%d",______2______);
}
voidmain()
{
intn;
scanf("%d",&n);
Dec2Bin(n);
}
/*
*在考生目录的Paper子目录下,有Modify.c文件,该文件中"____N____"是根据程序功能
*需要填充部分,请完成程序填充(注意:
不得加行、减行、加句、减句,否则后果自负)。
*该程序功能:
数列的第1、2项均为1,此后各项值均为该项前二项之和。
计算数列第30项的值。
*/
#include
_______1______
voidmain()
{
printf("%ld\n",f(30));
}
longf(intn)
{
if(______2______)
return1;
else
returnf(n-1)+f(n-2);
}
/*
*在考生目录的Paper子目录下,有Modify.c文件,该文件中"____N____"是根据程序功能
*需要填充部分,请完成程序填充(注意:
不得加行、减行、加句、减句,否则后果自负)。
*该程序功能:
调用函数f,将1个整数首尾倒置,若程序输入12345,则输出54321;
*若程序输入-34567,则输出-76543。
*/
#include
#include
longf(longn)
{longm,y=0;m=fabs(n);
while(m!
=0){
y=y*10+m%10;
____1____
}
if(n>=0)returny;
else_____2_____
}
voidmain()
{
printf("%ld\t",f(12345));printf("%ld\n",f(-34567));
}
函数上机题目答案
/*
*设计程序:
求斐波那契(Fibonacci)数列中大于t的最小的一个数,结果由函数JSValue返回,
*其中斐波那契数列F(n)的定义为:
*F(0)=0,F
(1)=1
*F(n)=F(n-1)+F(n-2)
*分别计算当t=1000和t=3000时的结果,将计算结果输出到考生目录中Paper子目录下的新
*建文件design.dat中。
*/
#include
intJSValue(intt)
{
/*begin*/
inti,f[2000];
f[0]=0;
f[1]=1;
for(i=2;f[i]<=t;i++)
f[i]=f[i-1]+f[i-2];
returnf[i];
/*end*/
}
voidmain()
{
FILE*p;
p=fopen("design.dat","w");
fprintf(p,"%d,%d",JSValue(1000),JSValue(3000));
fclose(p);
}
/*设计程序:
z=f(x,y)=(3.14*x-y)/(x+y),若x、y取值为区间[1,6]的*/
/*整数,找出使z取最小值的x1、y1,并将x1、y1以格式"%d,%d"写入到考*/
/*生目录中Paper子目录下的新建文件design.dat中。
*/
#include
voidmain()
{FILE*p;floatf(floatx,floaty),min;
intx,y,x1,y1;
/*begin*/
min=f(1,1);
for(x=1;x<=6;x++){
for(y=1;y<=6;y++){
if(min>f(x,y)){
min=f(x,y);
x1=x;
y1=y;
}
}
}
if((p=fopen("design.dat","w+"))==NULL){
printf("can'topenthefile\n");
exit(0);
}
fprintf(p,"%d%d",x1,y1);
fclose(p);
/*end*/
}
floatf(floatu,floatv)
{return(3.14*u-v)/(u+v);}
/*设计程序:
对x=1,2,...,10,求函数f(x)=x-10*cos(x)-5*sin(x)的*/
/*最大值,并将该数以格式"%.3f"写到考生目录中Paper子目录下的新建文件design.dat中。
*/
#include
#include
voidmain()
{FILE*p;floatf(float),max,x;
/*begin*/
max=f
(1);
for(x=2;x<=10;x++){
if(max max=f(x); } if((p=fopen("design.dat","w+"))==NULL){ printf("can'topenthefile\n"); exit(0); } fprintf(p,"%.3f",max); fclose(p); /*end*/ } floatf(floatx){ returnx-10*cos(x)-5*sin(x); } /* *设计程序: 寻找并输出11至999之间的数m,它满足m、m*m、m*m*m均为回文数。 *所谓回文数是指各位数字左右对称,例如121、676、94249等。 满足上述条件的数 *如m=11,m^2=121,m^3=1331皆为回文数。 请编制函数intJSValue(longm)实现此功能, *如果是回文数,则函数返回1,反之则返回0。 最后把结果输出到考生目录中Paper子目 *录下的新建文件design.dat中。 */ #include #include #include intJSValue(longm) { /*begin*/ intdig[20]; inti=0,j; while(m! =0){ dig[i]=m%10; m/=10; i++; } for(j=0;j if(dig[j]! =dig[i-1-j]) return0; return1; /*end*/ /*anotheranswer*/ /* inty=0,n=m; while(m! =0) { y=y*10+m%10; m=m/10; } if(y==n)return1; elsereturn0; */ } voidmain() { FILE*p;longm; p=fopen("design.dat","w"); for(m=11;m<1000;m++) { if(JSValue(m)&&JSValue(m*m)&&JSValue(m*m*m)) fprintf(p,"%ld",m); } fclose(p); } /* *设计程序: *某公司1999年年产量11.5万件,生产能力每年提高9.8%,求出产量能超过x万件的年份,结果由函数Year返回。 *计算当x=20和x=30时的结果,将计算结果输出到考生目录中Paper子目录下的新建文件design.dat中。 */ #include intYear(intx) {inty; /*begin*/ floatq=11.5; y=1999; while(q<=x){ q*=1.098; y++; } returny; /*end*/ } voidmain() { FILE*p; p=fopen("design.dat","w"); fprintf(p,"%d,%d",Year(20),Year(30)); fclose(p); } /* *设计程序: 计算500~800区间内素数的个数cnt和素数和sum。 *请编写函数JSValue()实现程序的要求。 最后把cnt和sum写入到考生目录中Paper子目 *录下的新建文件design.dat中 */ #include intcnt,sum; voidJSValue() { inti,j,half; /*begin*/ for(i=500;i<=800;i++){ half=sqrt(i); for(j=2;j<=half;j++){ if((i%j)==0) break; } if(j>half){ cnt++; sum+=i; } } /*end*/ } voidmain() { FILE*p; p=fopen("design.dat","w"); JSValue(); fprintf(p,"%d,%d",cnt,sum); fclose(p); } /* *在考生目录的Paper子目录下,有Modify.c文件,该文件中"____N____"是根据程序功能 *需要填充部分,请完成程序填充(注意: 不得加行、减行、加句、减句,否则后果自负)。 *该程序功能: 将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。 */ #include voidDec2Bin(intm) { intbin[32],j; for(j=0;m! =0;j++) { bin[j]=m%2/*______1______*/; m=m/2; } for(;j! =0;j--) printf("%d",bin[j-1]/*______2______*/); } voidmain() { intn; scanf("%d",&n); Dec2Bin(n); } /* *在考生目录的Paper子目录下,有Modify.c文件,该文件中"____N____"是根据程序功能 *需要填充部分,请完成程序填充(注意: 不得加行、减行、加句、减句,否则后果自负)。 *该程序功能: 数列的第1、2项均为1,此后各项值均为该项前二项之和。 计算数列第30项的值。 */ #include longf(intn);//_______1______ voidmain() { printf("%ld\n",f(30)); } longf(intn) { if(n==1||n==2/*______2______*/) return1; else returnf(n-1)+f(n-2); } /* *在考生目录的Paper子目录下,有Modify.c文件,该文件中"____N____"是根据程序功能 *需要填充部分,请完成程序填充(注意: 不得加行、减行、加句、减句,否则后果自负)。 *该程序功能: 调用函数f,将1个整数首尾倒置,若程序输入12345,则输出54321; *若程序输入-34567,则输出-76543。 */ #include #include longf(longn) {longm,y=0;m=fabs(n); while(m! =0){ y=y*10+m%10; m/=10;//____1____ } if(n>=0)returny; elsereturn-y;//_____2_____ } voidmain() { printf("%ld\t",f(12345));printf("%ld\n",f(-34567)); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 函数 上机 题目
![提示](https://static.bdocx.com/images/bang_tan.gif)