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