编程题:
13.请编一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。二维数组中的数已在主函数中赋予。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数n的花括号中填入所编写的若干语句。
#include <conio.h>
#include <stdio.h>
#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<M; i++ ){
for( j=0; j<N; 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 <conio.h>
#include <stdio.h>
#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<M; i++ )
{
for ( j=0; j<N; j++ )
printf( “%6d”, aa[i][j] );
printf (“n”);
}
y = fun ( aa );
printf( “nThe sum: %dn” , y);
printf(“n”);
}
改错题:
72.下列给定程序中函数fun的功能是:统计子字符串substr在字符串str中出现的次数。例如,若字符串为aaas lkaaas,子字符串为as,则应输出2。
请改正程序中的错误,使它能计算出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
/********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]==’