下面程序的运行结果是 : 【 1 0 】 。
fun(int t[],int n)
{ int i,m;
if(n==1)return t[0];
else
if(n>=2){m=fun(t,n-1); return m; }
}
main()
{ int a[]={11,4,6,3,8,2,3,5,9,2};
printf(" % d\n",fun(a,10));
}
下列给定程序中,函数fun()的功能是求出数组中最小数和次最小数,并把最小数和a[0]中的数对调,次最小数和a[1]中的数对调。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include <conio.h>
include <stdio.h>
define N 20
void fun(int *a,int n)
{
int i, m,t,k;
/*************found**************/
for(i=O; i<n; i++)
{
m==i;
for(k=i; k<n; k++)
if(a[k]<a[m])
/*************found**************/
k=m;
t=a[i];
a[i]=a[m];
a[m]=t;
}
}
main()
{
int x,b[N]={11,5,12,0,3,6,9,7,10,8},
n=10,i;
clrscr();
for(i=0; i<n; i++)
printf("%d",b[i]);
printf("\n");
fun(b,n);
for(i=0; i<n; i++)
printf("%d",b[i]);
printf("\n");
}
请补充函数fun(),该函数的功能是求一维数组x[N]的平均值,并对所得结果进行四舍五入(保留两位小数)。
例如:当x[10]={15.6, 19.9, 16.7, 15.2, 18.3, 12.1, 15.5,11.0, 10.0, 16.0},结果为:avg=15.030000。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仪在函数fun的横线上填入所编写的若干表达式或语句。
试题程序:
include<stdio.h>
include<conio.h>
double fun(double x[10])
{
int i;
long t;
double avg=0.0;
double sum=0.0;
for(i=0;i<l0;i++)
【 】;
avg=sum/10;
avg=【 】;
t=【 】;
avg=(double)t/100;
return avg;
}
main()
{
double avg,x[10]={15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0};
int i;
clrscr();
printf(“\nThe original data is:\n”);
for(i=0;i<l0;i++)
printf("%6.lf",x[i]);
printf(“\n\n”);
avg=fun(x);
printf(“average=%f\n\n”,avg);
}
请补充函数fun(),该函数的功能是:计算N×N维矩阵元素的方差,结果由函数返回。维数N在主函数中输入。例如:
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
include <stdio.h>
include <conio.h>
include <stdlib.h>
include <math.h>
define N 20
double fun(【 】,int n)
{
int i,j;
int k;
double s=0.0;
double f=0.0;
double aver=0.0;
double sd=0.0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
s+=a[i][j];
aver=【 】;
for(i=0;i<n;i++)
for(j=0;i<n;j++)
f+=(a[i][j]-aver)*(a[i][j]-aver);
f/(n*n);
sd=【 】;
return sd;
}
main()
{
int a[N][N];
int n;
int i,j;
double s;
clrscr();
printf("***+Input the dimension of
array N*****\n");
scanf("%d",&n);
printf("***** The array *****\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
a[i][j]=rand()%50;
while(a[i][j]=0)
a[i][j]=rand()%60;
printf("%4d",a[i][j]);
}
printf("\n\n");
}
s=fun(a,n);
printf("******* THE RESULT *******\n");
printf("%4.3f\n",s);
}
请补充函数fun,其功能是:计算并输出给定10个数的方差:
例如,给定的10个数为15.0,19.0,16.0,15.0,18.0,12.0, 15.0,11.0,10.0,16.0,输出为s=2.758623。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
include<stdio.h>
include<math. h>
double fun (double x[10])
{
int i;
double avg=0.0;
double sum=0.0;
double abs=0.0;
double sd;
for (i=0; i<10; i++)
【 】;
avg=sum/10;
for(i=0;i<10;i++)
【 】;
sd=【 】;
return sd;
}
main()
{
double s,x[10]={15.0,19.0,16.0,15.0,
18.0,12.0,15.0,11.0,10.0,16.0};
int i;
printf("\nThe original data is :\n");
for(i=0;i<10;i++)
printf("%6.1f",x[i]);
printf("\n\n");
s=fun(x);
printf("s=%f\n\n",s);
}
第一套: 1.1 填空 给定程序中,函数 fun 的功能是:将形参 n 所指变量中,各位上为偶函数的数去 除,剩余的书按原来从高位到低位的顺序组成一个新的数,并通过形参指针 n 传回所指变 量。 void fun(unsigned long *n) unsigned long x=0, i; int t; i=1; while(*n) /*found*/ t=*n % 10 ; /*found*/ if(t%2!= 0) x=x+t*i; i=i*10; *n =*n /10; /*found*/ *n=x; 1.2 改错 给定程序 MODI1.C 中函数 fun 的功能是:计算 n!。 double fun ( int n ) double result = 1.0 ; /*found*/ if (n = 0) return 1.0 ; while( n 1 return result ; 1.3 程序 请编写一个函数 fun,它的功能是:将一个数字字符串转换为一个整数(不得调用 C 语言提供的将字符串转换为整数的函数)。 long fun ( char *p) /* 以下代码仅供参考 */ int i, len, t; /* len 为串长,t为正负标识 */ long x=0; len=strlen(p); if(p0=-) t=-1; len-; p+; else t=1; /* 以下完成数字字符串转换为一个数字 */ while(*p) x = x*10-48+(*p+); return x*t; 第二套: 2.1 填空 给定程序中,函数 fun 的功能是将形参给定的字符串、整数、浮点数些到文本文件 中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。 void fun(char *s, int a, double f) /*found*/ FILE * fp; char ch; fp = fopen(file1.txt, w); fprintf(fp, %s %d %fn, s, a, f); fclose(fp); fp = fopen(file1.txt, r); printf(nThe result :nn); ch = fgetc(fp); /*found*/ while (!feof(fp) /*found*/ putchar(ch); ch = fgetc(fp); putchar(n); fclose(fp); 2.2 改错 给定程序 MODI1.C 中函数 fun 的功能是:依次取出字符串中所有数字字符,形成 新的字符串,并取代原字符串。请改正函数fun 中指定部位的错误,使它能得出正确的结果。 #include void fun(char *s) int i,j; for(i=0,j=0; si!=0; i+) if(si=0 /*found*/ sj=0; 2.3 程序 请编写函数 fun,函数的功能是:将 M 行 N 列的二维数组中的字符数据,按列的顺 序依次放到一个字符串中。 void fun(char sN, char *b) int i,j,n=0; for(i=0; i N;i+) /* 请填写相应语句完成其功能 */ for(j = 0 ; j next=NULL; for(i=1; idata=rand()%m; s-next=p-next; p-next=s; p=p-next; /*found*/ return h; 3.3 程序 请编写函数 fun,函数的功能是:统计一行字符串中单词的个数,作为函数值返回。 一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开 一行的开始没有空格。(有问题) int fun( char *s) int k = 1 ; while(*s) if (*s = ) k+ ; s+ ; return k ; 第四套: 4.1 填空 程序通过定义学生结构体变量,存储了学生的学号、姓名和 3门课的成绩。所有学 生数据均以二进制方式输出到文件中。函数fun 的功能是从形参 filename 所指的文件中读入 学生数据,并按照学号从小到大排列后,再用二进制方式把排序后的学生数据输出到 filename 所指的文件中,覆盖原来的文件内容。 #define N 5 typedef struct student long sno; char name10; float score3; STU; void fun(char *filename) FILE *fp; int i, j; STU sN, t; /*found*/ fp = fopen(filename, rb); fread(s, sizeof(STU), N, fp); fclose(fp); for (i=0; iN-1; i+) for (j=i+1; jsj.sno) t = si; si = sj; sj = t; fp = fopen(filename, wb); /*found*/ fwrite(s, sizeof(STU), N, fp); fclose(fp); 4.2 改错 给定程序 MODI1.C 中函数 fun 的功能是:在字符串的最前端假如 n 个*号,形成 新串,并且覆盖原串。注意:字符串的长度最长允许为 79。 void fun ( char s, int n ) char a80 , *p; int i; /*found*/ p=s; for(i=0; in; i+) ai=*; do ai=*p; i+; /*found*/ while(*p+); ai=0; strcpy(s,a); 4.3 程序 请编写函数 fun,函数的功能是:统计各年龄段的人数。N 个年龄通过调用随机函数 获得,并放在主函数的 age 数组中;要求函数把 0 至 9 岁年龄段的人数放在 d0中,把 10 至 19 岁年龄段的认输放在 d1中,把 20 至 29 岁年龄段的人数放在 d2中,期于依此类推, 把100 岁(含100)以上年龄的人数都放在 d10中。结果在主函数中输出。 void fun( int *a, int *b) int i, j ; for(i = 0 ; i M ; i+) bi = 0 ; for(i = 0 ; i 10) bM - 1+ ; else bj+ ; 第五套: 5.1 填空 给定程序中,函数 fun 的功能是将参数给定的字符串、整数、浮点数写到文本文件 中,再用字符串方式从此文本文件中逐个读入,并调用库函数 atoi 和 atof 将字符串转换成 响应的整数、浮点数,然后将其显示在屏幕上。 void fun(char *s, int a, double f) /*found*/ FILE * fp; char str100, str1100, str2100; int a1; double f1; fp = fopen(file1.txt, w); fprintf(fp, %s %d %fn, s, a, f); /*found*/ fclose(fp) ; fp = fopen(file1.txt, r); /*found*/ fscanf(fp,%s%s%s, str, str1, str2); fclose(fp); a1 = atoi(str1); f1 = atof(str2); printf(nThe result :nn%s %d %fn, str, a1, f1); 5.2 改错 给定程序 MODI1.C 中函数 fun 的功能是:对 N 名学生的学习成绩按从高到低的顺 序找出前 m(10)名学生出来,并将这些学生数据存放在一个动态分配的连续存储区中,此 存储区的首笛子作为函数值返回。 typedef struct ss char num10; int s; STU; STU *fun(STU a, int m) STU bN, *t; int i,j,k; /*found*/ t=(STU *)calloc(sizeof(STU),m); for(i=0; iN; i+) bi=ai; for(k=0; km; k+) for(i=j=0; i bj.s) j=i; /*found*/ tk=bj; bj.s=0; return t; 5.3 程序 请编写函数 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。 int fun(int a, int n) int i, j = 1, k = a0 ; for(i = 1 ; i sl) return t; else return s; 6.3 程序 请编写函数 fun 函数的功能是:移动字符串中的内容,移动的规则如下:把第 1 到第 m个字符,平移到字符串的最后,把第 m+1 到最后的字符移动到字符串的前部。例如, 字符串中原由的内容为:ABCDEFGHIJK,m 的值为 3,则移动后,字符串中的内容应该是 DEFGHIJKABC。 void fun1(char *w) /* 本函数的功能是将字符串中字符循环左移一个位置 */ int i; char t; t=w0; for(i=0;istrlen(w)-1;i+) wi=wi+1; wstrlen(w)-1=t; void fun(char *w, int m) /* 可调用fun1 函数左移字符 */ int i; for(i = 0 ; i m ; i+) fun1(w); 第七套: 7.1 填空 程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。函数 fun 的功能是输出这位学生的信息。 typedef struct int num; char name9; char sex; struct int year,month,day ; birthday; float score3; STU; /*found*/ void show(STU tt) int i; printf(n%d %s %c %d-%d-%d, tt.num, tt.name, tt.sex, tt.birthday.year, tt.birthday.m
下列给定程序中,函数fun()的功能是根据整型形参m,计算如下公式的值。
y=1-1/(2×2)+1/(3×3)-1/(4×4)+…+(-1)(m+1)/(m×m)
例如:m中的值为5,则应输出0.838611。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include <conio.h>
include <stdio.h>
double fun(int m)
{double y=1.0;
/**********found*************/
int j=1;
int i;
for(i=2;i<=m;i++)
{
j=-1*j;
/****************found*******+******/
y+=1/(i*i);
}
return(y);
}
main()
{
int n=5;
clrscr();
printf("\n The result is %lf\n",fun(n));
}
下列给定程序中,函数fun()的功能是:根据整型形参n,计算如下公式的值。
A1=1,A2=1/(5+A1),A3=1/(5+A2),…,An=1/(5+A(n-1))
例如,若n=l0,则应输出0.192582。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include <conio.h>
include <stdio.h>
float fun(int n)
{
/***********found*************/
int A=1;
int i;
/*************found*************/
for(i=1;i<=n;i++)
A=1.0/(5+A);
return A;
}
main()
{
int n;
clrscr();
printf("\nPlease enter n:");
scanf("%d",&n);
printf("A%d=%lf\n”,n,fun(n));
}
下列给定程序中函数fun()的功能是:计算n!。例如,给 n输入5,则输出120.000000。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include <stdio.h>
include <conio.h>
double fun (int n)
{ double result=l.0;
/*************found**************/
if n==0
return 1.0;
while (n>l&&n<170)
/*************found**************/
result *=n--
return result;
}
main ( )
{ int n;
printf ("Input N: ");
scanf ( "%d" &n);
printf ("\n\n%d!=%lf\n\n",n, fun(n));
}
下列给定程序中,fun()函数的功能是:根据形参m,计算下列公式的值。
t=-1+1/2+1/3+1/4+…+1/m
例如,若输入5,则应输出2.283333。
请改正程序中的错误,使它能计算出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include <conio.h>
include <stdio.h>
double fun(int m)
{
double t=1.0;
int i;
for(i=2;i<=m;i++)
/*************found**************/
t+=1.0/k;
/*************found**************/
return i;
}
main()
{int m;
clrscr();
printf("\nPlease enter linteger number:");
scanf("%d",&m);
printf("\nThe result is%1f\n", fun(m));
}
下列给定程序中,函数fun()的功能是:计算整数n的阶乘。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include <stdio.h>
double fun(int n)
{
double result=l.0;
whil (n>l&&n<170)
/**************found********************/
result*=--n;
/**************found********************/
return;
main()
{int. n;
clrscr();
printf("Enter an integer: ");
scanf("%d",&n);
printf("\n\n%d!=%lg\n\n ",n, fun(n));
}