C语言程序设计课程设计练习题.docVIP

  • 50
  • 0
  • 约 24页
  • 2017-02-08 发布于河南
  • 举报
C语言程序设计课程设计练习题

《C语言程序设计》练习题 输入10个整数,输出其中最大者和最小者。 解析:用数组保存这10个数,从第一个数开始做比较,若后一个数比前一个数小则调换位置。做如此的排序,则第一个数为最大者,最后一个数为最小者。 程序清单: #include stdio.h int main(void) { int a[10],i,j,t; printf(input 10 numbers:\n); for (i=0;i10;i++) scanf(%d,a[i]); for (i=0;i9;i++) for (j=0;j9-i;j++) if (a[j]a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;} printf(the max is:%d\n,a[9]); printf(the min is:%d\n,a[0]); return 0; } 运行结果: input 10 numbers: 1 2 3 4 5 6 7 8 66 55 the max is:66 the min is:1 判断输入的任意年是否为闰年。 解析:能被4整除而且不能被100整除或者能被400整除的年份是闰年。 程序清单: #include stdio.h int main(void) { int a; printf(请输入一个年份\n); scanf(%d,a); if (a%4==0a%100!=0||a%400==0) printf(是闰年\n); else printf(不是闰年\n); return 0; } 运行结果: 请输入一个年份 2004 是闰年 输入一个年、月、日,输出该日是本年中的第几天。 解析:主函数接收从键盘输入的日期,并调用sum-day和leap函数计算天数。 程序清单: #include stdio.h int main(void) { int sum_day(int,int); int leap(int year); int year,month,day,days; printf(input date (year,month,day):); scanf(%d,%d,%d,year,month,day); printf(%d/%d/%d,year,month,day); days=sum_day(month,day); if (leap(year)month=3) days=days+1; printf(is the %dth day in this year.\n,days); return 0; } int sum_day(int month,int day) { int day_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int i; for (i=1;imonth;i++) day+=day_tab[i]; return (day); } int leap(int year) { int leap; leap=year%4==0year%100!=0||year%400==0; return (leap); } 运行结果: input date (year,month,day):2012,5,27 2012/5/27is the 148th day in this year. 求两个正整数m和n的最大公约数和最小公倍数。 解析:用辗转相除法求之。 程序清单: #include stdio.h int main(void) { int n,m,t,p,r; printf(请输入两个正整数:); scanf(%d %d,n,m); if (nm) { t=n; n=m; m=t; } p=n*m; while (m!=0) { r=n%m; n=m; m=r; } printf(最大公约数是:%d\n,n); printf(最小公倍数是:%d\n,p/n); return 0; } 运行结果: 请输入两个正整数:12 8 最大公约数是:4 最小公倍数是:24 输出100~1000之间的素数输出。 解析:只能被1和本身整除的数为素数,设数n,用循环语句判断从2起到n-1的数是否被n整除,若没有可被n整除的数则n为素数。再依次找出100~1000之间的素数。 程序清单: 求解方程ax2+bx+c=0的根,其中a、b、c是键盘输入的双精度数。 解析:定义双精度变量a,b,c利用求根公式求解。

文档评论(0)

1亿VIP精品文档

相关文档