




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验3 分支结构程序设计班级:学号:姓名:日期:一、实验目的(1)了解C语言表示逻辑量的方法(以0代表“假”,以1代表“真”)。(2)学会正确使用逻辑运算符和逻辑表达式。(3)熟练掌握if语句和switch语句。(4)结合程序掌握一些简单的算法。(5)学习调试程序。二、实验内容1运行以下程序,说明表达式值1 和表达式值2 的不同。#include void main()int a=3,b=2,c=1,d=0;printf(exp1=%dn,d=ab+c);printf(exp2=%dn,d=ab+c);2以下程序的功能是:从键盘输入一个字符型数据,若输入一个数字字符(0-9),则将其转换成相应的整数显示出来;若输入其它字符,则显示出错信息。#include void main( )char c;scanf(%c,&c);if(0=c=9) /*条件表达式*/ c=c-0;printf(c=%dn,c);else printf(data error!n);实验步骤: 上机调试以上程序; 输入09之间的任何字符,验证输出结果是否和程序功能相符合; 输入09之外的任何字符,例如,输入字母a,验证输出结果是否和程序功能相符合; 将条件表达式if(0=c=9)改为if(0=c&c=9),重复、步骤。分析、比较以上的输出结果,总结字符变量c 的取值在0-9之间在C 语言编程中的正确描述。3if 语句的第一种形式为基本形式 if(表达式) 语句; 其语义是:如果表达式的值非零(为真),则执行其后的语句, 否则不执行该语句。编程:输入两个整数,输出其中的大数。提示:输入两个数a,b。把a 先赋予变量max,再用if 语句判别max 和b的大小,如max 小于b,则把b 赋予max。因此max 中总是大数,最后输出max的值。#include void main()int a,b,max;scanf(%d%d,&a,&b);max=a;if(bmax) max=b;printf(max=%dn,max);4if 语句的第二种形式为if-else 形式if(表达式) 语句1;else 语句2;其语义是:如果表达式的值非零(为真),则执行语句1,否则执行语句2 。程序填空题。下列程序用于完成对输入的整数判断它是奇数还是偶数,并给出相应的提示。试完成它缺少的部分,并上机验证。#include void main( )int x;scanf(%d,&x);if(x/2 % =0 ) printf(x=%d is Evenn,x);else printf(x=%d is Oddn,x);编程:输入两个整数,输出其中的大数。提示:改用if-else 语句判别a,b 的大小,若a 大,则输出a,否则输出b。#include void main()int a,b;scanf(%d%d,&a,&b);if(ab) printf(max=%dn,a);elseprintf(max=%dn,b);5if 语句的第三种形式为if-else-if 形式(嵌套的if)当有多个分支选择时,可采用if-else-if 语句,其一般形式为:if(表达式1) 语句1;else if(表达式2) 语句2;else if(表达式3) 语句3;else if(表达式m) 语句m;else 语句n;其语义是:依次判断表达式的值,当出现某个值为真时, 则执行其对应的语句。然后跳到整个if 语句之外继续执行程序。 如果所有的表达式均为假,则执行语句n 。 然后继续执行后续程序。编程:要求判别键盘输入字符的类别。可以根据输入字符的ASCII 码来判别类型。由ASCII 码表可知ASCII 值小于32 的为控制字符。 在“0”和“9”之间的为数字,在“A”和“Z”之间为大写字母, 在“a”和“z”之间为小写字母,其余则为其它字符。 这是一个多分支选择的问题,用if-else-if 语句编程,判断输入字符ASCII 码所在的范围,分别给出不同的输出。例如输入为“g”,输出显示它为小写字符。在嵌套中要特别注意if 和else 的配对问题。为了避免二义性,语言规定,else 总是与它前面最近的if 配对。6分析以下程序的运行结果并上机调试。程序1:#include void main()int a=3,b=4,c=5,d=0;if(ab) d=a;elseif(cb) d=c;else d=b;printf(d=%dn,d);程序2:#include void main()int a=3,b=4,c=5,d=0;if(ab)if(cb) d=c;else d=b;else d=a;printf(d=%dn,d);程序3:#include void main()int a=3,b=4,c=5,d=0;if(ab)if(cb) d=c;else d=b;printf(d=%dn,d);程序4:#include void main()int a=3,b=4,c=5,d=0;if(ab)if(cb) d=c;else d=b;printf(d=%dn,d);编程:比较键盘依次输入的两个数a 和b 的大小关系,并根据大小关系分别输出1(若ab)、0(若a=b)、-1(若ab)。#include void main()int a,b;scanf(%d%d,&a,&b);if(ab)printf(1n);else if(a=b)printf(0n);elseprintf(-1n);7条件运算符和条件表达式由条件运算符组成条件表达式的一般形式为:表达式1? 表达式2: 表达式3其求值规则为:如果表达式1 的值为真,则以表达式2 的值作为条件表达式的值,否则以表达式3 的值作为整个条件表达式的值。用条件表达式对4 中要求的输出两个数中的大数的程序重新编程。8switch 语句语言还提供了另一种用于多分支选择的switch 语句, 其一般形式为:switch(表达式)case 常量表达式1: 语句1;case 常量表达式2: 语句2;case 常量表达式n: 语句n;default : 语句n+1;在switch 语句中,“case 常量表达式”只相当于一个语句标号, 表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch 语句。 这是与前面介绍的if 语句完全不同的,应特别注意。程序分析题。分析以下程序,对分析的结果上机检验。#include void main( )int x=1,y=0,a=0,b=0;switch(x)case 1:switch(y)case 0: a+;break;case 1: b+;break; /abccase 2:a+;b+;break;printf(a=%d, b=%dn,a,b);在程序中的/abc 前面,后面添加一个break; 再次运行该程序,程序结果有何变化?在实验报告中对结果作出解释。9本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。(1)有一个函数:用scanf函数输入x的值,求y的值。运行程序,输入x的值(分别为x1、110、x10这3种情况),检查输出的y值是否正确。#include void main() int x,y; printf(please input x:); scanf(%d,&x); if(x=1 & x10) y=2*x-1; else y=3*x-11; printf(x=%3d,y=%dn,x,y);(2)给出一个百分制的成绩,要求输出成绩等级A、B、C、D、E。90分以上为A,8089分为B,7079分为C,6069分为D,60分以下为E。#include void main() float score; char grade; printf(please input score:); scanf(%f,&score); while(score100|score0) printf(please input again,score is wrong!nscore=); 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; default: grade=E; printf(score=%f,grade=%cn,score,grade);事先编写好程序,要求分别用if语句和switch语句来实现。运行程序,并检查结果是否正确。再运行一次程序,输入分数为负值(如-70),这显然是输入时出错,不应给出等级,修改程序,使之能正确处理任何数据,当输入数据大于100或小于0时,通知用户“输入数据错误”,程序结束。(3)给一个不多于5位的正整数,要求:求出它是几位数;分别输出每一位数字;按逆序输出各位数字,例如原数为321,应输出123。应准备以下测试数据:l 要处理的数为1位正整数;l 要处理的数为2位正整数;l 要处理的数为3位正整数;l 要处理的数为4位正整数;l 要处理的数为5位正整数;除此之外,程序还应当对不合法的输入做必要的处理,例如:l 输入负数;l 输入的数超过5位。#include void main() int m,k; long n; printf(Please input a integer:); scanf(%ld,&n); k=0; while(n0) m=n % 10; n=n/10; k+; printf(%d,m); printf(ndata number is %dn,k);(4)输入4个整数,要求按由小到大顺序输出。在得到正确结束后,修改程序使之按同大到小顺序输出。#include void main() int a,b,c,d,t; print
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度杭州汽车租赁合同与杭州长租公寓租赁管理协议
- 2025版国际贸易欺诈防范与信用评估合同
- 二零二五年度瓷砖行业品牌授权合同
- 二零二五大连情感修复与离婚协议执行合同
- 2025版数字媒体广告投放合作协议
- 二零二五年度农业产业化合作经营合同范本
- 二零二五年度城市绿化带搭棚改造与美化合同
- 2025版自驾游汽车租赁服务合作协议
- 二零二五年度公共停车场冬季清雪与安全管理服务合同
- 二零二五年度顶级中介房屋买卖担保协议
- 预见性护理在骨科的应用
- 2025年甘肃社会化工会工作者招聘考试(公共基础知识)综合试题及答案
- 高二班主任班级管理课件
- 侵蚀性葡萄胎护理查房
- 2025年行政执法证考试题库及参考答案
- 2025年校招:招商银行试题及答案(可下载)
- 2025年安防生产行业技能考试-安防工程企业技术人员能力验证考试历年参考题库含答案解析(5卷100道集合-单选题)
- 2025年康复治疗师资格考试试题及答案
- 国际营销中心管理办法
- 无痛人流知识课件
- 全国律师会费管理办法
评论
0/150
提交评论