收藏 分销(赏)

C语言练习题(带详解答案)89211.doc

上传人:二*** 文档编号:4509667 上传时间:2024-09-26 格式:DOC 页数:17 大小:89.50KB 下载积分:5 金币
下载 相关 举报
C语言练习题(带详解答案)89211.doc_第1页
第1页 / 共17页
本文档共17页,全文阅读请下载到手机保存,查看更方便
资源描述
一、 编程题 1.输入2个整数,求两数的平方和并输出。 #include <stdio.h> int main(void) { intt a ,b,s; printf("please input a,b:\n"); scanf("%d%d”,&a,&b); s=a*a+b*b; printf("the result is %d\n",s); return 0; } 2. 输入一个圆半径r,当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。 #include <stdio.h> #define PI 3.14 int main(void) { double r ,area , girth; printf("please input r:\n"); scanf("%lf",&r); if (r>=0) { area =PI*r*r; girth =2*PI*r ; printf("the area is %.2f\n", area); printf("the girth is %.2f\n", girth);} else printf("Input error!\n"); return 0; } 3、已知函数y=f(x),编程实现输入一个x值,输出y值。 2x+1 (x<0) y= 0 (x=0) 2x-1 (x>0) #include <stdio.h> void main() { int x,y; scanf(“%d”,&x); if(x<0) y=2*x+1; else if(x>0) y=2*x-1; else y=0; printf(“%d”,y); } 4.从键盘上输入一个百分制成绩score,按下列原则输出其等级:score≥90,等级为A;80≤score<90,等级为B;70≤score<80,等级为C;60≤score<70,等级为D;score<60,等级为E。 #include <stdio.h> void main(){ int data; char grade; printf("Please enter the score:"); scanf("%d”, &data); switch(data/10) { case 10: case 9 : grade=’A’; break; case 8: grade=’B’; break; case 7: grade=’C’; break; case 6: grade=’D’; break; default: grade=’E’; } printf("the grade is %c”,grade); } 5. 编一程序每个月根据每个月上网时间计算上网费用,计算方法如下: 要求当输入每月上网小时数,显示该月总的上网费用(6分) #include <stdio.h> 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 <stdio.h> void main( ) { int a, i,p=0,n=0,z=0; printf("please input number"); for(i=0;i<10;i++){ scanf("%d,",&a); if (a>0) p++; else if (a<0) n++; else z++; } printf("正数:%5d, 负数:%5d,零:%5d\n",p,n,z); } 7、编程序实现求1-10之间的所有数的乘积并输出。 #include <stdio.h> 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 <stdio.h> void main(){ int a,i,sum=0; float ave;; for(i=0;i<10;i++){ scanf("%d",&a); sum+=a; } ave=(float)sum/10; printf("ave = %f\n", ave); } 9、编程序实现求1-1000之间的所有奇数的和并输出。 #include <stdio.h> 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 <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 "); for(i=0;i<n;i++) scanf("%d", &a[i]); iIndex=0; for(i=1;i<n;i++){ if(a[i]<a[iIndex]) iIndex=i; } temp=a[0];a[0]=a[iIndex];a[iIndex]=temp; for(i=0;i<n;i++) printf("%5d", a[i]); printf("\n"); return 0; } 第二种解法 利用函数 #include<stdio.h> int comp(int arry[], int n) { int i,index,temp; printf("为数组赋值:\n"); for(i=0;i<n;i++) { scanf("%d",&arry[i]); } for(i=1,index=0;i<=n-1;i++) { if(arry[i]<arry[index]) { index=i; } } temp=arry[0];arry[0]=arry[index];arry[index]=temp; for(i=0;i<n;i++) { printf("%d ",arry[i]); } return 0; } main() { int n; int a[10]; printf("为n赋值:\n"); scanf("%d",&n); comp(a,n);} 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”); } 18.从键盘上输入一个2*3的矩阵,将其转秩后形成3*2的矩阵输出。 #include <stdio.h> 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("%5d",b[i][j]); printf("\n”); } } 19、从键盘输入10名学生的成绩数据,按成绩从高到低的顺序排列并输出。(提示:用数组存放成绩数据) #include <stdio.h> void main() { int a[10]; int i,j,temp; printf("input score:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("\n"); for(i=1;i<10;i++) for(j=0;j<9;j++) if(a[j]<a[j+1]) {temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } for(i=0;i<10;i++) printf("%d,",a[i]); } 20、从键盘上输入一个4*3的整型数组,找出数组中的最小值及其在数组中的下标。 #include <stdio.h> void main() { int a[4][3], i , j ,min,m,n; printf("Please enter data:"); for (i=0; i<4; i++) for (j=0; j<3; j++) scanf(“%d”,& a[i][j]); min=a[0][0]; m=0; n=0; for (i=0; i<4; i++) for (j=0; j<3; j++) if (a[i][j]<min) {min= a[i][j]; m=i; n=j; } printf("the min is %d\n, min); printf("posion is %d %d \n, m,n); }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服