编程题:
36.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部移到字符串的尾部。
例如,字符串中的内容为*******A*BC*DEF*G****,移动后,字符串中的内容应当是A*BC*DEF*G***********。在编写函数时,不得使用C语言提供的字符串函数。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#include
void fun ( char *a)
{
}
main()
{
char s[81],*p;
printf(“Enter a string:\n”);
gets(s);
fun( s );
printf(“The string after moveing:\n”);
puts(s);
}
37.某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。请编写函数fun,它的功能是:求出该学生的平均分放在记录的ave成员中。请自己定义正确的形参。
例如,若学生的成绩是85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应当是78.875。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#define N 8
typedef struct
{
char num[10];
double s[N];
double ave;
} STREC;
void fun()
{
}
main()
{
STREC s={“GA005″,85.5,76,69.5,85,91,72,64.5,87.5};
int i;
fun( &s );
printf(“The %s’s student data:\n”, s.num);
for(i=0;i printf(“%4.1f\n”,s.s[i]); printf(“\nave=%7.3f\n”,s.ave); } 改错题: 71.下列给定程序中,函数fun的功能是:求k!(k<13),所求阶乘的值作为函数值返 回。例如:若k=10,则应输出3628800。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include #include long fun ( int k ) { /********found********/ if k > 0 return (k*fun(k-1)); /********found********/ else if ( k=0 ) return 1; } main() { int k = 10 ; clrscr() ; printf(“%d!=%ld\n”, k, fun (k)) ; } 73.下列给定程序中,fun函数的功能是:传入一个整数m,计算如下公式的值。 1 1 1 T=1- - – - -…- - 2 3 m 例如,若输入5,则应输出-0.283333。 请改正函数fun中的错误或在横线处填上适当的内容并把横线删除,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include #include double fun(int m) { double t=1.0; int i; /********found********/ for(i=2; i<=m;i++) t=1.0-1/i; /********found********/ 填空_______ } main() { int m; clrscr(); printf(“\nPlease enter 1 integer numbers:\n”); scanf(“%d”,&m); printf(“\n\nThe result is %lf\n”,fun( m ) ); }