n++;
}while(fabs(s1-s0)>=0.000001); return s1; }
20.程序设计题
请编写函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。 #include
long t=0; int flag=1; if(*p=='-')
{ flag=-1; p++; } while(*p)
{ t=t*10+(*p-'0'); p++; } return flag*t; }
main()
{
char s[6]; 21.程序设计题
函数fun的功能是:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s所指串中剩余的字符形成的新串放在t所指的数组中。
例如,若s所指字符串中的内容为“ABCDEFG 12345”,其中字符C的ASCII码值为奇数,在数组中的下标为偶数,因此必须删除;而字符1的ASCII码值为奇数,在数组中的下标也为奇数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是“BDF12345”。 #include
void fun(char *s,char t[]) {
int k,n=0;
for(k=0; k main() { char s[100],t[100]; 22.程序设计题 编写函数fun,其功能是实现矩阵(3行3列)的转置(即行列互换)。 #include int j,k,t; for(j=0;j<3;j++) for(k=0;k t=array[j][k]; array[j][k]=array[k][j]; array[k][j]=t; } } main() { FILE *fp; int i,j; 23.程序设计题 请编写函数fun,函数的功能是:将大于形参m且紧靠m的k个素数存入xx所指的数组中。例如,若输入17、5,则应输出:19、23、29、31、37。 #include void fun(int m,int k,int xx[]) { int j,n=0; while(n m++; for(j=2; j if(m%j==0) break; if(j>=m) xx[n++]=m; } } main() { int m,n,zz[1000] ; 24.程序设计题 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把分数最低的学生数据放在b所指的数组中。注意,分数最低的学生可能不止一个,函数返回分数最低的学生的人数。 #include {char num[10]; int s; }STREC; int fun(STREC *a,STREC *b) { int j,n=0; double min=100.0; for(j=0;j if(min>a[j].s) min=a[j].s; for(j=0;j if(a[j].s==min) b[n++]=a[j]; return n; } main() 25.程序设计题 N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,其功能是:找出学生的最低分,由函数值返回。 #include struct slist { double s; struct slist *next; }; typedef struct slist STREC; double fun(STREC *h) { double min=h->s; while(h!=NULL) { if(min>h->s) min=h->s; h=h->next; } return min; } STREC * creat (double *s) { STREC *h,*p,*q; int i=0; h=p=(STREC*)malloc(sizeof(STREC)); p->s=0; while(i q=(STREC*)malloc(sizeof(STREC)); p->s=s[i]; i++; p->next=q; p=q; } p->next=NULL; return h; /*返回链表的首地址*/ } 26.程序设计题 规定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部删除,中间和尾部的*号不删除。 例如,字符串中的内容为:*******A*BC*DEF *G****,删除后,字符串中的内容应当是:A*BC*D EF*G****。在编写函数时,不得使用C语言提供的字符串。 #include int k=0,j=0,n=strlen(s); while(s[k]=='*') k++; for( ; k main() { 27.程序设计题 请编写函数fun,其功能是计算并输出下列多项式的值: Fn=1+1/1!+1/2!+1/3!+1/4!+?+1/m! #include double t,s=1.0; int i,j; for(i=1;i<=m;i++) { t=1.0; for(j=1;j<=i;j++) t*=j; s+=1.0/t; } return s; } main() { int m; double f; FILE *out; printf(\ scanf(\ f=fun(m); printf(\ /********************/ out=fopen(\ fprintf(out,\ fclose(out); /********************/ } 28.程序设计题 请编写函数fun,其功能是:计算并输出:F=1+(1+根号2)+...+(1+...+根号 m) 例如,若主函数从键盘给m输入10后,则输出为F=104.478749 #include int i; double f=1.0,p=1.0; for(i=2;i<=m;i++) { p+=pow(i,0.5); f+=p; } return f; } main() { int m; double f; 29.程序设计题 函数fun的功能是:将a、b两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的千位和十位上。 例如,当a=45、b=12时,调用该函数后c=1425。 #include void fun(int a,int b,long *c) { *c=a/10*100+a+b/10*1000+b*10; } main() {