C Programming学习笔记【谭浩强老师编】(第三章顺序程序设计)04 C语句
文章目录
- 一、C语句结构
- 1.控制语句:
- 2.函数调用语句
- 3.表达式语句
- 4.空语句
- 5.复合语句
- 二、赋值语句
- 举例1:给出三角形的三边长,求三角形面积。
- 三、赋值运算符
- 四、复合运算符
- 五、赋值表达式
- 六、赋值过程中的类型转换
一、C语句结构
1.控制语句:
① if()…else…(条件语句)
② for()…(循环语句)
③ while()…(循环语句)
④ do…while ()(循环语句)
⑤ continue(结束本次循环语句)
⑥ break(中止执行switch或循环语句)
⑦ switch(多分支选择语句)
⑧ return(从函数返回语句)
⑨ goto(转向语句,在结构化程序中基本不用goto语句)
()表示括号中是一个判别条件
…表示内嵌的语句
2.函数调用语句
函数调用语句由一个函数调用加一个分号构成。
printf("I am ihan001. ");其中printf("I am ihan001. ");是一个函数调用,加一个分号成为一个语句。
3.表达式语句
表达式语句由一个表达式加一个分号构成,最典型的是由赋值表达式构成一个赋值语句。例如:
a=3
是一个赋值表达式,而
a=3;
是一个赋值语句。
4.空语句
;
只有一个分号的语句即为空语句。
可以用来作为流程的转向点(流程从程序其他地方转到此语句处);
也可用来作为循环语句中的循环体(循环体是空语句,表示循环体什么也不做)。
5.复合语句
可以用{}把一些语句和声明括起来成为复合语句(又称语句块)。
{float pi=3.14159, r=2.5, area; //定义变量area=pi*r*r;printf("area=%f",area);
}
复合语句常用在if语句或循环中,此时程序需要连续执行一组语句。
复合语句中最后一个语句末尾的分号不能忽略不写。
二、赋值语句
举例1:给出三角形的三边长,求三角形面积。
思路:area=√s(s−a)(s−b)(s−c),其中s=(a+b+c)/2。
#include <stdio.h>
#include <math.h>
int main (){double a,b,c,s,area; //定义各变量,均为double型 a=3.00; //对边长a赋值 b=5.00; //对边长b赋值 c=4.00; //对边长c赋值s=(a+b+c)/2; //计算s area=sqrt(s*(s-a)*(s-b)*(s-c)); //计算area printf("a=%f\tb=%f\t%f\n",a,b,c); //输出三边a,b,c的值 printf("area=%f\n",area); //输出面积area的值return 0;}
三、赋值运算符
“=”的作用是将一个数据赋给一个变量。
例如:a=3的作用是执行一次赋值操作(或称赋值运算)。把常量3赋给变量a。
也可以将一个表达式的值赋给一个变量。
四、复合运算符
在赋值符=之前加上其他运算符,可以构成复合的运算符。
a+=3 等价于a=a+3x*=y+8 等价于x=x*(y+8)x%=3 等价于x=x%3
凡是二元(二目)运算符,都可以与赋值符一起组合成复合赋值符。
有关算术运算的复合赋值运算符有+=,-=,=,/=,%=。
注意:
如果赋值符右边是包含若干项的表达式,则相当于它有括号。例如,
x%=y+3等价于x=x%(y+3),切勿错写为x=x%y+3。
五、赋值表达式
赋值表达式的作用是将一个表达式的值赋给一个变量,因此赋值表达式具有计算和赋值的双重功能。
对赋值表达式求解的过程是:
①求赋值运算符右侧的“表达式”的值,②赋给赋值运算符左侧的变量。既然是一个表达式,就应该有一个值,表达式的值等于赋值后左侧变量的值。
赋值运算符左侧应该是一个可修改值的“左值”(left value,简写为lvalue)。
能出现在赋值运算符右侧的表达式称为“右值”(right value,简写为rvalue)。
注意:并不是任何形式的数据都可以作为左值的,左值应当为存储空间并可以被赋值。变量可以作为左值,而算术表达式a+b就不能作为左值,常量也不能作为左值。
a=b=c=5 表达式值为5,a,b,c值均为5
a=5+(c=6) 表达式值为11,a值为11,c值为6
a=(b=4)+(c=6) 表达式值为10,a值为10,b等于4,c等于6
a=(b=10)/(c=2) 表达式值为5,a等于5,b等于10,c等于2
a=(b=3*4) 表达式值为12,a,b值均为12
赋值表达式使得赋值操作不仅可以出现在赋值语句中,而且可以出现在其他语句中(如输出语句、循环语句等)
如: printf("%d", a=b);
如果b的值为3,则输出a的值(也是表达式a=b的值)为3。在一个printf函数中完成了赋值和输出双重功能。
六、赋值过程中的类型转换
如果赋值运算符两侧的类型一致,则直接进行赋值。
如果赋值运算符两侧的类型不一致,但都是基本类型时,在赋值时要进行类型转换。类型转换是由系统自动进行的,转换的规则是:
将浮点型数据(包括单、双精度)赋给整型变量时,先对浮点数取整,即舍弃小数部分,然后赋予整型变量。
将整型数据赋给单、双精度变量时,数值不变,但以浮点数形式存储到变量中。
将一个double型数据赋给float变量时,先将双精度数转换为单精度,即只取6~7位有效数字,存储到float型变量的4个字节中。应注意双精度数值的大小不能超出float型变量的数值范围;将一个float型数据赋给double型变量时,数值不变,在内存中以8个字节存储,有效位数扩展到15位。
字符型数据赋给整型变量时,将字符的ASCII代码赋给整型变量。
将一个占字节多的整型数据赋给一个占字节少的整型变量或字符变量时,只将其低字节原封不动地送到被赋值的变量(即发生“截断”)。
C Programming学习笔记【谭浩强老师编】(第三章顺序程序设计)04 C语句相关推荐
- 谭浩强c语言第三章,谭浩强C语言第三章数据类型.ppt
谭浩强C语言第三章数据类型.ppt 第三章 数据类型 运算符与表达式 本章要点 数据的描述规则数据的操作规则 主要内容 3 1C的数据类型3 2常量与变量3 3整型数据3 4浮点型数据运行3 5字符型 ...
- C Programming学习笔记【谭浩强老师编】(第四章选择结构程序设计)02 逻辑运算符和逻辑表达式
文章目录 一.逻辑运算符和逻辑表达式 二.条件运算符和条件表达式 举例2.1 三.选择结构的嵌套 举例3.1 四.用switch语句实现多分支结构 举例4.1 举例4.2 五.选择结构程序综合举例 选 ...
- 学习谭浩强老师的《C程序设计》,必配《C程序设计伴侣》!
<C程序设计伴侣>作者陈良乔:"更有趣.更容易.更深刻.更实战的<C程序设计伴侣>--<C程序设计>的有力补充和最佳伴侣.在中国,几乎每一个人,第一次接触 ...
- 谭浩强c语言第六章兔子数列,谭浩强 C语言 第6章_循环.ppt
谭浩强 C语言 第6章_循环 第六章 本章要点 循环的基本概念 不同形式的循环控制 多重循环问题 主要内容 6.1 概述 6.2 goto语句以及用goto语句构成循环 6.3 用while语句实现循 ...
- 谭浩强c语言第7章,清华大学C语言谭浩强第7章.ppt
清华大学C语言谭浩强第7章.ppt 第7章复合结构类型,第7章 复合结构类型,7.1 结构体类型的概述 7.2 结构体类型的定义 7.3 结构体变量的定义及内存分配 7.4 结构体变量的初始化和引用 ...
- 谭浩强c语言第7章14题,谭浩强C语言课件第7章.ppt
谭浩强C语言课件第7章.ppt 第7章 自定义数据类型 7.1 结构体类型 7.2 共用体 7.3 枚举类型 7.4 用typedef声明类型 C++提供了许多种基本的数据类型(如int.float. ...
- 谭浩强c语言第7章14题,谭浩强C语言_第7章_函数2.ppt
谭浩强C语言_第7章_函数2 第八章 函数 函数概述 #include void main() { float average(float array[10]); /* 函数声明 */ float s ...
- 猴子第一天摘下若干个桃子,当时吃了一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个谭浩强c语言第五章第十二题
题目 本题是谭浩强<c语言程序设计>第五章第十二题 题目:猴子第一天摘下若干个桃子,当时吃了一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上再想吃时,就只剩一个 ...
- C语言学习笔记:(五)结构化程序设计方法与顺序程序设计举例
目录 目录 一.基本思路 二.具体方法 (1)自顶向下,逐步细化 (2)模块化设计 (3)结构化编码 三.顺序程序设计举例 一.基本思路 结构化程序设计的基本思路为:把一个复杂问题的求解过程分阶段进行 ...
最新文章
- 十步完全理解 SQL
- PowerDesigner导入Excel/CSV
- Redis的两种持久化方式
- 使用 Strace 和 GDB 调试工具的乐趣
- mailto 附带附件_为什么附带项目如此重要
- Go语言教程,电子书,PDF格式
- 结对第一次—原型设计
- modbus tcp主站和从站_图文讲解PLC通讯MODBUS协议的应用及编程
- Python 代理验证程序(For 无忧代理) 多线程版
- 2020年9月程序员工资最新统计,结果万万没想到
- 用于打开文件的php函数是,PHP文件操作(PHP读写文件)
- UEFI 双系统+双硬盘安装
- 音频左右声道数据合并到一个声道
- 汉诺塔(内部+伪图形)
- ndn中自适应转发策略总结
- 第十五周翻译-《Pro SQL Server Internals, 2nd edition》
- 遥感图像-Deep Feature Alignment Neural Networks for Domain Adaptation of Hyperspectral Data高光谱数据深度特征对齐神经
- Gogs-轻量级代码仓库
- 浅谈XILINX FPGA CLB单元 汇总 (CLB、LUT、存储单元、Distributed RAM、移位寄存器、多路复用器、进位逻辑(Carry Logic))
- 盖茨不看好鸿蒙,比尔盖茨不看好华为“鸿蒙”系统?华为已将目标瞄准Windows...