《湖北理工学院14本科C语言实验报告实验二 逻辑结构程序设计》由会员分享,可在线阅读,更多相关《湖北理工学院14本科C语言实验报告实验二 逻辑结构程序设计(10页珍藏版)》请在金锄头文库上搜索。
1、实验二 逻辑结构程序设计实验课程名:C 语言程序设计专业班级: 14 电气工程 2 班 学号: 201440210237 姓名: 熊帆 实验时间: 4.7-4.21 实验地点: K4-208 指导教师: 祁文青 一、实验目的和要求1. 了解 C 语言表示逻辑量的方法(以 0 代表“假” ,以非代表“真” ) 。2. 学会正确使用逻辑运算符和逻辑表达。3. 熟练掌握 if 语句和 switch 语句.4. 学习调试程序。二、实验内容1 源程序中包含有一些错误,调试下列程序,使之具有如下功能:输入 a、b、c 三个整数,求最小值。# include “stdio.h”void main( ) in
2、t a,b,c;scanf(%d%d%d,a,b,c);if(ab)&(ac)if(bmax) max=b;if(cmax)max=c;if(dmax)max=d;printf(最大的数是%dn,max);return 0;(2)运行结果:(3)运行结果分析:首先 max=a,即 51,然后执行第一条 if 语句,b=21,bmax 为假,执行下一条 if 语句,c=3,cmax 为假,执行下一条 if 语句,d=98,dmax 为真,执行花括号里面的语句,max=d,即 a 与 d 互换,max 变为 d,即 98,输出最大的数是 98.3.输入 4 个整数,要求按由小到大顺序输出。得到正确
3、结果后,修改程序使之按由大到小顺序输出。相关知识:输入函数 scanf()的使用;简单的排序算法;通过中间变量 t 交换 a 和 b 值的方法:t=a; a=b; b=t;。解答:(1)源代码:#include int main()float a,b,c,d,t;printf(请输入四个正整数:n);scanf(%f%f%f%f,&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;b=c;c=t; if(bd)t=b;b=d;d=t; if(cd)t=c;c=d;d=t; printf
4、(%5.2f,%5.2f,%5.2f,%5.2fn,a,b,c,d);return 0;(2)运行结果:(3)运行结果分析:首先 a=25,b=11,c=6,d=64,ab 为真,从而 a、b 互换,现在a=11,b=25,c=6,d=64,ac 为真,从而 a、c 互换,现在 a=6,b=25,c=11,d=64,然后 ad 为假,不执行接在它下面花括号里面的内容,再,bc 为真,从而 b、c 互换,现在 a=6,b=11,c=25,d=64,接下来 bd 和 cd 均为假,最终执行输入语句,输出结果如上图所示。4.根据以下函数关系,对输入的每个 x 值,计算出相应的 y 值。 )sin(2
5、|1xeyx 4310x当 X取其他值时解答:(1)源代码:#include#includeint main()double x,y;printf(请输入一个 x值n);scanf(%lf,&x);if(x=0&x=3&x#includeint main()double x,y;printf(请输入自变量 x的值n);scanf(%lf,&x);if(x=1&xvoid main( ) int choice;int value;printf(Convert:n); /* 显示菜单 */printf( 1:decimal to hexadecimaln );printf( 2:hexadecim
6、al to decimaln );printf( 3:decimal to octaln ); printf( 4:octal to decimaln);printf(enter your choice: );scanf(%d,&choice);switch (choice)case 1: /* 选中 1 时处理 */printf(enter decimal value:);scanf(%d,&value);printf(%d in hexadecimal is:%xn,value,value);break;case 2: /* 选中 2 时处理 */printf(enter hexadeci
7、mal value:);scanf(%x,&value);printf(%x in decimal is:%dn,value,value);break;case 3: /* 选中 3 时处理 */printf(enter decimal value:);scanf(%d,&value);printf(%d in octal is:%on,value,value);break;case 4: /* 选中 4 时处理 */printf(enter octal value:);scanf(%o,&value);printf(%o in decimal is:%dn,value,value);brea
8、k;解答:(1) 运行结果:(2) 运行结果分析:该程序为一个实现进制转换功能的程序,choice1 对应十进制转十六进制,choice2 对应十六进制转十进制,choice3 对应十进制转八进制, choice4 对应八进制转十进制。实验的时候选了 choice2,即实现将一个十六进制的数转换为十进制,如上图所示,验证情况如下图。7. 模仿第 6 题,要求对输入的数字 17 转换成文字星期几,对其它数字不转换。例如,输入 5 时,程序应该输出 Friday。解答:(1) 源代码:#include int main( )int day;printf(转换n); /* 显示菜单 */printf
9、(请输入一个数字:n);scanf(%d,&day);if(day7) printf(请再次输入n);switch (day)case 1: /* 选中 1时处理 */printf(Mondayn);break;case 2: /* 选中 2时处理 */printf(Tuesdayn);break;case 3: /* 选中 3时处理 */printf(Wednesdayn);break;case 4: /* 选中 4时处理 */printf(Thursdayn); break;case 5: /* 选中 4时处理 */printf(Fridayn);break;case 6: /* 选中 4
10、时处理 */printf(Saturdayn);break;case 7: /* 选中 4时处理 */printf(Sundayn);break;return 0;(2)运行结果:(3)运行结果分析:输入一个 1 到 7 阿拉伯数字,将它转换为星期几。实验的时候,输入一个数字 7,输出结果为 Sunday。当输入一个小于 0 或大于 7 的数字时,例如 12,输出结果为“请再次输入” 。三、结论本次试验主要涉及用 if语句处理选择结构以及用 switch语句实现多分支选择结构,深刻体现了选择结构程序设计的思想以及方法的多样性与灵活性。还涉及到了用 C语言来表现数学中的分段函数问题。说明:1. 电子实验报告填写好后,以学生的学号+实验项目名作为该 word 文件名保存,例如某学生学号为 20080001,姓名为某某,本次实验名称是:实验一 顺序结构程序设计,则本次实验报告的保存文件名为:01 某某实验一.doc。2. 在规定的时间内,学生将本报告提交给实验指导教师。