欢迎来到天天文库
浏览记录
ID:56747298
大小:56.50 KB
页数:20页
时间:2020-07-07
《国二考试题目.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、机试真题1、函数fun的功能是:计算正整数n的所有因子(1和n除外)之和作为函数值返回。例如:n=120时,函数值为239。#include#includeintfun(intn){int_1__,s=0;/*能整除n的自然数即称为因子*/for(i=2;i2、被n整除的数。由于题意中指明需将1和n除外,所以循环的范围应从2至n-1。答案:1:i2:s+i2、已知一个数列的前三项分别为0,0,1,以后的各项都是其相邻的前三项之和。给定程序modi.c中函数fun的功能是:计算并输出该数列前n项的平方根之和sum。n的值通过形参传入。例如,当n=10时,程序的输出结果应为:23.。请改正函数fun中的错误,使程序能输出正确的结果。注意:不要改动main函数,#include#include#include/*******3、*****found************/fun(intn){doublesum,s0,s1,s2,s;intk;sum=1.0;if(n<=2)sum=0.0;s0=0.0;s1=0.0;s2=1.0;for(k=4;k<=n;k++){s=s0+s1+s2;sum+=sqrt(s);s0=s1;s1=s2;s2=s;}/************found************/returnsum}main(){intn;clrscr();printf("InputN=");scanf("%d",&n);4、printf("%f",fun(n));}解析:本题的考核点是C语言中的函数的入口参数和类型转换。C语言规定,凡不加类型说明的函数,一律自动按整型处理。如果函数有返回值,这个值当然应属于某一个确定的类型,应当在定义函数时指定函数值的类型。根据题意,函数返回值为实型,所以第一处错误"fun(intn)"应改为"floatfun(intn)"或具有相同作用的句子。函数的返回值是通过函数中的return语句获得的。return语句后面的括弧可以不要,但分号不能少,必须加分号。所以,第二处错误应改为"returnsu5、m;"或相同作用的句子。如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准。对数值型数据可以自动进行类型转换。即函数类型决定返回值的类型。本评析仅作参考。3、请编写函数fun(),它的功能是求Fibonacci数列中小于t的最大的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)例如:t=1000时,函数值为987。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入6、所编写的若干语句。试题程序:#include#include#includeintfun(intt){……}main(){intn;clrscr();n=1000;printf("n=%d,f=%d",n,fun(n));}解析:intfun(intt){inta=1,b=1,c=0,i;/*a代表第n-2项,b代表第n-1项,c代表第n项*//*如果求得的数c比指定比较的数小,则计算下一个Fibonacci数,对a,b重新置数*/do{c=a+b;a=b;7、b=c;}while(c#includeintfun(int*x,inty){__1___t;t=*x;*x=y;retur8、n(t)__2__}main(){inta=3,b=8;printf("%d%d",a,b);b=fun(__3__,b);printf("%d%d",a,b);}解析:填空1:根据题目的意思,这里应该是声名一个新的变量t,由后面的赋值语句以及返回语句可以明白这个变量应该是整型的(因为函数的返回值类型是int)。填空2:根据题目的意思,此处是子函数的返回语句,由C
2、被n整除的数。由于题意中指明需将1和n除外,所以循环的范围应从2至n-1。答案:1:i2:s+i2、已知一个数列的前三项分别为0,0,1,以后的各项都是其相邻的前三项之和。给定程序modi.c中函数fun的功能是:计算并输出该数列前n项的平方根之和sum。n的值通过形参传入。例如,当n=10时,程序的输出结果应为:23.。请改正函数fun中的错误,使程序能输出正确的结果。注意:不要改动main函数,#include#include#include/*******
3、*****found************/fun(intn){doublesum,s0,s1,s2,s;intk;sum=1.0;if(n<=2)sum=0.0;s0=0.0;s1=0.0;s2=1.0;for(k=4;k<=n;k++){s=s0+s1+s2;sum+=sqrt(s);s0=s1;s1=s2;s2=s;}/************found************/returnsum}main(){intn;clrscr();printf("InputN=");scanf("%d",&n);
4、printf("%f",fun(n));}解析:本题的考核点是C语言中的函数的入口参数和类型转换。C语言规定,凡不加类型说明的函数,一律自动按整型处理。如果函数有返回值,这个值当然应属于某一个确定的类型,应当在定义函数时指定函数值的类型。根据题意,函数返回值为实型,所以第一处错误"fun(intn)"应改为"floatfun(intn)"或具有相同作用的句子。函数的返回值是通过函数中的return语句获得的。return语句后面的括弧可以不要,但分号不能少,必须加分号。所以,第二处错误应改为"returnsu
5、m;"或相同作用的句子。如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准。对数值型数据可以自动进行类型转换。即函数类型决定返回值的类型。本评析仅作参考。3、请编写函数fun(),它的功能是求Fibonacci数列中小于t的最大的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)例如:t=1000时,函数值为987。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入
6、所编写的若干语句。试题程序:#include#include#includeintfun(intt){……}main(){intn;clrscr();n=1000;printf("n=%d,f=%d",n,fun(n));}解析:intfun(intt){inta=1,b=1,c=0,i;/*a代表第n-2项,b代表第n-1项,c代表第n项*//*如果求得的数c比指定比较的数小,则计算下一个Fibonacci数,对a,b重新置数*/do{c=a+b;a=b;
7、b=c;}while(c#includeintfun(int*x,inty){__1___t;t=*x;*x=y;retur
8、n(t)__2__}main(){inta=3,b=8;printf("%d%d",a,b);b=fun(__3__,b);printf("%d%d",a,b);}解析:填空1:根据题目的意思,这里应该是声名一个新的变量t,由后面的赋值语句以及返回语句可以明白这个变量应该是整型的(因为函数的返回值类型是int)。填空2:根据题目的意思,此处是子函数的返回语句,由C
此文档下载收益归作者所有