实验四答案

上传人:xzh****18 文档编号:34267998 上传时间:2018-02-22 格式:DOC 页数:21 大小:76.50KB
返回 下载 相关 举报
实验四答案_第1页
第1页 / 共21页
实验四答案_第2页
第2页 / 共21页
实验四答案_第3页
第3页 / 共21页
实验四答案_第4页
第4页 / 共21页
实验四答案_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《实验四答案》由会员分享,可在线阅读,更多相关《实验四答案(21页珍藏版)》请在金锄头文库上搜索。

1、实验四实验 1、 输入四个整数 a,b,c,d。从小到大打印。提示:排队。从矮到高。A b c 方法:用交换位置,把矮的调到前面。第一步:a 与 b 比较。If(ab)x=a;a=b;b=x;(调了 a 与 b)第二步:a 与 c 比较。If(ac) x=a;a=c;c=x;(没变)第三步:b 与 c 比较If(bc) x=b;b=c;c=x;(调了 b 与 c)Printf(“na=%d,b=%d,c=%d”,a,b,c);Main() int a,b,c,x;Scanf(“%d%d%d”,If(ab) x=a;a=b;b=x;If(ac) x=a;a=c;c=x;If(bc) x=b;b=

2、c;c=x;Printf(“na=%d,b=%d,c=%d”,a,b,c);实验 2、编写一个能 够进行加减法运算的程序。要求:从键盘任意输入两个实数,然后输入一个运算符,当运算符为“+”时对两个数进行加法运算,为“-”时对两个数进行减法运算,为“*”时对两个数进行* 法运算,为“”时对两个数进行法运算,其它符号时,只 显示输入的符号不进行运算。方法 1:用 if 语句Main() int a,b,c;Char ch; Scanf(“%d,%d,%c”,If(ch=+) c=a+b; printf(“n c=%d”,c);Else if(ch=-) c=a-b; printf(“n c=%d”

3、,c);Else if(ch=*) c=a*b; printf(“n c=%d”,c);Else if(ch=/) c=a/b; printf(“n c=%d”,c);Else printf(“n ch=%c”,ch);清屏幕语句:Clrscr();注意:输入时,字符不用空格格开.例输入 5 6+方法 2:用 switch()语句Main() int a,b,c;Char ch; Scanf(“%d%d%c”,switch(ch) case +: c=a-b; printf(“n c=%d”,c);break;case -: c=a-b; printf(“n c=%d”,c);break;ca

4、se *: c=a*b; printf(“n c=%d”,c);break;case /: c=a/b; printf(“n c=%d”,c);break;default: printf(“n ch=%c”,ch);If 语句容易错误 的地方:分析下面程序:Main() int a,b,c;Char ch; Scanf(“%d%d%c”,If(ch=+) c=a+b; printf(“n c=%d”,c);if(ch=-) c=a-b; printf(“n c=%d”,c);else printf(“n ch=%c”,ch);输入: 6 4- 结果:c=2输入: 6 4+ 结果:c=10Ch=

5、+ 为什么?原因是:少用一个否则条件。应是:If(ch=+) c=a-b; printf(“n c=%d”,c);else if(ch=-) c=a-b; printf(“n c=%d”,c);else printf(“n ch=%c”,ch);错误 2Main() int a,b,c;Char ch; Scanf(“%d%d%c”,If(ch=+) c=a+b; printf(“n c=%d”,c);Else if(ch=-) c=a-b; printf(“n c=%d”,c);错误信息 else 多余。 为什么?原因:if 和 else 语句只能管一条 语句,即:If(ch=+) c=a-

6、b; Else c=a-b; 如果写成:If(ch=+) c=a-b; If(ch=+) c=a+b; if 语句结束。 printf(“n c=%d”,c);因此,还有 else 就是多余的。Else c=a-b;要希望 if() else 语句管多条语句,加上花括号 。实验 3、编一程序 实现:判断用户输入的数是奇数(odd)或偶数(even),并输出相应的信息。/* program to determine if a number is even or odd */main()int testnum, remainder; printf(Enter your number to be t

7、ested.n);scanf(%d, remainder=testnum%2;if (remainder=0)printf(The number is even.n);if (remainder!=0)printf(The number is odd.n);_实验 4、从键盘输 入一个 4 位的正整数,要求: 分别输出每一位数字; 按逆序输出各位数字,例如原数为 4321,应输 出 1234。【提示】:将一个四位数 m 拆分成每一位数字的方法是:a 代表千位数字 a=m/1000; b 代表百位数字b=m%1000/100; c 代表十位数字 c=m%100/10;d 代表个位数字 d=m%1

8、0; 例:m=1234.a=1234/1000 1b=1234%1000/100 2c=1234%100/10 3d=1234%10 4Main() int m,a,b,c,d;Scanf(“%d”a=m/1000 b=m%1000/100 c=m%100/10 d=m%10 printf(“n %d%d%d%d” ,d,c,b,a);实验实验 6、求一元两次方程解:、求一元两次方程解:aX2+b*X+c=0 的求的求现现 在要求在要求 讨论讨论 各种情况解。各种情况解。1 a=02 b*b-4*a*c=03 b*b-4*a*c04 b*b-4*a*c=0) x1=(-b+sqrt(h)/(2

9、*a);x2=(-b-sqrt(h)/(2*a);printf(“n x1=%f x2=%f”,x1,x2);else r=-b/(2*a); 实部u=sqrt(fabs(h)/(2*a);虚部Printf(“n x1=%f +%fi”,r,u);Printf(“n x2=%f -%fi”,r,u);X1=4+6i x2=4-6i思考题 1:一、从键盘输 入一个不多于 4 位的正整数,要求:求出它是几位数;【说明】:应准备以下测试数据:1 要处理的数为 1 位正整数;2 要处理的数为 2 位正整数;3 要处理的数为 3 位正整数;4 要处理的数为 4 位正整数;提示:设 m 为 1-4 位整数

10、 .如果 m/1000!=0 则为 4 位数,以下类推.Main() int m;Scanf(“%d”If(m/1000!=0) printf(“m is 4”);Else If(m/100!=0) printf(“m is 3”);Else If(m/10!=0) printf(“m is 2”);Else printf(“m is 1”);二、运 输输 公司公司 对对 用用 户计户计 算运算运 费费 ,路程(S)越 远远 运运 费费 越低。 标标 准如下:准如下:S250km 没有折扣没有折扣250s500 2%折扣折扣500s1000 5%1000s2000 8%2000s3000 10

11、%3000s 15%设 p 为公里运费,w 为货物重量, s为距离,d 为 折扣, f 为总运费。则:f=p*w*s1-d).能否能否 转为转为 swith()计计 算?算?提示:将各不同条件转为不同整数.关键是找出距离区间的对应数.s/250 对应数S250km 0250s500 2%折扣折扣 1500s1000 5% 2,31000s2000 8% 4,5,6,72000s3000 10% 8,9,10,113000s 15% 其它程序:Main()int p,w,s,d,f,a;Scanf(“%p,%w,%s”,Switch(a)case 0:d=0;break;Case 1:d=0.02;break;Case 2:Case 3:d=0.05;break;Case 4:Case 5:Case 6:Case 7:d=0.08;break;Case 8:Case 9:Case 10:Case 11:d=0.1;break;Default:d=0.15;f=p*w*s*(1-d)printf(“n f=%f”,f);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题 > 高中试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号