编程题:
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 ) );
}