问答题学生的记录由学号和成绩组成,N名学生的数据己在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。1 #include<stdio.h>2 #define N 83 typedef struct4 { char num[10];5 double s;6 } STREC;7 double fun(STREC *a,STREC *b,int*n)8 {9 }10 main()11 {STREC s[N]={{''GA05'',85},{''CA03'',76},{''CA02'',69},{''GA04'',85},{''GA01'',91},{''GA07'',72},{''GA08'',64},{''GA06'',87}};12 STREC h[N],t;FILE *out;13 int i,j,n;double ave;14 ave=fun(s,h,&n);15 printf(''The%d student data which is lower than%7.3f:\n'',n,ave);16 for(i=0;i<n;i++)17 printf(''%s %4.1f\n'',h[i].num, h[i].s);18 printf(''\n'');19 out=fopen(''out.dat'',''w'');20 printf(out,''%d\n%7.3f\n'',n,ave);21 for(i=0; i<n-1;i++)22 for(j=i+1;j<n;j++)23 if(h[i].s>h[j].s){t=h[i]; h[i]=h[j];h[j]=t;}24 for(i=0;i<n;i++)25 fprintf(out,''%4.1f\n'',h[i].s);26 fclose(out);}
问答题编写函数fun,其功能是:将s所指字符串中除了下标为奇数同时ASCII码值也为奇数的字符之外,其余的所有字符全部删除,串中剩余字符所形成的一个新串放在t所指的数组中。
例如,若s所指字符串的内容为“ABCDEFG12345”,其中字符A的ASCII码值为奇数,但所在元素的下标为偶数,因此需要删除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其他依此类推。最后t所指数组中的内容应为“135”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
void fun(char*s,char t[])
{
}
main()
{
char s[100],t[100];
printf("/nPlease enter string s:");
scanf("%s",s);
fun(s,t);
printf("/nThe result is:%s/n",t);
}
问答题下列给定程序中,函数fun的功能是:将自然数1~10及其平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。
请在程序下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < math.h >
#include < stdio.h >
int fun(char* fname)
{ FILE*fp;int i,n;float x;
if((fp=fopen(fname,"w"))
==NULL)
return 0;
for(i=1;i < =10;i++)
/*********found*********/
fprintf(
【1】
,"%d%f/n",
i,sqrt((double)i));
printf("/nSucceed!!/n");
/*********found*********/
【2】
;
printf("/nThe data in file:/n");
/*********found*********/
if((fp=fopen(
【3】
,"r"))== NULL)
return 0;
fscanf(fp,"%d%f",&n,&x);
while(!feof(fp))
{printf("%d%f/n",1"1,x);
fscanf(fp,"%d%f",&n,&x);}
fclose(fp);
return 1;
}
main()
{ char fname[]="myfile3.txt";
fun(fname);
}
问答题下列给定程序中,函数fun的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<math.h>#include<stdio.h>floatfun(floatnum)ints;floatn,t,pi;t=1;pi=0;n=1;s=1;/******************found*******************/while(t>=num)pi=pi+t;n=n+2:s=-s;/******************found*******************/t=s%n;pi=pi*4;returnpi;voidmain()floatn1,n2;printf("Enterafloatnumber:";scanf("%f",&n1);n2=fun(n1);printf("%6.4f/n",n2);
问答题学生的记录由学号和成绩组成,M名学生的数据已在主函数中放入结构体数组stu中,请编写函数proc(),它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。
例如,输入的分数是70~79,则应当把分数在70~79的学生数据进行输出,包含70分和79分的学生数据。主函数中把70放在low中,把79放在heigh中。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
#define M 16
typedef struct
{char num[10];
int s;
}
STREC;
int proc(STREC*a, STREC*b, int 1, int h)
{
}
void main()
{
STREC stu[M]={{"GA005", 85}, {"GA003", 76},
{"GA002", 69}, {"GA004", 85}, {"GA001", 96},
{"GA007", 72}, {"GA008", 64}, {"GA006", 87},
{"GA015", 85}, {"GA013", 94}, {"GA012", 64},
{"GA014", 91}, {"GA011", 90}, {"GA017", 64},
{"GA0t8", 64}, {"GA016", 72}};
STREC h[M];
int i, n, low, heigh, t;
printf("Enter 2 integer number low
scanf("%d%d",
if(heigh<low)
{t=heigh; heigh=low; low=t; }
n=proc(stu, h, low, heigh);
printf("The student"s data between %d--%d:/n", low, heigh);
for(i=0; i<n; i++)
printf("%s%4d/n", h[i].num, h[i].s);
//输出指定分数范围内的学生记录
printf("/n");
}
问答题下列给定程序中,函数fun的功能是:从整数10~55,查找能被3整除且有一位上的数值是5的数,把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定函数中a1放个位数,a2放十位数。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
int fun(int *b)
{int k,a1,a2,i=0;
for(k=10;k<=55;k++)
{
/*****************found*****************/
a2=k/1O;
a1=k-a2*10;
if((k%3==0i++;
}
}
/*****************found*****************/
return k;
}
main()
{int a[100],k,m;
m=fun(a);
printf("The result is:/n");
for(k=0;k<m;k++)
printf("%4d",a[k]);
printf("/n");
}
问答题给定程序MODI1.C中函数fun的功能是:将字符串中的字符按逆序输出,但不改变字符串中的内容。
例如,若字符串为abcd,则应输出:dcba。
请改正程序中的错误,使它能计算出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include<stdio.h>
/**********found**********/
fun(char a)
{if(*a)
{fun(a+1);
/**********found**********/
printf("%c"*a);
}
}
main()
{char s[10]="abed";
printf("处理前字符串=%s/n处理后字符串=",s);
fun(s);printf("/n");
}
问答题假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。
例如,字符串中的内容为:****A*BC*DEF*G*******,删除后字符串中的内容应当是:****ABCDEFG。
注意:部分源程序在文件PROG1. C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio. h>
void fun(char *a)
{
/*以下代码仅供参考*/
int i=0, k;
while(a[i]=="*") i++;
k=i;
while(a[i]!="/0")/*以下程序段实现非*字符前移*/
{
}
a[k]="/0";
}
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
("C: //WEXAM//24990001//in. dat", "r");
out=fopen
("C://WEXAM//24990001//out. dat", "w");
for(i=0; i<10; i++) {
fscanf(in, "%s", s);
fun(s);
fprintf(out, "%s/n", s);
}
fclose(in);
fclose(out);
}
问答题学生的记录由学号和成绩组成,M名学生的数据已在主函数中放入结构体数组stu中,请编写函数proc(),它的功能是:函数返回指定成绩的学生数据,指定的成绩在主函数中输入。若没找到指定的成绩,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
#include<stdlib.h>
#define M 16
typedef struct
{
char num[10];
int s;
}
STREC;
STREC proc(STREC*a, int b)
{
}
void main()
{
STREC stu[M]={{"GA005", 76}, {"GA003", 89},
{"GA002", 64}, {"GA004", 75}, {"GA001", 88},
{"GA007", 65}, {"GA008", 96}, {"GA006", 69},
{"GA015", 85}, {"GA013", 78}, {"GA012", 62},
{"GA014", 60}, {"GA011", 73}, {"GA017", 72},
{"GA018", 98}, {"GA016", 94}};
STREC h;
int m;
int i;
printf("The original data: /n");
for(j=0; i<M; i++)
{ if(i%4==0)
printf("/n");
//每行输出4个学生记录
printf("%s%3d", stu[i].num, stu[i].s);
}
printf("/n/nEnter the score:");
scanf("%d",
h=proc(stu, m);
printf("The data: ");
printf("/n%s%4d/n", h.num, h.s);
printf("/n");
}
问答题请编写一个函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数值返回。 例如:若有5门课程的成绩是:90.5,72,80,61.5,55。则函数的值为:71.80。 注意:部分源程序存在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。1 #include<stdio.h>2 float fun(float *a,int n)3 {4 }5 main()6 {float score[30]={90.5,72,80,61.5,55},aver;7 void NONO();8 aver=fun(score,5);9 printf(''\nAverage score is:%5.2f\n'',aver);10 NONO();11 }12 void NONO()13 {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */14 FILE *fp,*wf;15 int i,j;16 float aver,score[5];17 fp=fopen(''in.dat'',''r'');18 wf=fopen(''out.dat'',''w'');19 for(i=0;i<10;i++) {20 for(j=0;j<5;j++)fscanf(fp,''%f,'',&score[j]);21 aver=fun(score,5);22 fprintf(wf,''%5.2f\n'',aver);23 }24 fclose(fp);25 fclose(wf);}
问答题请编写函数fun,其功能是:移动字符串中的内容,移动的规则是把第1一m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。 例如,字符串中原有的内容为"ABCDEFGHI.JK",m的值为3,移动后,字符串中的内容应该是"DEFGHUKABC"。 注意:部分源程序在文件PROG1.C中。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#include < stdio.h >#include < string.h >#define N 80void fun (char*w,int m) { }void main () { . FILE *wf; char a [N] = " ABCDEFGHIJK", b[N] = "ABCDEFGHIJK"; int m; printf ("The origina string :/n") ; puts (a) ; printf ("/n/nEnter m: ") ; fun (a,m) ; printf ( " / nThe string aftermoving :/n") ; puts (a) ; printf ("/n/n") ;/*********found*********/ wf = fopen ("out.dat", "w") ; fun (b,3) ; fprintf (wf,"%s",b) ; fclose (wf) ;/*********found*********/}
问答题下列给定程序中,函数fun的功能是:根据整型形参n,计算如下公式的值。例如,若n=10,则应输出0.617977。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不要改动maln函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>/*********found*********/intfun(intn){floatA=1;inti;/*********found*********/for(i=2;i<n;i++)A=1.0/(1+A);returnA;}voidmain(){intn;system("CLS");printf("/nPleaseentern:");printf("A%d=%lf/n",n,fun(n));}
问答题编写函数fun,其功能是:求Fibonacci数列中大于t的最小的数,结果由函数返回。Fibonacci数列F(n)的定义为:F(0)=0,F(1)=1F(n)=F(n一1)+F(n一2)例如,当t=1000时,函数值为1597。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<conio.h>#include<math.h>#include<stdio.h>int fun(int t){}main(){ int n; n=1000; printf("n=%d,f=%d\n",n,fun(n));}
问答题下列给定程序中,函数fun的功能是:把形参a所指数组中的最大值放在a[0]中,接着求出a所指数组中的最小值放在a[1]中,再把a所指数组元素中的次大值放在a[2]中,把a数组元素中的次小值放在a[3]中,依此类推。
例如,若a所指数组中的数据最初排列为:1、4、2、3、9、6、5、8、7,按规则移动后,数据排列为:9、1、8、2、7、3、6、4、5。形参n中存放a所指数组中数据的个数。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#1nc上ude < stdio.n >
#define N 9
/*********found*********/
void fun(int
【1】
,int n)
{ int i, j , max , rain , px , pn , t;
/*********found*********/
for(i=0;i < n一1;i+=
【2】
)
{max=min=a[i];
px=pn=i;
/*********found*********/
for(j=
【3】
;j < n;j++)
{ if(max < a[j])
{max=a[j];px=j;}
if(rain >a[j])
{min=a[j];pn=j;}
}
if(px!=i)
{t=a[i];a[i]=max;
a[px]=t;
if(pn==i)pn=px;
}
if(pn!=i+1)
(t=a[i+1];a[i+1]=rain;
a[pn]=t;)
}
}
main()
{int bin]={1,4,2,3,9,6,5,8,7},i;
print f("/nThe original data:/n");
for(i=0;i < N;i++)
printf("%4d",b[i]);
printf("/n");
fun(b,N);
printf("/nThe data after
moving:/n");
for(i=0;i < N;i++)
printi("%4 d",b[i]);
printf("/n");
}
问答题下列给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去掉,剩余的数按原来从高位到低位的顺序组成一个新数,并通过形参指针n传回所指变量。
例如,若输入一个数27638496,则新数为739。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
vid fun(unsigned long*n)
{ unsigned long x=0,i;int t;
i=1;
while(*n)
/*********found*********/
{t=*n%
【1】
;
/*********found*********/
if(t%2!=
【2】
)
{x=x+t*i;i=i*10;}
*n=*n/10;
}
/*********found*********/
*n=
【3】
;
}
main()
{ unsigned long n=-1;
while(n>99999999‖n<0)
{printf("Please input(0<n<100000000):");
scanf("%ld",&n);)
fun(&n);
printf("\nThe result is:%ld\n",n);
}
问答题下列给定程序中,函数fun的功能是:将形参s所指字符串中的所有字母字符顺序前移,其他字符顺序后移,处理后将新字符串的首地址作为函数值返回。
例如,若s所指字符串为“asdl23fgh543df”,处理后新字符串为“asdfghdfl23543”。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char*fun(char*s)
{ int i,j,k,n;char *p,*t;
n=strlen(s)+1;
t=(char*)malloc(n*sizeof(char));
P=(char*)malloc(n*sizeof(char)),
j=0;k=0;
for(i;0;i<n;i++)
{if(((S[i]>='a')&&(s[i]
<='Z'))‖((s[i]>='A')i++)
t[j+i]=P[i];
/*********found*********/
t[j+k]=
【3】
;
return t;
}
main()
{ char s[80];
printf("Please input:");
scanf("%s",s);
printf("\nThe result is:%s\n",fun(s));
}
问答题函数fun的功能是:将s所指字符串中下标为偶数的字符删除,剩余字符形成的新串放在t所指的数组中。
例如,当s所指字符串中的内容为“ABCDEFGHIJK”时,在t所指数组中的内容应是“BDFHJ”。
注意:部分源程序给出如下。
请勿改动函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
void fun(char *s, char t[]);
{
}
void main()
{
char s[100], t[100];
system("CLS");
printf("/nPlease enter string S:");
scanf("%s", s);
fun(s, t);
printf("/nThe result is:%s/n", t);
}
问答题下列给定程序中,fun()函数的功能是:从整数1~50中,选出能被3整除且有一位上的数是5的数,并把这些数放b所指的数组中,这些数的个数作为函数值返回。规定,函数中a1放个位数,a2放十位数。
请修改函数中的错误,得出正确的结果。
注意:不要改动main()函数,不能增行或减行,电不能更改程序的结构。
试题程序:
#include<stdio.h>
//****found****
int fun(int*b);
{
int j, a1, a2, i=0;
//****found****
for(j=10; j<=50; j++)
{
a2=j/10;
a1=j-a2*10;
if((j%3==0
i++;
}
}
//****found****
return j;
}
void main()
{
int a[50], i, n;
n=fun(a);
printf("the result is: /n");
for(i=0; i<n; i++)
printf("%4d", a[i]);
printf("/n");
}
问答题请编写一个函数,函数的功能是删除字符串中的所有空格。
例如,主函数中输入“asd af aa z67”,则输出为“asdafaaz67”。
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入编写的若干语句。
给定源程序如下。
#include<stdio.h>
#include<ctype.h>
void fun(char*st)
{
}
main()
{
char str[81];
printf("Input a string:");
gets(str);
puts(str);
fun(str);
printf("***str:%s/n",str);
}
问答题给定程序MODI1.C中函数fun的功能是:求k!(k 0
return (k*fun(k-1));
/************found************/
else if ( k=0 )
return 1L;
}
main()
{ int k = 10 ;
printf("%d!=%ld/n", k, fun ( k )) ;
}
