编程题:
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”); }