编程题:
29.请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。
例如,若输入abc4EFg,则应输出aBc4EFg。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#include
#include
void fun ( char *ss)
{
}
main( )
{
char tt[81];
printf(“\n Please enter an string within 80 characters:\n”);
gets( tt );
printf(“\n\nAfter changing, the string\n \%s\n”, tt );
fun( tt );
printf( “\nbecomes \n \%s\n”, tt );
}
30.请编写一个函数fun,它的功能是:求出一个2xM整型二维数组中最大元素的值,并将此值返回调用函数。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的
若干语句。
#define M 4
#include
fun (int a[][M])
{
}
main()
{
int arr[2][M]={5,8,3,45,76,-4,12,82} ;
printf(“max=%d\n”, fun(arr)) ;
}
改错题:
61.下列给定程序中,函数fun的功能是:根据整型形参m,计算如下公式的值。
1 1 1 1
y= ———— + ———— + ———— … + ————
100×100 200×200 300×300 m×m
例如,若m=2000,则应输出:0.000160。
请改正程序中的错误,使它能计算出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#include
/********found********/
fun ( int m )
{
double y = 0, d ;
int i ;
/********found********/
for( i = 100, i <= m, i += 100 )
{
d = (double)i * (double)i ;
y += 1.0 / d ;
}
return( y ) ;
}
main( )
{
int n = 2000 ;
clrscr( ) ;
printf( “\nThe result is %lf\n”, fun ( n ) ) ;
}
62.下列给定程序中,函数fun的功能是:计算并输出high以内最大的10个素数之和。
high由主函数传给fun函数。若high的值为100,则函数的值为732。
请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#include
#include
int fun( int high )
{
int sum = 0, n=0, j, yes;
while ((high >= 2) && (n < 10))
{
yes = 1;
for (j=2; j<=high/2; j++)
/********found********/
if (high % j ==0 )
{
yes=0;
break
}
if (yes)
{
sum +=high;
n++;
}
high–;
}
return sum;
}
main ( )
{
clrscr( );
printf(“%d\n”, fun (100));
}