1函数fun的功能是:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的数组中。
s所指字符串中的内容为“ABCDEFG 123456”,其中字符A的ASCII码值为奇数,因此应当删除;其中字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;而字符2的ASCII码值为偶数,所在数组中的下标也为偶数,因此不应当删除,其他依此类推。最后,t所指的数组中的内容应是“246”。
int k,n=0;
for(k=0;k
if(k%2==0 && s[k]%2==0)
t[n++]=s[k];
t[n]= '\0';
2编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程cos(y)-y=0的一个实根。
Yn+1=cos(yn)
(1)取y1初值为0.0。
2)y0=y1,把y1的值赋给y0。
3)y1=cos(y0),求出一个新的y1。
4)若y0-y1的绝对值小于0.000001,则执行步骤(5),否则执行步骤(2)。
5)所求y1就是方程cos(x)-y=0的一个实根,作为函数值返回。
Result=0.739085。
float y1=0.0,y0;
do
{
y0=y1;
y1=cos(y0);
}
while(fabs(y0-y1)>=1e-6);
return y1;
3程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N], int n),函数的功能是:使N×N的二维数组左下三角元素中的值乘以n。
n的值为3,a数组中的值为:
1 9 7
2 3 8
4 5 6
a数组中的值应为:
3 9 7
6 9 8
12 15 18
int j,k;
for(j=0;j
for(k=0;k
a[j][k]*=n;
4请编写函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数值返回。
5门课程的成绩是90.5、72、80、61.5、55,则函数的值为:71.80。
float s=0.0;
int I;
for(i=0; i
s+=a[i];
return s/n;
5请编写一个函数unsigned fun(unsigned n),n是一个大于10的无符号整数,若n是m(m≥2)位的整数,则函数求出n的后m-1位的数作为函数值返回。
n的值为1234,则fun()函数值为234。
unsigned t,s=0,s1=1,p=0;
t=m;
while(t>10)
{
if(t/10)
p=t%10;
s=s+p*s1;
s1=s1*10;
t=t/10;
}
return s
6编写函数fun,其功能是:根据以下公式计算s,将结果作为函数值返回;n通过形参传入:
S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…n)
n的值为11时,函数的值为:1.833333
float s=0.0;
int t=0, k;
for(k=1; k<=n; k++)
{ t+=k; s+=1.0/t; }
return s;
7请编写函数fun,其功能是:计算并输出3到m之间所有素数的平方根之和。
m输入50后,则输出为s=63.665791。
int n,k,i;
double sum=0.0;
for(n=3;n<=m;n++)
{
k=sqrt(n);
for(i=2;i<=k;i++)
if(n%i==0) break;
if(i>=k+1)
sum+=sqrt(n);
}
return sum;
8请编写函数fun,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。
m的值为50,则程序输出:7 11 14 21 22 28 33 35 42 44 49
int k;
*n=0;
for(k=0; k<=m; k++)
if(k%7==0||k%11==0)
a[(*n)++]=k;
9N名学生的成绩已在主函数中放入一个带头节点的链表结构中,a指向链表的头节点。请编写函数fun,它的功能是:找出学生的最高分,由函数返回。
double max;
STR *q=a;
max=a->s;
do
{
if(q->s>max)
max=q->s;