




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验二 逻辑结构程序设计实验课程名:C语言程序设计专业班级:14电气工程2班学号:201440210237姓名:熊帆实验时间:47421实验地点;K4208指导教师:祁文青一、实验目的和要求1. 了解C语言表示逻辑量的方法(以0代表“假”,以非代表“真”)。2. 学会正确使用逻辑运算符和逻辑表达。3. 熟练掌握if语句和switch语句.4. 学习调试程序。二.实验内容1源程序中包含有一些错误,调试下列程序,使之具有如下功能:输入a、b、c三个整数,求最小值。# include "stdio.h'5void main() int a.b,c;scanf(n%d%d%d,rAb
2、,c);if(a>b)&&(a>c)if(b<c)printf(,min=%dn,b);elseprintf(umin=%dirc);if(a<b)&&(a<c)primf(”min=%dn”,a);解答:(1) 源代码:#include,rstdio. h"void main()int a,b,c;scanf(,r%d%d%d &a,&b,&c);辻(a<b)&&(a<c)printf (,Fmin=%dn,r,a); elseif(b<a)&&(
3、b<c) printf C,min=%cin", b); elseif(c<b)&&(c<a) printf (,rmin=%dn,r, c); (2) 运行结果:E:Debug22.exe"32 2 17min =2 iPpess any key to continue(3) 运行结果分析:答:原程序中scanf语句中没有加地址符&,有些分号为全角,应该换成半角,并且原程序 中的if语句不够全面,导致输入213时无输出结果,经修改,任意输入三个不同的整数, 均可输出与实际相符的正确结果。2. 参考上一题,编写一个C程序,求a、b、
4、c、d四个数中的最大者。编程点拨: 多定义一个变量,并一开始令变呈:niax=a; if(max<b) max=b:其余多个数据中求最值依此类推。解答:(1) 源代码:#include"stdio. h"int main()int a,b,c,d,max;printf (w请输入4个数:n"); scanf (,r%d%d%d%d",&a, &b, &c, &d); max=a;if(b>max)max=b;if(c>max)max=c;if(d>max)max=d;printf (,r最大的数是%
5、dnmax); return 0;(2)运行结果:i- "H:This is my CDebugO4-_28.exe"请输人4个数;51 21 3 96最大的数是Press any key to cont inne(3) 运行结果分析:首先max=a,即51,然后执行第一条if语句,b=21, b>max为假,执行下一 条if语句,c=3, c>max为假,执行F条if语句,d=98, d>niax为真,执行花括号里面的语句, max=d,即a与d互换,max变为d,即98,输出最大的数是98.3. 输入4个整数,要求按由小到大顺序输出。得到正确结果后,修
6、改程序使之按由大到小顺序输出。 相关知识:输入函数scanf()的使用;简单的排序算法:通过中间变量(交换a和b值的方法: t=a; a=b; b=t;o解答:(1)源代码:#include <stdio.h>int main()float a,b,c.d,t;printf ("请输入四个正整数:n");scanf (”,&a &b, &c. &d);if(a>b)t=a;a=b;b=t;if(a>c)t=a;a=c;c=t;if(a>d)t=a;a=d;d=t; if(b>c)t=b;b=c;c=t: i
7、f(b>d)t=b;b=d;d=t; if (c>d)t=c;c=d;d=t;printfC. 2f,%5 2f,%5. 2f,%5. 2fna, b, c, d); return 0;(2)运行结果: "H:This is my C04_14Debugvzhywhy.exe*|请输入四个正整数:25 11 6 646.00rli.00,25.00,64.00Press ctny key ta continue(3)运行结果分析:首先a=25,b=l Lc=6,d=64.a>b为真,从而a、b互换,现在a=ll,b=25x=6,d=64. a>c为真,从而a、
8、c互换,现在a=6,b=25,c=ll,d=64.然后a>d为假,不执行接在它下面花括号里 而的内容,再,b>c为真,从而b、c互换,现在a=6,b=ll,c=25.d=64,接下来b>d和c>d均为假, 最终执行输入语句,输岀结果如上图所示。4根据以下函数关系,对输入的每个x值,计算出相应的y值。5少年易学老难成.吋光阴不亍y = < x +2当x取其他值时s)解答:(1)源代码:#includestdio. h>#include<math h> int main() double x,y; printf ('*请输入一个 x 值n&q
9、uot;); scanf("%lf",&x);if(x>=0&&x<=l) r=exp(sqrt (x)T ; elseif(x>=3&&x<=4)y=fabs(x)+2; else y=sin(x*x); printf(My=%fnM,y); return 0;(2)运行结果:请输入一个x值0y=0-000000Press any key to continue请输入一个x值3y=5.000000Press any kei/ to continue请输入_个"值5y=-0.132352Ppes&am
10、p; any key to continue(3)运行结果分析:试验了 3个值,x分别等于0, 3, 5经验证均与实际情况相符合。5模仿第4题,写程序实现以下函数:X(X<1)y = kx-l(l<x<10)3x-ll(x>5)用scanf函数输入x的值,求y值。运行程序,输入x的值(分别为x<l、l<x<10. x>10三种情况), 检查输出的y值是否正确。解答:(1) 源代码:#includestdio. h>#includeSath h>int main()double x,y;printf ('*请输入自变量x的值n&
11、quot;);scanf("%lf",&x);if(x<l)y=x;elseif(x>=l&&x<=10)y=2*x-l;elsey=3*x-ll;printf (My 的值为%fny);return 0;(2) 运行结果:0y的值为0.000000Press any key to continue请输入自变量x的值8的值为15.000000Press any key to continue请输入自变量x的值1009 的值为 289.000000Pi'ess: any key to continue(3)运行结果分析:试验了
12、 3个值,分别为0, 8, 100,输出结果均与实际运算相符合6 阅读分析以下程序的功能。#include <stdio.h>7匸易学老难成-白丿艾又出void main() int choice;int value;printf(MConvert:nM);/* 显示菜单 */printf(M 1:decimal to hexadecimaln ,r);printf(M 2:hexadecimal to decimaln ”);printf(H 3:decimal to octalii ”); printf(H 4:octal to decimals'); printf(H
13、enter your choice: ”); scanf(,%d,&choice);switch (choice)case 1:/*选中1时处理*/printf(Henter decimal value:*); scanf(”cT,&valuc);printf(H%d in hexadecimal is:%xn”,valu.valuc); break;case 2:/*选中2时处理*/printf(Henter hexadecimal value:1*); scanf(”x°',&valuc);printf(H%x in decimal is:%dnv
14、alueAraIue); break;case 3:/*选中3时处理*/printf(Henter decimal value:1*);scanf(,%d,&value);printf("%d in octal is:%on",value,value); break;case 4:/*选中4时处理*/printf(nenter octal value:11);scanf(”o”,&valuc);printf(H%o in decimal is:%dirvalueAralue); break;解答:(1)运行结果:Convent 二1:decimal to h
15、exadecimal 2:hexadecimal to decimal 3:decimal to octal 4:octal to decimal enter your choice: 2 entep hexadecimal ualue:cf cf in decimal is:207 Ppe&s: any key to continue(2)运行结果分析:该程序为一个实现进制转换功能的程序,choice 1对应十进制转十六进制, choice2对应十六进制转十进制,choice3对应十进制转八进制,choice4对应八进制转十进 制。实验的时候选了 choice,即实现将一个十六进制的
16、数转换为十进制,如上图所示,验 证情况如下图匚7.模仿第6题,要求对输入的数字17转换成文字星期几.对其它数字不转换。例如,输入5时. 程序应该输岀Friday。解答:(1)源代码:#include <stdio. h> int main()int day;printf C1 转换n");printf ('*请输入一个数字:n"); scanf ('r%d ",&day); if(day<0 Iday>7)printf (,r请再次输入n");switch (day)显示菜单*/case 1:printf(
17、"Mondayn"); break;case 2:printf ("Tuesdayn");break;/*选中1时处理*/*选中2时处理*/casecasecase3:printf("Wednesday、n"); break;4:printf ('rThursdayn"); break;5:/*选中3时处理*/*选中4时处理*/*选中4时处理*/case 6:case 7:printf(HFridaynH); break;/*选中4时处理*/printf(MSaturdayn"); break;/*选中4时处理*/printf("Sunday、rT); break;)return 0;(2)运行结果: ; "H:This is my CDebugO4_28.exe"转换请验入一个数字:SundayPress any key to continuer亘"H:This is my CDe-bug04_28.exe"转换请編入一个数字;善再次输入Pvess any l<ey to continue(3)运行结果分析:输入一个1到7阿拉伯数字,将它转换为星期几。实验的时候,输入一个数 字7,输出结果为S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年调漆槽项目可行性研究报告
- 2025-2030中国自助餐行业市场发展分析及发展潜力与投资研究报告
- 2025-2030中国肉类加工包装行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国聚羧酸减水剂市场发展分析及市场趋势与投资方向研究报告
- 2025-2030中国网络打印软件工具行业市场发展趋势与前景展望战略研究报告
- 2025年自发光标牌项目可行性研究报告
- 2025-2030中国纤维桶包装行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国笔记本电脑行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030中国空气质量监测仪行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国空心胶囊市场趋势洞察与未来全景深度解析研究报告
- 介绍梅西的英语演讲稿
- 康复治疗师考试知识点汇总
- 2023年北京市农林科学院事业单位招聘(共500题含答案解析)笔试历年难、易错考点试题含答案附详解
- 尿崩症诊疗规范内科学诊疗规范诊疗指南2023版
- 3D打印实训指导书
- 除草机器人简介
- 当代文学第一章1949-1966年的文学思潮
- a320飞机空调系统工作原理与使用维护分析
- 施工机具进场检查验收记录
- 《液压与气动技术项目教程》高职配套教学课件
- 2022年七步洗手法操作考核评分标准
评论
0/150
提交评论