问答题编写函数fun,其功能是:根据以下公式求值(要求精度0.0005,即某项小于0.0005时停止迭代)。程序运行后,若输入精度0.0005,则程序应输出为3.14…注意:部分源程序已给出。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>#include<math.h>doublefun(doubleeps)voidmain()doublex;printf("Inputeps:");scanf("%If”,&x);printf("/neps=%If,PI=%1f/n",x,fun(x));
问答题函数fun的功能是:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s所指串中剩余的字符形成的新串放在t所指的数组中。
例如,若s所指字符串中的内容为"ABCDEFC12345",其中字符C的ASCII码值为奇数,在数组中的下标为偶数,因此必须删除;而字符1的ASCII码值为奇数,在数组中的下标为奇数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是"BDF12345"。
注意:请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdio.h>
#include<string.h>
void fun(char*s,char t[])
{
}
main()
{
char s[100],t[100];void NONO();
printf("/nPlease enter string S:");
scanf("%s",s);
fun(s,t);
printf("/nThe result is:%s/n",t);
NONO();
}
void NONO()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
char s[100],t[100];
FILE*rf,*wf;
int i;
rf=fopen("in.dat","r");
wf=fopen("out.dat","w");
for(i=0;i<10;i++){
fscanf(rf,"%s",s);
fun(s,t);
fprintf(wf,"%s/n",t);
}
fclose(rf);
fclose(wf);
}
问答题给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用fun函数,每调用一次fun函数,输出链表尾部结点中的数据,并释放该结点,使链表缩短。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!#include<stdio.h>#include<stdlib.h>#define N 8 typedef struct 1ist{ int data; struct list *next;}SLIST;void fun(SLIST *p){SLIST *t,*s; t=p一>next;s=p; while(t->next !=NULL) { s=t;/**********found**********/ t=t-> 【1】 ; } /**********found**********/ printf("%d",【2】); s一>next=NULL; /**********found**********/ free(【3】); } SLIST *creatlist(int *a) {SLIST *h, *P, *q;int i; h=p=(SLIST *)malloc(sizeof(SLIST)); for(i=0;i<N;i++){q=(SLIST *)malloc(sizeof(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) printf("\nThe list is NULL!\n"); else {printf("\nHead"); do(printf("一>%d",P一>data);p=p->next;}while(p!=NULL); printf("一>End\n"); } } main() {SLIST *head; int a[N]={11,12,15,18,19,22,25, 29}; head=creatlist(a);printf("\nOutput from head:\n");outlist(head);printf("\nOutput from tail:\n"); while (head一>next !=NULL){ fun(head); printf("\n\n"); printf("\nOutput from head again:\n");outlist(head); } }
问答题下列程序定义了NXN的二维数组,并在主函数中赋值。请编写函数fun(),函数的功能是求出数组周边元素的平方和并作为函数值返回给主函数中的s。例如:若a数组中的值为
a=0 1 2 7 9
1 11 21 5 5
2 21 6 11 1
9 7 9 10 2
5 4 1 4 1
则返回主程序后s的值应为310。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include <stdio.h>
#include<conio.h>
#include<stdlib.h>
#define N 5
int fun (int w[][N])
{
}
main()
{
int a[N][N]={0,1,2,7,9,1,11,21,5,5,2, 21,6,11,1,9,7,9,10,2,5,4,1,4,1};
int i,j;
int s;
clrscr();
printf("*****The array***+*/n");
for (i=0;i<N;i++)
{ for(j=0;j<N;i++)
{printf("%4d",a[i][j]);}
printf("/n");
}
s=fun(a);
printf("*****THE RESULT*****/n");
printf("The sum is:%d/n",s);
}
问答题给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中大干平均值的数据移至数组的前部,小于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。例如,有10个正数:46、30、32、40、6、17、45、15、48、26,平均值为30.500000。移动后的输出为:46、32、40、45、48、30、6、17、15、26。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:部分源程序在文件BLANK1.C中。不得增行或删行,也不得更改程序的结构!试题程序:
问答题给定程序MODI1.C中函数fun的功能是:将s所指字符串中出现的与t1所指字符串相同的子串全部替换成t2所指字符串,所形成的新串放在w所指的数组中。在此处,要求t1和t2所指字符串的长度相同。
例如,当s所指字符串中的内容为:"abcdabfab",t1所指子串中的内容为:
"ab",t2所指子串中的内容为:"99"时, 结果在w所指的数组中的内容应为:
"99cd99f99"。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
int fun (char *s, char *t1, char *t2 , char *w)
{
int i; char *p , *r, *a;
strcpy( w, s );
while ( *w )
{ p = w; r = t1;
/************found************/
while ( r )
if ( *r == *p ) { r++; p++; }
else break;
if ( *r == '/0' )
{ a = w; r = t2;
while ( *r ){
/************found************/
*a = *r; a++; r++
}
w += strlen(t2) ;
}
else w++;
}
}
main()
{
char s[100], t1[100], t2[100], w[100];
printf("/nPlease enter string S:"); scanf("%s", s);
printf("/nPlease enter substring t1:"); scanf("%s", t1);
printf("/nPlease enter substring t2:"); scanf("%s", t2);
if ( strlen(t1)==strlen(t2) ) {
fun( s, t1, t2, w);
printf("/nThe result is : %s/n", w);
}
else printf("Error : strlen(t1) != strlen(t2)/n");
}
问答题在主函数中已将N名学生的成绩放入一个带头结点的链表结构中,h指向链表的头结点。请编写函数fun,它的功能是:求出平均分,由函数值返回。 例如,若学生的成绩是:85,76,69,85,91,72,64,87,则平均分应当是:78.625。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 文件PROG1.C内容如下: #include<stdio.h> #include<stdlib.h> #define N 8 struct slist double s ; struct stist * next; ; typedef struct slist STREC; double fun(STREC * h ) STREC * creat( double * s) STREC * h, * p, * q; int i=0; h = p = (STREC * ) malloe (sizeof( STREC )); p->s=0; while(i<N) q=(STREC * ) malloe ( sizeof( STREC ) ) ; q->s=s[i] ; i++; p->next = q ; p=q; p->next = 0 ; return h ; void outlist (STREC * h) STREC * p ; p = h->next ; prinff( " head" ) ; do prinff( " ->% 4.1f" , p->s) ; p=p->next; while(p! =0); printf(" /n/n" ) ; void main( ) double s[N]=85,76,69,85,91,72,64,87,ave; STREC * h ; h=creat( s ); outlist (h) ; ave=fun( h ); prinff("ave= %6.3f/n" ,ave) ;
问答题函数fun的功能是:把形参a所指数组中的偶数按原顺序依次存放到a[0]、a[1]、a[2]、……中,把奇数从数组中删除,偶数个数通过函数值返回。例如:
若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7,删除奇数后a
所指数组中的数据为:4、2、6、8,返回值为4。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#define N 9
int fun(int a[], int n)
{ int i,j;
j = 0;
for (i=0; i
/**********found**********/
if (___1___== 0) {
/**********found**********/
___2___ = a[i]; j++;
}
/**********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; iprintf("/n");
n = fun(b, N);
printf("/nThe number of even :%d/n", n);
printf("/nThe even :/n");
for (i=0; iprintf("/n");
}
问答题下列给定程序中,函数fun的功能是:根据以下公式求π值,并作为函数值返回。例如,当给指定精度的变量eps输入0.0005时,应输出Pi=3.140578。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<conio.h>#include<stdio.h>#include<math.h>doublefun(doubleeps){doubles,t;intn=1;s=0.0;/*********found*********/t=0;while(t>eps){s+=t;t=t*n/(2*n+1);n++;}/*********found*********/return(s);}voidmain(){doublex;print("\nPleaseenteraprecision:");scarlf("%lf",&x);printf("\nPi=%1f\n",fun(x));}
问答题改错题
下列给定程序中,函数fun()的功能是计算并输出high以内的素数之和。high由主函数传给fun()函数。若high的值为100,则函数的值为1060。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
#include
int fun(int high)
{
int sum=0,n=0, j, yes;
while(high>=2)
{
yes = 1;
for(j=2; j<=high/2; j++)
/**********************found***********************/
ifhigh%j==0
{
yes=0;
break;
}
/**********************found***********************/
if(yes==0)
{
sum+=high;
n++;
}
high--;
}
return sum;
}
main()
{
clrscr();
printf("%d/n",fun(100));
}
问答题请指出以下C程序的错误所在:
#include stdio, h;
main(); / * main function * /
float r, s; /*/*risradius*/,/* sis area of circular*/ */
r = 5.0;
s = 3.14159 * r *r;
printf ("%f /n", s )
问答题给定程序MODI1. C中,函数fun的功能是判断整数n是否是“完数”。当一个数的因子之和恰好等于这个数本身时,就称这个数为“完数”。例如:6的因子包括1、2、3,而6=1+2+3,所以6是完数。如果是完数,函数返回值为1,否则函数返回值为0。数组a中存放的是找到的因子,变量k中存放的是因子的个数。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <stdio. h>
int fun(int n, int a[], int *k)
{int m=0, i, t;
t=n;
/**********found**********/
for(i=0; i<n; i++)
if(n%i==0)
{a[m]=i; m++; t=t-i;)
/**********found**********/
k=m;
/**********found**********/
if(t=0) return 1;
else return 0;
}
main( )
{int n, a[10], flag, i, k;
printf("请输入一个整数: ");
scanf("%d",
flag=fun(n, a,
if(flag)
{printf("%d是完数,其因子是:", n);
for(i=0; i<k; i++)
printf("%d", a[i]);
printf("/n");
}
else printf("%d不是完数./n", n);
}
问答题由N个有序整数组成的数列己放在一维数组中,给定程序MODI1.C中函数fun的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,返回其下标值;反之,返回-1。
折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(lowhigh,查找结束。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include
#define N 10
/*********** found*********** /
void fun(int a[], int m)
{ int low=0,high=N-l,mid;
while (low a[mid])
low=mid+l;
else return(mid) ;
}
return(-1);
}
main ()
{int i,a[N]={-3,4,7,9,13,45,67,
89,100,180 },k,m;
printf ("a数组中的数据如下:");
for(i=0;i=0)
printf("m=%d,index=%d/n",m,k);
else printf("Not be found!/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所指数组中数据的个数。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #define N 93 /**********found**********/4 void fun(int___1___,int n)5 { int i,j,max,min,px,pn,t;6 /**********found**********/7 for(i=0;i<n-1;i+=__2__)8 { max=min=a[i];9 px=pn=i;10 /**********found**********/11 for(j=__3__;j<n;j++)12 { if(max<a[j])13 { max=a[j];px=j;)14 if(min>a[j])15 { min=a[j]; pn=j;}16 }17 if(px!=i)18 {t=a[i]; a[i]=max;a[px]=t;19 if(pn==i)pn=px;20 }21 if(pn!=i+1)22 {t=a[2+1];a[i+1]=min;a[pn]=t;}23 }24 }25 main()26 {int b[N]={1,4,2,3,9,6,5,8,7},i;27 printf(''\nThe original data:\n'');28 for(2=0;i<N;i++)printf(''%4d'',b[i]);29 printf(''\n'');30 fun(b,N);31 printf(''\nThe data after moving:\n'');32 for(2=0;i<N;i++)printf(''%4d'',b[i]);33 printf(''\n'');34 }
问答题编写程序,实现矩阵(3行3列)的转置(即行列互换)。
例如,输入下面的矩阵:
100 200 300
400 500 600
700 800 900
程序输出:
100 400 700
200 500 800
300 600 900
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入编写的若干语句。
给定源程序如下。
#include<stdio.h>
void fun(int array[3][3])
{
}
main()
{
int i,j;
int array[3][3]={{100,200,300},
{400,500,600},
{700,800,900}};
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
printf("%7d",amy[i][j]);
printf("/n");
}
fun(array);
printf("Convened array:/n");
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
printf("%7d",array[i][j]);
printf("/n");
}
}
问答题给定程序中,函数fun的功能是将带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在
下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include <Stdio.h>
#include <stdlib.h>
#define N 5
typedef struct node{
int data;
struct node *next;
}NODE;
void fun(NODE*h)
{NODE*p, *q, *r;
/**********found**********/
p=h->______;
/**********found**********/
if(p==______)return;
q=p->next;
p->next=NULL;
while(q)
{r=q->next; q->next=p;
/**********found**********/
p=q; q=______;
}
h->next=p;
}
NODE *creatlist(int a[])
{NODE *h, *p, *q; int i;
h=(NODE*)malloc(sizeof(NODE));
h->next=NULL;
for(i=0; i<N; i++)
{q=(NODE*)malloc(sizeof(NODE));
q->data=a[i];
q->next=NULL;
if(h->next==NULL)h->next=p=q;
else{p->next=q; p=q;}
}
return h;
}
void outlist(NODE*h)
{NODE*p;
p=h->next;
if(p==NULL)printf("The list is NULL!/n");
else
{printf("/nHead");
do
{printf("->%d", p->data); p=p->next;}
while(p!=NULL);
printf("->End/n");
}
}
main()
{NODE*head;
int a[N]={2,4,6,8,10};
head=creatlist(a);
printf("/nThe original list:/n");
outlist(head);
fun(head);
printf("/nThe list after inverting:/n");
outlist(head);
}
问答题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。
注意:部分源程序在文件PROG1.C文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#define N 12
typedef struct
{ char num[10];
double s;
} STREC;
double fun(STREC *a, STREC *b,
int *n)
{
}
main ()
{STREC
s[N]={{"GA05",85},{"GA03",76},
{"GA02",69},{"GA04",85},
{"GA01",91},{"GA07",72},
{"GA08",64},{"GA06",87},
{"GA09",60},{"GA11",79},
{"GA12",73}, {"GA10",90}};
STREC h[N], t;FILE *out ;
int i,j,n; double ave;
ave=fun(s,h,
printf("The %d student data
which is higher
than %7. 3f:/n",n,ave);
for(i=0;i
问答题给定程序的主函数中,已给出由结构体构成的链表结点a、b、c,各结点的数据域中均存入字符,函数fun()的作用是:将a、b、c三个结点 链接成一个单向链表,并输出链表结点中的数据。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANKl.C中。不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
typedef struct list
{ char data;
struct list * next;
} Q;
void fun ( Q *pa, Q*pb, Q*pc)
pa 一 > next=
【1】
;
pb 一 > next =pc;
p =pa;
while ( p )
{
/*********found*********/
printf (" % c",
【2】
) ;
/*********found*********/
p=
【3】
;
}
printf ("/n") ;
main ()
{Qa,b,c;
a.data = 'E'; b.data = 'F';
c.data = 'G'; c.next =NULL;
fun(&a,&b,&c);
}
问答题请编写一个函数fun(),它的功能是:找出一维数组元素中最大的值和它所在的下标,最大值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。 主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。 注意:部分源程序给出如下。 请勿改动主函数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; randomize(); for(i=0; i<=n; i++) x[i]=rand()%50; printf("%4d",x[i]); /*输出一个随机数组*/ printf("/n"); fun(x,n, printf("Max=%5d,Index=%4d/n",max,index);
问答题N名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的头结点。请编写函数fun,其功能是:求出平均分,并由函数值返回。例如,若学生的成绩是:85,76,69,85,9l,72,64,87,则平均分应当是:78.625。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdlib.h>#include<stdio.h>#define N 8struct slist{ double s; struct slist *next;};typedef struct slist STREC;double fun(STREC木h){}STREC*treat(double*s)/*创建链表*/{ STREC*h,*p,*q; int i=0; h=P=(STREC*)malloc(sizeof(STREC)); P->s=0; while(i<N) { q=(STREC*)malloc(sizeof(STREC)); q->s=s[i];i++;p->next=q;p=q; } P->next=0; return h; } outlist(STREC*h) { STREC*P; P=h->next ; printf("head"); do { printf("->%4.1f",p->s); p=p->next;/*输出各成绩*/ }while(P!=NULL); printf("\n\n");}void main(){ double s[N]={85,76,69,85,91,72,64,87},ave; STREC*h; h=creat(s);outlist(h); ave=fun(h); printf("ave=%6.3 f\n",ave);}
