实验二选择结构程序设计实验报告.docx

上传人:b****1 文档编号:23163299 上传时间:2023-05-15 格式:DOCX 页数:22 大小:19.01KB
下载 相关 举报
实验二选择结构程序设计实验报告.docx_第1页
第1页 / 共22页
实验二选择结构程序设计实验报告.docx_第2页
第2页 / 共22页
实验二选择结构程序设计实验报告.docx_第3页
第3页 / 共22页
实验二选择结构程序设计实验报告.docx_第4页
第4页 / 共22页
实验二选择结构程序设计实验报告.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

实验二选择结构程序设计实验报告.docx

《实验二选择结构程序设计实验报告.docx》由会员分享,可在线阅读,更多相关《实验二选择结构程序设计实验报告.docx(22页珍藏版)》请在冰豆网上搜索。

实验二选择结构程序设计实验报告.docx

实验二选择结构程序设计实验报告

实验二选择结构程序设计

1、实验目的和要求

1.掌握关系表达式和逻辑表达式的使用。

2.熟悉选择结构程序设计。

3.熟练使用if语句进行程序设计。

4.使用switch语句实现多分支选择结构。

二、实验设备

PC机VisualC++

3、实验内容

(1)实验准备

1.从程序流程的角度来看,程序可以分为三种基本结构,即顺序结构、分支(选择)结构、循环结构。

2.If-else语句:

一般形式为:

if(表达式)

语句1;

else

语句2;

该语句用于实现分支结构,根据表达式的值选择语句1或语句2中的一条执行。

首先求解表达式,如果表达式的值为“真”,则执行语句1;如果表达式的值为“假”,则执行语句2.

2.switch语句

switch语句可以处理多分支选择问题,根据其中break语句的使用方法,一般分为三种情况。

(2)实验项目

1.计算a+|b|

#include<>

intmain(void)

