收藏 分享(赏)

实验四 选择结构程序设计答案.docx

上传人:HR专家 文档编号:6636573 上传时间:2019-04-19 格式:DOCX 页数:15 大小:37.31KB
下载 相关 举报
实验四  选择结构程序设计答案.docx_第1页
第1页 / 共15页
实验四  选择结构程序设计答案.docx_第2页
第2页 / 共15页
实验四  选择结构程序设计答案.docx_第3页
第3页 / 共15页
实验四  选择结构程序设计答案.docx_第4页
第4页 / 共15页
实验四  选择结构程序设计答案.docx_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、f2dbef6f1254fa57f62b784c8862cc8c.pdf 答案1实验四 选择结构程序设计答案编程练习 1:简单 if 语句的用法编写并调试程序:从键盘输入一个任意大小的实数 x,如果满足如下条件:-29.5x29.5 则输出 x 及其绝对值。(以 simple_if.c 文件名保存)源程序:#include #includevoid main( ) double x;printf(“请输入一个任意大小的实数 xn“);scanf(“%lf“, if(x=-29.5printf(“请输入一个任意大小的实数 xn“);scanf(“%lf“, if (x=-29.5)char ch

2、;printf(“请输入任意两个实数和一个数学运算符(如:34.5+63.9)n“);scanf(“%lf%c%lf“, if(ch!=+else if(ch=+)printf(“输入的运算符为%c 号,运算结果是: %lf+%lf=%lfn“,ch,x,y,x+y);elseprintf(“输入的运算符为%c 号,运算结果是: %lf-%lf=%lfn“,ch,x,y,x-y);源程序:(方法 2:if 子句中嵌套 if-else 结构)#includevoid main()double x, y;char ch;printf(“请输入任意两个实数和一个数学运算符(如:34.5+63.9)n

3、“);scanf(“%lf%c%lf“, if(ch=+|ch=-)if(ch=+)printf(“输入的运算符为%c 号,运算结果是: %lf+%lf=%lfn“,ch,x,y,x+y);else printf(“输入的运算符为%c 号,运算结果是: %lf-%lf=%lfn“,ch,x,y,x-y);elseprintf(“输入的运算符为%c 号,不进行运算n“,ch); 源程序:(方法 3:使用 switch 语句,虽不符合练习要求,但对于此问题的确是一种好方法!)#includevoid main()double x, y;char ch;printf(“请输入任意两个实数和一个数学运

4、算符(如:34.5+63.9)n“);f2dbef6f1254fa57f62b784c8862cc8c.pdf 答案3scanf(“%lf%c%lf“, switch(ch)case +: printf(“输入的运算符为%c 号,运算结果是: %lf+%lf=%lfn“,ch,x,y,x+y);break;case -: printf(“输入的运算符为%c 号,运算结果是: %lf-%lf=%lfn“,ch,x,y,x-y);break;default: printf(“输入的运算符为%c 号,不进行运算n“,ch); 编程练习 4:实验教材:(P7-11:实验 3 选择结构程序设计)二、实验

5、内容第 10 题(1) 有以下函数:y = 135/x)0(1x编程求 x=0.5、 5、 50 时 y 的值。源程序:(方法 1:else 子句中嵌套 if-else 结构)#include #includevoid main( ) double x,y;printf(“请输入分段函数自变量 x 的值(任意实数)n“);scanf(“%lf“, if (x=1printf(“请输入分段函数自变量 x 的值(任意实数)n“);scanf(“%lf“, if (x#includevoid main( ) double x,y;printf(“请输入分段函数自变量 x 的值(任意实数)n“);sc

6、anf(“%lf“, if (x#include void main( ) double a,b,c,p;printf(“请任意输入三个实数:n“);f2dbef6f1254fa57f62b784c8862cc8c.pdf 答案5scanf(“%lf%lf%lf“, if (a+bc)p=(a+b+c)/2;printf(“其面积为%.2lfn“, sqrt(p*(p-a)*(p-b)*(p-c);elseprintf(“以这三个实数为边长不能构成三角形n“);(3) 输入年、月、日,计算出该日是该年的第几天源程序:(方法 1)#include“stdio.h“main()int y,m,d,

7、days;printf(“Please input date(yyyy-mm-dd):n“);a1: scanf(“%d-%d-%d“,if(y10000|m12|d31) printf(“data error! please input again:n“);goto a1;if(y%4=0if(m=2) days=31+d;if(m=3) days=31+29+d;if(m=4) days=31+29+31+d;if(m=5) days=31+29+31+30+d;if(m=6) days=31+29+31+30+31+d;if(m=7) days=31+29+31+30+31+30+d;i

8、f(m=8) days=31+29+31+30+31+30+31+d;if(m=9) days=31+29+31+30+31+30+31+31+d;if(m=10) days=31+29+31+30+31+30+31+31+30+d;if(m=11) days=31+29+31+30+31+30+31+31+30+31+d;if(m=12) days=31+29+31+30+31+30+31+31+30+31+30+d;else if(m=1) days=d;if(m=2) days=31+d;if(m=3) days=31+28+d;if(m=4) days=31+28+31+d;if(m=

9、5) days=31+28+31+30+d;if(m=6) days=31+28+31+30+31+d;if(m=7) days=31+28+31+30+31+30+d;if(m=8) days=31+28+31+30+31+30+31+d;if(m=9) days=31+28+31+30+31+30+31+31+d;f2dbef6f1254fa57f62b784c8862cc8c.pdf 答案6if(m=10) days=31+28+31+30+31+30+31+31+30+d;if(m=11) days=31+28+31+30+31+30+31+31+30+31+d;if(m=12) da

10、ys=31+28+31+30+31+30+31+31+30+31+30+d;printf(“n%d-%d-%d is No. %d.n“,y,m,d,days);源程序:(方法 2)#includemain()int day,month,year,sum,leap;printf(“Please input date(yyyy-mm-dd):n“);a1: scanf(“%d-%d-%d“,if(year10000|month12|day31) printf(“data error! please input again:n“);goto a1;switch(month) /*先计算某月以前月份

11、的总天数 */case 1: sum=0;break;case 2: sum=31;break;case 3: sum=59;break;case 4: sum=90;break;case 5: sum=120;break;case 6: sum=151;break;case 7: sum=181;break;case 8: sum=212;break;case 9: sum=243;break;case 10: sum=273;break;case 11: sum=304;break;case 12: sum=334;break;default: printf(“data error“);b

12、reak;sum=sum+day; /*再加上某天的天数*/if(year%400=0|(year%4=0 elseleap=0;if(leap=1printf(“It is the %dth day.n“,sum);源程序:(方法 3:需要用到循环语句 )#include“stdio.h“main()int i,y,m,d,days;f2dbef6f1254fa57f62b784c8862cc8c.pdf 答案7printf(“Please input date(yyyy-mm-dd):n“);a1: scanf(“%d-%d-%d“,if(y10000|m12|d31) printf(“d

13、ata error! please input again:n“);goto a1;days=d; if(y%4=0i#includevoid main()float a, b, c, p, x1, x2;printf(“请输入一元二次方程的三个系数 a, b, c 的值:n“);scanf(“%f%f%f“,p= b*b-4*a*c;if(p #include f2dbef6f1254fa57f62b784c8862cc8c.pdf 答案8void main()int num, a, b, c;printf(“请任意输入一个三位正整数n”);scanf(“%d”, a=num/100;b=n

14、um/10%10;c=num%10;if(num=pow(a,3)+pow(b,3)+pow(c,3) printf(“%d 是水仙花数。n“,num);else printf(“%d 不是水仙花数。n“,num);注意:(1) 三位的水仙花数有 153、370、371、407(2) 学了循环以后如何编程呢附加编程题(1) 给出一个不多于 3 位的正整数,编写程序: 求出它是几位数。 分别打印出每一位数字。 按反序打印出每位数字。例如:原数是 123,应输出 321。源程序:(方法 1:使用三个并列的 if 结构)#include“stdio.h“main()int n;printf(“请输入

15、一个不多三位的正整数n“);label: scanf(“%d“,if(n999)printf(“数据错误!请重新输入:“); goto label;if(n=1 goto label;if(n=1goto a1;if(m=2)if(y%4=0else d=28;else if(m=4|m=6|m=9|m=11) d=30;else d=31;printf(“%d-%d is %d days.n“,y,m,d); 源程序:(方法 1)#include“stdio.h“main()int y,m,d,days;printf(“Please input date(yyyy-mm-dd):n“);a1

16、: scanf(“%d-%d-%d“,if(y10000|m12|d31) printf(“data error! please input again:n“);goto a1;if(y%4=0if(m=2) days=31+d;f2dbef6f1254fa57f62b784c8862cc8c.pdf 答案11if(m=3) days=31+29+d;if(m=4) days=31+29+31+d;if(m=5) days=31+29+31+30+d;if(m=6) days=31+29+31+30+31+d;if(m=7) days=31+29+31+30+31+30+d;if(m=8) d

17、ays=31+29+31+30+31+30+31+d;if(m=9) days=31+29+31+30+31+30+31+31+d;if(m=10) days=31+29+31+30+31+30+31+31+30+d;if(m=11) days=31+29+31+30+31+30+31+31+30+31+d;if(m=12) days=31+29+31+30+31+30+31+31+30+31+30+d;else if(m=1) days=d;if(m=2) days=31+d;if(m=3) days=31+28+d;if(m=4) days=31+28+31+d;if(m=5) days=

18、31+28+31+30+d;if(m=6) days=31+28+31+30+31+d;if(m=7) days=31+28+31+30+31+30+d;if(m=8) days=31+28+31+30+31+30+31+d;if(m=9) days=31+28+31+30+31+30+31+31+d;if(m=10) days=31+28+31+30+31+30+31+31+30+d;if(m=11) days=31+28+31+30+31+30+31+31+30+31+d;if(m=12) days=31+28+31+30+31+30+31+31+30+31+30+d;printf(“n%

19、d-%d-%d is No. %d.n“,y,m,d,days);源程序:(方法 2)#includemain()int day,month,year,sum,leap;printf(“Please input date(yyyy-mm-dd):n“);a1: scanf(“%d-%d-%d“,if(year10000|month12|day31) printf(“data error! please input again:n“);goto a1;switch(month) /*先计算某月以前月份的总天数 */case 1: sum=0;break;case 2: sum=31;break;

20、case 3: sum=59;break;case 4: sum=90;break;case 5: sum=120;break;case 6: sum=151;break;case 7: sum=181;break;f2dbef6f1254fa57f62b784c8862cc8c.pdf 答案12case 8: sum=212;break;case 9: sum=243;break;case 10: sum=273;break;case 11: sum=304;break;case 12: sum=334;break;default: printf(“data error“);break;su

21、m=sum+day; /*再加上某天的天数*/if(year%400=0|(year%4=0 elseleap=0;if(leap=1printf(“It is the %dth day.n“,sum);源程序:(方法 3:需要用到循环语句 )#include“stdio.h“main()int i,y,m,d,days;printf(“Please input date(yyyy-mm-dd):n“);a1: scanf(“%d-%d-%d“,if(y10000|m12|d31) printf(“data error! please input again:n“);goto a1;days=

22、d; if(y%4=0i2 z=365l*(year-1)+y+(day-1)+x; return(z); f2dbef6f1254fa57f62b784c8862cc8c.pdf 答案14long xingqi(int year,int month,int day) long a,b,c; a=days(1900,1,1); b=days(year,month,day); c=1+(b-a)%7+7)%7; return(c); main() long a,b,c; int year,month,day=0; printf(“请输入日期(yyyy-mm-dd):n“);a1: scanf(“

23、%d-%d-%d“,if(year10000|month12|day31) printf(“日期错误! 请重新输入:n“);goto a1;printf(“n“); printf(“%d 年%d 月%d 日是星期“,year,month,day); c=xingqi(year,month,day); if(c=1)printf(“一。nn“); if(c=2)printf(“二。nn“);if(c=3)printf(“三。nn“);if(c=4)printf(“四。nn“);if(c=5)printf(“五。nn“);if(c=6)printf(“六。nn“);if(c=7)printf(“日

24、。nn“);(3) 输入 3 个实数,编程判断能否以它们为边长构成三角形,若能,再说明是何种三角形(等边三角形、等腰三角形、直角三角形或一般三角形)源程序:#include void main( ) double a,b,c;printf(“请任意输入三角形的三边长:n“);scanf(“%lf%lf%lf“, if (a+bc)if(a=bif(a*a+b*b=c*c)|(b*b+c*c=a*a)|(c*c+a*a=b*b)f2dbef6f1254fa57f62b784c8862cc8c.pdf 答案15printf(“此三角形是直角三角形n“);else if(a!=belseprintf(“不构成三角形n“);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报