C语言练习题集(带答案解析) 下载本文

精品文档

{ int i ;

long sum=1; for(i=1; i<=10; i=i+1) sum=sum*i; printf(

“the sum of odd is :%ld

” ,sum);

}

8. 从键盘上输入10个数,求其平均值。 #i nclude void mai n(){ int a,i,sum=0; float ave;; for(i=0;i<10;i++){ scan f(\sum+=a; }

ave=(float)sum/10; prin tf(\

}

9、 编程序实现求1-1000之间的所有奇数的和并输出。

#in clude void mai n() { int i, sum=O; for(i=1; i<1000; i=i+2) sum=sum+i; printf( }

10.

列:2/1 , 3/2 , 5/3 , 8/5 , 13/8 ,……编程求这个序列的前

#i nclude void mai n(){ in t 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; }

prin tf(\}

有一个分数序20项之和。

“the sum of odd is :%d

” ,sum);

11 ?从键盘输入两个数,求出其最大值(要求使用函数完成求最大值,并在主函数中调用

该函数)

#i nclude

float max(float x,float y); void mai n() { float a,b,m;

scan f(\m=max(a,b); prin tf(\}

float max(float x,float y) {

if (x>=y) return x; else return y; }

12. 编写程序,其中自定义一函数,用来判断一个整数是否为素数,主函数输入一个数,为素数。

#in clude #in clude

int lsPrimeNumber(i nt nu mber) { int i;

if (nu mber <= 1)

return 0;

for (i=2; i

if ((nu mber % i) == 0)

return 0;

}

return 1;} void mai n() { int n;

printf( “ Please in put n: ” ); seanf(

“ %d,&n);

if(lsPrimeNumber( n)) printf( “\\n%d is a Prime Number ” ,n); else printf( “ \\n%d is not a Prime Number ” ,n);}

13、 从键盘输入n个数存放在数组中,将最小值与第一个数交换,输出交换后的

#i nclude int main (void){ in t i,n ,il ndex,temp; int a[10]; prin tf(\scan f(\

prin tf(\”,n);

精品文档

输出是否个数。

n

精品文档

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

scan f(\iln dex=0; for(i=1;i<10;i++){

if(a[i]

iln dex=i;

}

temp=a[0];a[0]=a[il ndex];a[i In dex]=temp; for(i=0;i<10;i++) prin tf(\prin tf(\return 0; }

14. 用数组实现以下功能:输入

#i nclude void mai n() { 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); }

5个学生成绩,而后求出这些成绩的平均值并显示出来。

15、 输入一个正整数 n(n<=6),再输入nx n的矩阵,求其主对角线元素之和及副对角线元 素之和并

输出。

#in elude int main( void) {

int i,j, n, sum1=0,sum2=0; int a[6][ 6];

prin tf(\scan f(\prin tf(\for(i=0;i

for(j=0;j< n;j++){ sca nf(\if(i==j)

sum1+=a[i][j]; if(i+j==n-1) sum2+=a[i][j]; }

prin tf(\

精品文档

return 0; }

16、 从键盘输入30名学生的成绩数据,求其中的最高分、最低分和平均分。

(提示:用数组存放成绩数据) #i nclude #define M 30 void main ()

{ float score[M], max , min, aver; int i ; printf(

“ please in put score: \\n “ %f” , &score[i]);

”);

for(i=0; 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 #i nclude void mai n() {int a[N],i,temp; printf(

“ enter array a:\\n

” );

for(i=0;i

{ temp=a[i]; a[i]=a[N-i-1]; a[N-i-1]=temp; }

printf(

for(i=0;i

“ %4d' ,a[i]); \\\n Now, array a:\\n

”);

精品文档

printf( } 18. 输出。

“\\n ” );

从键盘上输入一个 2*3的矩阵,将其转秩后形成 3*2的矩阵

#i nclude void mai n() {int a[2][3], b[3][2],i,j; for(i=0;i<2;i++) for(j=0;j<3;j++)

scanf( “ %d ,&a[i][j]); for(i=0;i<3;i++) for(j=0;j<2;j++) b[i][j]=a[j][i]; for(i=0;i<3;i++) {for(j=0;j<2;j++) prin tf(\printf(\}

19、 从键盘输入10名学生的成绩数据,按成绩从高到低的顺序排列并输出。 组存放成绩数据)

#i nclude void mai n() { int a[10]; int i,j,temp;

prin tf(\for(i=0;i<10;i++) scan f(\prin tf(\for(i=1;i<10;i++) for(j=0;j<9;j++)

if(a[j]

{temp=a[j]; a[j]=a[j+1]; a[j+1]=temp;

}

for(i=0;i<10;i++) prin tf(\}

20、 从键盘上输入一个 4*3的整型数组,找出数组中的最小值及其在数组中的下标。

#in clude void mai n()

{ int a[4][3], i , j ,mi n, m, n; prin tf(\for (i=0; i<4; i++)

(提示:用数

” );