10.有一个分数序列:2/1,3/2,5/3,8/5,13/8,……编程求这个序列的前20项之和。
#include <stdio.h>
void main(){
int i,t,n=20;
float a=2,b=1,s=0;
for(i=1;i<=n;i )
{s=s a/b;
t=a;
a=a b;
b=t;
}
printf("sum=%6.2f",s);
}
11.从键盘输入两个数,求出其最大值(要求使用函数完成求最大值,并在主函数中调用该函数)
#include <stdio.h>
float max(float x,float y);
void main()
{ float a,b,m;
scanf("%f,%f",&a,&b);
m=max(a,b);
printf("Max is %f\n",m);
}
float max(float x,float y)
{
if (x>=y)
return x;
else
return y;
}
12. 编写程序,其中自定义一函数,用来判断一个整数是否为素数,主函数输入一个数,输出是否为素数。
#include <math.h>
#include <stdio.h>
int IsPrimeNumber(int number)
{ int i;
if (number <= 1)
return 0;
for (i=2; i<sqrt(number); i )
{ if ((number % i) == 0)
return 0; }
return 1;}
void main()
{ int n;
printf(“Please input n:”);
scanf(“%d”,&n);
if(IsPrimeNumber(n))
printf(“\n%d is a Prime Number”,n);
else printf(“\n%d is not a Prime Number”,n);}
13、从键盘输入n个数存放在数组中,将最小值与第一个数交换,输出交换后的n个数。
#include <stdio.h>
int main(void){
int i,n,iIndex,temp;
int a[10];
printf("Enter n: ");
scanf("%d", &n);
printf("Enter %d integers:\n ",n);
for(i=0;i<n;i )
scanf("%d", &a[i]);
iIndex=0;
for(i=1;i<10;i ){
if(a[i]<a[iIndex]) iIndex=i;
}
temp=a[0];a[0]=a[iIndex];a[iIndex]=temp;
for(i=0;i<10;i )
printf("%5d", a[i]);
printf("\n");
return 0;
}
14. 用数组实现以下功能:输入5个学生成绩,而后求出这些成绩的平均值并显示出来。
#include <stdio.h>
void main()
{ int a[5], s=0;
int i;
for(i=0;i<5;i )
scanf(“%d”,&a[i]);
for(i=0;i<5;i )
s=s a[i];
printf(“result=%f”,s/5.0);
}
15、输入一个正整数n(n<=6),再输入n×n的矩阵,求其主对角线元素之和及副对角线元素之和并输出。
#include <stdio.h>
int main(void) {
int i,j,n,sum1=0,sum2=0;
int a[6][6];
printf("Enter n(n<=6):");
scanf("%d",&n);
printf("Enter data:\n");
for(i=0;i<n;i )
for(j=0;j<n;j ){
scanf("%d",&a[i][j]);
if(i==j)
sum1 =a[i][j];
if(i j==n-1)
sum2 =a[i][j];
}
printf("sum1=%d,sum2=%d",sum1,sum2);
return 0;
}
16、从键盘输入30名学生的成绩数据,求其中的最高分、最低分和平均分。
(提示:用数组存放成绩数据)
#include<stdio.h>
#define M 30
void main ( )
{ float score[M], max , min, aver;
int i ;
printf(“please input score: \n”);
for(i=0; i<M ; i )
scanf(“%f”, &score[i]);
max=score[0];
min=score[0];
aver=score[0];
for(i=1; i<M; i )
{ if (max < score[i]) max= score[i];
if (min>score[i]) min=score[i];
aver =score[i];
}
printf(“max=%f, min=%f,aver=%f”, max, min, aver/M);
}
17.将一个有5个元素的数组中的值(整数)按逆序重新存放。
例: 原来顺序为:8、6、5、4、1,要求改为1、4、5、6、8
#define N 5
#include <stdio.h>
void main()
{int a[N],i,temp;
printf(“enter array a:\n”);
for(i=0;i<N;i )
scanf(“%d”,&a[i]);
for(i=0;i<N;i )
{ temp=a[i];
a[i]=a[N-i-1];
a[N-i-1]=temp;
}
printf(“\n Now, array a:\n”);
for(i=0;i<N;i )
printf(“%4d”,a[i]);
printf(“\n”);
}