2022年2022年贵州大学C语言实验报告-Ex-逻辑结构程序设计 .pdf

上传人:Che****ry 文档编号:27243269 上传时间:2022-07-23 格式:PDF 页数:10 大小:416.10KB
返回 下载 相关 举报
2022年2022年贵州大学C语言实验报告-Ex-逻辑结构程序设计 .pdf_第1页
第1页 / 共10页
2022年2022年贵州大学C语言实验报告-Ex-逻辑结构程序设计 .pdf_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《2022年2022年贵州大学C语言实验报告-Ex-逻辑结构程序设计 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年贵州大学C语言实验报告-Ex-逻辑结构程序设计 .pdf(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、实验课程名称 C语言实验报告实验项目名称逻辑结构程序设计专业 班 级电子信息科学与技术08 级 1 班学生 姓 名学号指导 教 师理 学 院实验时间: 2010 年 5 月 6 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 10 页 - - - - - - - - - 实验 4 逻辑结构程序设计1.实验目的(1)了解 C 语言表示逻辑量的方法(以 0 代表“假”,以非 0 代表“真 )。(2)学会正确使用逻辑运算符和逻辑表达式。(3)熟练掌握if 语句和 switch

2、 语句。(4)结合程序掌握一些简单的算法。(5)学习调试程序。2.实验内容和步骤本实验要求事先编好解决下面问题的程序,然后上机输人程序并调试运行程序。(1)习题 5.5。有一函数 : )10(113)101(12) 1(yxxxxxx用 scanf 函数输人x 的值,求y 值。程序如下:#include void main() float x,y; printf(Please input x:n); scanf(%f,&x); if(x1) y=x; printf(x=%f,y=x=%fn,x,y); else if(x10) y=2*x-1; printf(x=%f,y=y=2*x-1=%f

3、n,x,y); else y=3*x-11; printf(x=%f,y=3*x-11=%fn,x,y); 分析:本程序用if-else 语句的嵌套得到的,并且结合使用复合语句实现的。运行程序,输人.x 的值 (分别为 x10 这 3 种情况 ),检查输出的y 值是否正确。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 10 页 - - - - - - - - - 经计算,结果是正确的。(2)给出一个百分制成绩,要求输出成绩等级A,B,C, D, E 。90 分以上为A,

4、 8189 分为 B,7079 分为 C, 6069 分为 D,60 分以下为E。事先编好程序,要求分别用if 语句和 switch 语句实现。运行程序,并检查结果是否正确。程序如下:用 if 语句编写程序如下:#include void main() float score; char grade; printf (Please input a score:n); scanf (%f,&score); while (score100|score=90&score=80&score=70&score=60&score70) grade=D; else grade=E; printf (The

5、grade for score %5.2f is %c.n,score,grade); 分析:本程序是用if 条件语句编写的,要注意的是if-else 语句的嵌套使用if 与 else的配对关系。 else总是与它上面的最近的未配对的if 配对。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 10 页 - - - - - - - - - 用 switch 语句编写程序如下:#include void main() float score; char grade; prin

6、tf(Please input a score:n); scanf(%f,&score); switch(int)(score/10) case 10: case 9:grade=A;break; case 8:grade=B;break; case 7:grade=C;break; case 6:grade=D;break; case 5: case 4: case 3: case 2: case 1: case 0:grade=E;break; printf(The grade for the score of %5.2f is %c.n,score,grade); 分析:本程序主要是练习

7、使用switch 语句,需要注意的是switch 后括号里的是表达式,其值可以是整形、字符型、枚举型数据。且case后必有一个空格,否则运行会出错。还要注意一点是没有值的分支也要一一列出。还有就是别忘记break 结束分支选择。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 10 页 - - - - - - - - - 再运行一次程序,输人分数为负值(如一 70),这显然是输人时出错,不应给出等级。修改程序,使之能正确处理任何数据。当输人数据大于l00 或小于 0 时,通

8、知用户“输人数据错” ,程序结束。在 scanf 语句后面加上如下语句即可:while(score100|score0) printf(Your input is wrong, please reinput:n); scanf(%f,&score); 分析:只曾加上述语句即可以完成以上要求,当然也可以换成其它的循环语句,如do-while或者是 for 都可以。(3)给一个不多于5 位的正整数,要求:求出它是几位数;分别打印出每一位数字;按逆序打印出各位数字,例如原数为321,应输出 lE3o(习题 5.7) 应准备以下测试数据: 要处理的数为1 位正整数 ; 要处理的数为2 位正整数 ; 名

9、师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 10 页 - - - - - - - - - 要处理的数为3 位正整数 ; 要处理的数为4 位正整数 ; 要处理的数为5 位正整数。除此之外,程序还应当对不合法的输人作必要的处理。例如: 输入负数 ; 输人的数超过5 位(如 123456)。程序如下:#include void main() long int num; int indiv,ten,hundred,thousand,ten_thousand,place; pri

