问答题请编写函数fun(),它的功能是计算下列级数和,和值由函数值返回。 S=1+x+x2/2!3/3!+…/xn/n! 例如,当n=10,x=0.3时,函数值为1349859。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。 试题程序: #include<conio.h> #include<stdio.h> #include<math.h> double fun(double x, int n) { } main () { clrscr (); printf ("%f ",fun(0,3,10)); }
问答题程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中的学号和姓名,最后输出修改后的数据。例如:a所指变量中的学号、姓名、和三门课的成绩依次是:10001、"ZhangSan"、95、80、88,则修改后输出b中的数据应为:10002、"LiSi"、95、80、88。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
struct student {
long sno;
char name[10];
float score[3];
};
void fun(struct student a)
{ struct student b; int i;
/**********found**********/
b = __1__;
b.sno = 10002;
/**********found**********/
strcpy(__2__, "LiSi");
printf("/nThe data after modified :/n");
printf("/nNo: %ld Name: %s/nScores: ",b.sno, b.name);
/**********found**********/
for (i=0; i<3; i++) printf("%6.2f ", b.__3__);
printf("/n");
}
main()
{ struct student s={10001,"ZhangSan", 95, 80, 88};
int i;
printf("/n/nThe original data :/n");
printf("/nNo: %ld Name: %s/nScores: ",s.sno, s.name);
for (i=0; i<3; i++) printf("%6.2f ", s.score[i]);
printf("/n");
fun(s);
}
问答题已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun(),该函数的功能是;找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。已给㈩函数的首部,请完成该函数。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
#include<string.h>
#include<conio.h>
#define N 10
typedef struct ss /*定义结构体*/
{ char num[10];
int s;
} STU;
fun(STU a[], STU *s)
{
}
main ( )
{
STU a[N]={{ "A01",81},{ "A02",89},
{ "A03",66},{ "A04",87},{ "A05",77},
{ "A06",90},{ "A07",79}, { "A08",61},
{ "A09",80},{ "A10",71}},m;
int i;
clrscr ();
printf("*****The original data*****");
for (i=0; i<N; i++)
printf("No=%s Mark=%d/n", a[i].hum,
a[i].s);
fun (a,
printf ("*****THE RESULT*****/n");
printf("The top :%s, %d/n",m.num, m.s);
}
问答题编写函数fun,其功能是:将a、b两个两位正整数合并成一个新的整数放在C中。合并的方式是:将a中的十位和个位数依次放在变量c的干位和十位上,b中的十位和个位数依次放在变量C的个位和百位上。
例如,当a=45,b=12,调用该函数后c=4251。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio,h>
void fun(int a,int b,long*c)
{
}
main()
{
int a,b;
long C;
printf("Input a,b:");
scanf("%d%d",&a,&b);
fun{a,b,&c);
printf("The result is:%ld/n",c);
}
问答题下列给定程序中,函数fun的功能是:在带头结点的单向链表中,查找数据域中值为ch的结点。找到后通过函数值返回该结点在链表中所处的顺序号;若不存在值为ch的结点,函数返回0值。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
#include < stdlib.h >
#define N 8
typedef struct list
( int data;
struct list*next;
}SLIST;
SLIST*crear1ist(char*);
void outliSt(SLIST*);
int fun(SLIST*h,char ch)
{ SLIST*p; int n=0;
p=h一 >next:
/*********found*********/
while(p!=
【1】
)
{ n++;
/*********found*********/
if(p一 >data==ch)
return
【2】
;
else P=p一 >next;
}
return 0;
}
main()
{ SLIST *head;int k;char ch;
char a[N]={'m','p','g','a','w','x','r','d'};
head=treatlist(a);
outlist(head);
printf("Enter a letter:");
scanf("%c",&ch);
/*********found*********/
k=fun(m);
if(k==0)
prLntf("/nNotiound!/n");
else
printf("The sequence
number is:%d/n",k);
}
SLIST*treatlist(char*a)
{ SLIST* h,*P,*q;int i;
h=p=(SLIST*)malloc(sizeof(SLIST));
for(i=0 ; i < N;i++)
{q=(SLIST*)malloc(si
zeof(SLIST));
q一 >data=a[i];p一 >next=q;
p=q;
}
p一 >next=0;
return h;
}
void outlist(SLIST*h)
{ SLIST*p;
p=h一 >next;
if(P==NULL)
print{"/nThe list is
NULL!/n");
else
{printf("/nHead");
do
{printf("一 >%c",
p一 >data);p=p一 >next;}
while(p!=NULL);
printf("一 >End/n");
}
}
问答题已知一个数列从第0项开始的前三项分别为0,0,1,以后的各项都是其相邻的前三项之和。给定程序MODI1.C中函数fun的功能是:计算并输出该数列前n项的平方根之和。n的值通过形参传入。 例如,当n=10时,程序的输出结果应为:23.197745。 请改正程序中的错误,使程序能输出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #include<math.h>3 /**********found**********/4 fun(int n)5 {double sum,s0,s1,s2,s;int k;6 sum=1.0;7 if(n<=2)sum=0.0;8 s0=0.0;s1=0.0;s2=1.0 ;9 for(k=4;k<=n;k++)10 { s=s0+s1+s2;11 sum+=sqrt(s);12 s0=s1;s1=s2;s2=s;13 }14 /**********found**********/15 return sum16 }17 main()18 { int n;19 printf(''Input N='');20 scanf(''%d'',&n);21 printf(''%f\n'',fun(n));22 }
问答题下列给定程序中,函数fun的功能是:把形参a所指数组中的奇数按原顺序依次存放到a[0]、a[1]、a[2]…中,把偶数从数组中删除,奇数个数通过函数值返回。
例如,若a所指数组中的数据最初排列为:9,1,4,2,3,6,5,8,7,删除偶数后,a所指数组中的数据为:9,1,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的功能是:把从主函数中输入的3个数,最大的数放在a中,中间的数放在b中,最小的数放在c中。 例如,若输入的数为:55 12 34,输出的结果应当是:a=55.0,b=34.0,c=120。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动:main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include<stdio.h> void fun(float*a,float*b,float*c) /********found********/ float*k; if(*a<*b) k=*a; *a=*b; *b=k; /********found********/ if(*a,*c) k=*c; *c=*a; *a=k; if(*b<*c) k=*b; *b=*c; *c=k; main() float a,b,c; printf("Input a b c:"); scanf("%f%f%f", printf("a=%4.1f,b=%4.1f,c=%4.1f/n/n",a,b,c); fun( printf("a=%4.1f,b=%4.1f,c=%4.1f/n/n",a,b,c);
问答题给定程序MODI1.C的功能是:读入一个整数k(2≤k≤10000),打印它的所有质因子(即所有为素数的因子)。
例如,若输入整数:2310,则应输出:2、3、5、7,11。
请改正程序中的语法错误,使程序能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
IsPrime (int n) ;
{ int i,m;
m = 1;
if ! (n% i)
{ m =0; break ;}
return (m) ;
}
main ()
{ int j,k;
printf ( "/nPlease enter an integer
number between 2 and 10000: ");
scanf("% d",&k);
printf("/n/nThe prime factor(s)
of % d iS (are) :", k) ;
printf("/n %4d",j);
printf ("/n") ;
}
问答题给定程序中,函数fun的功能是:找出100~999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,然后输出;符合条件的整数个数作为函数值返回。 例如,当x值为5时,100~999之间各位上数字之和为5的整数有:104、113、122、131、140、203、212、221、230、302,311,320、401、410、5000共有15个。当x值为27时,各位数字之和为27的整数是:999。只有1个。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 int fun(int x)3 { int n,s1,s2,s3,t ;4 n=0;5 t=100;6 /*********found*********/7 while(t<= __1__) {8 /*********found*********/9 s1=t%10;s2=( __2__ )%10;s3=t/100;10 /*********found*********/11 if(s1+s2+s 3==__3__)12 {printf(''%d'',t);13 n++;14 }15 t++;16 }17 return n;18 }19 main()20 { int x=-1;21 while(x<0)22 { printf(''Please input(x>0):''); scanf(''%d'',&x);}23 printf(''\nThe result is:%d\n'',fun(x));24 }
问答题下列给定程序中,函数fun的功能是:给定n个实数,输出平均值,并统计平均值以上(含平均值)的实数个数。例如,n=8时,输入193.199、195.673、195.757、196.051、196.092、196.596、196.579、196.763,所得平均值为195.838745,在平均值以上的实数个数应为5。
请改正程序中的错误,使其能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
int fun(float x[],int n)
/********found********/
int j,c=0;float xa=0.0;
for(j=0;j<n;j++)
xa+=x[j]/n;
printf("ave=%f/n",xa);
for(j=0;j<n;j++)
/********found********/
if(x[j]>=xa)
C++;
return C;
}
void main()
{
float x[100]={193.199,195.673,195.757,196.051,196.092,196.596,196.579,196.763};
system("CLS");
printf("%d/n",fun(x,8));
}
问答题请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。 主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。注意:部分源程序存在文件PROG1.C文件中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include<stdlib.h> #include<stdio.h> void fun(int a[],int n,int*max,int*d) { } main() { int i,x[20],max,index,n=10;void NONO(); for(i=0;i<n;i++){x[i]=rand()%50;printf("%4d",x[i]);} printf("\n"); fun(x,n,&max,&index); printf("Max=%5d,Index=%4d\n",max,index); NONO();} voidNONO() {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE*fp,*wf; int i,x[20],max,index,n=10,j; fp=fopen("in.dat","r"); wf=fopen("out.dat","w"); for(i=0;i<10;i++){ for(j=0;j<n;j++)fscanf(fp,"%d,",&x[j]); fun(x,n,&max,&index); fprintf(wf,"Max=%d,Index=%d\n",max,index); } fclose(fp); fclose(wf);}
问答题给定程序中,函数fun的功能是:把形参s所指字符串中最右边的n个字符复制到形参t所指字符数组中,形成一个新串。若s所指字符串的长度小于n,则将整个字符串复制到形参t所指字符数组中。
例如,形参s所指的字符串为:abcdefgh,n的值为5,程序执行后t所指字符数组中的字符串应为:defgh。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
#define N 80
void fun(char *s, int n, char *t)
{ int len,i,j=0;
len=strlen(s);
/**********found**********/
if(n>=len) strcpy(__1__);
else {
/**********found**********/
for(i=len-n; i<=len-1; i++) t[j++]= __2__ ;
/**********found**********/
t[j]= __3__ ;
}
}
main()
{ char s[N],t[N]; int n;
printf("Enter a string: ");gets(s);
printf( "Enter n:"); scanf("%d",
fun(s,n,t);
printf("The string t : "); puts(t);
}
问答题给定程序中,函数fun的功能是:计算形参x所指数组中Ⅳ个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。
例如,有10个正数:47、30、32、40、6、17、45、15、48、26,其平均值为30.500000。
移动后的输出为:30、6、17、15、26、47、32、40、45、48。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
1 #include<stdlib.h>
2 #include<stdio.h>
3 #define N 10
4 double fun(double*x)
5 ( int i,j;double av,y[N];
6 av=0;
7 for(i=0;i<N;i++)
8 /*********found*********/
9 av+=
【1】
;
10 for(i=j=0;i<N;i++)
11 if(x[i]<av){
12 y[j]=x[i];x[i]=一1;
13 /*********found*********/
14
【2】
;
15 }
16 i=0;
17 while(i<N)
18 {if(x[i]!=-1)y[j++]=x[i];
19 /*********found*********/
20
【3】
;
21 }
22 for(i=0;i<N;i++)x[i]=y[i];
23 return av;
24 }
25 main()
26 {int i;double x[N];
27 for(i=0;i<N;i++)
28 {x[i]=rand()%50;
29 printf("%4.0 f",x[i]);)
30 printf("\n");
31 printf("\nThe averaqe is:%f\n",fun(x));
32 printf("\nThe result:\n",fun(x));
33 for(i=0;i<N;i++)
34 printf("%5.0 f",x[i]);
35 print:f(”\n”);
36 }
问答题给定程序modi1.c的主函数中,将a、b、c三个结点链成一个单向链表,并给各结点的数据域赋值,函数fun()的作用是:累加链表结点数据域中的数据作为函数值返回。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动maln函数,不得增行或删行,也不得更改程序的结构。
#include
typedef struct list
{int data;
struct list *next;
} LIST;
int fun (LIST *h)
{LIST *p;
int t;
p=h;
while ( *p)
{
t=t+p. data;
}
return t;
}
main ()
{ LIST a,b,c,*h;
a.data=34 ; b.data=51;
c.data=87; c.next='/0';
h=&a; a.next=&b; b.next=&c;
}
问答题编写函数fun,其功能是:将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。 例如,当a =45,b=12时,调用该函数后,c=1524。 注意:部分源程序给出如下。数据文件IN. DAT中的数据不得修改。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#include < conio .h >#include < stdio.h >void fun (int a,int b,long * c) { }main () { int a, b; long c; printf ("Input a,b:") ; fun(a,b,&c); printf("The result is:%ld/n",c);}
问答题下列给定程序中,函数fun的功能是:从形参SS所指字符串数组中,删除所有串长超过k的字符串,函数返回剩余字符串的个数。SS所指字符串数组中共有N个字符串,且串长小于M。请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。注意:部分源程序在文件BLANK1.C中。不得增行或删行,也不得更改程序的结构! #include<stdio.h> #include<string.h> #define N 5 #define M 10 int fun(ehar(*ss)[M],int k) { int i,j=0,len; /***********found***********/ for(i=0;i<[1];i++) {len=strlen(ss[i]); /***********found***********/ if(1en<=一[2]) /***********found***********/ strcpy(ss[j++],[3]); } return j; } main() { char x[N][M]={“Beijing”,“Shanghai”,“Tianjin”,“Nanjing”,“Wuhan”}; int i,f; prinff(“\nThe original string\n\n”); for(i=0;i<N;i++) puts(x[i]); printf(“\n”); f=fun(x,7); prinff(“The string witch length is less than or equal to 7:\n”); for(i=0;i<f;i++)puts(x[i]); printf(“\n”); }
问答题已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。注意:部分源程序给出如下。请勿改动主函数nmin和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdlib.h>#include<stdio.h>#include<string.h>#include<conio.h>#defitie N 10 typedef struct ss /*定义结构体*/{ char num[10]; int s;}STU;fun(STU a[],STU *s){}void main(){ STU a[N]={{"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A0 5",77},{"A06",90},{"A07",79},{"A08",61},{"A09",80),{"A10",71}},m; int i ; system("CLS"); printf("****The original data****"); for(i=0;i<N;i++) printf("No=%s Mark=%d\n",a[i].num,a[i].s); fun(a,&m); printf("****THE RESULT****\n"); printf("The top:%s,%d\n",m.num,m.s);}
问答题规定输入的字符串中只包含字母和#。请编写函数fun,其功能是:除了字符串前导的#之外,将串中其他#全部删除。在编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为:“###aBcdE#FG##”,删除后,字符串中的内容应当是:###aBcdEFG。 注意:部分源程序在文件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);}
问答题请编写一个函数fun,它的功能是:求出一个2×M整型二维数组中最大元素的值,并将此值返回调用函数。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
#defineM 4
int fun(int a[][M])
{
}
main()
{ int arr[2][M]={5, 8, 3, 45, 76, -4, 12, 82};
printf("max=%d/n", fun(arr));
}