下列给定程序中,函数fun()的功能是:用递归算法计算斐波拉契级数列中第n项的值。从第一项起,斐波`拉契级数序列为1, 1,2,3,5,8,13,21,……例如,若给n输入7,
该项的斐波拉契级数值为13。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include <stdio.h>
long fun(int g)
{
/*************found**************/
switch(g);
{case 0:return 0;
switch(g)
case 1; case 2:return 1;
}
return (fun(g-1)+fun(g-2));
}
main()
{
long fib; int n;
printf("Input n:");scanf("%d",&n);
printf("n-%d\n",n);
fib=fun(n);
printf("fib=%d\D\n",fib);
}
第1题
输出。
例如,输入“40,51,62,33,35,52,48,95,66, 73”,则结果输出“40,51,33,35,48,66”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。
试题程序:
include <stdio. h>
define N 10
main ( )
{
int i, n=0;
int aa [N]={40, 51, 62,33, 35, 52, 48, 95,
66,73};
int bb[N];
clrscr ();
for (i=0; i<【 】; i++)
if (aa [i] <aa [i+l] )
【 】;
printf("\n*** display bb ***In");
for (i=0; i<n; i++)
printf("bb[%d]=%2d ",【 】);
}
第3题
串中剩余字符所形成的一含新串放在t所指的数组中。
例如,若s所指字符串中的内容为:“ABCDEFGl23456”,其中字符A的ASCII码值为奇数,因此应当删除:其中字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;而字符2的ASCII码值为偶数,所在数组中的下标也为偶数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是:“246”。
注意:部分源程序存在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
第4题
能是:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。
[注意] 部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在fun函数的花括号中填入所编写的若干语句。
[试题源程序]
include<stdio.h>
define N 8
typedef struct
{
char num[10];
double s;
}STREC;
double fun(STREC *a, STREC *b, int *n)
{
}
void main()
{
STREC s[N]={{"GA05", 85},
{"GA03", 76}, {"GA02", 69}, {"GA04", 85},
{"GA01", 91}, {"GA07", 72}, {"GA08", 64},
{"GA06", 87}};
STREC h[N], t; FILE *out;
int i, j, n;
double ave;
ave=fun(s, h, &n);
printf("The %d student data which is lower than %7.3 f:\n", n, ave);
for(i=0; i<n; i++)
printf("%s %4.1f\n", h[i]. num, h[i].s);
printf("\n");
ut=fopen("out.dat", "W");
fprintf(out, "%d\n%7.3f\n", n, ave);
for(i=0; 2<n-1; i++)
for(j=i+1; j<n; j++)
if(h[i]. s>h[j].s)
{
t=h[i];
h[i]=h[j];
h[j]=t;
}
for(i=0; 2<n; i++)
fprintf(out, "%4.1f\n", h[i].s);
fclose(out);
}
第5题
以下程序的输出结果是______。
include <stdio.h>
void swap(int *a, int *b)
{ int *t;
}
{ int i=3,j=5,*p=&i,*q=&j;
swap(p,q); printf("%d %d\n",*p,*q);
第6题
以下程序运行后的输出结果是 。
include
main()
{int i,n[5]={0};
for(i=l;i<=4;i++)
{n[i]=n[i-1]*2+1;printf(“%d”,n[i])}
printf(“\n”):
}
第7题
有以下程序,请在 处填写正确语句。使程序可正常编译运行。
include
;
mairl();
{double x,y,(*p)():
scanf(“%If%If”,&x,&y);
P=avg;
printf(“%f\n”,(*p)(x,y));
}
double avg(double a,doublc b)
{return((a十b/2):
第8题
以下程序的输出结果是【 】。
main()
{
int p[7]=(11,13,14,15,16,17,18};
int i=0,j=0;
while(i<7&&p[i]%2==1)j+=p[i++];
printf("%d\n",j);
}
第9题
当s所指字符串中的内容为abcdabfab,t所指字符串的内容为ab,则函数返回整数3。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.
试题程序:
include <conio.h>
include <stdio.h>
include <string.h>
int fun (char *s, char *t)
{int n; char *p, *r;
n=0;
while(*s)
{p=s;
r=t;
while (*r)
/**************found**************/
if(*r==*p) {r++; p++}
else break;
/*************found**************/
if(r=='\0')
n++;
s++;
}
return n;
}
main()
{char s[100], t[100]; int m;
clrscr();
printf("\nPlease enter string s: ");
scanf ("%s",s);
printf("\nPlease enter substring t: ");
scanf ("%s",t);
m=fun (s,t);
printf("\nThe result is: m=%d\n", m);
}
第10题
使数组左下半三角元素中的值全部置成0。例如a数组中的值为
a=1 9 7
2 3 8
4 5 6
则返回主程序后a数组中的值应为
0 9 7
0 0 8
0 0 0
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
include <conio.h>
include <stdio.h>
include <stdlib.h>
define N 5
int fun (int a[] [N])
{
}
main()
{
int a[N] [N],i,j;
clrscr();
printf("*****The array*****\n");
for(i=0;i<N;i++)
/*产生—个随机的5*5矩阵*/
{ for(j=0;j<N;j++)
{a[i][j]=rand()%10;
printf("%4d", a[i][j]);
}
printf("\n");
}
fun (a);
printf("THE RESULT\n");
for(i=0;i<N;i++)
{ for(j=0;j<N;j++)
printf("%4d",a[i][j));
printf("\n");
}
}
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!