编程题:
98.请编写函数fun,它的功能是:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。
例如,若主函数从键盘给n输入20后,则输出为s=0.583333。
注意:n的值要求不大于100。 部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
double fun(int n)
{
}
main()
{
int n;
double s;
printf(“\nInput n: “);
scanf(“%d”,&n);
s=fun(n);
printf(“\n\ns=%f\n”,s);
}
99.请编写函数fun,其功能是:计算并输出3到n之间所有素数的平方根之和。
例如,若主函数从键盘给n输入100后,则输出为sum=148.874270。
注意:n的值要求大于2但不大于100。 部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#include
double fun(int n)
{
}
main()
{
int n;
double sum;
printf(“\n\nInput n: “);
scanf(“%d”,&n);
sum=fun(n);
printf(“\n\nsum=%f\n\n”,sum);
}
改错题:
48.下列给定程序中,函数fun的功能是:从N个字符串中找出最长的那个串,并将其地址作为函数值返回。各字符串在主函数中输入,并放入一个字符串数组中。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#include
#define N 5
#define M 81
/********found********/
fun(char (*sq)[N])
{
int i;
char *sp;
sp=sq[0];
for(i=0;i if(strlen(sp) sp=sq[i] ; /********found********/ return sq; } main() { char str[N][M],*longest; int i; printf(“Enter %d lines:\n”,N); for(i=0; i gets(str[i]); printf(“\nThe N string :\n”,N); for(i=0; i puts(str[i]); longest=fun(str); printf(“\nThe longest string :\n”); puts(longest); } 56.下列给定程序中,函数fun的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include #include #define MAXLINE 20 /********found********/ fun ( char *pstr[6]) { int i, j; char *p ; for ( i = 0 ; i < 5 ; i++ ) { for ( j = i + 1; j < 6; j++) { /********found********/ if(strcmp(*(pstr + i), pstr + j) > 0) { p = *(pstr + i) ; /********found********/ *(pstr + i) = pstr + j; *(pstr + j) = p ; } } } } main( ) { int i; char *pstr[6], str[6][MAXLINE] ; clrscr(); for(i = 0; i < 6 ; i++) pstr[i] = str[i] ; printf(“\nEnter 6 string(1 string at each line): \n” ) ; for(i = 0 ; i < 6 ; i++) scanf(“%s”, pstr[i]) ; fun(pstr) ; printf(“The strings after sorting:\n”); for(i = 0 ; i < 6 ; i++) printf(“%s\n”, pstr[i]) ; }