湖北理工学院14本科C语言实验报告实验二逻辑结构程序设计.doc_第1页
湖北理工学院14本科C语言实验报告实验二逻辑结构程序设计.doc_第2页
湖北理工学院14本科C语言实验报告实验二逻辑结构程序设计.doc_第3页
湖北理工学院14本科C语言实验报告实验二逻辑结构程序设计.doc_第4页
湖北理工学院14本科C语言实验报告实验二逻辑结构程序设计.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

实验二 逻辑结构程序设计实验课程名: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( )int a,b,c;scanf(%d%d%d,a,b,c);if(ab)&(ac)if(bc)printf(min=%dn,b);else printf(min=%dn,c);if(ab)&(ac)printf(min=%dn,a);解答:(1) 源代码:#includestdio.hvoid main( ) int a,b,c; scanf(%d%d%d,&a,&b,&c); if(ab)&(ac) printf(min=%dn,a); elseif(ba)&(bc) printf(min=%dn,b);elseif(cb)&(ca) printf(min=%dn,c);(2) 运行结果: (3) 运行结果分析:答:原程序中scanf语句中没有加地址符&,有些分号为全角,应该换成半角,并且原程序中的if语句不够全面,导致输入2 1 3时无输出结果,经修改,任意输入三个不同的整数,均可输出与实际相符的正确结果。 2.参考上一题,编写一个C程序,求a、b、c、d四个数中的最大者。编程点拨:多定义一个变量,并一开始令变量max=a;if(maxmax) 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个整数,要求按由小到大顺序输出。得到正确结果后,修改程序使之按由大到小顺序输出。相关知识:输入函数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(%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值。 当X取其他值时解答:(1) 源代码:#include#includeint main()double x,y;printf(请输入一个x值n);scanf(%lf,&x);if(x=0&x=3&x=4) y=fabs(x)+2; elsey=sin(x*x);printf(y=%fn,y);return 0;(2) 运行结果: (3)运行结果分析:试验了3个值,x分别等于0,3,5 经验证均与实际情况相符合。5模仿第4题,写程序实现以下函数:用scanf函数输入x的值,求y值。运行程序,输入x的值(分别为x1、1x10、x10三种情况),检查输出的y值是否正确。解答:(1) 源代码:#include#includeint main()double x,y;printf(请输入自变量x的值n);scanf(%lf,&x);if(x=1&x=10) y=2*x-1; elsey=3*x-11;printf(y的值为%fn,y);return 0;(2) 运行结果:(3)运行结果分析:试验了3个值,分别为0,8,100,输出结果均与实际运算相符合6.阅读分析以下程序的功能。#include void main( )int choice;int value;printf(Convert:n); /* 显示菜单 */printf( 1:decimal to hexadecimaln );printf( 2:hexadecimal 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 hexadecimal 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);break; 解答:(1) 运行结果: (2) 运行结果分析:该程序为一个实现进制转换功能的程序,choice1对应十进制转十六进制,choice2对应十六进制转十进制,choice3对应十进制转八进制,choice4对应八进制转十进制。实验的时候选了choice2,即实现将一个十六进制的数转换为十进制,如上图所示,验证情况如下图。7. 模仿第6题,要求对输入的数字17转换成文字星期几,对其它数字不转换。例如,输入5时,程序应该输出Friday。解答:(1) 源代码:#include int main( )int day;printf(转换n); /* 显示菜单 */ printf(请输入一个数字: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时处理 */ printf(Saturdayn); break; case 7: /* 选中4时处理 */ printf(Sundayn); break;return 0;(2)运行结果: (3) 运行结果分析:输入一个1到7阿拉伯数字,将它转换为星期几。实验的时候,输入一个数字7,输出结果为Sunday。当输入一个小于0或大于7的数字时,例如12,输出结果为“请再次输入”。三、结论本次试验主要涉及用if语句处理选择结构以及用switch语句实现多分支选择结构,深

温馨提示

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

评论

0/150

提交评论