综合编程题
1.编写函数fun求1000以内所有7的倍数之和。
int fun(int m){ }
2.用函数求一个N阶方阵右下三角元素的和(包括副对角线上的元素)。
#define N 3
int sum(int a[][N]){ }
c语言数组最大值最小值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<N;k++)
printf("%4d",a[k]);
/***********SPACE***********/
for (k=0;k<N/2; 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<N;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, #include <stdio.h>
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 <stdio.h>
#include <math.h>
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***********/
printf("pi=%.6f\n",pi);
}
11:删除字符串中的数字字符。例如:输入字符串:48CTYP9E6,则输出:CTYPE。#include <stdio.h>
/***********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 <conio.h>
#include <stdio.h>
/***********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};
/***********SPACE***********/
void fun(char s[],int b[]);
gets(s1);
/***********SPACE***********/
fun(s1,a);
puts(s1);
for(k=0;k<4;k++)
printf("%4d",a[k]);
}
void fun(char s[],int b[])
{
int i;
for (i=0;s[i]!='\0';i++)
if ('a'<=s[i]&&s[i]<='z'||'A'<=s[i]&&s[i]<='Z')
b[0]++;
/
***********SPACE***********/
else if ('0'<=s[i] && s[i]<='9')
b[1]++;
/***********SPACE***********/
else if (s[i] == ' ' )
b[2]++;
else
b[3]++;
}
14:求两个非负整数的最大公约数和最小公倍数。
main()
{
int m,n,r,p,gcd,lcm;
scanf("%d%d",&m,&n);
if(m<n) {p=m,m=n;n=p;}
p=m*n;
r=m%n;
/***********SPACE***********/
while(r != 0)
{
/***********SPACE***********/
m=n;n=r; r=m%n;
}
/***********SPACE***********/
gcd= n;
lcm=p/gcd;
/***********SPACE***********/
printf("gcd=%d,lcm=%d\n", gcd,lcm);
}
15:以每行5个数来输出300以内能被7或17整除的偶数,并求出其和。#include <stdio.h>
#include <conio.h>
main()
{
int i,n,sum;
sum=0;
/***********SPACE***********/
n=0;
/***********SPACE***********/
for(i=1; i<=300 ;i++)
/***********SPACE***********/

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。