编程题:
16.请编一个函数float fun(double h),函数的功能是对变量h中的值保留2位小数,并对第三位进行四舍五入(规定h中的值为正数)。
例如:若h值为8.32433,则函数返回8.32;若h值为8.32533,则函数返回8.33。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#include
float fun ( float h )
{
}
main( )
{
float a;
clrscr();
printf ( “Enter a: “);
scanf ( “%f”, &a );
printf ( “The original data is: “);
printf ( “%f \n\n”, a );
printf ( “The result : %f\n”, fun ( a ) );
}
17.请编一个函数fun(char*s),该函数的功能是把字符串中的内容逆置。
例如:字符串中原有的字符串为abcdefg,则调用该函数后,串中的内容为gfedcba。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#include
#include
#define N 81
void fun ( char *s)
{
}
main()
{
char a[N];
clrscr( );
printf ( “Enter a string : “);
gets ( a );
printf ( “The original string is: ” );
puts( a );
fun ( a );
printf(“\n”);
printf ( “The string after modified : “);
puts ( a );
}
改错题:
13.下列给定程序中,fun函数的功能是:根据形参m,计算如下公式的值。
1 1 1 1
t=1+ - + - + -… + -
2 3 4 m
例如,若输入5,则应输出2.283333。
请改正程序中的错误或在横线处填上适当的内容并把横线删除,使它能计算出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#include
double fun(int m)
{
double t=1.0;
int i;
/********found********/
for(i=2;i<=m;i++)
t+=1.0/k;
/********found********/
___填空____
}
main()
{
int m;
clrscr();
printf(“\nplease enter 1 integer numbers:\n”);
scanf(“%d”,&m);
printf(“\n\nthe result is %lf\n”,fun(m));
}
17.下列给定程序中,函数fun的功能是:计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值由主函数传入,若k的值为500,则函数值为4622。
请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#include
int fun(int k)
{
int m=0, mc=0, j;
while((k>=2)&&(mc<10))
{
/********found********/
if((k%13=0)||(k%17=0))
{
m=m+k;
mc++;
}
k–;
}
return m;
/********found********/
填空_____
main()
{
clrscr();
printf(“%d\n”, fun(500));
}