问答题下列给定程序中,函数fun的功能是:用递归算法计算斐波拉契数列中第n项的值。从第1项起,斐波拉契数列为:1、1、2、3、5、8、13、21、……例如,若给n输入7,则该项的斐波拉契数值为13。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MOD11.C中,不得增行或删行,也不得更改程序的结构。#include<stdio.h>long fun(int g){/**********found**********/switch(g);{case 0:return 0;/**********found**********/case1;case2:return 1;}return(fun(g一1)+fun(g一2));}main(){long fib;int n;printf(''Inputn:'');scanf(''%d'',&n);printf(''n=%d\n'',n);fib=fun(n);printf(''fib=%d\n\n'',fib);}
问答题给定程序MODI1.C中函数fun的功能是: 为一个偶数寻找两个素数, 这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。
请改正函数fun中指定部位的错误, 使它能得出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
给定源程序:
#include
#include
void fun(int a,int *b,int *c)
{ int i,j,d,y;
for(i=3;i<=a/2;i=i+2) {
/**************found**************/
Y=1;
for(j=2;j<=sqrt((double)i);j++)
if(i%j==0) y=0;
if(y==1) {
/**************found**************/
d==a-i;
for(j=2;j<=sqrt((double)d);j++)
if(d%j==0) y=0;
if(y==1)
{ *b=i; *c=d; }
}
}
}
main()
{ int a,b,c;
do
{ printf("/nInput a: "); scanf("%d", }
while(a%2);
fun(a,
printf("/n/n%d = %d + %d/n",a,b,c);
}
问答题函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。
例如,当a=45,b=12时,调用该函数后,c=4152。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入要编写的若干语句。
#include<stdio.h>
void fun(int a,int b,long*c)
{
}
main()
{int a,b;long c;
void NONO();
prinff("Input a,b:");scanf("%d,%df",
fun(a,b,
printf("The result is:%d/n",c);
NONO();
}
void NONO()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE *rf,*wf;
inti,a,b;long c;
rf=fopen("in.dat","r");
wf=fopen("out.dat","w");
for(i=0;i<10;i++){
fscanf(rf,"%d,%d",
fun(a,b,
fprinff(wf,"a=%d,b=%d,c=%ld/n",a,b,c);
}
fclose(rf);
fclose(wf);
}
问答题给定程序MODI1.C中fun函数的功能是: 根据整型形参m,计算如下公式的值。
1 1 1
t = 1 - ----- - ----- - …… - -----
2 3 m
例如,若主函数中输入5,则应输出 -0.283333。
请改正函数fun中的错误或在横线处填上适当的内容并把横线删除, 使它能计算出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
double fun( int m )
{
double t = 1.0;
int i;
for( i = 2; i <= m; i++ )
/**********found**********/
____________;
/**********found**********/
_______;
}
main()
{
int m ;
printf( "/nPlease enter 1 integer numbers:/n" );
scanf( "%d",
printf( "/n/nThe result is %lf/n", fun( m ) );
}
问答题给定程序MODI1.C中函数fun的功能是: 在字符串的最前端加入n个*号, 形成新串, 并且覆盖原串。
注意: 字符串的长度最长允许为79。
请改正函数fun中指定部位的错误, 使它能得出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
给定源程序:
#include
#include
void fun ( char s[], int n )
{
char a[80] , *p;
int i;
/**********found***********/
s=p;
for(i=0; i
do
{ a[i]=*p;
i++;
}
/**********found***********/
while(*p++)
a[i]=0;
strcpy(s,a);
}
main()
{ int n; char s[80];
printf("/nEnter a string : "); gets(s);
printf("/nThe string /"%s/"/n",s);
printf("/nEnter n ( number of * ) : "); scanf("%d",
fun(s,n);
printf("/nThe string after insert : /"%s/" /n" ,s);
}
问答题下列给定程序中函数fun的功能是:用递归算法计算斐波拉契数列中第n项的值。从第1项起,斐波拉契数列为:1,1,2,3,5,8,13,21。…例如,若给n输入7,则该项的斐波拉契数值为13。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stctio.h>long fun(int g){/*********found*********/ switch(g); { case 0:return 0;/*********found*********/ case 1;case 2:return 1; } return(fun(g-1)+fun(g-2));}void main(){ long fib;int n; printf("Input n:"); scanf("%d",&n); printf("n=%d\n",n); fib=fun(n); printf("fib=%d\n\n",fib);}
问答题write.txt中,遇到回车键输入结束。。(用“\n”表示回车键)
问答题下列给定程序中,函数fun的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码值升序排序后输出。例如,若输入"edcba",则应输出"abcde"。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件MOD11.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include < string*h >#include < stdio*h >void fun (char t[] ) { char c; int i, j ;/*********found*********/ for (i = str1en (t) ;i; i 一一 ) for(j=0;j < i;j++)/*********found*********/ if(t[j] < t[j+1]) { c=t[j]; t[j]=t[j+1]; t[j+1]=c; }}main(){ char S[81]; printf("/nPlease enter a character string:"); gets(s); printf ("/n/nBefore sorting:/n%s",s); fun(s); printf("/nAfter sorting decendingly:/n%s",s);}
问答题假定输入的字符串中只包含字母和“*”号。请编写函数fun,它的功能是:使字符串中尾部的“*”号不得多于n个;若多于n个,则删除多余的“*”号;若少于或等于n个,则什么也不做,字符串中间和前面的“*”号不删除。 例如, 字符串中的内容为:****A*BC*DEF*G*******,若n的值为4,删除后,字符串中的内容应当是:****A*BC*DEF*G****;若n的值为7,则字符串中的内容仍为:****A*BC*DEF*G*******。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。 注意:部分源程序在文件PRoG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include <stdio.h> void fun(char *a,int n) {}main (){ char s [81]; int n; void NONO ();printf("Enter a string:/n"); gets (s);printf("Enter n : "); scanf("%d", fun(s,n); printf("The string after deleted: /n");puts (s);NONO(); } void NONO(){/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */FILE *in, *out ; int i, n ; char s[81] ; in = fopen("in.dat","r"); out = fopen("out.dat","w"); for(i = 0 ; i < 10 ; i++) {fscanf(in, "%s", s);fscanf(in, "%d", fun(s,n);fprintf(out, "%s/n", s) ;}fclose(in); fclose(out); }
问答题程序定义了N×N的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返给主函数中的s。例如:a数组中的值为则返回主程序后s的值应为:3.375。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:#include<stdio.h>#include<stdlib.h>#defineN5doublefun(intw[][N]){}main(){inta[N][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1};inti,j;doubles;printf("*****Thearray*****/n");for(i=0;i<N;i++){for(j=0;j<N;j++){printf("%4d",4[i][j]);}printf("/n");}s=fun(a);printf("*****THERESULT*****/n");printf("Thesumis:%lf/n",s);}
问答题下列给定程序中,函数fun的功能是:把形参a所指数组中的奇数按原顺序依次存放到a[0]、a[1]、a[2]…中,把偶数从数组中删除,奇数个数通过函数值返回。 例如,若a所指数组中的数据最初排列为:9,1,4,2,3,6,5,8,7,删除偶数后a所指数组中的数据为:9,4,3,5,7,返回值为5。 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #include<stdio.h> #define N 9 int fun(int a[],int n) int i,j; j=0; for(i=0;i<n;i++) /********found********/ if(a[i]%2== (1) ) /********found********/ a[j]=a[i]= (2) ; /********found********/ return (3) ; main() (int b[N]=(9,1,4,2,3,6,5,8,7),i,n; printf("/nThe original data:/n"); for(i=0;i<N;i++) printf("%4d",b[i]); printf("/n"); n=fun(b,N); printf("/nThe number of odd:%d/n",n); printf("/nThe odd number:/n"); for(i=0;i<n;i++) printf("%4d",b[i]); printf("/n");
问答题请编写函数fun(),它的功能是:判断字符串是否是回文?若是,函数返回1,主函数中输出:YES,否则返回0,主函数输出NO。回文是指顺读和倒读都一样的字符串。
例如,字符串LEVEL是回文,而字符串12312就不是回文。 [注意] 部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
[试题源程序] #include<stdio.h>
#define N 80 int fun(char *str) {
} main() { char
s[N]; printf("Enter a string:")" gets(s);
printf("/n/n"); puts(s); if(fun(s)) printf("
YES/n"); else printf(" NO/n");
NONO(); } NONO()
{ /*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/
FILE *rf, *wf; int i ; char s[N];
rf=fopen("K://k06//24010001//in.dat", "r");
wf=fopen("K://k06//24010001//out.dat", "w"); for(i=0; i<10;
i++){ fscanf(rf, "%s", s);
if(fun(S)) fprintf(wf, "%s YES/n", s);
else fprintf(wf, "%s NO/n", s); }
fclose(rf); fclose(wf); }
问答题下列给定程序中,函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。 例如,若num1和num2分别为49和2l,则输出的最大公约数为7;若num1和num2分别为27和81,则输出的最大公约数为27。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include<stdio.h> int fun(int a,int b) int r,t; if(a<b) /********found********/ (t=a;b=a;a=t;) r=a%b; while(r!=0) (a=b;b=r;r=a%b;) /********found********/ return(a); void main() int num1,num2,a; printf(Input num1 num2:"); scanf("%d%d", printf("num1=%d num2=%d/n/n",num1,num2); a=fun(num1,num2); printf("The maximun common divisor is%d/n/n",a);
问答题给定程序MODI1.C中,函数fun的功能是:判断输入的任何一个正整数n,是否等于某个连续正整数序列之和。若是,则输出所有可能的序列,否则输出“不能分解”。
例如:当输入100时,输出:100=9+10+11+12+13+14+15+16
100=18+19+20+21+22
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
void fun(int n)
{int j, b, c, m, flag=0;
for(b=1; b<=n/2; b++){
/**********found**********/
n=m;
c=b;
while(m!=0 c++
}
/**********found**********/
if(m!=0)
{printf("%d=", n);
for(j=b; j<c-1; j++)printf("%d+", j);
printf("%d/n", j);
flag=1;
}
}
if(flag==0)
printf("不能分解/n");
}
main()
{int n;
printf("请输入一个整数:"); scanf("%d",
fun(n);
}
问答题假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除。 例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:料料A*BC*DEF*G。在编写函数时,不得使用C语言提供的字符串函数。 注意:部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include<stdio.h> void fun(char*a) { } main() { char s[81];void NONO(); printf("Enter a string:\n");gets(s); fun(s); printf("The string after deleted:\n");puts(s); NONO(); } void NONO() {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE*in,*out; int i;char s[81]; in=fopen("in.dat","r"); out=fopen("out.dat","w"); for(i=0;i<10;i++){ fscanf(in,"%s",s); fun(s); fprintf(out,"%s\n",s); } fclose(in); fclose(out); }
问答题编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为: asd asasdfg asd as zx67 asd mklo,子字符串为:as,则应输出6。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
#include
int fun(char *str,char *substr)
{
}
main()
{
char str[81],substr[3];
int n;
printf("输入主字符串: ");
gets(str);
printf("输入子字符串: ");
gets(substr);
puts(str);
puts(substr);
n=fun(str,substr);
printf("n=%d/n",n);
NONO();
}
问答题给定程序MODI1.C中fun函数的功能是:根据整型形参m,计算如下公式的值。例如,若主函数中输入5,则应输出-0.283333。请改正函数fun中的错误或在横线处填上适当的内容并把横线删除,使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include<stdio.h>doublefun(intm){doublet=1.0;inti;for(i=2;i<=m;i++)/**********found**********/t=1.0-1/i;/**********found**********/______;}main(){intm;printf("/nPleaseenter1integernumbers:/n");scanf("%d",printf("/nknTheresultis%lf/n",fun(m));}
问答题给定程序MODI1.C中函数fun()的功能是按以下递归公式求函数值。例如,当给n输入5时,函数值为18;当给n输入3时,函数值为14。请改正程序中的错误,使它能得出正确结果。#include<stdio.h>/**********found**********/intfun(n)intc;/**********found**********/if(n=1)c=10;elsec=fun(n-1)+2;return(c);main()intn;printf("Entern:");scanf("%d",printf("Theresult:%d/n/n",fun(n));
问答题下列给定程序中,函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生的数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行。也不得更改程序的结构!试题程序:#include<stdlib.h>#include<conio.h>#include<string.h>#include<stdio.h>#include<malloc.h>#define N 10 typedef struct SS{ char num[10]; int s;}STU;STU*fun(STU a[],int m){ STU b[N],*t; int i,j,k; /*********found*********/ *t=calloc(m,sizeof(STU)) for(i=0;i<N;i++) b[i]=a[i]; for(k=0;k<m;k++) { for(i=j=0;i<N;i++) if(b[i].S>b[j].s) j=i;/*********found*********/ t[k].num=b[j].num; b[j].s=0; } return t; } outresult(STU a[],FILE*pf) { int i; for(i=0,i<N;i++) fprintf(pf,"No=%s Nark=%d\n",a[i].num,a[i].s); fprintf(pf,"\n\n");}void main(){ STU a[N]=({"A01",81},{"A02",89),{"A03",66},{"A04",87},{"A05",77},{"A06",90),{"A07",79},{"A08",61),{"A09",80),{"A10",71}}; STU *porder; int i,m; system("CLS"); printf("**** THE Original data****\n"); outresult(a,stdout); printf("\nGive the number of the students who have better scoEe:"); scanf("%d",&m); while(m>10) { printf("\nGive the number of the students who have better score:"); scanf("%d",&m);} porder=fun(a,m)j printf("**** THE RESULT ****\n"); printf("The top:\n"); for(i=0 ;i<m;i++) printf("%s%d\n",pOrder[i].num,pOrder[i].s); free(pOrder);}
问答题规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了字符串前导的*号之外,将串中其他*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。 例如,字符串中的内容为“****A*BC*DEF*G*******”,删除后,字符串中的内容应当是 “**** ABCDEFG”。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容。仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#include < string.h >#include < stdio.h >#include < conio.h >void fun(char*a){}main(){ char s[81]; printf ("Enter astring:/n"); gets(s); fun(s); printf("The string after deleted:/n"); puts(s); }