编程题:
11.下列程序定义了NXN的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N],该函数的功能是:使数组左下半三角元素中的值全部置成0。例如:a数组中的值为:
,则返回主程序后a数组中的值应为:。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#include
#include
#define N 5
void fun(int a[][N])
{
}
main()
{
int a[N][N],i,j;
clrscr();
printf(“***** The array *****\n”);
for(i=0;i
{
for(j=0;j
{
a[i][j]=rand()%10;
printf(“%4d”,a[i][j]);
}
printf(“\n”);
}
fun(a);
printf(“THE RESULT\n”);
for(i=0;i
{
for(j=0;j
printf(“%4d”,a[i][j]);
printf(“\n”);
}
}
12.下列程序定义了NXN的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的s。例如:若a数组中的值为:
,则返回主程序后s的值应为3.375。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#include
#include
#define N 5
double fun (int w[][N])
{
}
main()
{
int a[N][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1};
int i,j;
double s;
clrscr();
printf(“***** The array *****\n”);
for(i=0;i
{
for(j=0;j
{
printf(“%4d”,a[i][j]);
}
printf(“\n”);
}
s=fun(a);
printf(“***** THE RESULT *****\n”);
printf(“The sum is %lf\n”,s);
}
改错题:
67.下列给定程序中,函数fun的功能是:应用递归算法求某数a的平方根。求平方根的迭代公式如下:
1 a
x1= -(x0 + -)
2 x0
例如,2的平方根值为1.414214。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#include
/********found********/
fun(double a, double x0)
{
double x1, y;
x1=(x0+ a/x0)/2.0;
/********found********/
if( fabs(x1-x0)>0.00001 )
y=fun(a,x1);
else
y=x1;
return y;
}
main( )
{
double x;
printf(“Enter x: “);
scanf(“%lf”,&x);
printf(“The square root of %lf is %lf\n”,x,fun(x,1.0));
}
70.下列给定程序中,函数fun的功能是:从整数1到55之间,选出能被3整除、且有一位上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定,函数中a1放个位数,a2放十位数。
请改正程序中的错误,使程序能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
/********found********/
fun( int *b )
{
int k,a1,a2,i=0;
/********found********/
for(k=10; k<=55; k++)
{
a2=k/10;
a1=k-a2*10;
if((k%3==0 && a2==5)||(k%3==0 && a1==5))
{
b[i]=k;
i++;
}
}
/********found********/
return k;
}
main( )
{
int a[100],k,m;
m=fun( a );
printf(“The result is:\n”);
for(k=0; k
printf(“%4d”,a[k]);
printf(“\n”);
}