实验2 逻辑结构程序设计(答案)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二逻辑结构程序设计

实验课程名:高级语言程序设计ΙΙ

专业班级:学号:姓名:

实验时间:16-3-30 实验地点:K4 指导教师:

一、实验目的及要求

1.了解C语言表示逻辑量的方法(以0代表“假”,以非代表“真”)。

2.学会正确使用逻辑运算符和逻辑表达。

3.熟练掌握if语句和switch语句.

4.学习调试程序。

二、实验内容

(1)源程序c30105.c中包含有一些错误,调试下列程序,使之具有如下功能:输入

a、b、c三个整数,求最小值。

# include “stdio.h”

void main( )

{ int a,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);

}

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

# include “stdio.h”

void main()

{ int a,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);

else

printf("No find minimum\n");

}

上述程序是按在三个数中仅有一个最小值时才称其为最小值进行设计的。另外,注意

程序的书写格式,一定要采用缩进格式,即不同层次(分支)的语句左起的空格不同,这样可以有效地提高程序的可读性。

相关知识:①类似a

(二)实验任务2

(1)程序代码:

# include

void main()

{ int a,b,c,d;

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

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

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

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

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

else if(c>d)

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

else

printf("max=%d\n",d);

}

(2)程序运行结果:

(3)程序分析://先比较a与bcd大小,当a比其它三个都大时则输出a。同理,当a最小时,再比较b与cd的大小,以此类推。最后按顺序依次输出这四个数。

(三)实验任务3

(1)程序代码:

# include

int main()

{

int a[4];

int i,j,t;

printf("input 4 numbers:\n");

for(i=0;i<4;i++)

scanf("%d",&a[i]);

printf("\n");

for(j=0;j<3;j++)

for(i=0;i<3-j;i++)

if(a[i]>a[i+1])

{t=a[i];a[i]=a[i+1];a[i+1]=t;}

printf("The sort numbers:\n");

for(i=0;i<4;i++)

printf("%d ",a[i]);

printf("\n");

return 0; }

(2)程序运行结果:由小到大顺序:

由大到小输出:

(3)程序分析:采用“起泡法”排序算法和嵌套的for 语句;当执行外循环第一次循环时,j=0,然后执行第一次内循环,此时i=0,在if 语句中将a 【i 】和a 【i+1】比较……这时第一趟过程完成。 当执行第二次外循环时,J=1,开始第二趟过程。内循环条件是i<3-J,由于j=1,因此相当于i<2,即i 由0到1。其余类推。

(四)实验任务4

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

(1)程序代码:# include # include # define p 3.141592 void main() {

float x,y,z;

scanf("%f",&x); if((x>=0)&&(x<=1)) y=exp(sqrt(x))-1;

else if((x>=3)&&(x<=4)) y=x+2;

else {z=pow(x,2)*(p/180);y=sin(z);} printf("x=%f\ny=%f\n",x,y); }(2)运行结果:

⎪⎩

⎪⎨⎧+-=)sin(2||12x x e y

x

4310≤≤≤≤x x

当x 取其他值时

相关文档
最新文档