1、实验二选择结构程序设计方案实验报告实验二 选择结构程序设计1、实验目的和要求1. 掌握关系表达式和逻辑表达式的使用。2. 熟悉选择结构程序设计。3. 熟练使用if语句进行程序设计。4. 使用switch语句实现多分支选择结构。二、实验设备PC机 Visual C+6.03、实验内容(1)实验准备1.从程序流程的角度来看,程序可以分为三种基本结构, 即顺序结构、分支(选择)结构、循环结构。2.If-else语句: 一般形式为: if(表达式) 语句1; else 语句2; 该语句用于实现分支结构,根据表达式的值选择语句1或语句2中的一条执行。首先求解表达式,如果表达式的值为“真”,则执行语句1;
2、如果表达式的值为“假”,则执行语句2.2.switch语句switch语句可以处理多分支选择问题,根据其中break语句的使用方法,一般分为三种情况。(2)实验工程1. 计算a+|b| #includeint main(void) int a,b,z。printf(Please enter a,b:n)。 scanf(%d,%d,&a,&b)。 if (b=0) b=b。 else b=-b。 z=a+b。 printf(%d+%d=%dn,a,b,z)。return 0 。2 判断一个整数是否可以被3和5整除#includeint main(void) int a 。 printf(Plea
3、se enter a: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),则将其转换成相应的整数显示出来;若输入其它字符,则显示出错信息。#includeint main(void) int a 。 printf(please enter a char:n)。 scanf(%d,&a)。 if(0=a)&(a=9) printf(This char is %d:n
4、,a)。 else printf(这个字符不是个整数:n)。 return 0 。4.编写一个程序,其功能为:从键盘输入三个数x、y、z,判断x+y=z是否成立,若成立输出“x+y=z”的信息,否则输出“x+y!=z”的信息。#includeint main(void) int x,y,z。 printf (请输入x,y,z:n)。 scanf (%d,%d,%d,&x,&y,&z)。 if (x+y=z) printf (x+y=zn)。 else printf (x+y!=zn)。 return 0。5.编写一个程序,其功能为:输入三个整数,输出最大数和最小数。#includeint ma
5、in(void) int a,b,c,x,y。 printf (请输入三个数字:n)。 scanf (%d,%d,%d,&a,&b,&c)。 x=0。if (ab) x=a。 if (xc) x=x。 else x=c。 else x=b。 if(xc) x=x。 else x=c。 y=0。if (ab) y=a。 if (yc) y=c。 else y=y。 printf (最大数是%d,最小值是%dn,x,y)。return 0。 6.如下两个线性方程组的两个未知数为x1和x2:ax1+bx2=mcx1+dx2=n该方程的唯一解为(ad-cb不等于零时):请编写一个程序,读取a、b、c、
6、d的值,计算x1和x2的值。如果ad-cd等于零,应给出适当的提示信息。#includeint main(void) int a,b,c,d,m,n,x1,x2。 printf(请输入方程组a,b,c,d,m,nn)。 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和%dn,x1,x2)。 return 0。7.某产品生产成本c=c1+mc2,其中c1为固
7、定成本,c2为单位产品可变成本。当生产数量m10000时,c1=20000元,c2=10元;当生产数量m10000时,c1=40000元,c2=5元;编写一个程序,其功能为:分别计算出生产数量为6000以及25000时,总生产成本及单位生产成本。#includeint main(void) int c,c1,c2,m。 printf(请输入生产数量m:n)。 scanf(%d,&m)。 if (m10000) c1=20000。 c2=10。 else c1=40000。 c2=5。 c=c1+m*c2。 printf(生产成本为%dn,c)。 return 0。8.编写一个程序,计算下列函数
8、:y=xx12x-11x103x-11X10#includeint main(void) int x,y。 printf (Plesse input a x :n)。 scanf (%d,&x)。 if (x=10) y=3*x-11。 else y=2*x-1。 printf (y=%dn,y)。return 0。9. 编写一个程序,其功能为:从键盘输入一个字符,判别该字符的类别,并输出向相应信息。#includeint main(void) char i。 scanf(%c,&i)。 if (i=0)&(i=A)&(i=a)&(i=z) printf (此字符为小写字母n)。 else p
9、rintf(此字符为其他字符n)。 return 0。10.编写一个程序,其功能为:从键盘输入一元二次方程ax2+bx+c=0的各项系数a、b、c的值,判断方程实数解的不同情况,分别求解方程,并输出(结果保留两位小数,如无实根给出相应的信息)。应用如下规则:(1)若a、b的值为零,则没有解;(2)若a为零,只有一个实数解;(3)若b2-4ac为负数,则没有实数解;若b2-4ac为正数,有两个实数解;若b2-4ac为零,有两个相等的实数解。#include #include int main(void) float a,b,c。 double x1,x2。 printf (Please inpu
10、t a,b,cn)。 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=%lfn,x1)。 else x1=(-b+(sqrt(b*b-4*a*c)/(2*a)。 x2=(-b-(sqrt(b*b-4*a*c)/(2*a)。printf(此方程有两个实根: x1=%lf
11、 x2=%lfn,x1,x2)。 return 0。11.编写程序,输入三角形三边 a、b、c,判断a、b、c能否构成三角形,若不能则输出相应的信息,若能则判断组成的是等腰、等边、直角还是一般三角形。#includeint main(void) int a,b,c。 printf(piease input a,b,c:n)。 scanf(%d,%d,%d,&a,&b,&c)。 if(a+bc)&(a+cb)&(b+ca) if(a=b&b=c&a=c) printf(能构成等边三角形n)。 else if(a=b|b=c|a=c) printf(能构成等腰三角形n)。 else if(a*a=
12、b*b+c*c|b*b=a*a+c*c|c*c=a*a+b*b) printf(能构成直角三角形n)。 else printf(能构成一般三角形n)。 else printf(不能构成三角形n)。 return 0。12.某个电力公司对其用户的收费规定如下:用电数量 收费标准0200 x*0.5元201400 100+(x-200)*0.65元401600 230+(x-400)*0.8元601以上 390+(x-600)*1.0元编写程序,对于一个输入的用电数量,计算用户的缴费额。#includeint main(void) double x,y。 printf(piease input x
13、:n)。 scanf(%lf,&x)。 if(x=0&x=201&x=401&x=600) y=230+(x-400)*0.8。 else y=390+(x-600)*1.0。 printf(y=%lfn,y)。 return 0。13某个服装展示厅对所卖商品打折规定如下:-购买总额 折扣 - 机加工产品 手工产品0100 - 5%101200 5% 7.5%201300 7.5% 10.0%大于300 10.0% 15.0%-编写程序输入购买总额,计算并输顾客实际应付的货款。 #include stdio.hint main(void) double x,y。 int lb。 printf(
14、请输入顾客购买总额x:n)。 scanf(%lf,&x)。 printf(请输入顾客购买类别lb:n)。 scanf(%d,&lb)。 if(x=0&x=101&x=201&x=300) if(lb=0) y=x*0.075。 else if(lb=1) y=x*0.1。 else printf(输入购买类别数据有误!)。 else if(lb=0) y=x*0.1。 else if(lb=1) y=x*0.15。 else printf(输入购买类别数据有误!)。 printf(x=%lf y=%lfn,x,y)。 return 0。14编程在屏幕上显示一张如下所示的时间表: *Time*1
15、morning2afternoon3nightPlease enter your choice:根据用户输入的时间序号显示相应的问候信息,选择1时显示“Good morning”, 选择2时显示“Good afternoon”, 选择3时显示“Good night”,对于其他选择显示“Selection error!”。#includeint main(void) int xh。 printf(nn*Time*n)。 printf(1 morning n)。 printf(2 afternoon n)。 printf(3 night n)。 printf(nn请输入您的选择(1、2、3):)。
16、 scanf(%d,&xh)。 switch(xh) case 1: printf(nGood morningn)。break。 case 2: printf(nGood atfernoonn)。break。 case 3: printf(nGood nightn)。break。 default: printf(nSelection error!n)。break。 return 0。 15编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式: 操作数1 运算符op 操作数2计算表达式的值,指定的运算符为加(+)、减(-)、乘(*)、除(/)#includeint main(void)
17、float x,y,z。 char op。 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。 else printf(“除数为0”)。printf(“%f%c%f=%fn”,x,op,y,z)。#include void main() float x,y,z。 char op。 printf(“请输入表达式:”)。 scanf(“%f,%c,%f”,&x,&op,&y)。 switch(op) c
18、ase +: z=x+y。 case -: z=x-y。 case *: z=x*y。 case /: if (y!=0) z=x/y。 else printf(“除数为0”)。 printf(“%f%c%f=%fn”,x,op,y,z)。return 0。16输入某学生的成绩,经处理后给出学生的等级,等级分类如下: 90分以上(包括90): A 80至90分(包括80):B 70至80分(包括70):C 60至70分(包括60):D 60分以下: E方法一:(用if语句的嵌套)#includeint main(void) float score。 printf(请输入成绩:)。 scanf(
19、%f,&score)。 if(score=0&score=90) printf(%f A,score)。 else if(score=80) printf(%f B,score)。 else if(score=70) printf(%f C,score)。 else if(score=60) printf(%f D,score)。 else printf(%f E,score)。 else printf(成绩输入有误!)。return 0。方法二:用switch语句#includeint main(void) float score。 int p。 printf(请输入成绩:)。 scanf(
20、%f,&score)。 p=(int)(score/10)。 if(score=0&score=100) switch(p) case 10: case 9: printf(%f A,score)。break。 case 8: printf(%f B,score)。break。 case 7: printf(%f C,score)。break。 case 6: printf(%f D,score)。break。 default: printf(%f E,score)。 else printf(成绩输入有误!)。return 0。4、实验小结通过本次实验我进一步熟悉了C语言操作环境,学习了两种条件语句,弄清了语句格式和使用方法。学会了分别使用使用if嵌套语句和switch语句实现功能,其中在使用if嵌套时要注意分清层次,明白else所对应的应当是离得最近的if语句,防止发生逻辑错误。条件判断语句可以结合逻辑运算符更好得实现。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1