{

inta,b,z;

printf("Pleaseentera,b:

\n");

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

if(b>=0){

b=b;

}

else{

b=-b;

}

z=a+b;

printf("%d+%d=%d\n",a,b,z);

return0;

}

2判断一个整数是否可以被3和5整除

#include<>

intmain(void)

{

inta;

printf("Pleaseentera:

\n");

scanf("%d",&a);

if(a%3==0){

printf("a可以被3整除:

\n");

}

else{

if(a%5==0){

printf("a可以被5整除:

\n");

}

else{

printf("a不可以被5整除,也不可以被3整除:

\n");

}

}

3.从键盘输入一个字符型数据,若输入一个数字字符('0'-'9'),则将其转换成相应的整数显示出来;若输入其它字符,则显示出错信息。

#include<>

intmain(void)

{

inta;

printf("pleaseenterachar:

\n");

scanf("%d",&a);

if((0<=a)&&(a<=9))

{

printf("Thischaris%d:

\n",a);

}

else

{

printf("这个字符不是个整数:

\n");

}

return0;

}

4.编写一个程序,其功能为:

从键盘输入三个数x、y、z,判断x+y=z是否成立,若成立输出“x+y=z”的信息,否则输出“x+y!

=z”的信息。

#include<>

intmain(void)

{

intx,y,z;

printf("请输入x,y,z:

\n");

scanf("%d,%d,%d",&x,&y,&z);

if(x+y==z)

{

printf("x+y=z\n");

}

else

{

printf("x+y!

=z\n");

}

return0;

}

5.编写一个程序,其功能为:

输入三个整数,输出最大数和最小数。

#include<>

intmain(void)

{

inta,b,c,x,y;

printf("请输入三个数字:

\n");

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

x=0;

if(a>b)

{

x=a;

if(x>c)

{

x=x;

}

else

{

x=c;

}

}

else

{

x=b;

if(x>c)

{

x=x;

}

else

{

x=c;

}

}

y=0;

if(a

{

y=a;

if(y

{

y=y;

}

else

{

y=c;

}

}

else

{

y=a;

if(y>c)

{

y=c;

}

else

{

y=y;

}

}

printf("最大数是%d,最小值是%d\n",x,y);

return0;

}

6.如下两个线性方程组的两个未知数为x1和x2:

ax1+bx2=m

cx1+dx2=n

该方程的唯一解为(ad-cb不等于零时):

请编写一个程序,读取a、b、c、d的值,计算x1和x2的值。

如果ad-cd等于零,应给出适当的提示信息。

#include<>

intmain(void)

{

inta,b,c,d,m,n,x1,x2;

printf("请输入方程组a,b,c,d,m,n\n");

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

if(a*d-c*b==0)

{

printf("此方程组无解\n");

}

else

{

x1=(m*d-b*n)/(a*d-c*b);

x2=(n*a-m*c)/(a*d-b*c);

printf("此方程组的解为%d和%d\n",x1,x2);

}

return0;

}

7.某产品生产成本c=c1+mc2,其中c1为固定成本,c2为单位产品可变成本。

当生产数量m<10000时,c1=20000元,c2=10元;当生产数量m≥10000时,c1=40000元,c2=5元;编写一个程序,其功能为:

分别计算出生产数量为6000以及25000时,总生产成本及单位生产成本。

#include<>

intmain(void)

{

intc,c1,c2,m;

printf("请输入生产数量m:

\n");

scanf("%d",&m);

if(m<10000)

{

c1=20000;

c2=10;

}

else

{

c1=40000;

c2=5;

}

c=c1+m*c2;

printf("生产成本为%d\n",c);

return0;

}

8.编写一个程序,计算下列函数:

y=

x

x<1

2x-1

1≤x<10

3x-11

X≥10

#include<>

intmain(void)

{

intx,y;

printf("Plesseinputax:

\n");

scanf("%d",&x);

if(x<1)

{y=x;}

else

{

if(x>=10)

{y=3*x-11;

}

else

{y=2*x-1;

}

}

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

return0;

}

9.编写一个程序,其功能为:

从键盘输入一个字符,判别该字符的类别,并输出向相应信息。

#include<>

intmain(void)

{

chari;

scanf("%c",&i);

if(i<32)

{printf("此字符为控制字符\n");}

else

{

if((i>='0')&&(i<='9'))

{printf("此字符为数字字符\n");}

else

{

if((i>='A')&&(i<='Z'))

{printf("此字符为大写字母\n");}

else

{

if((i>='a')&&(i<='z'))

{printf("此字符为小写字母\n");}

else

{

printf("此字符为其他字符\n");

}

}

}

}

return0;

}

10.编写一个程序,其功能为:

从键盘输入一元二次方程ax2+bx+c=0的各项系数a、b、c的值,判断方程实数解的不同情况,分别求解方程,并输出(结果保留两位小数,如无实根给出相应的信息)。

应用如下规则:

(1)若a、b的值为零,则没有解;

(2)若a为零,只有一个实数解;

(3)若b2-4ac为负数,则没有实数解;若b2-4ac为正数,有两个实数解;若b2-4ac为零,有两个相等的实数解。

#include<>

#include<>

intmain(void)

{

floata,b,c;

doublex1,x2;

printf("Pleaseinputa,b,c\n");

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

if((a==0)&&(b==0))

{printf("此方程没有解\n");}

else

{

if(a==0)

{

printf("此方程有一个实根\n");}

else

{if((b*b-4*a*c)<0)

{printf("此方程无实根\n");}

else

{

if((b*b-4*a*c)==0)

{x1=((-b)/(2*a));

printf("此方程有两个相等实根:

x1=x2=%lf\n",x1);

}

else

{x1=(-b+(sqrt(b*b-4*a*c)))/(2*a);

x2=(-b-(sqrt(b*b-4*a*c)))/(2*a);

printf("此方程有两个实根:

x1=%lfx2=%lf\n",x1,x2);

}

}

}

}

return0;

}

11.编写程序,输入三角形三边a、b、c,判断a、b、c能否构成三角形,若不能则输出相应的信息,若能则判断组成的是等腰、等边、直角还是一般三角形。

#include<>

intmain(void)

{

inta,b,c;

printf("pieaseinputa,b,c:

\n");

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

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

{

if(a==b&&b==c&&a==c)

{printf("能构成等边三角形\n");

}

else

{

if(a==b||b==c||a==c)

{printf("能构成等腰三角形\n");

}

else

{

if(a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b)

{printf("能构成直角三角形\n");

}

else

{printf("能构成一般三角形\n");

}

}

}

}

else

{printf("不能构成三角形\n");

}

return0;

}

12.某个电力公司对其用户的收费规定如下:

用电数量收费标准

0~200x*元

201~400100+(x-200)*元

401~600230+(x-400)*元

601以上390+(x-600)*元

编写程序,对于一个输入的用电数量,计算用户的缴费额。

#include<>

intmain(void)

{

doublex,y;

printf("pieaseinputx:

\n");

scanf("%lf",&x);

if(x<0)

{printf("输入的数据有误!

\n");}

else

{

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

{y=x*;

}

else

{

if(x>=201&&x<=400)

{y=100+(x-200)*;

}

else

{

if(x>=401&&x<=600)

{y=230+(x-400)*;

}

else

{y=390+(x-600)*;

}

}

printf("y=%lf\n",y);}

}

return0;

}

13某个服装展示厅对所卖商品打折规定如下:

------------------------------------------------------------

购买总额折扣

-------------------------------------------

机加工产品手工产品

0~100-5%

101~2005%%

201~%%

大于%%

--------------------------------------------------------------

编写程序输入购买总额,计算并输顾客实际应付的货款。

#include""

intmain(void)

{

doublex,y;

intlb;

printf("请输入顾客购买总额x:

\n");

scanf("%lf",&x);

printf("请输入顾客购买类别lb:

\n");

scanf("%d",&lb);

if(x<0)

printf("输入购买总额数据有误!

");

else

{

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

{

if(lb==0)

y=x;

elseif(lb==1)

y=x*;

else

printf("输入购买类别数据有误!

");

}

elseif(x>=101&&x<=200)

{

if(lb==0)

y=x*;

elseif(lb==1)

y=x*;

else

printf("输入购买类别数据有误!

");

}

elseif(x>=201&&x<=300)

{

if(lb==0)

y=x*;

elseif(lb==1)

y=x*;

else

printf("输入购买类别数据有误!

");

}

else

{

if(lb==0)

y=x*;

elseif(lb==1)

y=x*;

else

printf("输入购买类别数据有误!

");

}

printf("x=%lfy=%lf\n",x,y);

}

return0;

}

14编程在屏幕上显示一张如下所示的时间表:

*******Time*******

1morning

2afternoon

3night

Pleaseenteryourchoice:

根据用户输入的时间序号显示相应的问候信息,选择1时显示“Goodmorning”,选择2时显示“Goodafternoon”,选择3时显示“Goodnight”,对于其他选择显示“Selectionerror!

”。

#include<>

intmain(void)

{

intxh;

printf("\n\n*******Time*******\n");

printf("1morning\n");

printf("2afternoon\n");

printf("3night\n");

printf("\n\n请输入您的选择(1、2、3):

");

scanf("%d",&xh);

switch(xh)

{

case1:

printf("\nGoodmorning\n");break;

case2:

printf("\nGoodatfernoon\n");break;

case3:

printf("\nGoodnight\n");break;

default:

printf("\nSelectionerror!

\n");break;

}

return0;

}

15编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式:

操作数1运算符op操作数2

计算表达式的值,指定的运算符为加(+)、减(-)、乘(*)、除(/)

#include<>

intmain(void)

{

floatx,y,z;

charop;

printf(“请输入表达式:

”);

scanf(“%f,%c,%f”,&x,&op,&y);

if(op==‘+’)

z=x+y;

if(op==‘-’)

z=x-y;

if(op==‘*’)

z=x*y;

if(op==‘/’)

{if(y!

=0)z=x/y;

elseprintf(“除数为0”);}

printf(“%f%c%f=%f\n”,x,op,y,z);

}

#include<>

voidmain()

{floatx,y,z;

charop;

printf(“请输入表达式:

”);

scanf(“%f,%c,%f”,&x,&op,&y);

switch(op)

{

case‘+’:

z=x+y;

case‘-’:

z=x-y;

case‘*’:

z=x*y;

case‘/’:

{if(y!

=0)z=x/y;

elseprintf(“除数为0”);}

}

printf(“%f%c%f=%f\n”,x,op,y,z);

return0;

}

16输入某学生的成绩,经处理后给出学生的等级,等级分类如下:

90分以上(包括90):

A

80至90分(包括80):

B

70至80分(包括70):

C

60至70分(包括60):

D

60分以下:

E

方法一:

(用if语句的嵌套)

##include<>

intmain(void)

{

floatscore;

printf("请输入成绩:

");

scanf("%f",&score);

if(score>=0&&score<=100)

if(score>=90)

printf("%fA",score);

elseif(score>=80)

printf("%fB",score);

elseif(score>=70)

printf("%fC",score);

elseif(score>=60)

printf("%fD",score);

elseprintf("%fE",score);

elseprintf("成绩输入有误!

");

return0;

}

方法二:

用switch语句

#include<>

intmain(void)

{

floatscore;

intp;

printf("请输入成绩:

");

scanf("%f",&score);

p=(int)(score/10);

if(score>=0&&score<=100)

switch(p)

{

case10:

case9:

printf("%fA",score);break;

case8:

printf("%fB",score);break;

case7:

printf("%fC",score);break;

case6:

printf("%fD",score);break;

default:

printf("%fE",score);

}

elseprintf("成绩输入有误!

");

return0;

}

4、实验小结

通过本次实验我进一步熟悉了C语言操作环境,学习了两种条件语句,弄清了语句格式和使用方法。

学会了分别使用使用if嵌套语句和switch语句实现功能,其中在使用if嵌套时要注意分清层次,明白else所对应的应当是离得最近的if语句,防止发生逻辑错误。

条件判断语句可以结合逻辑运算符更好得实现。

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1