C语言问题 C++

1.改错题
1)下列程序的功能是:数组a中存放了一个学生5门课程的成绩,求平均成绩。
但程序中存在若干错误,请你纠正
#include<stdio.h>
float aver(char a[5])
{
int i;
float av,s=a[0];
for(i=1;i<5;i++)
s=s+a[i];
av=s/5;
return av;
}
void main()
{
float sco[5],av;
printf("\ninput 5 scores:\n");
for(i=2;i<5;i++)
scanf("%f",&sco[i]);
av=aver(sco);
printf("average score is %5.2f",av);
}
2)下列程序的功能是:从键盘输入一个数字n,计算从0+1+。。。。+n的值,并输出。但程序中存在若干错误,请你纠正#include<stdio.h>
void main()
{
int n
printf("input number\n");
scanf("%d",n);
s(n);
printf("n=%d\n",n);
}
int s(char n)
{
int i;
for(i=n-1;i>=1;i--)
n=n+i;
printf("n=%d\n",n);
}
3)本程序用于实数返还指定小数位数的四舍五入后的值。但程序中存在若干错误,请你纠正
#include<stdio.h>
int round(float x,int n)
{ float z;
long i;
i=pow(10,n);
z=(long)(x*i+0.5)/(float)i;
return i;
}
main()
{ float x,y;
int n;
printf("input x n\n");
scanf("%f%d",&x,&n);
y=round(x,n);
printf("x=%f, round(%f)=%f\n",x,x,y);
}
2.程序填空
1)avg函数的作用是计算数组array的平均值返回,请填(3)空使程序完整。
float avg(float array[10])
{ int i ;
float avgr , sum=0 ;
for (i=1; _________________; i++)
sum+=______________;
avgr = sum / 10 ;
___________________;
}
2)以下程序的功能是:计算函数 ,请填(3)空使程序完整。
# include <stdio.h>
_________________________________;
main ( )
{ float x,y,z,f ;
scanf("%f,%f,%f",&x,&y,&z);
f = fun (________________________);
f += fun (_______________________);
printf("f=%d",f);
}
float fun(float a,float b)
{ return (a/b) ;
}
3)del函数的作用是删除有序数组a中的指定元素x,n为数组a的元素个数,函数返回删除后的数组a元素个数,请填(2)空使程序完整。
int del (int a[10],int n,int x)
{ int p=0,i ;
while (x>=a[p]&&p<n) _______________________;
for (i=p-1; i<n; i++) ________________________;
return (n-1) ;
}
3.编程题
(1)编写程序,计算s=52!+62!。
要求:除主函数外,另编写两个函数,一个是用来计算平方值的函数,另一个是用来计算阶乘值的函数。
(2)编写一个程序,求两个正数的最大公约数和最小公倍数。
要求:写两个函数,分别求两个正数的最大公约数和最小公倍数,用主函数调用这两个函数并输出结果。两个正数由键盘输入。
(3)编写一个程序,输入正方体的长宽高l,w,h。求体积及三个面x*y,x*z,y*z的面积。
要求:写一个函数求体积及三个面的面积,主函数用于输入数据,调用这两个函数并输出结果。

五、编写strcpy函数(10分)
已知strcpy函数的原型是
char
*strcpy(char
*strDest,
const
char
*strSrc);
其中strDest是目的字符串,strSrc是源字符串。

(1)不调用C++/C的字符串库函数,请编写函数
strcpy
这是我写的:有什么错误再稍微改改就行
char strcpy(char strD[],
char strS[])
{

char
*strDest, *strSrc;
*strDest=strD;
*strSrc=strS;
while(strDest++=strSrc++)
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-05-14
第一题
#include<stdio.h>
float aver(float a[5])
{
int i;
float av,s=a[0];
for(i=1;i<5;i++)
s=s+a[i];
av=s/5;
return av;
}
void main()
{
float sco[5],av;
printf("\ninput 5 scores:\n");
for(int i=0;i<5;i++)
scanf("%f",&sco[i]);
av=aver(sco);
printf("average score is %5.2f",av);
}
第二
#include "stdio.h"
int s(int n)
{
int sum=0;
int i;
for(i=n;i>=1;i--)
sum=sum+i;
return sum;
//printf("n=%d\n",n);
}

void main()
{
int n;
printf("input number\n");
scanf("%d",&n);

printf("n=%d\n",s(n));
}
相似回答