3.5 编程体会
1)关系表达式中不要将关系运算符“==”写成赋值运算符“=”,否则会造成逻辑错误。例如
if(x = 4)
printf("x equal 4");
else
printf("x is not equal 4");
此代码总是导致输出“x equal 4”,因为将4的值赋给了x,条件表达式永远为真。
2)逻辑运算符“&&”和“||”不要写成“&”和“|”,“&”和“|”是位运算符,尽管不会产生语法错误,但含义完全不同。
3)在计算表达式时注意关系运算符和逻辑运算符的优先级,如果不能确定,使用括号能使表达式更加清晰。
4)一个if-else语句可以包含其他的if-else语句,在缺少大括号时else与最接近的未配对的if匹配。
5)当if或else语句块是复合语句时,必须用大括号括起来,否则会产生逻辑或语法错误。例如:
if(x > y)
temp = x;
x = y;
y = temp;
此代码出现逻辑错误,不管x是否大于y,x=y和y=temp都被执行,如果希望条件成立,执行3条语句,就需要将这3条语句用大括号括起来。
下面的代码会出现语法错误:
if(x > y)
temp = x;
x = y;
y = temp;
else
printf("x>y");
语法错误是else没有与之匹配的if语句。
6)switch结构中表达式的值必须是整型、字符型或枚举型,否则会发生编译错误。例如,定义double x=4.5,switch(x)是错误的。
7)switch结构中的default是可选项,如果省略了default,当表达式的值与任何case中的常量表达式都不相符时,就什么都不执行。
8)switch结构中多个case可以执行同一语句序列。例如程序prg3-8.c中
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
day = 31;
break;
9)每个case语句的结尾都要加break,否则后面的case就不再判断,直接执行其后的所有case和default后的语句。
上机实验3——选择结构程序设计
【实验目的】
1.掌握关系表达式和逻辑表达式的使用。
2.熟练使用if语句和switch语句实现选择结构。
3.练习调试与修改程序。
【实验内容】
1.编程实现输入三角形的三条边,确定三角形是什么三角形:等腰、等边、直角或普通。
实验步骤与要求:
(1)所有变量定义为大于0的整数。
(2)输入前要加提示语句。
(3)输出结果前要有必要的文字说明。
说明:首先要判断是不是三角形,然后再判断是什么三角形。
2.编写程序,输入三角形三边a、b、c,判断a、b、c能否构成三角形,若不能则输出相应的信息,若能则计算三角形面积。
实验步骤与要求:
(1)输入一组数据3,4,8,观察程序运行结果,并与上机实验2中的第3题进行比较。
(2)另外再输入几组数据进行测试:
3,4,5
3,3,3
3,3,5
(3)如果程序有误,可采用“跟踪打印”的调试方法,确定错误的出处。
说明:所谓“跟踪打印”,就是在程序中不同的地方插入输出语句,跟踪程序运行的过程。
3.编写程序,输入奖金数a,计算并输出税率、应缴税款和实得奖金数。
奖金 税率
a<500 0.00
500≤a<1000 0.05
1000≤a<2000 0.08
2000≤a<5000 0.10
5000≤a 0.15
实验步骤与要求:
(1)用switch语句编程,自变量和函数值均为双精度类型。
(2)用scanf函数输入奖金数a,输出结果采用以下形式:
a=具体值
rate=税率值 tax=应缴税款 profit=实得奖金数
(3)分别输入a=280,512,1000,4250,5100,运行该程序。
说明:double型数据在输入函数中使用%lf格式符(f前是字母l)。
习题3
3.1 编程实现输入3个整数,找出其中的最大值和最小值。
3.2 编写如下选择菜单,查询银行定期存款的年利率。分别用if多分支结构和switch多分支结构实现。
[1] three month interest rate
[2] half year interest rate
[3] one year interest rate
[4] two years interest rate
[5] three years interest rate
[6] five years interest rate
银行年利率如下表所示:
定 期 存 款 年 利 率
三个月 3.10
半年 3.30
一年 3.50
二年 4.40
三年 5.00
五年 5.50
3.3 从键盘输入学生的考试成绩,利用计算机将学生的成绩划分等级并输出。学生的成绩可分为5个等级,这5个等级是:90~99分为A级,80~89分为B级,70~79分为C级,60~69分为D级,0~59分为E级。学生的考试成绩为0~99分。分别用if多分支结构和switch多分支结构实现。
3.4 输入x的值,编程计算相应的函数值y。
y=x2 1≤x<2
y=-x 2≤x<3
y= y=y/x 3≤x<4
y=1+x+x2 x为其他值