湖北理工学院14本科c语言实验报告实验二逻辑结构程序设计 1.docx

上传人:b****2 文档编号:2866481 上传时间:2023-05-04 格式:DOCX 页数:13 大小:160.50KB
下载 相关 举报
湖北理工学院14本科c语言实验报告实验二逻辑结构程序设计 1.docx_第1页
第1页 / 共13页
湖北理工学院14本科c语言实验报告实验二逻辑结构程序设计 1.docx_第2页
第2页 / 共13页
湖北理工学院14本科c语言实验报告实验二逻辑结构程序设计 1.docx_第3页
第3页 / 共13页
湖北理工学院14本科c语言实验报告实验二逻辑结构程序设计 1.docx_第4页
第4页 / 共13页
湖北理工学院14本科c语言实验报告实验二逻辑结构程序设计 1.docx_第5页
第5页 / 共13页
湖北理工学院14本科c语言实验报告实验二逻辑结构程序设计 1.docx_第6页
第6页 / 共13页
湖北理工学院14本科c语言实验报告实验二逻辑结构程序设计 1.docx_第7页
第7页 / 共13页
湖北理工学院14本科c语言实验报告实验二逻辑结构程序设计 1.docx_第8页
第8页 / 共13页
湖北理工学院14本科c语言实验报告实验二逻辑结构程序设计 1.docx_第9页
第9页 / 共13页
湖北理工学院14本科c语言实验报告实验二逻辑结构程序设计 1.docx_第10页
第10页 / 共13页
湖北理工学院14本科c语言实验报告实验二逻辑结构程序设计 1.docx_第11页
第11页 / 共13页
湖北理工学院14本科c语言实验报告实验二逻辑结构程序设计 1.docx_第12页
第12页 / 共13页
湖北理工学院14本科c语言实验报告实验二逻辑结构程序设计 1.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

湖北理工学院14本科c语言实验报告实验二逻辑结构程序设计 1.docx

《湖北理工学院14本科c语言实验报告实验二逻辑结构程序设计 1.docx》由会员分享,可在线阅读,更多相关《湖北理工学院14本科c语言实验报告实验二逻辑结构程序设计 1.docx(13页珍藏版)》请在冰点文库上搜索。

湖北理工学院14本科c语言实验报告实验二逻辑结构程序设计 1.docx

湖北理工学院14本科c语言实验报告实验二逻辑结构程序设计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”

