1、二级 C 语言机试-159 及答案解析(总分:100.00,做题时间:90 分钟)一、填空题(总题数:1,分数:33.00)1.请完成函数 fun( ),它的功能是:求 Fibonacc 数列中小于 t 的最大的一个数,结果由函数 0 返回。Fibonacc 数列 F(n)定义为:F(0)=0,F(1)=1F(n)=F(n-1)+F(n-2)例如:t=1000 时,函数为 987。注意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在下划线上填入所需的内容。#includeconio.h#includestdio.h#includemath.hin fun(int t
2、)int a=l,b=1,c=0,i;do1 ;a=b;b=C;while( 2 );c= 3 ;return C;main()int n;clrscr();n=1000;printf(“n=%d,f=%d/n“,n,fun(n);(分数:33.00)填空项 1:_二、改错题(总题数:1,分数:33.00)2.给定程序 MODl1.C 中函数 fun 的功能是:从低位开始取出长整型变量 s 中奇数位上的数,依次构成一个新数放在 t 中。高位仍在高位,低位仍在低位。例如:当 s 中的数为 2736598 时,t 中的数为:2358。#includeconio.h#includestdio.h/*
3、found*/void fun(long s,long t)long s1=10;*t=s%10;while(s0)s=s/l00;*t=S%10*s1+*t;/*found*/s1=s1*100;main()long s,t;clrscr(); printf (“/nPlease enter s:“);scanf(“%ld“,printf(“/nEnter p:“);scanf(“%d“,printf(“/nEnter p:“);scanf(“%d“,&p);fun(a,p,n);printf (“/n The data after moving:/n“);for(i=0;in;i+)printf(“%3d”,ai);(分数:34.00)_正确答案:(void fun(int*w,int p,int n) int i,J;int aN; for(i=0;i=p;i+)ai=wifor(i=p+1,j=0;in;i+,j+)wj=wi;for(i=0;i=p;i+)wn-p-1+i=ai;)解析:解析 将数组后面的元素向前平移,肯定会将前面的元素覆盖。因此,可以定义一个数组用来暂时存放前面的元素。可以先将 w0wp依次赋给 a0ap;然后将 wpwn-1)移到数组的前面:再将 a0ap)依次赋给 wn-p-1+iwn-1。