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

21、从键盘输入high,计算并输出high以内最大的10个素数之和。例如,输入high的值为100,则输出732。 #include

int fun( int high ) {

int sum = 0, n=0, j, yes; while ((high >= 2) && (n < 10)) {

yes = 1;

for (j=2; j<=high/2; j++ ) if (high % j ==0 )

{

yes=0; break; }

if (yes==1) {

sum +=high; n++; }

high--; }

return sum ; }

void main ( ) {

printf(\}

21 / 53

22、请编写函数float fun(int n),它的功能是:返回n(包括n)以内能被5或9整除的所有自然数的倒数之和。例如,n=20,返回0.583333。注意:要求n的值不大于100。 #include double fun(int n) {

int i;

double sum=0.0; if(n>0&&n<=100) {

for (i=1;i<=n;i++)

if(i%5==0||i%9==0)

sum+=1.0/i;

}

return sum; }

void main() {

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

printf(\}

22 / 53

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; }

void main( ) {

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

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

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

printf ( \ printf ( \ }

23 / 53

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

#include #include

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

void main() { }

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)); printf(“无法构成三角形”); else float p; p=(a+b+c)/2;

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

24 / 53