C语言程序设计练习题(含程序及参考答案) 下载本文

内容发布更新时间 : 2024/5/3 3:29:10星期一 下面是文章的全部内容请认真阅读。

printf(\ scanf(\ s=fun(n);

printf(\}

23、请编一个函数fun(int *a, int n, int *odd, int *even),函数的功能是分别求出数组中所有奇数之和以及所有偶数之和。形参n给出数组a中数据的个数;利用指针odd返回奇数之和,利用指针even返回偶数之和。

例如:数组中的值依次为: 1,9,2,3,11,6;则利用指针odd返回奇数之和24;利用指针even 返回偶数之和8。

#include #define N 20

fun ( int *a, int n, int *odd, int *even ) {

int i,sum_odd=0,sum_even=0; for(i=0;i

sum_odd+=a[i]; *odd=sum_odd; *even=sum_even; }

第 21 页 共 46 页

void main( ) {

int a[N]={1,9,2,3,11,6}, i, n=6, odd, even; printf ( \

for ( i = 0; i < n; i ++ ) printf ( \*(a+i) ); printf(\

fun ( a, n, &odd, &even );

printf ( \ printf ( \sum of even numbers: %d\\n\even ); }

24、编写计算三角形面积的程序,注意:将计算面积定义成函数float fun(int a,int b,int c)(a,b,c为三角形的三条边,返回三角形的面积),在主函数中调用fun #include #include

float fun(int a,int b,int c) {

float p; p=(a+b+c)/2;

return sqrt(p*(p-a)*(p-b)*(p-c)); }

void main() {

int a,b,c;

22

printf(“请输入三角形三条边:\\n”); scanf(“%d%d%d”,&a,&b,&d); if(a+b>c && b+c>a && a+c>b)

printf(“三角形面积为:%.2f”,fun(a,b,c)); else

printf(“无法构成三角形”); }

25、编写程序,求E=1+1/1!+1/2!+……+1/n!,要求最后一项的值小于10 #include double fun(int n) {

double m=1.0; int i=1; double p=1.0; do{

m=m+1.0/p;

i++; p=p*i;

} while(1.0/p>=1E-4);

return m; }

void main() {

第 23 页 共 46 页

-4

int n; double s;

printf(\ s=fun(n);

printf(\}

26、计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和。

例如,给定数组中的9个元素依次为12.0、34.0、4.0、23.0、34.0、45.0、18.0、3.0、11.0,输出应为:s=35.。 #include #include double fun(double x[9]) {

int i ;

double avg=0.0,sum=0.0; for (i=0;i<8;i++) {

avg=(x[i]+x[i+1])/2; sum+=sqrt(avg); }

return sum; }

void main() { double

24

s,a[9]={12.0,34.0,4.0,23.0,34.0,45.0,18.0,3.0,11.0};

int i;

printf(\ for(i=0;i<9;i++)printf(\printf(\ s=fun(a);

printf(\}

27、将1到m之内(含m)能被7或11整除的所有整数放在数组a中。

例如,若输入m的值为50,则在数组a中的值为: 7 11 14 21 22 28 33 35 42 44 49

#include #define M 100

void fun ( int m, int *a , int *n ) {

int i,count=0; for(i=1;i<=m;i++){

if(i%7==0 || i==0) { a[count++]=i; } } *n=count;

第 25 页 共 46 页