填空题

请补充函数fun(),该函数的功能是:输出一个N×N矩阵,N由键盘输入,矩阵元素的值为随机数,并计算出该矩阵四周边元素的平均值,结果由函数返回。例如:当N=4时:


注章:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。
试题程序;
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define N 20
double fun(int a[ ][N],int n)

int i,j;
int k;
double s=0.0;
double aver=0.0;
printf("*****The array*****\n");
for(i=0;i<n;i++)

for(j=0;j<n;j++)

a[i][j]=rand()%10;
printf("%4d",a[i][j]);
if( 【1】 )
s+=a[i][j];

printf("\n");

k= 【2】
aver= 【3】
return aver;
main()

int a[N][N];
int n;
double s;
Clrscr();
printf("*****Input the dimension of array N*****\n");
scanf("%d",&n);
s=fun(a,n);
printf("***** THE RESULT *****\n");
printf("The average is %2,3f\n",s);

【参考答案】

[1] i==0||i==n-1||j==0||j==n-1
[2] 4*n-4
[3] s/k
热门 试题

问答题
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是:把指定分数范围之外的学生数据放在b所指的数组中,分数范围之外的学生人数由函数值返回。 例如,输入的分数是80和89,则应当把分数低于80和高于89的学生数据进行输出,不包含80分和89分的学生数据。主函数中把80放在low中,把89放在heigh中。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序 #include <stdio.h> #define N 16 typedef struct char num[10]; int s; STREC; int fun(STREC *a,STREC *b,int 1,int h) main () STREC s[N]= GA005 ,55, GA003 ,96, GA002 ,80, GA004 ,68, GA001 ,88, GA007 ,74, GA008 ,85, GA006 ,99, GA015 ,90, GA013 ,53, GA012 ,66, GA014 ,82, GA0ll ,73, GA017 ,69, GA018 ,64, GA016 ,86; STEC h[N],tt; FILE *out; int i,j,n,low,heigh,t; printf( Enter 2 integer number low & heigh: ); scanf( %d%d ,&low,&heigh); if(heigh<low) t=heigh; heigh=low; low=t; n=fun(s,h,low,heigh); printf( The student ’s data out%d--%d: n ,low,heigh); for(i=0;i<n;i++) printf( %s%4d n ,h[i].num,h[i].s); *输出指定分数范围内的学生记录* printf( n ); out=fopen( out23.dat , w ); fprintf(out, %d n ,n); n=fun(s,h,70,79); for(i=0;i<n-1;i++) *分数在70~79之外的学生记录按分数从低到高排列* for(j=i+l;i<n;j十+) if(h[i].s>h[j].s) tt=h[i]; h[i]=h[j]; h[j]=tt; for(i=0;i<n;i++) fprintf(out, %4d n ,h[i].s); fprintf(out, n ); fclose(out);
填空题
下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从低到高的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include <conio.h> #include <string.h> #include <stdio.h> #include <alloc.h> #define N 10 typedef struct SS char num[10]; int s; STU; STU *fun(STU a[],int m) STU b[N],*t; int i, j,k; *************found************* *t=calloc(m,sizeof(STU)); for(i=0;i<N;i++) b[i]=a[i]; for(k=0;k<m;k++) *************found************* for (i=j=0;i<N;j++) if(b[i].s<b[j],s) j=i; *************found************* t[k].s=b[j].s; b[j].s=100; return t; outresult(STU a[],FILE *pf) int i; for(i=0;i<N;i++) fprintf(pf, NO=%S Mark=%d n , a[i].num,a[i].S); fprintf(pf, n n ); main() STU a[N]= A01 ,77, A02 ,85, A03 ,96, A04 ,65, A05 ,75, A06 ,96, A07 ,76, A08 ,63, A09 ,69, A10 ,78; STU *pOrder; int i,m; clrscr(); printf( *****THE RESULT***** n ); outresult(a,stdout); printf( nGive the number of the students who have lower score: ); scanf( %d ,&m); while(m>10) printf( nGive the number of the students who have lower score: ); scanf( %d ,&m); pOrder=fun(a,m); printf( *****THE RESULT***** n ); printf( The low: n ); for(i=0;i<m;i++) printf( %s %d n ,porder[i].num, porder[i].s); free(porder);