10、ntf(Please input a integer (099999):n); scanf(%ld,&num); if(num9999) place=5; else if(num999) place=4; else if(num99) place=3; else if(num9) place=2; else place=1; printf(Place=%dn,place); printf(Every place is:); ten_thousand=num/10000; thousand=(int)(num-ten_thousand*10000)/1000; hundred=(int)(num

11、-ten_thousand*10000-thousand*1000)/100; ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10; indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10); switch(place) case 5:printf(%d,%d,%d,%d,%d,ten_thousand,thousand,hundred,ten,indiv); printf(nantitone number is:); printf(%d%d

12、%d%d%dn,indiv,ten,hundred,thousand,ten_thousand); break; case 4:printf(%d,%d,%d,%d,thousand,hundred,ten,indiv); printf(nantitone number is:); printf(%d%d%d%dn,indiv,ten,hundred,thousand); break; case 3:printf(%d,%d,%d,hundred,ten,indiv); printf(nantitone number is:); printf(%d%d%dn,indiv,ten,hundred

13、); break; case 2:printf(%d,%d,ten,indiv); printf(nantitone number is:); printf(%d%dn,indiv,ten); break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 10 页 - - - - - - - - - case 1:printf(%d,indiv); printf(nantitone number is:); printf(%dn,indiv); break; 分析:看似这

14、个程序有点长,但实际上应用的原理特别简单。任意输入一个5 位以内(含5位)的正整数。先用 if-else 语句判断它的位数,这个算法很简单,就是比较所输入的数据在哪个区间,就得到相应区间的位数。然后将位数输出。再将各个位数的具体分离出来,算法也比较简单,就是将这个输入的数据减掉已求出的相应位数与该位对应权值的乘积,依次求出这些位上的值。然后对位数进行分支选择,顺序输出各个位上的值,再将各个位的值倒序输出。结果:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 10 页 -

15、- - - - - - - - 很明显,最后两个结果是我们不想要的,因此将程序的第6 行后加入如下程序语句:while(num99999|num0) printf(Your input is wrong, please reinput:n); scanf(%ld,&num); 得到了预期的结果。(4)输人 4 个整数,要求按由小到大顺序输出(本题是教材第5 章习题 5.9)。得到正确结果后,修改程序使之按由大到小顺序输出。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 1

16、0 页 - - - - - - - - - 程序如下:#include void main() int t,a,b,c,d; printf(Please input 4 numbers:n); scanf(%d%d%d%d,&a,&b,&c,&d); printf(a=%d,b=%d,c=%d,d=%dn,a,b,c,d); if(ab)t=a;a=b;b=t; if(ac)t=a;a=c;c=t; if(ad)t=a;a=d;d=t; if(bc)t=b;a=c;c=t; if(bd)t=b;a=d;d=t; if(cd)t=c;a=d;d=t; printf(the compositor

17、of the 4 number is:n); printf(%d %d %d %dn,a,b,c,d); 分析:这个程序是用if 语句实现的,要注意的是当满足相应条件时,要执行的语句不只一条时要用花括号将需要执行的语句括起来。还要注意的是两个数交换的方法,要有条理, 不要弄混。若想按从大到小输出,再在printf(%d %d %d %dn,a,b,c,d);语句后加上一条如下语句即可: printf(the compositor from small to big of the 4 number is:n); printf(%d %d %d %dn,d,c,b,a); 运行程序:名师资料总结

18、- - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 10 页 - - - - - - - - - 结果如上图所示,达到预期目的。3.实验总结本实验主要练习的有关系运算符、if-else 语句、 switch 语句等。在使用关系运算时要注意:关系运算符都是双目运算符,其结合性均为左结合。关系运算符的优先级低于算术运算符,高于赋值运算符。在六个关系运算符中,,= 的优先级相同,高于=和!=,= 和!= 的优先级相同。与运算符& 和或运算符 |均为双目运算符。具有左结合性。非运算符!为单目运算符

19、,具有右结合性。在使用 if-else 语句时应注意以下几点。1)在三种形式的if 语句中,在if 关键字之后均为表达式。该表达式通常是逻辑表达式或关系表达式,但也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量。2)在 if 语句中,条件判断表达式必须用括号括起来,在语句之后必须加分号。3)在 if 语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组(多个)语句, 则必须把这一组语句用 括起来组成一个复合语句。但要注意的是在 之后不能再加分号。在使用 switch 语句时还应注意以下几点:1)在 case后的各常量表达式的值不能相同,否则会出现错误。2)在 case后,允许有多个语句,可以不用 括起来。3)各 case和 default 子句的先后顺序可以变动,而不会影响程序执行结果。4)default 子句可以省略不用。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 10 页 - - - - - - - - -

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

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