您的当前位置:首页20-吴琛-实验二

20-吴琛-实验二

来源:锐游网
实验二 逻辑结构程序设计

实验课程名:高级语言程序设计(C)

专业班级: 电气本二 学号: 20 姓名: 吴琛 实验时间: 3月12日 实验地点: K4-202 指导教师: 吴建设

一、实验目的和要求

1. 了解C语言表示逻辑量的方法。

2. 学会正确使用逻辑运算符和逻辑表达式 3. 熟练掌握if 语句和 switch语句。 4. 结合程序掌握一些简单的算法。 5. 学习调试程序。

二、实验内容

1、任务名称

源程序中包含有一些错误,调试下列程序,使之具有如下功能:输入a、b、c三个整数,求最小值。

原程序:

# include “stdio.h” void main( ) { int a,b,c;

scanf(\"%d%d%d\; if((a>b)&&(a>c)) if(bprintf(\"min=%d\\n\; else

printf(\"min=%d\\n\; if((aprintf(\"min=%d\\n\; }

修改后程序

未输入地址符&,if语句中的选择语句错误,语句后的分号未用英文下的输入。

#include void main() { int a,b,c;

scanf(\"%d,%d,%d\ if((aprintf(\"min=%d\\n\ else if((belse

printf(\"No find minimum\\n\");

printf(\"学号:20 姓名:吴琛 第一次实验第一题\\n\"); }

再次运行程序,输入为“2,1,3”,程序输出却是“min=2”。用单步执行的方法,马上发现变量a、b、c的值是不对的,原因是程序要求输入数据的分隔符是空格(还允许使用回车或键)。改正输入数据的分隔方式后,程序没有输出,还是用单步执行的方法,监视程序的执行过程,发现程序中条件设计有误,经过改正的程序如下:

上述程序中,输入变量没有输入地址符,输入数据魏永分隔符隔开,一段语句结束以后分号有错,条件关系语句的设计有问题,比较不完整也不明确,应用else if以及关系运算符表示出来。

上述程序是按在三个数中仅有一个最小值时才称其为最小值进行设计的。另外,注意程序的书写格式,一定要采用缩进格式,即不同层次(分支)的语句左起的空格不同,这样可以有效地提高程序的可读性。

相关知识:①类似a运行结果:

运行结果分析:找出问题,改正程序后输入程序即可。 2、任务名称

参考上一题,编写一个C程序,求a、b、c、d四个数中的最大者。

源代码:

#include void main() {

int a,b,c,d,max;

scanf(\"%d,%d,%d,%d\max=a;

if((b>a)&&(b>c)&&(b>d)) printf(\"max=%d\\n\

else if((c>a)&&(c>b)&&(c>d)) printf(\"max=%d\\n\

else if((d>a)&&(d>b)&&(d>c))

printf(\"max=%d\\n\else

printf(\"max=%d\\n\

printf(\"学号:20 姓名:吴琛 第一次实验第二题\\n\"); }

运行结果:

运行结果分析:仿照第一题的方法编写程序即可。

①多定义一个变量,并一开始令变量max=a;

②if(max3、任务名称

.输入4个整数,要求按由小到大顺序输出。得到正确结果后,修改程序使之按由大到小顺序输出。

源代码:

#include void main() { int a,b,c,d,t;

scanf(\"%d,%d,%d,%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; } if(b>d) { t=b; b=d; d=t; } if(c>d) { t=c; c=d; d=t; }

printf(\"%d,%d,%d,%d\\n\

printf(\"学号:20 姓名:吴琛 第一次实验第三题\\n\"); }

运行结果:

从大到小排列: #include void main() { int a,b,c,d,t;

scanf(\"%d,%d,%d,%d\ if(aprintf(\"%d,%d,%d,%d\\n\

printf(\"学号:20 姓名:吴琛 第一次实验第三题\\n\"); } 运行结果:

运行结果分析:

①输入函数scanf()的使用.

②简单的排序算法.

③通过中间

变量t交换a和b值的方法:t=a; a=b; b=t;.

4、任务名称

根据以下函数关系,对输入的每个x值,计算出相应的y值。

ex1y|x|2sin(x2)

源代码:

#include #include void main() {

float x,y;

scanf(\"%f\

0x13x4

当x取其他值时

if(x>=0&&x<=1)

y=pow(2.718282,sqrt(x))-1; //e=2.718282 近似值 else if(x>=3&&x<=4) y=x+2; else

y=sin(pow(x,2));

printf(\"x=%f,y=%f\\n\

printf(\"学号:20 姓名:吴琛 第一次实验第四题\\n\");

}

运行结果:

运行结果分析:if语句的嵌套;数学函数的调用方式,根据数学函数公式输入程序即可。 5、任务名称:

模仿第4题,写程序实现以下函数:

x(x1) y2x1(1x10)

3x11(x10)用scanf函数输入x的值,求y值。运行程序,输入x的值(分别为x<1、1≤x<10、x≥10三种情况),检查输出的y值是否正确。

源代码:#include #include void main() {

float x,y;

scanf(\"%f\ if(x<1) y=x;

else if(x>=1&&x<=10) y=2*x-1; else

y=3*x-11;

printf(\"x=%f,y=%f\\n\

printf(\"学号:20 姓名:吴琛 第一次实验第五题\\n\"); }

运行结果:

运行结果分析:①用if的嵌套实现分段函数;②比较运算符的正确使用;③算术运算符*的正确使用。

6、任务名称:

阅读分析以下程序的功能。 #include void main( ) { int choice; int value;

printf(\"Convert:\\n\"); /* 显示菜单 */

printf(\" 1:decimal to hexadecimal\\n \"); printf(\" 2:hexadecimal to decimal\\n \"); printf(\" 3:decimal to octal\\n \"); printf(\" 4:octal to decimal\\n\"); printf(\"enter your choice: \"); scanf(\"%d\

switch (choice) { case 1: /* 选中1时处理 */ printf(\"enter decimal value:\"); scanf(\"%d\ printf(\"%d in hexadecimal is:%x\\n\ break;

case 2: /* 选中2时处理 */

printf(\"enter hexadecimal value:\"); scanf(\"%x\ printf(\"%x in decimal is:%d\\n\ break; case 3: /* 选中3时处理 */ printf(\"enter decimal value:\"); scanf(\"%d\ printf(\"%d in octal is:%o\\n\ break;

case 4: /* 选中4时处理 */

printf(\"enter octal value:\");

scanf(\"%o\ printf(\"%o in decimal is:%d\\n\ break; }

printf(\"学号:20 姓名:吴琛 第一次实验第六题\\n\"); }

运行结果:

运行结果分析:①用switch语句实现菜单的方法;②数制转换的方法,按照程序输入即可。

7、任务名称:

编写一程序,要求对输入的数字1~7转换成文字星期几,对其它数字不转换。例如,输入5时,程序应该输出Friday。

① 编辑、调试和运行该程序,然后输入4。其输出结果是什么?为什么是这样的结果?

② 该程序有哪些错误?如何修改? 源代码:

#include void main() {

int n;

printf(\"请输入一个1~7之间的数字:\"); scanf(\"%d\ switch(n) {

case 1:printf(\"Monday\\n\");break; case 2:printf(\"Tuesday\\n\");break; case 3:printf(\"Wednesday\\n\");break; case 4:printf(\"Thersday\\n\");break; case 5:printf(\"Friday\\n\");break; case 6:printf(\"Saturday\\n\");break; case 7:printf(\"Sunday\\n\");break; default:printf(\"输入数字有错\\n\"); }

printf(\"学号:20 姓名:吴琛 第一次实验第七题\\n\"); }

运行结果:

运行结果分析:

三、结论(写本次实验的收获)

1. 掌握了C语言表示逻辑量的方法。 2. 学会正确使用逻辑运算符和逻辑表达式 3.掌握了if 语句和 switch语句。 4. 结合程序掌握一些简单的算法。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top