C语言编程练习60题

  • 格式:pdf
  • 大小:268.67 KB
  • 文档页数:16

综合编程题

1.编写函数fun求1000以内所有7的倍数之和。

int fun(int m){ }

2.用函数求一个N阶方阵右下三角元素的和(包括副对角线上的元素)。

#define N 3

int sum(int a[][N]){ }

3.编写函数fun,函数的功能是:求一组数中大于平均值的数的个数。例如:给定的一组数为

1,3,6,9,4,23,35,67,12,88时,函数值为3。

int fun(int a[],int n){ }

4.编写函数fun,函数的功能是:求给定正整数m以内的素数之和。例如:当m=20时,函数值为77。

int fun(int m){ }

5.求一批数中最大值和最小值的差。

int max_min(int a[],int n){ }

6.编写函数fun,函数的功能是:求一分数序列2/1,3/2,5/3,8/5,13/8,21/13…的前n项之和。

每一分数的分母是前两项的分母之和;每一分数的分子是前两项的分子之和。例如:求前20项之和

的值为32.660259。

float fun(int n){ }

7.编写函数fun,函数的功能是:求一个四位数的各位数字的立方和

int fun(int n){ }

8.编写函数fun,函数的功能是:求1到100之间的偶数之积。

double fun(int m){ }

9.计算并输出high以内最大的10个素数之和,high由主函数传给fun函数,若high的值为100,则函

数的值为732。

10. 将一个字符串中的前N个字符复制到一个字符数组中去,不许使用strcpy函数。

练习题:

2:将一个数组中的元素按逆序存放。

#define N 7

main ()

{

static int a[N]={12,9,16,5,7,2,1},k,s;

printf("\n the origanal array:\n");

for (k=0;k

printf("%4d",a[k]);

/***********SPACE***********/

for (k=0;k

{

s=a[k];

/***********SPACE***********/

a[k]=a[N-k-1];

/***********SPACE***********/

a[N-k-1]=s ;

}

printf("\n the changed array:\n");

for (k=0;k

/***********SPACE***********/

printf ("%4d",a[k]); }

3:产生10个[30,90]区间上的随机整数,然后对其用选择法进行由小到大的排序。

#include "stdlib.h"

main()

{

/***********SPACE***********/

int t;

int i,j,k;

int a[10];

for(i=0;i<10;i++)

a[i]=random(61)+30;

for(i=0;i<9;i++)

{

/***********SPACE***********/

k=i;

for(j=i+1;j<10;j++)

/***********SPACE***********/

if(a[k]>a[j]) k=j;

if(k!=i)

{

t=a[k];

a[k]=a[i];

a[i]=t;

}

}

/***********SPACE***********/

for(i=0;i<10;i++ )

printf("%5d",a[i]);

printf("\n");

}

5:数组名作为函数参数,求平均成绩。

float aver(float a[ ]) /*定义求平均值函数,形参为一浮点型数组名*/

{

int i;

float av,s=a[0];

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

/***********SPACE***********/

s+= a [i];

av=s/5;

/***********SPACE***********/

return av;

}

void main()

{

float sco[5],av;

int i;

printf("\ninput 5 scores:\n");

for(i=0;i<5;i++)

/***********SPACE***********/

scanf("%f",&sco[i]);

/***********SPACE***********/

av=aver(sco);

printf("average score is %5.2f\n",av);

getch();

}

7:输出Fibonacci数列的前15项,要求每行输出5项。 Fibonacci数列:1,1,2,3,5,8,13...........

#include

main()

{

/***********SPACE***********/

int fib [14],i;

fib[0]=1;fib[1]=1;

for (i=2;i<15;i++)

/***********SPACE***********/

fib[i]= fib[i-2]+fib[i-1];

for(i=0;i<15;i++)

{

printf("%d\t",fib[i]);

/***********SPACE***********/

if (i%5 == 4 ) printf("\n");

}

}

9:通过函数的递归调用计算阶乘。

long power(int n)

{

long f;

if(n>1)

/***********SPACE***********/

f= power(n-1)*n;

else

f=1;

return(f);

}

main()

{

int n;

long y;

printf("input a inteager number:\n");

/***********SPACE***********/

scanf("%d",&n);

y=power(n);

/***********SPACE***********/

printf("%d!=%ld\n",n, y);

getch();

}

10:计算圆周率的近似值。

#include

#include

main()

{

int s;

/***********SPACE***********/

float n, pi;

double t;

t=1;pi=0;n=1;s=1;

/***********SPACE***********/

while(fabs(t)>=2e-6)

{

pi+=t;n+=2;s=-s;t=s/n;

}

/***********SPACE***********/ pi*= 4;

printf("pi=%.6f\n",pi);

}

11:删除字符串中的数字字符。例如:输入字符串:48CTYP9E6,则输出:CTYPE。

#include

/***********SPACE***********/

void fun (char *s)

{

char *p=s;

while(*p)

if((*p>='0')&&(*p<='9')) p++;

/***********SPACE***********/

else *s++=*p++;

/***********SPACE***********/

*s='\0';

}

main( )

{

char item[100] ;

printf("\nEnter a string: ");

gets(item); fun(item);

printf("\nThe string:\"%s\"\n",item);

}

12:计算并输出500以内最大的10个能被13或17整除的自然数之和。

#include

#include

/***********SPACE***********/

int fun(int k )

{

int m=0, mc=0, j, n;

/***********SPACE***********/

while (k >= 2 && mc < 10)

{

/***********SPACE***********/

if (k%13 == 0 || k%17 == 0)

{

m=m+k;

mc++;

}

k--;

}

/***********SPACE***********/

return m;

}

main ( )

{

clrscr( );

printf("%d\n", fun (500));

}

13:统计一个字符串中的字母、数字、空格和其它字符的个数。

#include "stdio.h"

main ()

{

char s1[80];int a[4]={0};