问答题请编写函数fun,其功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从0—p(含p,p小于等于n一1)的数组元素平移到数组的最后。例如,一维数组中的原始内容为:1、2、3、4、5、6、7、8、9、10;p的值为3。移动后,一维数组中的内容应为:5、6、7、8、9、10、1、2、3、4。注意:部分源程序给出如下。请勿改动主函数maln和其他函数中的内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include < stdio.h >#define N 80void fun (int *w, int p. int n){}main ()8 , 9,10 ,11,12 ,13 ,14 ,15}; int i,p,n =15; printf ( " The original da一ta:/n"); for(i=0;i < n;i++) printf ("%3 d",a[i]); printf("/n/nEnter p:"); scanf("%d",&p); fun(a,p,n); printf("/nThe data after moving:/n"); for(i=0;i < n;i++) printf("%3 d",a[i]); printf("/n/n");}
问答题下列给定程序中,函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。 例如,若num1和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,则输出的最大公约数为27。 请改正函数fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动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); } main() { int num1,num2,a; printf("Input num1 num2:"); scanf("%d%d",&num1,&num2); printf("num1=%d num2=%d\n",num1,num2); a=fun(num1,num2); printf("The maximun common divisor is%d\n",a); }
问答题下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun()的功能是:将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并作为函数值返回。 和值通过函数值返回main()函数。例如,若n=5,则应输出8.391667。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 [试题源程序] #include<stdio.h> #include<stdlib.h> typedef struct aa int data; struct aa*next: )NODE; int fun(NODE *h) int sum=0; NODE*p; /***********found**********/ p=h; while(p->next) if(p->data%2==0) sum+=P->data; /***********found***********/ p=h->next; return sum; NODE *creatlink(int n) NODE*h,*p,*s,*q; int i,x; h=p=(NODE*)malloc(sizeof(NODE)); for(i=1;i<=n;i++) S=(NODE*)malloc(sizeof(NODE)); s->data=rand()%16; s->next=p->next; p->next=s; p=p->next; p->next=NULL; return h; outlink(NODE*h,FILE*pf) NODE*p; p=h->next; fprintf(pf,"/n/nTHE LIST:/n/n HEAD"); while(p) fprintf(pf,"->%d",p->data);p=p->next; fprintf(pf,"/n"); outresult(int s,FILE*pf) fprintf(pf,"/nThe sum of even numbers:%d/n",s); main() NODE*head;int even; head=creatlink(12); head->data=9000; outlink(head,stdout); even=fun(head); printf("/nThe result:/n");outresult(even,stdout);
问答题给定程序MODI1.C中函数fun的功能是:从s所指字符串中删除所有小写字母c。
请改正程序中的错误,使它能计算出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
void fun( char *s )
{ int i,j;
for(i=j=0; s[i]!='/0'; i++)
if(s[i]!='c')
/************found************/
/TAB s[j]=s[i];
/************found************/
s[i]='/0';
}
main()
{ char s[80];
printf("Enter a string: "); gets(s);
printf("The original string: "); puts(s);
fun(s);
printf("The string after deleted : "); puts(s);printf("/n/n");
}
问答题请编写函数fun,函数的功能是:判断字符串是否为回文?若是,函数返回1,主函数中输出:YES;否则返回0,主函数中输出NO。回文是指顺读和倒读都一样的字符串。 例如,字符串LEVEL是回文,而字符串123312就不是回文。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数flun的花括号中填入你编写的若干语句。#include <stdio.h>#include <string.h>#define N 80int fun(char *str){}main (){ char s[N] ;void NONO ();printf("Enter a string: "); gets(s);printf("/n/n"); puts(s);if(fun(s)) printf("YES/n");else printf("NO/n");NONO();} void NONO (){/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/FILE *rf, *wf ;int i ; char s[N] ;rf = fopen("in.dat","r") ;wf = fopen("out.dat","w");for(i = 0 ; i < 10 ; i++) { fscanf(rf, "%sw, s); if(fun(s))fprintf(wf,"%s YES/n", s); else fprintf(wf, "%s NO/n", s);}fclose(rf); fclose(wf); }
问答题给定程序MODI1. C中函数fun的功能是:统计字符串中各元音字母(即:A、E、I、O、U)的个数。注意:字母不分大、小写。
例如:若输入:THIs is a boot,则输出应该是:1、0、2、2、0。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include <stdio. h>
void fun (char *s, int num[5])
{ int k, i=5;
for (k=0; k<i; k++)
/**********found**********/
mum[i]=0;
for (; *s; s++)
{i=-1;
/**********found**********/
switch(s)
{case "a": case "A": {i=0; break;)
case "e": case "E": {i=1; break;}
case "i": case "T": {i=2; break;}
case "o": case "O": {i=3; break;}
case "u": case "U": {i=4; break;}
}
if(i>=0)
num[i]++;
}
}
main( )
{char s1[81]; int num1[5], i;
printf("/nplease enter a string:"); gets(s1);
fun(s1, num1);
for(i=0; i<5; i++) print; f("%d", num1[i]); printf("/n");
}
问答题人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。函数fun的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
#define N 8
typedef struct
{ char num[10];
int year,month,day ;
}STU;
/**********found**********/
___1___ fun(STU *std, char *num)
{ int i; STU a={"",9999,99,99};
for (i=0; i
/**********found**********/
if( strcmp(___2___,num)==0 )
/**********found**********/
return (___3___);
return a;
}
main()
{ STU std[N]={ {"111111",1984,2,15},{"222222",1983,9,21},{"333333",1984,9,1},
{"444444",1983,7,15},{"555555",1984,9,28},{"666666",1983,11,15},
{"777777",1983,6,22},{"888888",1984,8,19}};
STU p; char n[10]="666666";
p=fun(std,n);
if(p.num[0]==0)
printf("/nNot found !/n");
else
{ printf("/nSucceed !/n ");
printf("%s %d-%d-%d/n",p.num,p.year,p.month,p.day);
}
}
问答题请编一个函数float fun(double h),该函数的功能是:使变量h中的值保留两位小数,并对第三位进行四舍五入(规定h中的值为正数)。
例如,若h值为1234.567,则函数返回1234.570000;若h值为1234.564,则函数返回1234.560000。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdio.h>
#include<Conio.h>
#include<stdlib.h>
float fun(float h)
{
}
void main()
{
FILE *wf;
float a;
system("CLS");
printf("Enter a:");
scanf("%f",
printf("The original data is:");
printf("%f/n/n",a);
printf("The result:%f/n",fun(a));
/******************/
wf=fopen("out.dat","w");
fprintf(wf,"%f",fun(8.32533));
fclose(wf);
/******************/
}
问答题从键盘上输入9个数,按3行3列的格式输出。
问答题改错题
在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。下列给定程序中,函数fun()的功能是计算数组元素中值为负数的平均值(不包括0)。
例如:数组中元素的值依次为43,-47,-21,53,-8,12,0,则程序的运行结果为-25.333333。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
double fun(int x[ ])
{
double sum=0.0;
int c=0, i=0;
/**********************found***********************/
while(x[i]==0)
{
if(x[i]<0)
{
sum=sum+x[i];
c++;
}
i++;
}
/**********************found***********************/
sum=sum/c;
return sum;
}
main()
{
int x[1000];
int i=0;
clrscr();
printf("/nPlease enter some data(end with 0) :");
do
{
scanf("%d",
}while(x[i++]!=0);
printf("%f/n",fun(x));
}
问答题给定程序中,函数fun的功能是计算下式
例如,若形参e的值为1e-3,函数的返回值2.735678。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
double fun(double e)
{ int i; double s, x;
/**********found**********/
s=0; i=__1__;
x=1.0;
while(x>e){
/**********found**********/
__2__;
/**********found**********/
x=(2.0*i-1)/((__3__)*(2.0*i));
s=s+x;
}
return s;
}
main()
{ double e=1e-3;
printf("/nThe result is: %f/n",fun(e));
}
问答题给定程序MODI1.C中函数 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
int fun(float x[], int n)
{
/************found************/
int j, c=0, float xa=0.0;
for (j=0; j
xa += x[j]/n;
printf("ave =%f/n",xa);
for (j=0; j
/************found************/
if (x[j] => xa)
c++;
return c;
}
main ( )
{ float x[100] = {193.199, 195.673, 195.757, 196.051, 196.092, 196.596, 196.579,
196.763};
printf("%d/n", fun (x, 8));
}
问答题下列给定程序中函数fun的功能是:根据整型形参m,计算如下公式的值:例如,若m的值为5,则应输出1.463611。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<conio.h>#include<stdio.h>doublefun(intm){doubley=1.0;inti;/*********found*********/for(i=2;i<m;i++)/*********found*********/y+=1/(i*i);return(y);}main(){intn=5;printf("/nTheresultis%1f/n",fun(n));}
问答题请编写函数fun,它的功能是计算下列级数和,和值由函数值返回。例如,当n=10,x=0.3时,函数值为1.349859。注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>#include<math.h>#include<stdlib.h>doublefun(doublex,intn){}voidmain(){FILE*wf;system("CLS");printf("%f",fun(0.3,10));/******************/wf=fopen("out.dat","w");fprintf(wf,"%f",fun(0.3,10));fclose(wf);/******************/}
问答题下列给定程序中函数fun的功能是:将长整型数中各位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为87653142时,t中的数为8642。 请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MOD11.c中,不得增行或删行,也不得更改程序的结构!#include<stdio.h>void fun(10ng s,long*t){int d:long sl=1;/**********found**********/t=0;while(s>0){d=s%10;/**********found**********/if(d%2==1){*t=d*sl+*t:sl*=10:}s/=10;}}main(){long s,t;printf(''\nPlease enter s:'');scanf(''%ld'',&s);fun(s,&t):printf(''The result is;%ld\n'',t);}
问答题学生的记录由学号和成绩组成,M名学生的数据已在主函数中放入结构体数组S中,请编写函数proc(),它的功能是:把分数最高的学生数据放在h所指的数组中。注意:分数高的学生可能不只一个,函数返回分数最高学生的人数。 注意:部分源程序已给出。 请勿改动主函数main和其他函数中的任何内容。 试题程序: #include<stdio.h> #define M 16 typedef struct char num[10]; int s; STREC; int proc(STREC * a, STREC*b) void main() STREC stu[M]="GA005", 85, "GA003", 76, "GA002", 69, "GA004", 85, "GA001", 91, "GA007", 72, "GA008", 64, "GA006", 87, "GA015", 85, "GA013", 91, "GA012", 64, "GA014", 91, "GA011", 66, "GA017", 64, "GA018", 64, "GA016", 72; STREC h[M]; int i, n; n=proc(stu, h); printf("The %d highest score: /n", n); for(i=0; i<n; i++) printf("% S%4d/n", h[i]. num, h[i].s); //输出最高分学生的学号和成绩 printf("/n");
问答题下列给定程序中,函数fun的功能是:按以下递归公式求函数的值。请改正程序中的错误,使它能得出正确的结果。注意:不要改动mam函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>/******************found*******************/fun(n)intc;/******************found*******************/if(n=1)c=10;elsec=fun(n-1)+2;return(c);main()intn;printf("Entern:");scanf("%d",&n);printf("Theresult:%d/n/n",fun(n));
问答题请编写函数fun,其功能是分别统计形参t所指二维数组中字母A和C的个数。注意:部分源程序存在PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include < stdio.h >#include < stdlib.h >#define M 1 4void NONO();void fun(char(*t)[M],int*a,int,*c){}void get:(char(* s)[M]){int i,j;for(i=0;i < M; i++){ for(j=0;j < M;J++){s[i][j]=65+rand()%12;print:f("%c",s[i][j]);}printf("/n");}}main(){char a[M][M];int x,y;get(a);fun(a,&x,&y);print:f("A=%d c=%d/n",x,y);NONO();}void NONO(){/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*fp,* wf;int i,j,x,y;char a[M][M];fp=fopen("c:/test/in.ctat",’fr");wf=fopen("c:/test/out.dat","w");for(i=0;i < M;i++){for(j=0 ;j < M;j++){ fscanf(fp,"%c",&a[i][j]);)}fun(a,&x,&y);fprintf(wf,"A=%d/n",x);fprintf(wf,"C=%d/n",y);fclose(fp);fclose(wf);}
问答题请编写函数proc(),它的功能是计算下列级数和,和值由函数值返回。
S=1+x+x2/2!+x3/3!+…+xn/n!
例如,当n=20,x=0.2时,函数值为1.221403。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<math.h>
double proc(double x,int n)
{
}
void main()
{
system("CLS");
printf("%f",proc(0.3,10));
}
问答题人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。
函数fun的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
#include < string.h >
#define N 8
typedef struct
{
char num[10];
int year,month,day;
}STU;
/*********found*********/
【1】
fun(STU*std,char*hum)
{
int i;
STU a={"",9999,99,99};
for(i=0;i < N;i++)
/*********found*********/
if(strcrnp(
【2】
,hum)=0)
/*********found*********/
return(
【3】
);
retUrn a;
}
main()
{
STU std[N]={{"11 1111",1984,2,15},{"222222",1983,9,21),
{"333333",1984,9,1},
{"4 4 4 4 4 4",198 3,7,1 5},
{"5555 55”,198 4,9,2 8},
{"6 6 6 6 6 6",198 3,11,15},
{"7 7 7 7 7 7",1 98 3,6,22},
{"8 8 8 8 8 8",1984,8,19)};
STU P;
char r1[1 0]="66 6 6 6 6";
P=fun(std,n);
if(p.num[0]==0)
{
printf("/nNot found!/n");
}
plse
{
printf("/nSucceed!/n");
print;f("%s%d一%d一%d/n",p.num,P.year,p.month,p.day);
}
}