max=a[i][j];returnmax;
/}\
编写函数fun,其功能是:
整数,并将其放在a所指的数组中,通过n返回这些数的个数。
voidfun(int*a,int*n)
{
inti,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*DEF*G*******,删除后字符串中的内容应当是:
ABCDEFG。
voidfun(char*a)
{
inti,j=0;
for(i=0;a[i]!
='\0';i++)
if(a[i]!
='*')
a[j++]=a[i];/*若不是要删除的字符'*'则留下*/
a[j]='\0';
}
规定输入的字符串中只包含字母和*号。
编写函数fun,其功能是:
将字符串中的前导*号全
部删除,中间和尾部的*号不删除。
例如,字符串中的内容为:
”*******a*bc*DEF*G****",删除后字符串中的内容应当是:
voidfun(char*a)
{
char*p=a;while(*p=='*')p++;
for(;*p!
='\0';p++,a++)
*a=*p;/*
*a='\0';/*
}
"A*BC*DEF*G****"。
编写函数时,不得使用C语言提供的字符串函数。
/*指针p指向字符串第一个字母*/
从第一个字母开始,其后的字符都放入指针a所指的字符串中*/
在字符串最后加上字符串结束标识*/
假定输入的字符串中只包含字母和*号。
请编写函数fun,其功能是:
除了尾部的*号之外,
将字符中的其它的*号全部删除。
形参p已指向字符串中最后的一个字母。
在编写函数时,不得使用C语言提供的字符串函数。
例如,字符串中的内容为****a*bc*def*g*******,删除后,字符串中的内容应当是
abcdefg*******。
voidfun(char*a,char*p){
char*t=a;
for(;t<=p;t++)
if(*t!
='*')
*(a++)=*t;
for(;*t!
='\0';t++)
*(a++)=*t;
*a='\0:
/*在字符串最后加上字符串结束标识*/
}
规定输入的字符串中只包含字母和*号。
请编写函数fun,其功能是:
只删除字符前导和尾
部的*号,串中字母间的*号都不删除。
形参n给出了字符串的长度,形参h给出了字符串中
前导*号的个数,形参e给出了字符串中尾部*号的个数。
在编写函数时,不得使用C语言提供的字符串函数。
例如,字符串中的内容为:
”****a*bc*dEF*G*******",删除后,字符串中的内容应当
是:
"A*BC*DEF*G"。
voidfun(char*a,intn,inth,inte)
{
inti,j=0;
for(i=h;ia[j++]=a[i];
a[j]='\0';/*在字符串最后加上结束标识*/
}
规定输入的字符串中只包含字母和*号。
请编写函数fun,其功能是:
除了字符串前导的*号
之外,将串中其它*号全部删除。
在编写函数时,不得使用C语言提供的字符串函数。
例如,字符串中的内容为:
****a*bc*DEF*G*******,删除后,字符串中的内容应当是:
****abcDEFG。
voidfun(char*a)
{
inti=0;
char*p=a;
while(*p&&*p=='*')
{
a[i]=*p;
i++;
p++;
}
while(*p)
{
if(*p!
='*')
{a[i]=*p;i++;}
p++;
}
a[i]='\0';
}
规定输入的字符串中只包含字母和*号。
请编写函数fun,其功能是:
将字符串尾部的*号全
部删除,前面和中间的*号不动。
例如,字符串中的内容为:
"****a*bc*DEF*G*******",删除后,字符串中的内容应当
是:
"****A*BC*DEF*G"。
在编写函数时,不得使用C语言提供的字符串函数。
voidfun(char*a)
{
while(*a!
='\0')
a++;
a--;/*指针a扌旨向字符串的尾部*/
while(*a=='*')
a--;/*指针a扌旨向最后一个字母*/
*(a+1)='\0:
/*在字符串最后加上结束标志符*/
}
规定输入的字符串中只包含字母和*号。
请编写函数fun,其功能是:
将字符串中的前导*号
全部移到字符串的尾部。
例如,字符串中的内容为:
”*******a*bc*dEF*G****",移动后,字符串中的内容应当
是:
”a*bc*DEF*G***********"。
在编写函数时,不得使用C语言提供的字符串函数。
voidfun(char*a)
{
inti=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所指的字符串的后面。
例如,分别输入下面两个字符串:
FirstString
SecondString
程序输出:
FirstStringSecondString
voidfun(charp1[],charp2[])
{
inti,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成员中。
例如,学生的成绩是:
,76,,85,91,72,,,则他的平均分应为。
voidfun(STREC*a)
{
inti;
a->ave=;
for(i=0;ia->ave=a->ave+a->s[i];/*求各门成绩的总和*/
a->ave/=N;/*求平均分*/
}
N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。
请编
写函数fun,其功能是:
求出平均分,并由函数值返回。
例如,若学生的成绩是:
8576698591726487,则平均分应当是:
。
doublefun(STREC*h)
{
doubleave=;
STREC*p=h->next;
while(p!
=NULL)
{ave=ave+p->s;
p=p->next;
}
returnave/N;
}
编写函数fun,其功能是:
将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k返回。
例如,若输入17,则应输出:
46891012141516。
voidfun(intm,int*k,intxx[])
{
inti,j,n=0;
for(i=4;i{for(j=2;j
if(i%j==O)break;if(j
}
*k=n;/*返回非素数的个数*/
}
编写函数fun,其功能是:
求ss所指字符串中指定字符的个数,并返回此值。
例如,若输入字符串2,输入字符为1,则输出3。
intfun(char*ss,charc)
{
inti=0;
for(;*ss!
='\0';ss++)
if(*ss==c)
i++;/*求出ss所指字符串中指定字符的个数*/
returni;
}
编写函数fun,其功能是:
计算n门课程的平均分,结果作为函数值返回。
例如:
若有5门课程的成绩是:
,72,80,,55,则函数的值为:
。
floatfun(float*a,intn)
{
inti;
floatav=;
for(i=0;iav=av+a[i];
return(av/n);/*返回平均值*/
}
学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写
函数fun,其功能是:
把分数最高的学生数据放在b所指的数组中。
注意:
分数最高的学生
可能不止一个,函数返回分数最高的学生的人数。
intfun(STREC*a,STREC*b)
{
inti,j=0,max=a[0].s;
/*找出最大值*/
学生的记录由学号成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函
数fun,其功能是:
函数返回该学号的学生数据,指定的学号在主函数中输入。
若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。
(用于字符串比较
的函数是strcmp)。
STRECfun(STREC*a,char*b){inti;
STRECstr={"\0",-1};/*若没找到指定的学号,在结构体变量中给学号置空串,
给成绩置一1*/
for(i=0;iif(strcmp(a[i].num,b)==O)/*找到指定学号的学生数据*/
str=a[i];
returnstr;/*返回学生记录*/
}
函数fun的功能是:
将s所指字符串中除下标为偶数同时ASCII码值也为偶数的字符外,其余
的全部删除;字符串中剩余字符所形成的新串放在t所指的数组中。
例如,若s所指字符串中的内容为"ABCDEFG123456",其中字符A的ASCII码值为奇数,因
此应当删除;字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;字符2的ASCII码值为偶数,在数组中的下标也为偶数,因此不应当删除,其他依此类推。
最后t所指的数组中的内容应是"246"。
voidfun(char*s,chart[])
{
inti,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的一个实根。
xn1COS(xn)
迭代步骤如下:
(1)取X1初值为;
(2)x0=x1,将x1的值赋给x0;
(3)x1=cos(x0),求出一个新的x1;
⑷若x0—x1的绝对值小于,执行步聚(5),否则执行步聚
(2);
⑸所求x1就是方程cos(x)—x=0的一个实根,作为函数值返回。
程序将输出结果Root=o
doublefun(){
doublex0,x1;\/
x1=;
do
{
xO=x1;
x1=cos(xO);
}while(fabs(x0-x1)>=1e-6);
returnx1;
}
学生记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组中,请编写函数
fun,其功能是:
把分数最低的学生数据放入b所指的数组中,注意:
分数最低的学生可能不止一个,函数返回分数最低的学生人数。
intfun(STREC*a,STREC*b)
{
inti,j=O,min=a[O].s;
for(i=0;iif(min>a[i].s)
min=a[i].s;/*找出最小值*/\
for(i=0;iif(min==a[i].s)
b[j++]=a[i];/*找出成绩与min相等的学生的记录,存入结构体b中*/
returnj;
}
编写函数fun,其功能是计算:
sln
(1)ln
(2)ln(3)ln(m)s作为函数值返回。
在C语言中可调用log(n)函数求ln(n)。
log函数的引用说明为:
doublelog(doublex)。
例如,若m的值为20,则fun函数值为。
doublefun(intm)
{
inti;
doubles=;
for(i=1;i<=m;i++)
s=s+log(i);/*计算s=ln
(1)+In
(2)+In(3)+•••+ln(m)*/returnsqrt(s);/*对s求平方根并返回*/
}
函数fun的功能是:
将s所指字符串中下标为偶数的字符删除,剩余字符形成的新串放在t所
指数组中。
例如,当s所指字符串中的内容为"ABCDEFGHIJK"时,在t所指数组中的内容应是:
"BDFHJ"。
voidfun(char*s,chart[])
{
inti,j=O,k=strlen(s);/*k为字符串的长度*/
for(i=1;it[j++]=s[i];
t[j]='\O:
}
编写函数fun,其功能是:
将a、b中的两个两位正整数合并成一个新的整数放在c中。
合并
的方式是:
将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的十位和千位上。
例如,当a=45,b=12,调用该函数后c=2415。
voidfun(inta,intb,long*c)
{
*c=a%10+(b/10)*10+(a/10)*100+(b%10)*1000;
}
学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写
函数fun,其功能是:
按分数降序排列学生的记录,高分在前,低分在后。
voidfun(STRECa[])
{
inti,j;
STRECt;
for(i=1;ifor(j=0;jif(a[j].s{t=a[j];a[j]=a[j+1];a[j+1]=t;}/*按分数的高低排列学生的记录,高分在前
*/
}
学生的记录由学号和成绩组成。
N名学生的数据已放入主函数中的结构体数组s中,请编写
函数fun,其功能是:
把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分
的学生人数通过形参n传回,平均分通过函数值返回。
doublefun(STREC*a,STREC*b,int*n)
{
inti;
doubleav=;
*n=0;
for(i=0;iav=av+a[i].s;
av=av/N;/*求平均值*/
for(i=0;iif(av<=a[i].s)
{b[*n]=a[i];*n=*n+1;}/*将高于等于平均分的学生存入b所指存储单元中,并统
计人数*/
returnav;/*返回平均分*/
}
编写函数fun,其功能是:
将1到m之间(含m)能被7或11整除的所有整数放在数组a中,并通
过n返回这些数的个数。
例如,若传给m的值为50,则程序输出:
711142122283335424449
voidfun(intm,int*a,int*n)
{
inti,j=0;
for(i=1;i<=m;i++)
if(i%7==0||i%11==0)/*求出1到m(含m)之内能被7或11整除的所有整数放在数组a中*/
a[j++]=i;
*n=j;/*返回这些数的个数*/
}
N名学生的成绩已在主函数中放入一个带有头节点的链表结构中,h指向链表的头节点。
请
编写函数fun,其功能是:
找出学生的最高分,并由函数值返回。
doublefun(STREC*h)
{
doublemax=h->s;
while(h!
=NULL)/*通过循环找到最高分数*/
{if(maxs)max=h->s;
h=h->next;
}
returnmax;
}
请编写函数fun,其功能是:
找出一维整型数组元素中最大的值及其所在的下标,并通过形参传回。
数组元素中的值已在主函数中赋予。
主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。
voidfun(inta[],intn,int*max,int*d)
{
inti;\/
*max=a[0];
*d=0;
for(i=0;i指针d所指的单元*/
if(*max{*max=a[i];*d=i;}
}
编写函数fun,其功能是:
将s所指字符串中除了下标为奇数同时ASCII值也为奇数的字符之
外,其余的所有字符全部删除,串中剩余字符所形成的一个新串放在t所指的数组中。
例如,若s所指字符串的内容为:
"ABCDEFG12345",其中字符A的ASCII码值为奇数,但所在元素的下标为偶数,因此需要删除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其它依此类推。
最后t所指数组中的内容应为:
"135"o
voidfun(char*s,chart[])
{
inti,j=0,n;
n=strlen(s);
for(i=0;iif(i%2!
=0&&s[i]%2!
=0)
{t[j]=s[i];/*将下标为奇数同时ASCII码值为奇数的字符放入数组t中*/
j++;
}
t[j]='\0';/*最后加上结束标识符*/
}
编写函数fun,其功能是:
实现B=A+A',即将矩阵A加上A的转置,存放在矩阵B中。
计算结果在main函数中输出。
例如,输入下面的矩阵:
其转置矩阵为:
123147
456258
789369
程序输出:
2610
61014
101418
voidfun(inta[3][3],intb[3][3])
{
inti,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
b[i][j]=a[i][j]+a[j][i];/*把矩阵a加上a的转置,存放在矩阵b中*/
}
请编写函数fun,该函数的功能是:
将M亍N列的二维数组中的数据,按列的顺序依次放到一维数组中。
一维数组中数据的个数存放在形参n所指的存储单元中。
例如,若二维数组中的数据为
33333333
44444444
55555555
则一维数组中的内容应是:
334455334455334455334455
voidfun(int(*s)[10],int*b,int*n,intmm,intnn)
{
inti,j;
for(j=0;jfor(i=0;i{
b[*n]=*(*(s+i)+j);
*n=*n+1;/*通过指针返回元素个数*/
}
}