《C语言程序设计》一3.5 编程体会

简介: 本节书摘来自华章出版社《C语言程序设计》一 书中的第3章,第3.5节,作者:赵宏 陈旭东 马迪芳,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

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为其他值

相关文章
|
26天前
|
监控 网络协议 API
C语言系统编程
C语言系统编程
|
1月前
|
C语言
C语言模块化程序设计
C语言模块化程序设计
21 0
|
1月前
|
Linux C语言 开发者
Linux系统下C语言的高阶编程
Linux系统下C语言的高阶编程
15 0
|
1月前
|
C语言
【C语言】循环结构程序设计(第二部分 -- 习题讲解)
【C语言】循环结构程序设计(第二部分 -- 习题讲解)
|
15天前
|
Linux 测试技术 C语言
【Linux】应用编程之C语言文件操作
【Linux】应用编程之C语言文件操作
|
25天前
|
存储 文件存储 C语言
《C语言程序设计》课程设计 -- 火车票票务管理系统
《C语言程序设计》课程设计 -- 火车票票务管理系统
22 1
|
26天前
|
存储 C语言
C语言顺序结构程序设计
C语言顺序结构程序设计
21 0
|
1月前
|
存储 C语言
C语言的顺序程序设计
C语言的顺序程序设计
11 2
|
1月前
|
自然语言处理 算法 搜索推荐
C语言的编程
C语言的编程
9 1
|
1月前
|
存储 C语言
C语言的顺序程序设计
C语言的顺序程序设计
14 0