1、C语言程序设计
请编写函数fun,其功能是:找出2×M整型二维数组中最大元素值,并将此值返回调用函数。
int fun (int a[][M])
{
int i,j,max=a[0][0];
for(i=0;i<2;i++)
for(j=0;j 2、14…。
double fun ( double eps)
{
double s=1.0,s1=1.0;
int n=1;
while(s1>=eps) /*当某项不不大于精度规定期,继续求下一项*/
{s1=s1*n/(2*n+1); /*求多项式每一项*/
s=s+s1; /*求和*/
n++;
}
return 2*s;
}
编写函数fun,其功能是:求出1~1000之间能被7或11整除,但不能同步被7和11整除所有整数,并将其放在a所指 3、数组中,通过n返回这些数个数。
void fun (int *a,int *n)
{
int i,j=0;
for(i=1;i<=1000;i++) /*求1到1000之内能被7或11整除、但不能同步被7和11整除所有整数,并放入数组a中*/
if((i%7==0||i%11==0)&&i%77!=0)
a[j++]=i;
*n=j;
}
规定输入字符串中只涉及字母和*号。编写函数fun,其功能是:删除字符串中所有*号。编写函数时,不得使用C语言提供字符串函数。
例如,字符串中内容为:****A*BC 4、DEF*G*******,删除后字符串中内容应当是:ABCDEFG。
void fun( char *a )
{
int i,j=0;
for(i=0;a[i]!='\0';i++)
if(a[i]!='*')
a[j++]=a[i]; /*若不是要删除字符'*'则留下*/
a[j]='\0';
}
规定输入字符串中只涉及字母和*号。编写函数fun,其功能是:将字符串中前导*号所有删除,中间和尾部*号不删除。
例如,字符串中内容为:"*******A*BC*DEF*G****",删除后字符串中内容应当是:"A*B 5、C*DEF*G****"。编写函数时,不得使用C语言提供字符串函数。
void fun( char *a )
{
char *p=a;
while(*p=='*') p++; /*指针p指向字符串第一种字母*/
for(;*p!='\0';p++,a++)
*a=*p; /*从第一种字母开始,其后字符都放入指针a所指字符串中*/
*a='\0'; /*在字符串最后加上字符串结束标记*/
}
假定输入字符串中只涉及字母和*号。请编写函数fun,其功能是:除了尾部*号之外,将字符中其他*号所有删除。形参p已指向字符串 6、中最后一种字母。在编写函数时,不得使用C语言提供字符串函数。
例如,字符串中内容为****A*BC*DEF*G*******,删除后,字符串中内容应当是ABCDEFG*******。
void fun( char *a,char *p )
{
char *t=a;
for(;t<=p;t++)
if(*t!='*')
*(a++)=*t;
for(;*t!='\0';t++)
*(a++)=*t;
*a='\0';
/*在字符串最后加上字符串结束标记*/
}
规定输入字符串中只涉及字母和*号。请编写函数f 7、un,其功能是:只删除字符前导和尾部*号,串中字母间*号都不删除。形参n给出了字符串长度,形参h给出了字符串中前导*号个数,形参e给出了字符串中尾部*号个数。在编写函数时,不得使用C语言提供字符串函数。
例如,字符串中内容为:"****A*BC*DEF*G*******",删除后,字符串中内容应当是:"A*BC*DEF*G"。
void fun( char *a,int n,int h,int e )
{
int i,j=0;
for(i=h;i 8、]='\0'; /*在字符串最后加上结束标记*/
}
规定输入字符串中只涉及字母和*号。请编写函数fun,其功能是:除了字符串前导*号之外,将串中其他*号所有删除。在编写函数时,不得使用C语言提供字符串函数。
例如,字符串中内容为:****A*BC*DEF*G*******,删除后,字符串中内容应当是:****ABCDEFG。
void fun( char *a )
{
int i=0;
char *p=a;
while(*p&&*p=='*')
{
a[i]=*p;
i++;
p++;
}
while( 9、p)
{
if(*p!='*')
{a[i]=*p;i++;}
p++;
}
a[i]='\0';
}
规定输入字符串中只涉及字母和*号。请编写函数fun,其功能是:将字符串尾部*号所有删除,前面和中间*号不动。
例如,字符串中内容为:"****A*BC*DEF*G*******",删除后,字符串中内容应当是:"****A*BC*DEF*G"。在编写函数时,不得使用C语言提供字符串函数。
void fun( char *a )
{
while(*a!='\0')
a++;
a--; 10、 /*指针a指向字符串尾部*/
while(*a=='*')
a--; /*指针a指向最后一种字母*/
*(a+1)='\0'; /*在字符串最后加上结束标志符*/
}
规定输入字符串中只涉及字母和*号。请编写函数fun,其功能是:将字符串中前导*号所有移到字符串尾部。
例如,字符串中内容为:"*******A*BC*DEF*G****",移动后,字符串中内容应当是:"A*BC*DEF*G***********"。在编写函数时,不得使用C语言提供字符串函数。
void fun( char 11、 *a )
{
int i=0,n=0;
char *p;
p=a;
while (*p=='*') /*判断*p与否是*号,并记录*号个数*/
{
n++;p++;
}
while(*p) /*将前导*号后字符传递给a*/
{
a[i]=*p;i++;p++;
}
while(n!=0)
{
a[i]='*';i++;n--;
}
a[i]='\0';
}
编写函数fun,其功能是:实现两个字符串连接(不要使用库函数strcat),即把p2所指字符串连接到p1所指字符串背面。
例如,分别输入下面两个字符串:
Fi 12、rstString--
SecondString
程序输出:
FirstString--SecondString
void fun(char p1[],char p2[])
{
int i,j;
for(i=0;p1[i]!='\0';i++) ;
for(j=0;p2[j]!='\0';j++)
p1[i++]=p2[j];
p1[i]='\0';
}
某学生记录由学号、8门课程成绩和平均分构成,学号和8门课程成绩已在主函数中给出,请编写函数fun,其功能是:求出该学生平均分,并放入记录ave成员中。
例如, 13、学生成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则她平均分应为78.875。
void fun(STREC *a)
{
int i;
a->ave=0.0;
for(i=0;i 14、69 85 91 72 64 87,则平均分应当是:78.625。
double fun( STREC *h )
{
double ave=0.0;
STREC *p=h->next;
while(p!=NULL)
{ ave=ave+p->s;
p=p->next;
}
return ave/N;
}
编写函数fun,其功能是:将所有不不大于1不大于整数m非素数存入xx所指数组中,非素数个数通过k返回。
例如,若输入17,则应输出:4 6 8 9 10 12 14 15 16。
void fun( int 15、 m,int *k,int xx[] )
{
int i,j,n=0;
for(i=4;i 16、ss,char c)
{
int i=0;
for(;*ss!='\0';ss++)
if(*ss==c)
i++;/*求出ss所指字符串中指定字符个数*/
return i;
}
编写函数fun,其功能是:计算n门课程平均分,成果作为函数值返回。
例如:若有5门课程成绩是:90.5,72,80,61.5,55,则函数值为:71.80。
float fun ( float *a , int n )
{
int i;
float av=0.0;
for(i=0;i 17、总和*/
av=av+a[i];
return(av/n); /*返回平均值*/
}
学生记录由学号和成绩构成,N名学生数据已放入主函数中构造体数组s中,请编写函数fun,其功能是:把分数最高学生数据放在b所指数组中。注意:分数最高学生也许不止一种,函数返回分数最高学生人数。
int fun( STREC *a,STREC *b )
{
int i,j=0,max=a[0].s;
/*找出最大值*/
for(i=0;i 18、or(i=0;i 19、 0 0 0 0 0 0 0 0
void fun(char *tt,int pp[])
{
int i;
for(i=0;i<26;i++)
pp[i]=0; /*初始化pp数组各元素为0*/
for(;*tt!='\0';tt++)
if(*tt>='a'&&*tt<='z')
pp[*tt-'a']++;
}
编写函数fun,其功能是:比较字符串长度,(不得使用C语言提供求字符串长度函数),函数返回较长字符串。若两个字符长度相似,则返回第一种字符串。
例如,输入beijing 20、hai 21、号成绩构成,N名学生数据已放入主函数中构造体数组s中,请编写函数fun,其功能是:函数返回该学号学生数据,指定学号在主函数中输入。若没找到指定学号,在构造体变量中给学号置空串,给成绩置-1,作为函数值返回。(用于字符串比较函数是strcmp)。
STREC fun( STREC *a,char *b )
{int i;
STREC str={"\0",-1}; /*若没找到指定学号,在构造体变量中给学号置空串,给成绩置-1*/
for(i=0;i 22、/
str=a[i];
return str; /*返回学生记录*/
}
函数fun功能是:将s所指字符串中除下标为偶数同步ASCII码值也为偶数字符外,别的所有删除;字符串中剩余字符所形成新串放在t所指数组中。
例如,若s所指字符串中内容为"ABCDEFG123456",其中字符AASCII码值为奇数,因而应当删除;字符BASCII码值为偶数,但在数组中下标为奇数,因而也应当删除;字符2ASCII码值为偶数,在数组中下标也为偶数,因而不应当删除,其她依此类推。最后t所指数组中内容应是"246"。
void fun(char 23、s,char t[])
{
int i,j=0;
for(i=0;s[i]!='\0';i++)
if(i%2==0 && s[i]%2==0) /*将s所指字符串中下标和ASCII码值都为偶数字符放入数组t中*/
t[j++]=s[i];
t[j]='\0'; /*在字符串最后加上结束标记*/
}
编写函数fun,其功能是:运用下面简朴迭代办法求方程cos(x)-x=0一种实根。
迭代环节如下:
(1)取x1初值为0.0;
(2)x0=x1,将x1值赋给x0;
(3)x1=cos(x0), 24、求出一种新x1;
(4)若x0-x1绝对值不大于0.000001,执行步聚(5),否则执行步聚(2);
(5)所求x1就是方程cos(x)-x=0一种实根,作为函数值返回。
程序将输出成果Root=0.739086。
double fun()
{
double x0,x1;
x1=0.0;
do
{
x0=x1;
x1=cos(x0);
}while(fabs(x0-x1)>=1e-6);
return x1;
}
学生记录由学号和成绩构成,N名学生数据已放入主函数中构造体数组中,请编写函数fun,其功能是:把分数最低学生数据放入b所指数组中,注意:分数最 25、低学生也许不止一种,函数返回分数最低学生人数。
int fun( STREC *a,STREC *b )
{
int i,j=0,min=a[0].s;
for(i=0;i 26、s作为函数值返回。
在C语言中可调用log(n)函数求ln(n)。log函数引用阐明为:double log(double x)。
例如,若m值为20,则fun函数值为6.506583。
double fun( int m )
{
int i;
double s=0.0;
for(i=1;i<=m;i++)
s=s+log(i); /*计算s=ln(1)+ln(2)+ln(3)+…+ln(m)*/
return sqrt(s); /*对s求平方根并返回*/
}
函数fun功能是:将s所指字符串中下标为偶数字符删除 27、剩余字符形成新串放在t所指数组中。
例如,当s所指字符串中内容为"ABCDEFGHIJK"时,在t所指数组中内容应是:"BDFHJ"。
void fun(char *s,char t[])
{
int i,j=0,k=strlen(s); /*k为字符串长度*/
for(i=1;i 28、和个位上,b中十位和个位数依次放在变量c十位和千位上。
例如,当a=45,b=12,调用该函数后c=2415。
void fun(int a,int b,long *c)
{
*c=a%10+(b/10)*10+(a/10)*100+(b%10)*1000;
}
学生记录由学号和成绩构成,N名学生数据已放入主函数中构造体数组s中,请编写函数fun,其功能是:按分数降序排列学生记录,高分在前,低分在后。
void fun( STREC a[] )
{
int i,j;
STREC t;
for(i=1;i 29、 /*用冒泡法进行排序,进行N-1次比较*/
for(j=0;j 30、fun( STREC *a,STREC *b,int *n )
{
int i;
double av=0.0;
*n=0;
for(i=0;i 31、 { b[*n]=a[i];*n=*n+1;} /*将高于等于平均分学生存入b所指存储单元中,并记录人数*/
return av; /*返回平均分*/
}
编写函数fun,其功能是:将1到m之间(含m)能被7或11整除所有整数放在数组a中,并通过n返回这些数个数。例如,若传给m值为50,则程序输出:
7 11 14 21 22 28 33 35 42 44 49
void fun ( int m,int *a ,int *n )
{
int i,j=0;
for(i=1;i<=m;i++)
if(i%7= 32、0||i%11==0) /*求出1到m(含m)之内能被7或11整除所有整数放在数组a中*/
a[j++]=i;
*n=j; /*返回这些数个数*/
}
N名学生成绩已在主函数中放入一种带有头节点链表构造中,h指向链表头节点。请编写函数fun,其功能是:找出学生最高分,并由函数值返回。
double fun( STREC *h )
{
double max=h->s;
while(h!=NULL) /*通过循环找到最高分数*/
{if(max 33、h->next;
}
return max;
}
请编写函数fun,其功能是:找出一维整型数组元素中最大值及其所在下标,并通过形参传回。数组元素中值已在主函数中赋予。
主函数中x是数组名,n是x中数据个数,max存储最大值,index存储最大值所在元素下标。
void fun(int a[],int n,int *max,int *d)
{
int i;
*max=a[0];
*d=0;
for(i=0;i






