第二章 顺序结构 1 数据类型和标识符、常量与变量 2 运算符和表达式 3 简单的输入输出 4 程序举例
C语言的数据类型 所有数据都是有类型的。 简单数据类型: 使用sizeof(类型名)获取某类型在该机器的内存中所占的字节数。 第二章 顺序结构 C语言的数据类型 所有数据都是有类型的。 简单数据类型: 整型 int 值有范围 浮点型(实型),带小数位的: 单精度浮点型 float 值有范围 双精度浮点型 double 值有范围 差别:小数位的精度不一样。 字符型 char 占1个字节 值有范围-128~127 字符的ASCII码本质上就是整数。因此,字符与整数有很大的关系。 使用sizeof(类型名)获取某类型在该机器的内存中所占的字节数。 更多数据类型…… 第 1 节 数据类型、标识符、常量与变量
标识符 作用:用作类型名、变量名、常量名、函数名等。标识符是一个代号,是计算机语言中不可缺少的代号。 分类: 用户自定义的标识符如何取名: 第二章 顺序结构 标识符 作用:用作类型名、变量名、常量名、函数名等。标识符是一个代号,是计算机语言中不可缺少的代号。 分类: 标准标识符 又称保留字、关键字。如:int float double char 用户自定义标识符 用户自定义的标识符如何取名: 以英文字母或下划线开头,再跟上若干个字母或数字。除此之外,不能使用其它符号,即只能使用26*2个字母(包括大小写的)、0~9数字这十个数字、_(即下划线)。共63种符号。 如:a、A、_delphi、p2、c_1t8 合法 a?1、姓名、δ、β、@ 非法 标准标识符与自定义标识符的差别:不能乱用。 第 1 节 数据类型、标识符、常量与变量
常量 定义:值始终保持不变的量。 譬如:重力加速度、圆周率、班级人数等。 分类: 直接常量是有类型的。 直接常量(字面量)。 第二章 顺序结构 常量 定义:值始终保持不变的量。 譬如:重力加速度、圆周率、班级人数等。 分类: 直接常量(字面量)。 譬如:'a' 'A' 65 3.14 "我爱学生" 符号常量,是用标识符来代表常量。 譬如: #define PI 3.14 直接常量是有类型的。 第 1 节 数据类型、标识符、常量与变量
变量 定义:值可以不断变化的量。 譬如:时间、早锻炼的人数 变量肯定是有确定的类型的。变量必须先声明后使用。 变量声明的方法: 第二章 顺序结构 变量 定义:值可以不断变化的量。 譬如:时间、早锻炼的人数 变量肯定是有确定的类型的。变量必须先声明后使用。 变量声明的方法: 类型名 变量名; 譬如: 变量必须拥有确定的值之后才能参与运算。 变量的赋值方法: 赋值号左边必须且只能是一个变量名; 右边可以是变量名、常量名、表达式、函数名等。 变量的声明与赋值可一起完成。 使用sizeof(类型名)获取某类型常量、变量在该机器的内存中所占字节数。 第 1 节 数据类型、标识符、常量与变量
第二章 顺序结构 第 2 节 运算符与表达式
算术运算 种类: 运算规则: 应用: + - * / %(整除取余数、模运算) 是双目运算; -(取相反数),是单目运算; 第二章 顺序结构 算术运算 种类: + - * / %(整除取余数、模运算) 是双目运算; -(取相反数),是单目运算; 运算规则: + - * /只有两个操作数都是整型的,结果才是整型的。譬如: % 要求两个操作数都是整型的,且结果的符号与被除数的一致; 应用: 取出整数123个位上的数字 123%10 ; 取出整数123十位上的数字? 实数的四舍五入 123.6 -> 124 ? 第 2 节 运算符与表达式
关系运算 种类: 注意: 应用: 就是比较大小,有:> >= < <= == != 第二章 顺序结构 关系运算 种类: 就是比较大小,有:> >= < <= == != 运算的结果是真或假。在C语言中,真用1表示、假用0表示; 注意: 不能像数学上那样书写,必须使用键盘上拥有的符号进行描述; >= <= == != 中间不能分隔开,必须连写; 比较时运算符两边的数据类型尽量一致; 譬如:3 == 3.000000 为真还是为假? 整数是精确表示,而实数是近似表示??? 应用: 怎样判断一个实数等于0.0? 常认为其绝对值小于1e-6(即10-6)就认为它等于0.0了。 第 2 节 运算符与表达式
逻辑运算 种类: 运算规则: 与或非。逻辑运算结果是真、假,用1、0表示。 与就是并且,只有两个操作数都为真,结果才为真。譬如: 第二章 顺序结构 逻辑运算 种类: 与或非。逻辑运算结果是真、假,用1、0表示。 与用&&表示;是双目运算符 或用||表示;是双目运算符 非用! 表示;是单目运算符 运算规则: 与就是并且,只有两个操作数都为真,结果才为真。譬如: 或就是或者,只要有一个操作数为真,结果就为真。譬如: 非就是取反,真的反面是假,假的反面是真。譬如: 在一个表达式中同时出现这三个运算符时,先算非、再算与、最后算或。 第 2 节 运算符与表达式
赋值运算 就是将一个表达式的值赋给左边的变量。 规则: 进行赋值运算时,最好是赋值号两边的类型一致;否则,会出现类型的转换。 第二章 顺序结构 赋值运算 就是将一个表达式的值赋给左边的变量。 规则: 进行赋值运算时,最好是赋值号两边的类型一致;否则,会出现类型的转换。 类型的转换有两种:自动转换、强制转换。 自动转换,一般是取值范围小的向取值范围大的自动转换; 反之,需要加上强制类型转换,且可能会发生截取,即值发生改变。 第 2 节 运算符与表达式
复合赋值运算 种类: 算术运算的复合(+=、-=、*=、/=、%=) 第二章 顺序结构 复合赋值运算 种类: 算术运算的复合(+=、-=、*=、/=、%=) 位运算的复合(&=、|=、^=、>>=、<<=、>>>=) 第 2 节 运算符与表达式
自增自减运算 自增(自加): 自减: 分先加、后加,单独使用没有多大区别; 与其它运算结合在一起,则意义发生了很大变化。 第二章 顺序结构 第 2 节 运算符与表达式
位运算 就是按数据的二进制位进行计算。 即先将十进制的数据转换成对应的二进制的,再开始进行位运算,最后将结果再转换成十进制的数据。 种类: 第二章 顺序结构 位运算 就是按数据的二进制位进行计算。 即先将十进制的数据转换成对应的二进制的,再开始进行位运算,最后将结果再转换成十进制的数据。 种类: 位与、位或、按位取反(&、|、~) 异或(^) 左移、右移、逻辑右移(<< 、 >> 、 >>>) 第 2 节 运算符与表达式
第二章 顺序结构 逗号运算 逗号表达式的值始终等于最后一个数的值。譬如: 第 2 节 运算符与表达式
运算符的优先级 运算符优先级的规则: 运算符小结 括号的优先级最高 其次是单目运算符 再是算术运算符 再是关系运算符 再是逻辑运算符 …… 第二章 顺序结构 运算符的优先级 运算符优先级的规则: 括号的优先级最高 其次是单目运算符 再是算术运算符 再是关系运算符 再是逻辑运算符 …… 再是赋值运算符 最低的是逗号运算符 运算符小结 知识点多、繁、杂,应该多与数学上的运算进行类比、转化,不是照搬。 第 2 节 运算符与表达式
第二章 顺序结构 第 3 节 输入输出函数
简单的输出 使用一条printf函数可以输出一个或多个量的值; printf的语法格式: printf("控制符串",输出量列表); 第二章 顺序结构 简单的输出 使用一条printf函数可以输出一个或多个量的值; printf的语法格式: printf("控制符串",输出量列表); 控制符号必须与输出量的个数一致,类型尽量一致; %d int %c char %f float、double %lf double %s 字符串 譬如: int i=65; char c= 'a'; float f=3.14; double d=9.80; printf("%d\n",i); printf("%c\n",c); printf("%f\n",f); printf("%lf\n",d); printf("%d,%c,%f,%lf\n",i,c,f,d); printf("%d",i); printf("%c",c); printf("%f",f); printf("%lf",d); printf("%d%c%f%lf",i,c,f,d); 第 3 节 输入输出
简单的输入 使用一条scanf语句可以输入一个或多个变量的值; scanf的语法格式: 强烈建议: 控制符号之间不要加入任何其它内容!!! 第二章 顺序结构 简单的输入 使用一条scanf语句可以输入一个或多个变量的值; scanf的语法格式: scanf("控制符串",地址列表); 控制符与变量类型间的对应关系: %d int %c char %f float %lf double 控制符号必须与变量的类型、个数一致 变量应该使用取地址运算符 & 譬如: int ix,iy; 强烈建议: 控制符号之间不要加入任何其它内容!!! scanf("%d",&ix); scanf("%d",&iy); scanf("%d%d",&ix,&iy); float fx,fy; scanf("%f%f",&fx,&fy); scanf("%f",&fx); scanf("%f",&fy); double dx,dy; scanf("%lf%lf",&fx,&fy); scanf("%lf",&fx);scanf("%lf",&fy); char cx,cy; scanf("%f%lf%lf%f,&fx,&dx,&dy,&fx); 第 3 节 输入输出
字符的输入和输出 字符输入的专用函数getchar( ) 字符输出的专用函数putchar( ) 一个函数对应的只能输入一个字符; 用法: 第二章 顺序结构 字符的输入和输出 字符输入的专用函数getchar( ) 一个函数对应的只能输入一个字符; 用法: char c=getchar( ); int i=getchar( ); 字符输出的专用函数putchar( ) 一个函数对应的只能输出一个字符; putchar('a'); putchar(97); char c1='B'; putchar(c1); printf("%c\n",c); printf("%d\n",c); int c2=65; putchar(c2); printf("%c\n",c2); printf("%d\n",c2); 第 3 节 输入输出
复杂的输入 多种类型的数据混和在一起进行输入。问题就复杂了。 使用fflush(stdin);清除已输入的所有数据。 譬如: 第二章 顺序结构 复杂的输入 多种类型的数据混和在一起进行输入。问题就复杂了。 譬如: int ix=1,iy=2; float fx=8.8; char c1='a‘,c2= ‘b‘; scanf("%d%d%f%c%c",&ix,&iy,&fx,&c1,&c2); 使用fflush(stdin);清除已输入的所有数据。 int ix=1,iy=2; char c1='a‘,c2= ‘b‘; scanf("%d%d",&ix,&iy); fflush(stdin); scanf("%c%c",&c1,&c2); fflush(stdin); 第 3 节 输入输出
复杂的输出 控制输出时的宽度 int ix=1; float fx=8.8; char c1='a‘; 第二章 顺序结构 复杂的输出 控制输出时的宽度 int ix=1; float fx=8.8; char c1='a‘; printf("123456789\n"); printf("%5d\n%-5d\n",ix,iy); printf("%8.3f\n%-8.3f\n",fx,fx); printf("%5c\n%-5c\n",c1,c1); 第 3 节 输入输出
第二章 顺序结构 第 4 节 顺序结构程序举例
算法的描述 问题:求圆的面积。 算法:是解题的方法或步骤。 算法的描述方法: 程序源代码 自然语言 传统流程图 N-S流程图 1、指定圆周率 第二章 顺序结构 算法的描述 问题:求圆的面积。 算法:是解题的方法或步骤。 算法的描述方法: 自然语言 传统流程图 程序源代码 1、指定圆周率 2、给定半径 3、根据公式计算 4、输出结果 N-S流程图 第 4 节 顺序结构程序举例
模运算应用 问题:输入一个五位数,分离出其各位上的数字、求这些数字的和、求这个数的逆置数。 算法: 程序源代码: 第二章 顺序结构 第 4 节 顺序结构程序举例
第二章 顺序结构 赋值操作应用 交换两个变量的值。 算法: 程序源代码: 第 4 节 顺序结构程序举例