C语言基础练习练习题复习(带详解答案).doc 下载本文

内容发布更新时间 : 2024/11/2 15:15:28星期一 下面是文章的全部内容请认真阅读。

要求当输入每月上网小时数,显示该月总的上网费用(6分) #include void main() { int hour; float fee;

printf(“please input hour:\\n”); scanf(“%d”,&hour); if(hour<=10) fee=30;

else if(hour>=10&&hour<=50) fee=3*hour;

else fee=hour*2.5;

printf(“The total fee is %f”,fee); }

6. 从键盘输入10个整数,统计其中正数、负数和零的个数,并在屏幕上输出。 #include void main( ) {

int a, i,p=0,n=0,z=0;

printf(\

for(i=0;i<10;i++){ scanf(\ if (a>0) p++;

else if (a<0) n++; else z++; }

printf(\正数:], 负数:],零:]\\n\

}

7、编程序实现求1-10之间的所有数的乘积并输出。 #include void main( ) { 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个数,求其平均值。 #include void main(){

int a,i,sum=0; float ave;;

习题

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

scanf(\ sum+=a; }

ave=(float)sum/10;

printf(\}

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

#include void main( )

{ int i, sum=0;

for(i=1; i<1000; i=i+2) sum=sum+i;

printf(“the sum of odd is :%d”,sum); }

10.有一个分数序列:2/1,3/2,5/3,8/5,13/8,……编程求这个序列的前20项之和。 #include 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(\}

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

#include

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

scanf(\m=max(a,b);

printf(\}

float max(float x,float y) {

if (x>=y) return x;

习题

else

return y; }

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

#include #include

int IsPrimeNumber(int number) { int i;

if (number <= 1) return 0;

for (i=2; i

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

14. 用数组实现以下功能:输入5个学生成绩,而后求出这些成绩的平均值并显示出来。

#include 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 int main(void) {

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

习题

printf(\ scanf(\

printf(\ for(i=0;i

scanf(\ if(i==j)

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

sum2+=a[i][j]; }

printf(\ return 0; }

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

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

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

printf(“please input score: \\n”); for(i=0; i

scanf(“%f”, &score[i]); max=score[0]; min=score[0]; aver=score[0];

for(i=1; 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 void main()

{int a[N],i,temp;

printf(“enter array a:\\n”); for(i=0;i

scanf(“%d”,&a[i]);

习题

for(i=0;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

printf(“M”,a[i]); printf(“\\n”); }

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

#include void main()

{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++)

printf(\ printf(\n”); } }

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

#include void main() { int a[10]; int i,j,temp;

printf(\ for(i=0;i<10;i++) scanf(\ printf(\for(i=1;i<10;i++) for(j=0;j<9;j++) if(a[j]

习题