问答题下列给定程序中,函数fun的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止。例如,程序运行后,输入0.0001,则程序输出3.1414。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdlib.h>#include<math.h>#include<sfdio.h>floatfun(floatnum)ints;floatn,t,pi;f=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;system("CLS");printf("Enterafloatnumber:");scanf("%fn2=fun(n1);printf("%6.4f/n",n2);
问答题请编写函数fun,函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放存主函数的age数组中;要求函数把0至9岁年龄段的人数放在d[0]中,把10至19岁年龄段的人数放在d[1]中,把20至29岁年龄段的人数放在d[2]中,其余依此类推,把100岁(含100)以上年龄的人数都放在d[10]中。结果在主函数中输出。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
#define N 50
#define M 11
void fun(int *a,int *b)
{
}
double rnd()
{static t=29,c=217,m=1024,r=0;
r=(r*t+c)%m;return((double)r/m);
}
main()
{int age[N],i,d[M];
for(i=0;i<N;i++)age[i]=(int)(115*rnd());
printf("The original data:/n");
for(i=0;i<N;i++)printf((i+1)%10==0?"%4d/n":"%4d",age[i]);
printf("/n/n");
fun(age,d);
for(i=0;i<10;i++)printf("%4d---%4d:%4d/n",i*10,i*10+9,d[i]);
printf("Over 100:%4d/n",d[10]);
}
问答题给定程序中,函数fun的功能是:
用函数指针指向要调用的函数,并进行调用。
规定在
【2】
处使f指向函数f1,在
【3】
处使f指向函数f2。
当调用正确时,程序输出:
x1=5.000000,x2=3.000000,x1*x1+x1*x2= 40.000000。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio .h >
double f1 (double x)
{ return x*x; }
double f2 (double x, double y)
{ return x*y;}
double fun (double a, double b)
{
/*********found*********/
【1】
(*f)();
double r1, r2;
/*********found*********/
f=
【2】
;
r1=f(a);
/*********found*********/
f=
【3】
;
r2=(*f)(a,b);
return r1 + r2;
}
main ()
{ double x1 =5, x2 =3, r,
r = fun (xl, x2);
printf ("/nx1 = % f, x2 = % f,
x1 * x1 +x1 * x2 = % f/n",x1, x2, r) ;
}
问答题请编写函数,删除字符串中指定位置(下标)上的字符。删除成功函数返回被删字符;否则返回空值。
问答题
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。
注意:部分源程序在文件PROG1.C文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
#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<n;i++)
printf("%s %4.1f/n",h[i].num,h[i].s);
printf("/n");
out=fopen("out.dat","w");
fprintf(out,"%d/n%7.3f/n",n,ave);
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(h[i].s<h[j].s) { t=h[i];h[i]=h[j];h[j]=t;}
for(i=0;i<n;i++)
fprintf(out,"%4.1f/n",h[i].s);
fclose(out);
}
问答题下列给定程序中,函数fun的功能是:在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则不做任何处理。 例如,若s所指字符串为“baacda”,c中的字符为a,执行后s所指字符串为“baaaacalaa”。 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #include<stdio.h> void fun(char*s,char c) int i,j,n; /********found********/ for(i=0;s[i]!= (1) ;i++) if(s[i]==c) /********found********/ n= (2) ; while(s[i+1+n]!='/0')n++; for(j=i+n+1;j>i;j--) s[j+1]=s[j]; /********found********/ s[j+1]= (3) ; j=i+1; main() char s[80]="baacda",c; printf("/nThe string:%s/n,s); pnntf("/nInput a character:"); scanf("%c", fun(s,c); printf("/nThe result is:%s/n",s);
问答题给定程序中函数fun的功能是:根据整型形参m,计算如下公式的值。例如,若m中的值为5,则应输出:1.463611。请改正程序中的错误,使它能得到正确结果。[注意]不要改动main函数,不得增行或删行,也不得更改程序的结构。[试题源程序]#include<stdi0.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,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。
例如,若输入:17,则应输出:4 6 8 9 10 12 14 15 16。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
void fun(int m, int *k, int xx[])
{
}
main()
{
int m, n, zz[100];
void NONO();
printf("/nPlease enter an integer number between 10 and 100:");
scanf("%d",
fun(n,
printf("/n/nThere are %d nonprime numbers less than %d:",m,n);
for(n=0; n<m; n++)
printf ("/n %4d", zz[n]);
NONO();
}
void NONO()
{
/* 请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。 */
int m, n, zz[100];
FILE *rf, *wf;
rf=fopen("in.dat","r");
wf=fopen("out.dat","w");
fscanf(rf, "%d",
fun(n,
fprintf(wf, "%d/n%d/n", m, n);
for(n=0; n<m; n++)
fprintf(wf, "%d/n", zz[n]);
fclose(rf);
fclose (wf);
}
问答题请编写一个函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数值返回。
例如:若有5门课程的成绩是:90.5, 72, 80, 61.5, 55则函数的值为:71.80。
注意: 部分源程序存在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
float fun ( float *a , int n )
{
}
main()
{ float score[30]={90.5, 72, 80, 61.5, 55}, aver;
aver = fun( score, 5 );
printf( "/nAverage score is: %5.2f/n", aver);
NONO ( );
}
问答题给定程序modil. c的主函数中,将a、b、c三个结点链成一个单向链表,并给各结点的数据域赋值,函数fun( )的作用是:累加链表结点数据域中的数据作为函数值返回。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <stdio. h>
typedef struct list;
{int data;
struct list *next;
}LIST;
int fun(LIST *h)
{LIST *P;
/**********found**********/
int t;
p=h;
/**********found**********/
while(*p)
{
/**********found**********/
t=t+p. data;
p=(*p). next;
}
return t;
}
main( )
{LIST a, b, c, *h;
a. data=34; b. data=51;
c. data=87; c. next="/0";
h=a. next= b. next=
printf("总和=%d/n", fun(h));
}
问答题给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文本 文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
void fun(char *s, int a, double f)
{
__1__ fp;
char str[100], str1[100], str2[100];
int a1; double f1;
fp = fopen("file1.txt", "w");
fprintf(fp, "%s %d %f\n", s, a, f);
__2__ ;
fp = fopen("file1.txt", "r");
fscanf(__3__,"%s%s%s", str, str1, str2);
fclose(fp);
a1 = atoi(str1);
f1 = atof(str2);
printf("\nThe result :\n\n%s %d %f\n", str, a1, f1);
}
main()
{ char a[10]="Hello!"; int b=12345;
double c= 98.76;
fun(a,b,c);
}
问答题给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的单向链表, 并为各结点数据域赋0到m-1的值。
请改正函数Creatlink中指定部位的错误, 使它能得出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
给定源程序:
#include
#include
typedef struct aa
{ int data;
struct aa *next;
} NODE;
NODE *Creatlink(int n, int m)
{ NODE *h=NULL, *p, *s;
int i;
p=(NODE )malloc(sizeof(NODE));
h=p;
p->next=NULL;
for(i=1; idata=rand()%m; s->next=p->next;
p->next=s; p=p->next;
}
return p;
}
outlink(NODE *h)
{ NODE *p;
p=h->next;
printf("\n\nTHE LIST :\n\n HEAD ");
while(p)
{ printf("->%d ",p->data);
p=p->next;
}
printf("\n");
}
main()
{ NODE *head;
head=Creatlink(8,22);
outlink(head);
}
问答题请编写函数fun(),其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。 例如,输入17,则应输出4 6 8 9 10 12 14 15 16。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include<conio.h> #include<stdio.h> void fun(int m, int *k, int xx[]) main ( ) int m, n, zz[100]; clrscr(); printf("/nPlease enter an integer number between 10 and 100: "); scanf("%d", fun(n, printf("/n/nThere are %d non-prime numbers less than %d: ",m,n); for(n-0;n<m;n++) printf("/n %4d",zz[n]);
问答题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,其功能是:把低于平均分的学生数据放入b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#define N 8typedef struct{ char num[10]; double s;}STREC; double fun(STREC*a,STREC*b,int*n){}void main(){ STREC s[N]={{"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85},{"GAO1",91},{"GA07",72},{"GA08",64},{"GA06",87}}; STREC h[N]; int i,n; double ave; ave=fun(s,h,&n); printf("The%d student data which is lower than % 7.3 f:\n",n,ave); for(i=0;i<n;i++) /*输出成绩低于平均值的学生记录*/ printf("%s%4.1 f\n",h[i].num,h[i].s); printf("\n");}
问答题请编写函数fun,函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,一维数组中的数据是:2 2 2 3 4 4 5 6 6 6 6
7 7 8 9 9 10 10 10。
删除后,数组中的内容应该是:2 3 4 5 6 7 8 9 10。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#define N 80
int fun(int a[], int n)
{
}
main ()
{int a [N] ={2, 2,2, 3, 4, 4, 5, 6, 6, 6, 6,
7,7,8,9,9,10,10,10,10},i,n=20;
void NONO ();
printf("The original data :/n");
for(i=0; i
问答题给定程序中,函数fun的功能是:有N×N矩阵,根据给定的m(m=0; j--)
/**********found**********/
t[i][j+___2___ ]=t[i][j];
/**********found**********/
for(j=0; j<___3___; j++)
t[i][j]=0;
}
}
main()
{ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j, m;
printf("/nThe original array:/n");
for(i=0; i
{ for(j=0; j
printf("- ",t[i][j]);
printf("/n");
}
printf("Input m (m<=%d): ",N);scanf("%d",
fun(t,m);
printf("/nThe result is:/n");
for(i=0; i
{ for(j=0; j
printf("- ",t[i][j]);
printf("/n");
}
}
问答题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fjun(),该函数的功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include <stdio.h> #define N 12 typede f struct char num[10]; double s; STREC; double fun (STREC *a,STREC *b, int *n) main ( ) STREC s IN] = "GA05", 85 , "GA03", 76 , "GA02", 69, "GA04", 85, "GA01", 91, "GA07", 72, "GA08", 64, "GA06", 87, "GA09", 60, "GAll", 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: In", n, ave); for(i=0; i<n; i++) printf ("%s %4.1f/n",h[i] .num, h[i] .s); printf ("/n"); out=fopen ("out90.dat", "w"); fprintf(out, "%dkn %7.3f/n",n,ave); for(i=0; i<n-1; i++) for (j=i+l; j<n; j ++) if (h[i] .s<h[j ] .s) t=h Ii] ;h[i]=h[j] ;h[j]=t; /*分数从高到低排列*/ for(i=0; i<n; i++) fprintf(out, "%4.1f/n",h[i] .s); fclose (out);
问答题给定程序MODI1.C的功能是:读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。
例如,若输入:I am a student to take the examination.,则应输出:I Am A Student To Take The Examination.。
请改正程序中的错误,使程序能得出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
/************found************/
include
/************found************/
upfst ( char p )
{ int k=0;
for ( ; *p; p++ )
if ( k )
{ if ( *p == ' ' ) k = 0; }
else if ( *p != ' ' )
{ k = 1; *p = toupper( *p ); }
}
main( )
{ char chrstr[81];
printf( "/nPlease enter an English text line: " ); gets( chrstr );
printf( "/n/nBefore changing:/n %s", chrstr );
upfst( chrstr );
printf( "/nAfter changing:/n %s/n", chrstr );
}
问答题假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部移到字符串的尾部。函数fun中给出的语句仅供参考。
例如,字符串中的内容为:*******A*BC*DEF*G****,移动后,字符串中的内容应当是:A*BC*DEF*G***********。在编写函数时, 不得使用C语言提供的字符串函数。
注意: 部分源程序在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
void fun( char *a )
{
/* 以下代码仅供参考 */
char *p,*q;
int n=0;
p=a;
while(*p=='*') /* 统计串头'*'个数n */
{n++; p++;}
q=a;
/* 向前复制字符串,请填写相应的语句完成其功能 */
for(;n>0;n--) /* 在串尾补n个'*' */
*q++='*';
*q='/0';
}
main()
{ char s[81],*p; int n=0;
printf("Enter a string:/n");gets(s);
fun( s );
printf("The string after moveing:/n");puts(s);
NONO();
}
问答题请编写函数proc(),它的功能是计算:
s=(1-ln(1)-ln(2)-ln(3)-…-ln(m))2
s作为函数值返回。
在C语言中可调用log(n)函数求ln(n)。log函数的引用说明是double log(double x)。
例如,若m的值为10,则proc()函数值为198.934454。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<math.h>
double proc(int m)
{
}
void main()
{
system("CLS");
printf("%f/n",proc(10));
}
