编程题:
13.请编一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。二维数组中的数已在主函数中赋予。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数n的花括号中填入所编写的若干语句。
#include
#include
#define M 3
#define N 4
void fun ( int tt[M][N],int pp[N] )
{
}
main( )
{
int t [ M ][ N ]={{22,45, 56,30},
{19,33, 45,38},
{20,22, 66,40}};
int p [ N ], i, j, k;
clrscr();
printf ( “The original data is : \n” );
for( i=0; i for( j=0; j printf ( “%6d”, t[i][j] ); printf(“\n”); } fun ( t, p ); printf( “\nThe result is:\n” ); for ( k = 0; k < N; k++ ) printf ( ” %4d “, p[ k ] ); printf(“\n”); } 14.请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。 例如:若二维数组中的值为:,则函数值为61。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 #include #include #define M 4 #define N 5 int fun ( int a[M][N] ) { } main( ) { int aa[M][N]={{1,3,5,7,9}, {2,9,9,9,4}, {6,9,9,9,8}, {1,3,5,7,0}}; int i, j, y; clrscr(); printf ( “The original data is : \n” ); for ( i=0; i { for ( j=0; j printf( “%6d”, aa[i][j] ); printf (“\n”); } y = fun ( aa ); printf( “\nThe sum: %d\n” , y); printf(“\n”); } 改错题: 72.下列给定程序中函数fun的功能是:统计子字符串substr在字符串str中出现的次数。例如,若字符串为aaas lkaaas,子字符串为as,则应输出2。 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include /********found********/ fun(char *str,char *substr) { int i,j,k,num=0; /********found********/ for(i = 0, str[i], i++) for(j=i,k=0;substr[k]==str[j];k++,j++) if(substr[k+1]==’\0′) { num++; break; } return num; } main() { char str[80],substr[80]; printf(“Input a string:”); gets(str); printf(“Input a substring:”); gets(substr); printf(“%d\n”,fun(str,substr)); } 75.下列给定程序中函数fun的功能是:输出M行M列整数方阵,然后求两条对角线上各元素之和,返回此和数。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改轻序的结构! 试题程序: #include #include #define M 5 /********found********/ int fun(int m, int xx[][]) { int i,j,sum=0; printf(“\nThe %d x %d matrix:\n”,M,M ); for(i=0;i { /********found********/ for(j=0;j printf(“%4f”,xx[i][j]); printf(“\n”); } for(i=0;i sum+=xx[i][i]+xx[i][m-i-1]; if(m%2!=0) sum-=xx[m/2][m/2]; return(sum); } main( ) { int aa[M][M]={{1,2,3,4,5},{4,3,2,1,0}, {6,7,8,9,0},{9,8,7,6,5},{3,4,5,6,7}}; clrscr(); printf(“\nThe sum of all elements on 2 diagnal is %d.”,fun(M,aa)); }