本文由772642376贡献
    ppt文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。
    第2章 C语言入门
    <<
    <
    >
    >>
    Ch2 C语言入门 语言入门
    §2.1 常量变量与数据类型 §2.2 变量的定义与初始化 §2.3 运算符与表达式 §2.4 简单输入输出
    返回
    C语言程序设计
    §2.1 常量、变量与数据类型 §2.1.1 标识符 一、关键字 二、预定义标识符 三、用户标识符
    C语言程序设计
    §2.1.2 常量和变量
    一、常量和变量
    1. 常量
    整型常量: 12、 整型常量:如12、0、-3等 实型常量: 4.5、 1.234等 实型常量:如4.5、-1.234等 字符常量: 字符常量:如‘a’、’d’等 、 等
    2. 变量
    用户自定义的标识符。 sum,count等 用户自定义的标识符。如:sum,count等    C语言程序设计
    §2.1.2 常量和变量 命名规则:以字母或下划线开始,后跟字母、 命名规则:以字母或下划线开始,后跟字母、 数字或下划线。 数字或下划线。 变量名不能是关键字
    以下为合法的变量名 x1, sum, average, day, month, lotus_1_2 以下为不合法的变量名 ¥456, #abc, 1fs, 2nd, M.D.Jhon
    C语言程序设计
    §2.1.2 常量和变量 注意: 注意: 变量必须先定义,后使用; 变量必须先定义,后使用; 遵循见名思意的原则; 遵循见名思意的原则; 习惯上用小写字母。 习惯上用小写字母。
    C语言程序设计
    §2.1.2 常量和变量
    二、符号常量
    借助于预处理命令define来实现; 来实现; 借助于预处理命令 来实现 define命令格式是: 命令格式是: 命令格式是 #define 标识符 字符串 如:#define string “ C program ”
    C语言程序设计
    §2.1.2 常量和变量 例 2 -2
    #define PI 3.14 void main( ) { int r1=5, r2 =6; float c1,c2,s1,s2 ; c1=2*PI*r1; s1=PI*r1*r1; c2=2*PI*r2; s2=PI*r2*r2; printf("c1 is %f\n", c1); printf("c2 is %f\n", c2); printf("s1 is %f\n", s1); printf("s2 is %f\n", s2); }
    C语言程序设计
    §2.1.3 数据类型
    一、整型数据
    1. 整型常量
    十进制数 如:123,-456,0 , , 八进制数 (以0开头的数 开头的数) 如:0123,-011 , 以 开头的数 十六进制数 开头的) 如:0x123,-0x12,0xABC (以0x开
头的 , , 以 开头的
    C语言程序设计
    §2.1.3 数据类型 2. 整型变量
    (1) 整型数据在内存中的存放形式 数据在内存中以二进制形式存放的。 数据在内存中以二进制形式存放的。 每一个整型变量在内存中占2个字节 个字节。 每一个整型变量在内存中占 个字节。 例:定义整型变量i=10 的存放形式。 定义整型变量 的存放形式。 int i=10;
    0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
    C语言程序设计
    §2.1.3 数据类型
    (2) 整型变量的分类
    基本型
    int
    整型变量
    short int long int 、 、 无符号型 unsigned int、 unsigned short、 unsigned long
    短整型 长整型
    C语言程序设计
    §2.1.3 数据类型
    整型数据比较 整数类型 int short int long int unsigned int unsigned short unsigned long 所占位数 16 16 32 16 16 32 数据范围 -32768 ̄32767 -32768 ̄32767 -0 ̄65535 0 ̄65535 --
    C语言程序设计
    §2.1.3 数据类型
    (3) 整型变量的定义 例:int a,b; unsigned short c,d; long e,f;
    C语言程序设计
    §2.1.3 数据类型
    二、实型数据
    1. 实型常量
    (1) 十进制浮点数 如:0.123,.456,0.0, 123. ,123.0 , , (2) 指数形式 如:123e3,123E3 , E10, 100.e15.2, .e5 均不合法
    C语言程序设计
    §2.1.3 数据类型
    2. 实型变量
    (1) 实型数据在内存中的存放形式 float:4B(32位) : ( 位 double:8B(64位) : ( 位 long double: 10B(80位) ( 位 实型数据是按照指数形式存储的。 实型数据是按照指数形式存储的。
    数符 小数部分 指数符号 指数
    C语言程序设计
    §2.1.3 数据类型 (2) 实型变量的分类
    float x, y; double z; long double f;
    C语言程序设计
    §2.1.3 数据类型
    类型 float 单精度 double (双精度 双精度) 双精度 long double (长双精度 长双精度) 长双精度 占位数 32 64 80 有效数字 6 ̄7 15 ̄16 18 ̄19 数值范围 
    (3) 实型数据的舍入误差
    的结果并不一定等于1。 如:1.0/3*3的结果并不一定等于 。 的结果并不一定等于
    C语言程序设计
    §2.1.3 数据类型
    三、字符型数据
    1. 字符型常量
    为字符常量; ‘a’ 、‘X’为字符常量; 为字符常量 一个字符常量占1B, 一个字符常量占 ,存放的是字符的编码值 如字符‘ 的存放形式如下 的存放形式如下: 如字符‘A’的存放形式如下: 0 1 0 0 0 0 0 1
    C语言程序设计
    §2.1.3 数据类型 转义字符
    开头, 以‘ \ ’开头,后跟一个约定的字符或所要表 开头 示字符的十六进制(或八进制)的编码; 示字符的十六进制(或八进制)的编码; 表示编码值为0的字符 ‘\0’表示编码值为 的字
符,即NULL,它与 表示编码值为 的字符, , 数值常数0是等同的 是等同的; 数值常数 是等同的; 表示‘ ; ‘\101’表示‘A’; 表示 下表列出了常用的转义字符: 下表列出了常用的转义字符:
    ?
    C语言程序设计
复合赋值运算符的含义
    §2.1.3 数据类型
    字符形式 \n \t \b \r \f \\ \‘ \“ \ddd \xhh 含 义 ASCII代码 代码 10 9 8 13 12 92 39 34 换行, 换行,将当前位置移到下一行开头 水平制表(跳到下一个 位置 水平制表 跳到下一个tab位置 跳到下一个 位置) 退格, 退格,将当前位置移到前一列 回车, 回车,将当前位置移到本行开头 换页,将当前位置移到下页开头 换页, 反斜杠字符“ 反斜杠字符“\” 单引号(撇号 字符 单引号 撇号)字符 撇号 双引号字符 1到3位8进制数所代表的字符 到 位 进制数所代表的字符 1到2位16进制数所代表的字符 到 位 进制数所代表的字符
    C语言程序设计
    §2.1.3 数据类型 2. 字符变量
    例:char c1=‘a’, c2=‘A’;
    3. 字符数据的存放形式及使用方法
    在内存存放的是二进制数01100001 如:‘a’在内存存放的是二进制数 在内存存放的是二进制数 ‘A’在内存存放的是二进制数 在内存存放的是二进制数01000001 在内存存放的是二进制数 ‘0’在内存存放的是二进制数 在内存存放的是二进制数00110000 在内存存放的是二进制数
    C语言程序设计
    §2.1.3 数据类型 例: main() { char c1,c2; c1=97;c2=98; ”,c1,c2); printf(“%c printf(“%c %c ”,c1,c2); printf(“%d ”,c1,c2); printf(“%d %d ”,c1,c2); c1=c1c2=c2-(‘a’c1=c1-32; c2=c2-(‘a’-‘A’); printf(“%c %c\n”,c1,c2); %c\ }
    运行结果:a b 97 98 A B
    C语言程序设计
    §2.1.3 数据类型 四、字符串常量
    “C language programming”、“a\\n”、 、 、 “#123” “Don\’t move!” “China”在存储器中实际占用 个字节: 在存储器中实际占用6个字节 在存储器中实际占用 个字节: C h i n a \0
    C语言程序设计
    §2.1.3 数据类型 同理, a”与 a’是不同的 同理,“a”与‘a’是不同的 表示形式不同 存储方式不同
    返回
    C语言程序设计
    §2.2 变量定义与初始化
    变量的定义
    格式: 格式: 变量名1,变量名2, ; 类型说明符 变量名 ,变量名 ,…; 如: int a, b, c; float x, y; char ch1;
    C语言程序设计
    §2.2 变量定义与初始化
    变量初始化
    格式: 格式: 变量1=值 变量2=值 类型说明符 变量 值1, 变量 值2, …; 如
: int a=3, b=4, c=5; float x=3.4, y=0.75; 注意: 注意: (1) int a, b, c=5; 对c初始化值为 ; 初始化值为5; 初始化值为 (2) int a=b=c=5; 是非法的; 是非法的; (3) int a=5, b=5, c=5; 是合法的。 是合法的。 返回
    C语言程序设计
    §2.3 算术运算符与算术表达式 §2.3.1 运算符与表达式
    一、基本算术运算符
    +、-、 、/、% 、-、*、 、 、-、 说明: 说明:
    (1) *和/; 和; (2) 函数自变量的括号不能省;如: 函数自变量的括号不能省; sin(x); log10(x), log(x); pow(x,y) (3) 角度、特殊的符号要转换; 角度、特殊的符号要转换; (4) /(整除和一般除) (整除和一般除) (5) %(模运算符两边操作数的要求) (模运算符两边操作数的要求)
    C语言程序设计
    §2.3.1 算术运算符与算术表达式
    二、自增、自减运算符 自增、
    ++、-- 基本运算有: 基本运算有: 运算符 ++i i++ --i i-含义 在使用i之前 先使i的值增加 之前, 的值增加1 在使用 之前,先使 的值增加 在使用i之后 再使i的值增加 之后, 的值增加1 在使用 之后,再使 的值增加 在使用i之前,先使 的值减 的值减1 在使用 之前,先使i的值减 之前 在使用i之后,再使 的值减 的值减1 在使用 之后,再使i的值减 之后
    C语言程序设计
    §2.3.1 算术运算符与算术表达式 如:i=3时,j=+ +i 3 j=i+ + j=--i j=i-则j=4; = 则j=3; = 则j=2; 则j=3;
    C语言程序设计
    §2.3.1 算术运算符与算术表达式 说明: 说明:
    ++和--只能用于变量; 和 只能用于变量 只能用于变量; ++、--运算符的结合方向是“右结合”;如: 运算符的结合方向是“ 、 运算符的结合方向是 右结合” -i++ 等于 -(i ++ ) ; ++、--常用于循环控制、数组下标处理等场合; 常用于循环控制、 、 常用于循环控制 数组下标处理等场合; i+++j应理解为 应理解为(i++)+j; 应理解为
    C语言程序设计
    §2.3.2 运算符的优先级和结合性 运算时,按运算符的优先级从高到低运算 运算时 按运算符的优先级从高到低运算 运算符的结合性
    结合性的概念 左结合性: 如双目算术运算符 左结合性 右结合性: 如单目、赋值、 右结合性 如单目、赋值、条件运算符 例:a-b+c、-i++ 、
    运算符的优先级和结合性详见附录C 运算符的优先级和结合性详见附录
    C语言程序设计
    §2.3.3 赋值运算符和赋值表达式
    1. 基本赋值运算符:= 基本赋值运算符:
    基本赋值表达式: 基本赋值表达式: 变量=表达式 变量 表达式 例如: 例如: a=2+3 x=i++ n=n+1 a=b=x+y
    C语言程序设计
    §2.3.3 赋值运算符和赋值表达式
    2. 复合赋值运算符
    之前加上其他运算符, 在“=”之前加上其他运算符,可构成复 之前加上其他运算符 合运算符 例如: 例如: x+=y 等价于 x=x+y a%=b+c/d 等价于 a=a%(b+c/d) 10种复合赋值运算符: 种复合赋值运算符: 种复合赋值运算符 +=、-=、*=、/=、 %=、 、 、 、 、 、 <<=、>>=、&=、^=、|= 、 、 、 、
    C语言程序设计
    §2.3.3 赋值运算符和赋值表达式
    3. 说明
    (1) 变量 变量=exp 是表达式,有值,能直接 是表达式,有值, 参与运算;如: 参与运算; main() { int a,b,c,d; a=(a=100)+(b=30)-b*5; …… }
    C语言程序设计
    §2.3.3 赋值运算符和赋值表达式
    (2) 嵌套赋值表达式:e1=e2=…=en,如: 嵌套赋值表达式: ,
    a=b=c=d=100 等价于 a=(b=(c=(d=100))) e1,e2,…,en不必具有相同的数据类型 , , , 不必具有相同的数据类型 例:当a=12时,a+=a-=a*a 求解结果? 求解结果? 时 的运算, 先“a-=a*a”的运算,a=a-a*a=-132; 的运算 再进行“ 的运算, 再进行“a+=-132”的运算, 的运算 a=a+(-132)=-264。 。
    C语言程序设计
    §2.3.4 数据类型转换
    一、自动类型转换
    例:计算表达式 3+'a'+1.5-5.1*5的值 的值 混合运算 需自动转换成同一类型再运算; 需自动转换成同一类型再运算; 转换的规则如下: 转换的规则如下:
    C语言程序设计
    §2.3.4 数据类型转换
    高 double long unsigned 低 int char, short float
    返回
    C语言程序设计
    §2.3.4 数据类型转换
    赋值运算中类型转换规则: 赋值运算中类型转换规则:
    把赋值运算符右边表达式的数据类型转 左边对象的类型 换成左边对象的类型。 换成左边对象的类型。
    (1)实型赋给整型变量时,舍去实数的小数 实型赋给整型变量时, 实型赋给整型变量时 部分。 部分。 (2)整型赋给实型变量时,数值不变,以浮 整型赋给实型变量时,数值不变, 整型赋给实型变量时 点形式存储。 点形式存储。 (3)长的赋给短的。 长的赋给短的。 长的赋给短的
    C语言程序设计
    §2.3.4 数据类型转换
    阅读程序,写出结果。 例:阅读程序,写出结果。
    运行结果: 运行结果: #include  main( ) c1=127 { char c1,c2,c; c2=-128 int a1=127,a2=128,a=500; c=-11 c1=a1;c2=a2; c=a+1; printf("c1=%d\nc2=%d\n",c1,c2); printf("c=%d\n",c); }
    C语言程序设计
    §2.3.4 数据类型转换
    二、强制类型转换
    格式:(类型关键字或类型名) 格式:(类型关键字或类型名)表达式 :(类型关键字或类型名 如:(int)(x+y)%(int)p (double)a (float)(5%3)
    C语言程序设计
    §2.3.4 数据类型转换 例 main() { float x, i; x=3.6; i=(int) x; printf(“x=%f, i=%f”,x, i); } 运行的结果是: 运行的结果是: x=3.600000, i=3.000000
    C语言程序设计
    §2.3.5 逗号运算符和逗号表达式 语法:表达式 ,表达式2, 语法:表达式1,表达式 ,…… 语义:依次求各个表达式的值, 语义:依次求各个表达式的值,最后一个表达式
    的值作为整个逗号表达式的值. 的值作为整个逗号表达式的值
    的值为14; 如:3+5, 6+8的值为 ; , 的值为 a=3*5, a*4的值为 ; 的值为60; 的值为 逗号表达式常用在for语句中 语句中; 逗号表达式常用在 语句中; 逗号表达式的优先级别最低 最低; 逗号表达式的优先级别最低; 分隔符, 在C中,逗号有两种用途 分隔符,运算符 。 中 逗号有两种用途(分隔符 运算符)。 返回
    C语言程序设计
    §2.4 数据的输入输出及在C语言中的实现 简单输入输出 §2.4.1 数据的输入输出及在 语言中的实现 C中不提供输入输出语句; 中不提供输入输出语句; 中不提