第六十五题
题目
请编写函数fun,它的功能是:计算下列级数和,和值由函数值返回。
例如,当n=10,x=0.3时,函数值为1.349859。
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
double fun(double x, int n){
}
void main(){
FILE *wf;
system("CLS");
printf("%f",fun(0.3,10));
wf=fopen("out. dat","w");
fprintf(wf,"% f",fun(0.3,10));
fclose(wf);
}
解析
double fun (double x,int n)
{
int i;
double sum=1.0,t=1.0;
for(i=1;i<=n;i++){
t=x/i*t;
sum=sum+t;
}
return sum;
}
double fun (double x,int n)
{
int i;
double sum=1.0,t=1.0;
for(i=1;i<=n;i++){
sum+=pow(x,i)/t;
t=t*(t+1);
}
return sum;
}
double fun (double x,int n)
{
int i;
double sum=1.0,t=1.0;
for(i=1;i<=n;i++){
t=t*i;
sum+=pow(x,i)/t;
}
return sum;
}
第六十六题
题目
请编写函数fun,其功能是:求出1-1000之见能被7或11整除,但是不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。
#include <stdio.h>
void fun(int * a, int *n)
{
}
main(){
int aa[1000],n,k;
void NONO();
fun( aa,&n);
for(k=0;k<n;k++ )
if((k+1)%10==0)
printf( " \n" );
else
printf( " %5d" , aa[k]);
NONO();
}
void NONO(){
/*本函数用于打开文件,输入测试数据调用 fun 函数,输出数据,关闭文件。*/
int aa[1000],n,k ;
FILE *fp ;
fp = fopen( " out. dat" ," w" );
fun(aa,&n);
for(k=0;k<n;k++ )
if((k+1)%10==0)
fprintf( fp, " \n");
else
fprintf( fp, " %5d" , aa[k]);
fclose(fp);
}
解析
void fun(int* a,int* n)
{
*n=0;
int i,j=0;
for(i=1;i<=1000;i++)
if((a[i]%7==0||a[i]%11==0)&&a[i]%77!=0){
(*n)++;
a[j++]=i;
}
}
void fun(int* a,int* n)
{
int i,j=0;
for(i=1;i<=1000;i++)
if((a[i]%7==0||a[i]%11==0)&&a[i]%77!=0){
a[j++]=i;
*n=j;
}
}
第六十七题
题目
请编写函数fn,该函数的功能是:将s所指字符串中 ASCI码值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。
例如,若s所指字符串中的内容为"ABCDEFG12345",其中字符B的ASCI码值为偶数,字符2的 ASCI 码值为偶数,都应当删除,其他依此类推。最后t所指的数组中的内容应是"ACEG135"。
#include <stdio.h>
#include<string.h>
#include <conio.h>
#include <stdlib.h>
void fun(char * s, char t[])
{
}
void main(){
FILE * wf;
char s[100],t[100];
system(" CLS" );printf(" \nPlease enter string S:");
scanf( " % s" ,s);
fun(s,t);
printf( " \nThe result is : % s\n" ,t);
wf = fopen ( " out. dat" ," w" );
fun(" ABCDEFG12345" ,t);
fprintf( wf, " % s" ,t);
fclose( wf);
}
解析
void fun(char * s, char t[])
{
int i,j=0;
for(i=0;s[i]!='\0';i++)
if(s[i]%2==1)
t[j++]=s[i];
t[j]='\0';//末尾加上串结束符
}
void fun(char * s, char t[])
{
int j=0;
for(;*s!='\0';s++)
if(*s%2==1)
t[j++]=*s;
t[j]='\0';//末尾加上串结束符
}
第六十八题
题目
解析
第六十九题
题目
解析
第七十题
题目
解析
第七十一题
题目
解析
第七十二题
题目
解析