编程题:
18.编写程序,实现矩阵(3行3列)的转置(即行列互换)。
例如,若输入下面的矩阵:,则程序输出:
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#include
void fun(int array[3][3])
{
}
main()
{
int i,j;
int array[3][3]={{100,200,300},
{400,500,600},
{700,800,900}};
clrscr();
for (i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf(“%7d”,array[i][j]);
printf(“\n”);
}
fun(array);
printf(“Converted array:\n”);
for (i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf(“%7d”,array[i][j]);
printf(“\n”);
}
}
82.请编写一个函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数值返回。
例如:若有5门课程的成绩是:90.5,72,80,61.5,55,则函数的值为71.80。
注意:部分源程序给出如下。
请勿改动主函数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);
}
改错题:
22.下列给定程序中,函数fun的功能是:根据整型形参m,计算如下公式的值。
1 1 1 1
Y=1+ - + - + - + … + -
2×2 3×3 4×4 mxm
例如,若m中的值为5,则应输出:1.463611。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#include
double fun(int m)
{
double y=1.0;
int i;
/********found********/
for(i=2;i
/********found********/
y+=1/(i*i);
return(y);
}
main()
{
int n=5;
clrscr();
printf(“\nThe result is %1f\n”,fun(n));
}
23.下列给定程序中,函数fun的功能是:按以下递归公式求函数值。
10 (n=1)
fun(n)=
fun(n-1)+2 (n>1)
例如,当给n输入5时,函数值为18;当给n输入3时,函数值为14。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
/********found********/
fun(n)
{
int c;
/********found********/
if(n=1)
c=10;
else
c=fun(n-1)+2;
return(c);
}
main()
{
int n;
printf(“Enter n: “);
scanf(“%d”,&n);
printf(“The result:%d\n\n”,fun(n));
}