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

2010-2011 C语言程序试题及答案

int n; double s; 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 页

2010-2011 C语言程序试题及答案

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() {

第 22 页 共 46 页

2010-2011 C语言程序试题及答案

int a,b,c;

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

2010-2011 C语言程序试题及答案

{

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.951014。 #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() {

第 24 页 共 46 页