问答题请编写函数fun(),其功能是:计算并输出给定10个数的方差。其中例如,给定的10个数为95.0,89.0,76.0,65.0,88.0,72.0,85.0,81.0,90.0,56.0,则输出为S=11.730729。注意;部分源程序给出如下.请勿改动主函数mam和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include<math.h>#include<stdio.h>doublefun(doublex[10]){}main(){doubles,x[i0]={95.0,89.0,76.0,65.0,88.0,72.0,85.0,81.0,90.0,56.0};inti;printf("/nTheoriginaldatais:/n");for(i=0;i<10;i++)printf("%6.1f",x[i]);printf("/n/n");s=fun(x);printf("s=%f/n/n",s);}
问答题请编写一个函数void proc(char a[],char b[],int n),其功能是:删除一个字符串中指定下标的字符。其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标。
例如,输入一个字符串student,然后输入5,则调用该函数后的结果为studet。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#define N 20
void proc(chair a[],char b[],int n)
{
}
void main()
{
char str1[N],str2[N];
int n;
system("CLS");
printf("Enter the string:/n");
gets(str1);
printf("Enter the position cf the string deleted:
");
scanf("%d",
proc(str1,str2,n);
printf("The new string is:%s/n",str2);
}
问答题给定程序MODI1.C中函数fun的功能是:根据形参m的值(2≤m≤9〕,在m行m列的二维数组中存放如下所示规律的数据,由main函数输出。
例如,若输入 2 | 若输入 4
则输出: | 则输出:
1 2 | 1 2 3 4
2 4 | 2 4 6 8
| 3 6 9 12
| 4 8 12 16
请改正程序函数中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#define M 10
int a[M][M] = {0} ;
/**************found**************/
fun(int **a, int m)
{ int j, k ;
for (j = 0 ; j < m ; j++ )
for (k = 0 ; k < m ; k++ )
/**************found**************/
a[j][k] = k * j ;
}
main ( )
{ int i, j, n ;
printf ( " Enter n : " ) ; scanf ("%d",
fun ( a, n ) ;
for ( i = 0 ; i < n ; i++)
{ for (j = 0 ; j < n ; j++)
printf ( "M", a[i][j] ) ;
printf ( "/n" ) ;
}
}
问答题下列给定程序中,函数proc()的功能是:从m个学生的成绩中统计出低于平均分的学生人数,人数由函数值返回,平均分存放在形参aver所指的存储单元中。例如,输入8名学生的成绩:
60 70 80 90 65 75 85 95
则低于平均分的学生人数为4(平均分为77.5)。实际输入时学生数以“Enter”键作为结束,成绩与成绩之间也与Enter键作为分隔。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#define M 20
int proc(float*s, int n, float *aver)
{
//****found****
int ave, t=0;
int count=0, k, i;
for(k=0; k<n; k++)
t+=s[k];
ave=t/n;
for(i=0; i<n; i++)
//****found****
if(s[i]>ave)
count++;
//****found****
aver=ave;
return count;
}
void main()
{
float stu[30], aver;
int m, i;
system("CLS");
printf("/nPlease enter m:");
scanf("%d",
printf("/nPlease enter %d mark: /n", m);
for(i=0; i<m; i++)
scanf("%f", stu+i);
printf("/nThe number of students: %d/n",
proc(stu, m,
printf("Ave=%f/n", aver);
}
问答题给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和3门课的成绩。函数fun的功能是将该学生的各科成绩都乘以一个系数a。 注意:不得增行或删行,也不得更改程序的结构! 试题程序: #include<stdio.h> typedef struct{ int num; char name[9]; float score[3]; }STU; void show(STU tt) { int i; printf("%d %s:",tt.num,tt.name); for(i=0;i<3;i++) printf("%5.1f",tt.score[i]); printf("\n"); } /******found******/ void modify(【1】*ss,float a) { int i; for(i=0;i<3;i++) /******found******/ ss一>【2】*=a; } main() { STU std={1,"Zhanghua",76.5,78.0,82.0}; float a; printf("The original number andname and scores:\n"); show(std); printf("Input a number:"); scanf("%f",&a); /******found******/ modify(【3】,a); printf("A result of modifying:\n"); show(std); }
问答题请编写函数proc(),其功能是:将str所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。
例如,当str所指字符串中的内容为ABCDEFGHIJK(输入完成以空格、Tab或者Enter键加任意非空格、Tab或者Enter键的一个字符作为输入结束标志),则在t所指数组中的内容应是BDFHJ。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
void proc(char*str, char t[])
{
}
void main()
{
int i=1;
char str[100], t[100];
system("CLS");
printf("/nPlease enter string Str:");
scanf("%s/n", str);
proc(str, t);
printf("/nThe result is: %s/n", t);
}
问答题for (a=1,b=1;a=20) break;
if(b%3==1)
{b+=3; continue;}
b-=5; }
程序的输出结果a的值为__________ 。
问答题下列给定程序中,函数fun的功能是:给定n个实数,输出平均值,并统计平均值以上(含平均值)的实数个数。例如,n=8时,输入193.199、195.673、195.757、196.051、196.092、196.596、196.579、196.763、所得平均值为195.838745,在平均值以上的实数个数应为5。请改正程序中的错误,使其能得出正确的结果。注意:部分源程序在文件MODI1.C中,不要改动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;}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,其功能是:删除一个字符串中指定下标的字符。其中,a指向原字符串,删除指定字符后的字符串存放在b所指的数组中,n放指定的下标。 例如,输入一个字符串“world”,然后输入3,则调用该函数后的结果为“word”。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序: #include<stdio.h> #include<conio.h> #define LEN 20 void fun(char a[],char b[],int n) void main() char str1[LEN],str2[LEN]; int n; printf("Enter the string:/n"); gets(str1); printf("Enter the position ofthe string deleted:"); scanf("%d",&n); fun(str1,str2,n); printf("The new string is:%s/n",str2);
问答题给定程序中,函数fun的功能是:将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。
例如,s所指字符串为:asdl23fgh543df,处理后新字符串为:123543ausdfghdf。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.c中。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<ctype.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(isdigit(s[i])) {
/*********found*********/
P[
【1】
]=s[i];j++;}
else
{t[k]=s[i];k++;)
}
/*********found*********/
for(i=0;i<
【2】
;i++)
P[j+i]=t[i];
P[j+k]=0;
/*********found*********/
return
【3】
;
}
main()
{ char s[80];
printf("Please input:");
scanf("%s",s);
printf("\nThe result is:%s\n",
fun(s));
}
问答题下列给定程序中函数Creatlink的功能是:创建带头结点的单向链表,并为各结点数据域赋0到m—1的值。请改正函数Creatlink中指定部位的错误,使它能得出正确的结果。注意:部分源程序在文件NODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:1 #include<stdio.h>2 #include<stdlib.h>3 typedef strucL aa4 {int data;5 struct aa * next;6 }NODE;7 NODE*Creatlink(int n,int m)8 {NODE*h=NULL,*p,*s;9 int i;10 /*********found*********/11 P=(NODE)malloc(sizeof(NODE));12 h=P;13 p->next=NULL;14 for(i=1;i<=n;i++)15 {s=(NODE*)malloc(sizeof (NODE)),16 s->data=rand()%m;17 s->next=p->nexL,18 p->next=s;p=p->next;19 }20 /*********found*********/21 return p;22 }23 outlink(NODE*h)24 {NODE*p;25 P=h->next;26 printf("\n\nTHE LIST:\n\nHEAD");27 while(P)28 {printf("->%d",p->data);29 p=p->next;30 }31 printf("\n");32 }33 main()34 {NODE*head;35 head=Creatlink(8,22);36 outlink(head);37 }
问答题编写函数fun,其功能是:根据以下公式求p的值,结果由函数值带回。m与n为两个正整数且要求m>n。例如:m=12,n=8时,运行结果为495.000000。注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>floatfun(intm,intn){}main()/*主函数*/{voidNONO();printf("p=%f/n",fun(12,8));NONO();}voidNONO(){/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*fp,*wf;inti,m,n;floats;fp=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(fp,"%d,%d",s=fun(m,n);fprintf(wf,"%f/n",s);}fclose(fp);fclose(wf);}
问答题m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。
例如,当score数组中的数据为:10、20、30、40、50、60、70、80、90时,函数返回的人数应该是4, below中的数据应为: 10、20、30、40。
注意: 部分源程序在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
#include
int fun(int score[], int m, int below[])
{
}
main( )
{ int i, n, below[9] ;
int score[9] = {10, 20, 30, 40, 50, 60, 70, 80, 90} ;
n = fun(score, 9, below) ;
printf( "/nBelow the average score are: " ) ;
for (i = 0 ; i < n ; i++) printf("%d ", below[i]) ;
NONO() ;
}
问答题编写函数fun,其功能是:删除一个字符串中指定下标的字符。其中,a指向原字符串,删除指定字符后的字符串存放在b所指的数组中,n中存放指定的下标。例如,输入一个字符串“Wor1d”,然后输入3,则调用该函数后的结果为“Word”。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include < stdlib.h >#include < stdio.h >#include < conio.h >#define LEN 20void fun(char a[],char b[],int n){)void main(){ char str1[LEN],str2[LEN]; int n; system("CLS"); printf("Enter the string:/n"); gets(str1); printf("Enter the position of the string deleted:"); scar1f("%d",&r1); fun(str1,str2,n); printf("The Flew string is:%s/n",str2);}
问答题
请编写一个函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数值返回。
例如:若有5门课程的成绩是:90.5,72,80,61.5,55。则函数的值为:71.80。
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
float fun (float *a, int n)
{
}
main()
{ float score [30]={90.5,72, 80,61.5,55},aver;
void NONO();
aver=fun(score, 5);
printf("/nAverage score is: %5.2f/n",aver);
NONO();
}
void NONO()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *fp, *wf;
int i, j;
float aver, score[5];
fp=fopen("in.dat","r");
wf=fopen("out.dat","w");
for(i=0; i<10; i++) {
for(j=0; j<5; j++) fscanf(fp,"%f,",
aver=fun(score, 5);
fprintf(wf, "%5.2f/n", aver);
}
fclose(fp);
fclose(wf);
}
问答题请补充函数fun(),该函数的功能是:寻找两个整数之间的的所有素数(包括这两个整数),把结果保存在数组bb中,函数返回素数的个数。
例如,输入6和21,则输出为:7 11 13 17 19 21。
注意:部分源程序给出如下。
请勿改动主函数main 和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include<conio. h>
#include<stdio. h>
#define N 1000
int fun (int n, int m, int bb [N])
{
int i, j, k=0, flag;
for (j=n; j<=m; j++)
{
{{U}}【1】 {{/U}};
for (i=2; i<j; i++)
if({{U}} 【2】 {{/U}})
{
flag=0;
break;
}
if({{U}} 【3】 {{/U}})
bb [k++] =j
}
return k;
}
main ()
{
int n=0,m=0, i, k;
int bb[N];
clrscr ();
printf ("Input n/n");
scanf ("%d",
printf ("Input m/n");
scanf ("%d",
for (i=0; i<m-n; i++)
bb[i]=0;
k=fun (n, m, bb);
for (i=0; i<k; i++)
printf ("%4d",bb [i]);
}
问答题下列给定程序中,函数fun的功能是:计算如下公式前n项的和,并作为函数值返回。例如,当形参n的值为10时,函数返回值为9.612558。请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。注意:部分源程序给出如下。不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>doublefun(intn){inti;doubles,t;/**********found**********/s=______;/**********found**********/for(i=1;i<=______;i++){t=2.0*i;/**********found**********/s=s+(2.0*i-1)*(2.0*i+1)/______;}returns;}voidmain(){intn=-1;while(n<0){printf(Pleaseinput(n>0):);scanf(%d,n);}printf(/nTheresultis:%f/n,fun(n));}
问答题给定程序中,函数fun的功能是将不带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
#include
#define N 5
typedef struct node {
int data;
struct node *next;
} NODE;
/********* found**********/
【1】 fun(NODE *h)
{NODE *p, *q, *r;
p = h;
if (p == NULL)
return NULL;
q = p->next;
p->next = NULL;
while (q)
{
/********** found**********/
r = q->【2】;
q->next = p;
p = q;
/********found**********/
q =【3】 ;
}
return p;
}
NODE *creatlist(int a[])
{NODE *h,*p,*q; int i;
h=NULL;
for(i=0; idata=a[i];
q->next = NULL;
if (h == NULL) h = p = q;
else {p->next = q; p = q;}
}
return h;
}
void outlist(NODE *h)
{NODE *p;
p=h;
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);
head=fun(head);
printf("/nThe list after
inverting:/n");
outlist(head);
}
问答题规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:将字符串尾部的*号全部删除,前面和中间的*号不动。
例如,字符串中的内容为“****A*BC*DEF*G*******,删除后,字符串中的内容应当是“****A*BC*DEF*G”。在编写函数时,不得使用C语言提供的字符串函数。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdio.h>
#include<conio.h>
void fun(char*a)
{
}
void main()
{ char s[81];
printf("Enter a string:/n");
gets(s);fun(s);
printf("The string after deleted:/n");
puts(s);}
问答题
给定程序MODI1.C中函数fun的功能是:从3个红球,5个白球,6个黑球中任意取出8个作为一组,进行输出。在每组中,可以没有黑球,但必须要有红球和白球。
组合数作为函数值返回。正确的组合数应该是15。程序中i的值代表红球数,j的值代表白球数,k的值代表黑球数。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
int fun()
{ int i, j, k, sum=0;
printf("/nThe result:/n/n");
/**********found**********/
for(i=0; i<=3; i++)
{for(j=1; j<=5; j++)
{k=8-i-j;
/**********found**********/
if(K>=0
printf("red:%4d white:%4d black:%4d/n", i, j, k);
}
}
}
return sum;
}
main()
{ int sum;
sum=fun();
printf("sum=%4d/n/n", sum);
}
