实验3选择结构程序设计_第1页
实验3选择结构程序设计_第2页
实验3选择结构程序设计_第3页
实验3选择结构程序设计_第4页
实验3选择结构程序设计_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言程序设计实验报告实验3选择结构程序设计一. 实验目的1了解c语言表示逻辑量的方法(以o代表“假”,以非o代表“真”)。2. 学会正确使用逻辑运算符和逻辑表达式3. 熟练掌握讦语句和switch语句;4. 结合程序掌握一些简单的算法。5. 学习调试程序二. 实验内容和步骤1.基础知识和概念(1) 分析下面程序,掌握关系表达式的运算规则。#include int main()char ch=w;int a=2,b=3,c=l/d/x=10;printf(%d,ab=c);printf(%d,d=ab);001110Press any key to continueprintf(%d/cha,

2、+l);printf(,%d/d=a+bc);printf(%d/3=x=5);printf(%dn/b-l=a !=c);return 0;总结与反思:1运用关系运算符比较的结果,真为1,假为0; 2.注意掌握运算符的优先颇序;3.(3胡=5结果为真=1,(U1)上1结果为假=0(2) 分析运行下面的程序,掌握逻辑表达式的运算规则。#include int main() char ch=w;int a=2,b=0,c=0;float x=;101101ress ang key to continueprin廿(” d“”a&b); printf(”d”,a| |b&c); printfi(“

3、cf,!a&b); printf(”d“,a|3+10&2);printf(%d/!(x=2);printf(%d/!x=2); printf(”dn”,ch|b); return 0;总结与反思:1运用逻辑运算符比较的结果,真为二,假为0; 2逻辑与&优先级口大于逻辑或11优先级12(3) 分析运行下面的程序,掌握关系及逻辑混合表达式的运算规则。#include int main()int a=3zb=5,c=8;if(a+3&c!=0) b=b+l; printf(a=%dtb=%dtc=%dn,a/b,c); return 0;a=4 b = 5c=8Press 吕ny key to c

4、ontinuQ总结与反思:该程序中的条件判断表达式G+V3&CT0”是一个逻辑表达 式,关系表达式&+V3”的值为假,因此后一部分“=上0”不再计算。 2程序改错和填空(1) 给定程序的功能是,对于以下函数:y=x(xl)y=2x-l(l=x=10)用scanf函数输入x的值,求y的值。#inelude int main()int x,y;scan0.5.8.15屮0 屮15 屮34if (xl) y=x;else if (l=x&x10) y=2*x-l;else y=3*x-ll;printf(y=%dn/y);return 0;反思与总结:1.在紧跟着if选择语句的条件表达式的圆括号之后

5、没有分号;2.定义的X是int型,键入的2时,y就会向零取整等于0,而不是!(2) 以下给定程序的功能是输入一个年份,判断该年是否为闰年。 #inelude int main() int yearjeap; printf(HPlease enter a year:11); scanf(”d“,&year); 讦(year%4!=0) leap=O;else if (year%100)!=0) leap=l;else if (year%400)!=0) leap=O;Please enter a year:2Q12 2012 is a leap yearPress any key to cont

6、inueelse leap=l;if(leap)printf(H%d is a leap yearn舄year);elseprintf(%d is not a leap yearn蔦year);return 0;总结与反思:1错误不一定只在语法结构上,也可能在逻辑思维上;2.能被4 整除但不能被100整除的year或者能被400整除的year是闰年。(3)以下给定程序的功能是实现两个浮点数的四则运算。#include main()float dl,d2;char op;printf(输入 dlopd2);scanf(,%f%c%f,/&dlz&op,&d2);switch(op)float t

7、emp;case + :temp=dl+d2;printf(%f %c %f=%fn,dl/op,d2,temp);break; case :temp=dl-d2;printf(H%f %c %f=%fn,dl,op/d2,temp);break;case:temp=dl*d2;printf(%f %c %f=%fn,/dl/op,d2/temp);break;default :printf错误!nH); return 0;case 71 :temp=dl/d2;printf(%f %c %f=%fn,/dl,op,d2/temp);break;输人d1 op d24.X5.24 000000

8、 沢 5 200000 = 20.799999Press any key to continue总结与反思:在本题中op代表了四则运算运算符号,temp代表了浮点数结 果。3程序设计题(1)从键盘上输入某学生的考试成绩,要求输出成绩等级A、B、C、D、Eo学 生的成绩可分成5个等级,90100分为A级,8089分为B级,7079分为C 级,6069分为D级,059分为E级,要求在输出负数时,给出错误提示。#in cludeo int main()int x;scanf(%d,&x);if(x100|x0) printf(输入数据错n“);case 6:printf(,Dn,);break; c

9、ase 7:printf(,Cn,);break; case 8:printf(,Bn,);break; case 9:switch(x/10)如果漏写了 else,运行结果就变成:正确的运行结果应为:话入数据错E洛入数据错elsecase 10:printf(,An,);break; default:printfEn“);break;return 0;总结与反思:1 先判断数据是否合理,再switch,正好解决了 100与迪 的 区别问题。后面的表达式一定是常量表达式,其值的类型一般为整型或可自动 转为整型的类型(例如字符型)(2)根据输入的三角形的三条边判断是否能组成三角形,若可以则输出它

10、的面积和三角形的类型。#in cludeo #includeint main()float a,b,c,p,s;scanf(“f,%f,%f”&a,&b,&c);p=*(a+b+c);s=sqrt(p*(p-a)*(p-b)*(p-c);if(a+b=c 11 a+c=b 11 b+c3第一步要把所有需要用到的变量先全部定义出来,才能进行下 一步(比如scanf )(3) 输入某职工的工资,根据不同档次扣除工资所得税,然后计算实发工资。 #in cludeo int main()float fs,rs;scanf(”f”,&fs);if(fs850) rs=fs;20G0 rs=197O.0G

11、 Press any key to continueelse if(fs=1500) rs=*fs;else if(fs=2000) rs=*fs; else rs=*fs;printf(rs=%.2fnzrs); return 0;总结与反思:1 用scanf输入,&总是忘记! 2在界定if 型sq语句后的 复合语句时别忘了加花括号; (4) 对于一个不多于5位的正整数,1求出它是儿位数;2分别打印出每一位 数字;3.按逆序打印出各位数字。#include int main()int a,b,d,e,n;printf(“请输入一个五位数以下的正整数n”);scanf(T,&n);a=n/10

12、000;b=(n-a* 10000)/1000;c=(n-a*10000-b*1000)/100;d=(n-a*10000-b*1000-c*100)/10;e=(n-a * 10000-b*1000-c* 100-d * 10);if (n99999) printf(输入错误n);else if (9999n) printf(这是五位数n%d%d%d%d%dn/e,d/c,b,a);else 讦(999n) printf(这是四位数n%d%d%d%dn,e,d/c/b);else if (99n) printf(这是三位数n%d%d%dn,e,d/c);else if (9n) printf(这是两位数n%d%dn/e,d);else printf(这是一位数n%dn,e);return 0;总结与反思:注意取各个位数的方法。附录D C语言运算符的优先级C语育运算符的优先级如表0-1所示.衰

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论