voidmain()

           { inta,b,c;

             scanf("%d%d%d",a,b,c);

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

               if(b

                 printf("min=%d\n",b);

               else

                 printf("min=%d\n",c);

             if((a

               printf("min=%d\n",a);

            }

解答:

(1)源代码:

#include"stdio.h"

voidmain()

{

inta,b,c;

scanf("%d%d%d",&a,&b,&c);

if((a

printf("min=%d\n",a);

else

if((b

printf("min=%d\n",b);

else

if((c

printf("min=%d\n",c);

}

(2)运行结果:

(3)运行结果分析:

答:

原程序中scanf语句中没有加地址符&,有些分号为全角,应该换成半角,并且原程序中的if语句不够全面,导致输入213时无输出结果,经修改,任意输入三个不同的整数,均可输出与实际相符的正确结果。

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

编程点拨:

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

②if(max

解答:

(1)源代码:

#include"stdio.h"

intmain()

{

inta,b,c,d,max;

printf("请输入4个数:

\n");

scanf("%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("最大的数是%d\n",max);

return0;

}

(2)运行结果:

(3)运行结果分析:

首先max=a,即51,然后执行第一条if语句,b=21,b>max为假,执行下一条if语句,c=3,c>max为假,执行下一条if语句,d=98,d>max为真,执行花括号里面的语句,max=d,即a与d互换,max变为d,即98,输出最大的数是98.

3.输入4个整数,要求按由小到大顺序输出。

得到正确结果后,修改程序使之按由大到小顺序输出。

相关知识:

①输入函数scanf()的使用;②简单的排序算法;③通过中间变量t交换a和b值的方法:

t=a;a=b;b=t;。

解答:

(1)源代码:

#include

intmain()

{

floata,b,c,d,t;

printf("请输入四个正整数:

\n");

scanf("%f%f%f%f",&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;

}

if(b>d)

{

t=b;

b=d;

d=t;

}

if(c>d)

{

t=c;

c=d;

d=t;

}

printf("%5.2f,%5.2f,%5.2f,%5.2f\n",a,b,c,d);

return0;

}

(2)运行结果:

(3)运行结果分析:

首先a=25,b=11,c=6,d=64,a>b为真,从而a、b互换,现在a=11,b=25,c=6,d=64,

a>c为真,从而a、c互换,现在a=6,b=25,c=11,d=64,然后a>d为假,不执行接在它下面花括号里面的内容,再,b>c为真,从而b、c互换,现在a=6,b=11,c=25,d=64,接下来b>d和c>d均为假,最终执行输入语句,输出结果如上图所示。

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

当X取其他值时

解答:

(1)源代码:

#include

#include

intmain()

{

doublex,y;

printf("请输入一个x值\n");

scanf("%lf",&x);

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

y=exp(sqrt(x))-1;

else

if(x>=3&&x<=4)

y=fabs(x)+2;

else

y=sin(x*x);

printf("y=%f\n",y);

return0;

}

(2)运行结果:

(3)运行结果分析:

试验了3个值,x分别等于0,3,5经验证均与实际情况相符合。

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

用scanf函数输入x的值,求y值。

运行程序,输入x的值(分别为x<1、1≤x<10、x≥10三种情况),检查输出的y值是否正确。

解答:

(1)源代码:

#include

#include

intmain()

{

doublex,y;

printf("请输入自变量x的值\n");

scanf("%lf",&x);

if(x<1)

y=x;

else

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

y=2*x-1;

else

y=3*x-11;

printf("y的值为%f\n",y);

return0;

}

(2)运行结果:

(3)运行结果分析:

试验了3个值,分别为0,8,100,输出结果均与实际运算相符合

6.阅读分析以下程序的功能。

#include

voidmain()

{intchoice;

intvalue;

printf("Convert:

\n");/*显示菜单*/

printf("1:

decimaltohexadecimal\n");

printf("2:

hexadecimaltodecimal\n");

printf("3:

decimaltooctal\n");

printf("4:

octaltodecimal\n");

printf("enteryourchoice:

");

scanf("%d",&choice);

switch(choice)

{case1:

/*选中1时处理*/

printf("enterdecimalvalue:

");

scanf("%d",&value);

printf("%dinhexadecimalis:

%x\n",value,value);

break;

case2:

/*选中2时处理*/

printf("enterhexadecimalvalue:

");

scanf("%x",&value);

printf("%xindecimalis:

%d\n",value,value);

break;

case3:

/*选中3时处理*/

printf("enterdecimalvalue:

");

scanf("%d",&value);

XX文库-让每个人平等地提升自我printf("%dinoctalis:

%o\n",value,value);

XX文库-让每个人平等地提升自我break;

case4:

/*选中4时处理*/

XX文库-让每个人平等地提升自我printf("enteroctalvalue:

");

scanf("%o",&value);

printf("%oindecimalis:

%d\n",value,value);

break;

}

}

解答:

(1)运行结果:

(2)运行结果分析:

该程序为一个实现进制转换功能的程序,choice1对应十进制转十六进制,choice2对应十六进制转十进制,choice3对应十进制转八进制,choice4对应八进制转十进制。

实验的时候选了choice2,即实现将一个十六进制的数转换为十进制,如上图所示,验证情况如下图。

 

7.模仿第6题,要求对输入的数字1~7转换成文字星期几,对其它数字不转换。

例如,输入5时,程序应该输出Friday。

解答:

(1)源代码:

#include

intmain()

{

intday;

printf("转换\n");/*显示菜单*/

printf("请输入一个数字:

\n");

scanf("%d",&day);

if(day<0||day>7)

printf("请再次输入\n");

switch(day)

{

case1:

/*选中1时处理*/

printf("Monday\n");

break;

case2:

/*选中2时处理*/

printf("Tuesday\n");

break;

case3:

/*选中3时处理*/

printf("Wednesday\n");

break;

case4:

/*选中4时处理*/

printf("Thursday\n");

break;

case5:

/*选中4时处理*/

printf("Friday\n");

break;

case6:

/*选中4时处理*/

printf("Saturday\n");

break;

case7:

/*选中4时处理*/

printf("Sunday\n");

break;

}

return0;

}

(2)运行结果:

(3)运行结果分析:

输入一个1到7阿拉伯数字,将它转换为星期几。

实验的时候,输入一个数字7,输出结果为Sunday。

当输入一个小于0或大于7的数字时,例如12,输出结果为“请再次输入”。

三、结论

本次试验主要涉及用if语句处理选择结构以及用switch语句实现多分支选择结构,深刻体现了选择结构程序设计的思想以及方法的多样性与灵活性。

还涉及到了用C语言来表现数学中的分段函数问题。

 

说明:

1.电子实验报告填写好后,以学生的学号+实验项目名作为该word文件名保存,例如某学生学号为20080001,姓名为某某,本次实验名称是:

实验一顺序结构程序设计,则本次实验报告的保存文件名为:

01某某实验一.doc。

2.在规定的时间内,学生将本报告提交给实验指导教师。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2