《C语言的基础知识.ppt》由会员分享,可在线阅读,更多相关《C语言的基础知识.ppt(51页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识第二章第二章 编制编制C C程序的基础知识程序的基础知识第一节第一节 常量与变量常量与变量第二节第二节 C C语言的基本数据类型语言的基本数据类型第三节第三节 常用运算符和表达式常用运算符和表达式第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识第一节第一节 常量与变量常量与变量x=2*yx=2*y常量常量变量变量第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识一、常量一、常量一、常
2、量一、常量程序运行过程中保持不变的值程序运行过程中保持不变的值程序运行过程中保持不变的值程序运行过程中保持不变的值定义形式:定义形式:定义形式:定义形式:#define#define#define#define 标识符标识符标识符标识符 常量值常量值常量值常量值【例【例【例【例2.12.12.12.1】定义一个常量】定义一个常量】定义一个常量】定义一个常量pipipipi表示表示表示表示,求圆的面积。,求圆的面积。,求圆的面积。,求圆的面积。#define pi 3.14159 /*#define pi 3.14159 /*#define pi 3.14159 /*#define pi 3.1
3、4159 /*定义常量定义常量定义常量定义常量pipipipi并赋值并赋值并赋值并赋值*/*/*/*/main()main()main()main()int r;int r;int r;int r;float s;float s;float s;float s;r=1;r=1;r=1;r=1;s=pi*r*r;s=pi*r*r;s=pi*r*r;s=pi*r*r;printf(s=%f,s);printf(s=%f,s);printf(s=%f,s);printf(s=%f,s);常量分为常量分为字面常量和符号常量字面常量和符号常量第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识
4、程序的基础知识程序的基础知识程序的基础知识二、变量二、变量二、变量二、变量1 1 1 1、标识符、标识符、标识符、标识符 把给程序中的实体把给程序中的实体把给程序中的实体把给程序中的实体变量、常量、变量、常量、变量、常量、变量、常量、函数、数组、结构体以及文件所起的名函数、数组、结构体以及文件所起的名函数、数组、结构体以及文件所起的名函数、数组、结构体以及文件所起的名字称为字称为字称为字称为标识符标识符标识符标识符。简单的说标识符就是一。简单的说标识符就是一。简单的说标识符就是一。简单的说标识符就是一个名字。个名字。个名字。个名字。第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识
5、程序的基础知识程序的基础知识程序的基础知识标识符的命名规则标识符的命名规则标识符的命名规则标识符的命名规则 只能由只能由只能由只能由英文字母、数字和下划线英文字母、数字和下划线英文字母、数字和下划线英文字母、数字和下划线组成,组成,组成,组成,且且且且第一个字符第一个字符第一个字符第一个字符必为必为必为必为英文字母或下划线英文字母或下划线英文字母或下划线英文字母或下划线不允许不允许不允许不允许使用使用使用使用关键字关键字关键字关键字作为标识符的名字作为标识符的名字作为标识符的名字作为标识符的名字 标识符标识符标识符标识符区分大小写区分大小写区分大小写区分大小写 标识符命名应以直观且易于拼读为宜
6、标识符命名应以直观且易于拼读为宜标识符命名应以直观且易于拼读为宜标识符命名应以直观且易于拼读为宜 有意义的标识符长度为有意义的标识符长度为有意义的标识符长度为有意义的标识符长度为前前前前8 8 8 8个字符个字符个字符个字符 第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识练习:练习:【例【例2.22.2】找出下列符号中合法的标识符。】找出下列符号中合法的标识符。3aB abc a.b 3aB abc a.b b int next b int next a3B ok a3B ok?_swtch _swtch 第二章第二章第二章第二章 编制
7、编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识定义形式:类型定义形式:类型定义形式:类型定义形式:类型 变量名变量名变量名变量名1,1,1,1,变量名变量名变量名变量名2 2 2 2,;其中,方括号内的内容为可选项,可以其中,方括号内的内容为可选项,可以其中,方括号内的内容为可选项,可以其中,方括号内的内容为可选项,可以同时声明多个相同类型的变量,它们之间需同时声明多个相同类型的变量,它们之间需同时声明多个相同类型的变量,它们之间需同时声明多个相同类型的变量,它们之间需要用逗号分隔。例如:要用逗号分隔。例如:要用逗号分隔。例如:要用逗号分隔。例如:float a,b
8、,cfloat a,b,cfloat a,b,cfloat a,b,c;2 2 2 2、变量、变量、变量、变量定义:变量是在程序执行过程中可以改变、定义:变量是在程序执行过程中可以改变、定义:变量是在程序执行过程中可以改变、定义:变量是在程序执行过程中可以改变、可以赋值的量。可以赋值的量。可以赋值的量。可以赋值的量。必须先定义,再使用必须先定义,再使用必须先定义,再使用必须先定义,再使用a amemorymemorymemorymemory126.0126.0126.0126.04.64.64.64.63.03.03.03.0Int a;Int a;A=5;A=5;第二章第二章第二章第二章 编
9、制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识四种数据类型四种数据类型四种数据类型四种数据类型第二节第二节 C C语言的基本数据类型语言的基本数据类型 数数数数据据据据类类类类型型型型基本类型基本类型基本类型基本类型指针类型指针类型指针类型指针类型构造类型构造类型构造类型构造类型 空空空空 类类类类 型型型型整型整型整型整型字符型字符型字符型字符型实型(浮点型)实型(浮点型)实型(浮点型)实型(浮点型)枚举类型枚举类型枚举类型枚举类型数组类型数组类型数组类型数组类型结构体类型结构体类型结构体类型结构体类型共用体类型共用体类型共用体类型共用体类型单精度型单精度型单精
10、度型单精度型双精度型双精度型双精度型双精度型第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识关于类型的含义关于类型的含义1.1.不同类型数据在内存中占不同的不同类型数据在内存中占不同的存储空存储空间间,且采取不同的,且采取不同的存储形式。存储形式。2.2.不同类型数据对应不同的不同类型数据对应不同的取值范围。取值范围。3.3.数据类型确定了允许对其进行的数据类型确定了允许对其进行的操作操作。第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识1 1 1 1、整型常量、整型常量、整型常量、
11、整型常量按进制分类:分为十进制、八进制和十六进制按进制分类:分为十进制、八进制和十六进制按进制分类:分为十进制、八进制和十六进制按进制分类:分为十进制、八进制和十六进制 一、整型数据一、整型数据 分分分分类类类类表示方法表示方法表示方法表示方法说说说说 明明明明举举举举 例例例例十十十十进进进进制制制制一般表示形一般表示形一般表示形一般表示形式式式式逢十逢十逢十逢十进进进进一一一一100100100100表示十表示十表示十表示十进进进进制制制制数数数数100100100100八八八八进进进进制制制制以以以以0 0 0 0开开开开头头头头逢八逢八逢八逢八进进进进一一一一0100010001000
12、100表示八表示八表示八表示八进进进进制数制数制数制数100100100100十六十六十六十六进进进进制制制制以以以以0 x0 x0 x0 x开开开开头头头头逢十六逢十六逢十六逢十六进进进进一一一一0 x1000 x1000 x1000 x100表示十六表示十六表示十六表示十六进进进进制数制数制数制数100100100100例例例例:100:100:100:100、-8-8-8-8、0 0 0 0;010010010010、024024024024;0 x380 x380 x380 x38、0X1F0X1F0X1F0X1F整型数据包括整型数据包括整型常量整型常量和和整型变量,整型变量,整型数据
13、整型数据以二进制补码形式存储以二进制补码形式存储 第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识按长短分类:分为长整型、无符号整型和短整型。按长短分类:分为长整型、无符号整型和短整型。按长短分类:分为长整型、无符号整型和短整型。按长短分类:分为长整型、无符号整型和短整型。1 1 1 1、整型常量、整型常量、整型常量、整型常量分分分分类类类类表示方法表示方法表示方法表示方法所占字所占字所占字所占字节节节节数数数数举举举举 例例例例短整短整短整短整型型型型一般表示形式一般表示形式一般表示形式一般表示形式2 2 2 2100100100100
14、表示短型整数表示短型整数表示短型整数表示短型整数100100100100长长长长整整整整型型型型在整型量后面在整型量后面在整型量后面在整型量后面加上一个字母加上一个字母加上一个字母加上一个字母l l l l或或或或L L L L4 4 4 4100l100l100l100l或或或或100L100L100L100L表示表示表示表示长长长长整型数整型数整型数整型数100100100100无符无符无符无符号整号整号整号整型型型型在整型量后面在整型量后面在整型量后面在整型量后面加上一个字母加上一个字母加上一个字母加上一个字母u u u u或或或或U U U U2 2 2 2100u100u100u10
15、0u或或或或100U100U100U100U表示无表示无表示无表示无符号整型数符号整型数符号整型数符号整型数100100100100第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识2.2.2.2.整型变量整型变量整型变量整型变量 掌握要点:掌握要点:掌握要点:掌握要点:有几种定义形式有几种定义形式有几种定义形式有几种定义形式每种形式占存储空间的大小每种形式占存储空间的大小每种形式占存储空间的大小每种形式占存储空间的大小取值范围取值范围取值范围取值范围输入输出格式输入输出格式输入输出格式输入输出格式第二章第二章第二章第二章 编制编制编制编制
16、C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识2.2.2.2.整型变量整型变量整型变量整型变量 定义形式定义形式定义形式定义形式共六种共六种共六种共六种 int long intshort intunsigned intunsigned short unsigned long占存储空间占存储空间 字节字节2 2 2 24 4 4 42 2 2 22 2 2 22 2 2 24 4 4 4第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识取值范围取值范围取值范围取值范围 输入输出形式:输入输出形式:输入输出形式:输入输出形式:
17、%d,%ld,%x,%o,%ud,%ld,%x,%o,%ud,%ld,%x,%o,%ud,%ld,%x,%o,%u第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识intint型数的表示范围型数的表示范围:存储长度存储长度1616位二进制位二进制(2Byte)(2Byte)0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1=2=21515-1=32767-1=327670 0 0 0 0 0 0 0 0 0 0 0 0 0 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 0 0 0 0 0 0 0 0 0
18、 0 0 0 0 0 0=1=1=3=3上面的数再加上面的数再加1是是多少?多少?=-2=-21515=-32768=-32768例例补码表示补码表示int型表示数的范围型表示数的范围:-32768-32768 3276732767第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识二、实型数据二、实型数据二、实型数据二、实型数据1 1 1 1、实型常量有两种表示形式:、实型常量有两种表示形式:、实型常量有两种表示形式:、实型常量有两种表示形式:十进制小数形式和指数形式。十进制小数形式和指数形式。十进制小数形式和指数形式。十进制小数形式和指数
19、形式。表示表示表示表示方法方法方法方法所占所占所占所占字字字字节节节节数数数数数数数数值值值值范范范范围围围围说说说说 明明明明举举举举 例例例例小数小数小数小数 形式形式形式形式4 4 4 410101010383838381010101038383838由数字和小由数字和小由数字和小由数字和小数点数点数点数点组组组组成成成成0.1230.1230.1230.123、.123.123.123.123、123.123.123.123.指数指数指数指数形式形式形式形式4 4 4 410101010383838381010101038383838由尾数、字由尾数、字由尾数、字由尾数、字母母母母e
20、e e e或或或或E E E E、指、指、指、指数数数数组组组组成成成成1e11e11e11e1、10e210e210e210e2、100e3100e3100e3100e3包括实型常量和实型变量包括实型常量和实型变量第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识2 2、实型变量实型变量 定义形式定义形式共三种共三种单精度单精度双精度双精度长双精度长双精度 floatdoublelong double占存储空间占存储空间一个变量一个变量4810实型常量不区分单实型常量不区分单精度和双精度。精度和双精度。第二章第二章第二章第二章 编制编制编
21、制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识变量的取值范围变量的取值范围输入输出形式输入输出形式%f,%e,%le 类型类型 长度长度 数的范围数的范围 有效数字有效数字单精度单精度 floatfloat 4 4 10 10-38-38 101038 38 6-76-7位位双精度双精度 double double 8 8 10 10-308-308 1010308308 15-16 15-16位位长双精度长双精度 long doublelong double 1010 1010-4931-4931-10-1049324932 18-1918-19位位实型数据在计算机中以
22、实型数据在计算机中以指数形式指数形式存储,单精存储,单精度实型变量用一个字节存放指数部分度实型变量用一个字节存放指数部分,其余其余三个字节存数值部分三个字节存数值部分。第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识三、字符型数据三、字符型数据 包括字符型常量和字符型变量包括字符型常量和字符型变量1、字符型常量、字符型常量 用单引号包含的一个字符是字符型常量用单引号包含的一个字符是字符型常量只能包含一个字符只能包含一个字符a,A,1abc“a”第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的
23、基础知识常用的转义字符常用的转义字符常用的转义字符常用的转义字符 字符形式字符形式字符形式字符形式说说说说 明明明明nnnn换换换换行行行行tttt横向跳格(即跳到下一个横向跳格(即跳到下一个横向跳格(即跳到下一个横向跳格(即跳到下一个tabtabtabtab位置)位置)位置)位置)vvvv竖竖竖竖向跳格向跳格向跳格向跳格bbbb退退退退 格格格格rrrr回回回回 车车车车ffff走走走走纸换页纸换页纸换页纸换页反斜杠字符反斜杠字符反斜杠字符反斜杠字符“”“”“”“”单单单单引号(撇号)字符引号(撇号)字符引号(撇号)字符引号(撇号)字符0000空字符空字符空字符空字符”双引号字符双引号字符双
24、引号字符双引号字符dddddddddddd1 1 1 1到到到到3 3 3 3位位位位8 8 8 8进进进进制数所代表的字符制数所代表的字符制数所代表的字符制数所代表的字符xhhxhhxhhxhh1 1 1 1到到到到2 2 2 2位位位位16161616进进进进制数所代表的字符制数所代表的字符制数所代表的字符制数所代表的字符printf(“%d t%d t”,a,b);printf(“%d n%d n”,a,b);1 0 10若:若:a为为1,b为为0第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识“This is C string”“
25、This is C string”串长串长 16 16“a”a”串长串长 1 1“”“”(空格)串长(空格)串长 1 1 “”“”(不含空格)串长(不含空格)串长 0 02 2、字符串常量、字符串常量双引号内的一串字符双引号内的一串字符 “china”n个字符组成的字符串常量个字符组成的字符串常量,在在 内存中占空间为内存中占空间为n+1 个字节。个字节。c hi na0字符串结字符串结束标记束标记C 中没有专用的中没有专用的字符串变量字符串变量第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识1.定义形式定义形式2.占存储空间占存储空间一
26、个变量一个变量3.字符型变量字符型变量char一个字符变量只一个字符变量只能包含一个字符能包含一个字符3.输入输出形式输入输出形式%ca ASCII值为值为 97 内存中存储形式内存中存储形式0 1 1 0 0 0 0 14.字符型数据在内存中以相应的字符型数据在内存中以相应的ASCII值存储值存储第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识类类类类型型型型 所占所占所占所占字字字字节节节节数数数数说说说说明明明明数据的取数据的取数据的取数据的取值值值值范范范范围围围围 举举举举例例例例charcharcharchar 1 1 1 1
27、存放存放存放存放单单单单 个字符个字符个字符个字符 0 0 0 0255255255255char c1,c2;char c1,c2;char c1,c2;char c1,c2;main()char c ;c=c;printf(“%c%d”,c,c);C 99运行结果:运行结果:第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识main()main()main()main()int a,b;/*int a,b;/*int a,b;/*int a,b;/*定义定义定义定义a a a a、b b b b为整型变量为整型变量为整型变量为整型变量*
28、/*/*/*/unsigned int t;/*unsigned int t;/*unsigned int t;/*unsigned int t;/*定义定义定义定义t t t t为无符号整型变量为无符号整型变量为无符号整型变量为无符号整型变量*/*/*/*/float x,y;/*float x,y;/*float x,y;/*float x,y;/*定义定义定义定义x x x x、y y y y为实型变量为实型变量为实型变量为实型变量*/*/*/*/a=1;b=-2;t=5;a=1;b=-2;t=5;a=1;b=-2;t=5;a=1;b=-2;t=5;x=a+b;y=x+t;x=a+b;y
29、=x+t;x=a+b;y=x+t;x=a+b;y=x+t;printf(%f,%f,x,y);printf(%f,%f,x,y);printf(%f,%f,x,y);printf(%f,%f,x,y);【例【例【例【例2.32.32.32.3】变量的定义与使用】变量的定义与使用】变量的定义与使用】变量的定义与使用第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识main()main()main()main()char a,b;char a,b;char a,b;char a,b;a=a;a=a;a=a;a=a;b=b;b=b;b=b;b=b
30、;printf(%d,%d,a,b);printf(%d,%d,a,b);printf(%d,%d,a,b);printf(%d,%d,a,b);printf(%c,%c,a+1,b+1);printf(%c,%c,a+1,b+1);printf(%c,%c,a+1,b+1);printf(%c,%c,a+1,b+1);【例【例【例【例2.42.42.42.4】写出下面程序的执行结果。】写出下面程序的执行结果。】写出下面程序的执行结果。】写出下面程序的执行结果。第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识第三节第三节 常用运算符和表达
31、式常用运算符和表达式 1.运算符运算符运算符运算符 运算分量运算分量X=5 +b *c 对数据进行对数据进行运算的符号运算的符号被加工被加工的数据的数据表达式表达式 认识认识C中的运算符和表达式中的运算符和表达式第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识运算符按其操作数个数分为运算符按其操作数个数分为3 3类:类:单目运算符(一个操作数)、双目运算符单目运算符(一个操作数)、双目运算符单目运算符(一个操作数)、双目运算符单目运算符(一个操作数)、双目运算符 (两个操作数)和三目运算符(三个操作数)(两个操作数)和三目运算符(三个操作
32、数)(两个操作数)和三目运算符(三个操作数)(两个操作数)和三目运算符(三个操作数)运算符按其优先级的高低分为运算符按其优先级的高低分为1515类:类:优先级最高的为优先级最高的为优先级最高的为优先级最高的为1 1 1 1级,其次为级,其次为级,其次为级,其次为2 2 2 2级等级等级等级等运算符按其功能分为:运算符按其功能分为:算术运算符、关系运算符、逻辑运算符、算术运算符、关系运算符、逻辑运算符、算术运算符、关系运算符、逻辑运算符、算术运算符、关系运算符、逻辑运算符、赋值运算符、逗号运算符等。赋值运算符、逗号运算符等。赋值运算符、逗号运算符等。赋值运算符、逗号运算符等。第二章第二章第二章第
33、二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识表达式的运算结果称为表达式的表达式的运算结果称为表达式的值值 运算符和运算分量构成运算符和运算分量构成表达式表达式2.2.表达式表达式算术表达式算术表达式赋值表达式赋值表达式关系表达式关系表达式逻辑表达式逻辑表达式逗号表达式逗号表达式条件表达式条件表达式.第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识3.3.学习运算符应掌握的要点学习运算符应掌握的要点:运算符的运算符的种类种类与与功能功能运算符与运算分量的运算符与运算分量的关系关系运算分量运算分量的个数
34、的个数A+B(ab)?a:b目目单目运算符单目运算符双目运算符双目运算符三目运算符三目运算符第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识优先级优先级:运算符的运算符的执行顺序执行顺序 结合性结合性:优先级相同时的优先级相同时的结合方向结合方向X=a+b*ca+b-c572a=b=5一般规则:一般规则:单目运算符的优先级高于双目运算符单目运算符的优先级高于双目运算符单目运算符从右向左结合单目运算符从右向左结合双目运算符从左向右结合双目运算符从左向右结合第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础
35、知识程序的基础知识一、算术运算符及其表达式一、算术运算符及其表达式 双目算术运算符及其表达式双目算术运算符及其表达式1.共有共有5个个:+,-,*,/,%2.注意注意“/”是整数除法,还是实数除法是整数除法,还是实数除法双目双目:*,/,%双目双目:+,-4.优先级优先级:5.结合性结合性:从左向右从左向右 3.%运算只适用于运算只适用于整型数整型数取模(求余数)取模(求余数)a=10%4a的值为的值为2第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识例例 5/2 =-5/2.0 =例例 5%2 =-5%2 =1%10 =5%1 =5.5
36、%2例例 5/2 =2 -5/2.0=-2.5例例 5%2 =1 -5%2 =-1 1%10 =1 5%1 =0 5.5%2 ()自反算术运算符及其表达式自反算术运算符及其表达式x=x+nx=x-nx=x*nx=x/nx=x%nx+=nx-=nx*=nx/=nx%=n算术运算与赋算术运算与赋值运算相结合值运算相结合x与与n均为整数均为整数第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识自增和自减运算符及其表达式自增和自减运算符及其表达式1.变量自身加(减)变量自身加(减)1 k=k+1k+先使用变量先使用变量k的值,再加的值,再加 1+k
37、 先加先加1,再使用变量,再使用变量 k的值的值 k=k-1k-先使用变量先使用变量k的值,再减的值,再减 1-k 先减先减1,再使用变量,再使用变量k 的值的值 k=3;printf(“%d”,k+);输出输出 3 后后,k 的值为的值为 4i=3;printf(“%d”,+i);输出输出4第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识2.只能用于只能用于变量变量,不能用于,不能用于表达式表达式和和常量常量3.优先级:优先级:高高于双目算术运算符于双目算术运算符4.结合性:结合性:从右向左从右向左(i+k)+,-3第二章第二章第二章第
38、二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识 main()int a,b,s ;a=5;b=5;s=a+b;printf(“%d,%d,%dn”,a,b,s);s=a+b;printf(“%d,%d,%dn”,a,b,s);s=+a+b;printf(“%d,%d,%dn”,a,b,s);s=-a+b;printf(“%d,%d,%dn”,a,b,s);s=a-+b;printf(“%d,%d,%dn”,a,b,s);s=a+b;printf(“%d,%d,%dn”,a,b,s);第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知
39、识程序的基础知识程序的基础知识 运运运运算符算符算符算符名名名名称称称称 运算运算运算运算 规则规则规则规则运运运运算算算算 对对对对象象象象对对对对 象象象象个个个个数数数数运运运运算算算算结结结结果果果果结结结结合合合合方方方方向向向向举举举举 例例例例表达表达表达表达式式式式值值值值+正正正正号号号号取原取原取原取原值值值值整整整整型型型型或或或或实实实实型型型型单单单单目目目目整整整整型型型型或或或或实实实实型型型型从从从从右右右右向向向向左左左左a=2;t=a=2;t=a=2;t=a=2;t=+a;+a;+a;+a;t=2t=2t=2t=2-负负负负号号号号取取取取负负负负值值值值a
40、=2;t=a=2;t=a=2;t=a=2;t=-a;-a;-a;-a;t=-2t=-2t=-2t=-2正负号运算符及其表达式正负号运算符及其表达式第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识 将一个表达式转换成所需类型。将一个表达式转换成所需类型。一般形式:一般形式:(类型名)(表达式)(类型名)(表达式)强制类型转换运算符强制类型转换运算符及其表达式及其表达式例 (int)x (int)(x+y)(int)x+y (double)(3/2)(int)3.6 说明:强制转换得到所需类型的中间变量,原变量类型不变 例 main()flo
41、at x;int i;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);结果:x=3.600000,i=3第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识二、关系运算符及其表达式二、关系运算符及其表达式 关系运算是一种关系运算是一种比较运算比较运算,将两个值(表达式)进,将两个值(表达式)进行比较,判断比较的结果是否符合给定的行比较,判断比较的结果是否符合给定的条件条件大于大于 ,大于等于大于等于=,小于,小于 ,不等不等!=小于等于小于等于bc关系运算符关系运算符第二章第二章第二章第二章 编制编制编制编制C
42、C程序的基础知识程序的基础知识程序的基础知识程序的基础知识2.关系表达式的结果是一个逻辑值,根据关系是否满足,关系表达式的结果是一个逻辑值,根据关系是否满足,分别取分别取 1,或,或 01.1.关系运算符与运算分量构成关系表达式关系运算符与运算分量构成关系表达式关系运算符与运算分量构成关系表达式关系运算符与运算分量构成关系表达式int i=1,j=7,a;a=i+(j%4!=0)a的值?的值?结果:结果:a=23.3.使用关系表达式应注意使用关系表达式应注意使用关系表达式应注意使用关系表达式应注意1)数学上,判断数学上,判断x是否在区间是否在区间 a,b 时,习惯上写成时,习惯上写成a=x=b
43、,但在,但在C 中,必须写成中,必须写成 a=x&x0 的值为逻辑的值为逻辑 1关系表达式关系表达式第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识1.0/3.0*3.0=1.0的逻辑值为的逻辑值为03)当判断两个浮点数是否相等时,由于存储上的误差,当判断两个浮点数是否相等时,由于存储上的误差,可能会有错误的结果,例如:数学上:可能会有错误的结果,例如:数学上:恒等式恒等式1.0/3.0 *3.0=1.04)关系表达式的结果可以当成)关系表达式的结果可以当成整型数整型数int a=3,b=5,c=7,d;d=a c逻辑逻辑117逻辑逻辑0
44、d的值的值为为0第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识逻辑运算符逻辑运算符三、三、逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式1.1.有三个有三个&(与与):两边为两边为1,结果为,结果为1|(或):两边有一个为(或):两边有一个为1,结果为,结果为1!(非):非(非):非1为为0,非,非0为为12.优先级:优先级:!的优先级高于的优先级高于&和和|逻辑运算与其他运算相比:逻辑运算与其他运算相比:非的优先级最高,与和或非的优先级最高,与和或低于算术和关系。低于算术和关系。3.结合性:与和或是从左向右,非是从右向左结合性:与和或是
45、从左向右,非是从右向左第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识2.表达式的值为表达式的值为逻辑逻辑的的1和和0,表示,表示真真与与假假。任何非零实任何非零实数均可作为数均可作为逻辑上的逻辑上的1 1例:例:a=5,b=7,c=4,d=3x=(a+b)(c+d)&(da)先做算术运算,再做关系先做算术运算,再做关系判断,将最后结果赋给判断,将最后结果赋给x1.用逻辑运算符将用逻辑运算符将关系运算表达式关系运算表达式或或逻辑量逻辑量连接连接起来构成逻辑表达式。起来构成逻辑表达式。逻辑表达式逻辑表达式第二章第二章第二章第二章 编制编制编
46、制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识3.在逻辑表达式中,并不是所有的逻辑运算都必须执在逻辑表达式中,并不是所有的逻辑运算都必须执 行,如果行,如果&的一边已经为的一边已经为0,结果一定为结果一定为 0,如果,如果|的一边已经为的一边已经为 1,结果一定为结果一定为 1。(1)a&b&c a为非为非0时,再判断时,再判断 b,a,b均为非均为非0,再判断,再判断c(2)a|b|c,若,若a为非为非0,不必判断,不必判断 b和和 c,结果一定为,结果一定为 1 已知已知:a=1,b=2,c=3,d=4,m=1,n=1 执行执行(m=ab)&(n=cd)之后之后 :m
47、=?n=?由于由于 ab的值为的值为 0,m=0不再判断不再判断(n=cd)的值,因此,的值,因此,n 维持原有的值维持原有的值m=0n=1第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识四、四、赋值运算符与赋值表达式赋值运算符与赋值表达式1.将一个常量或一个表达式的值赋给一个变量称为赋值将一个常量或一个表达式的值赋给一个变量称为赋值x=5 y=x+10 2.可以将实型赋给整型变量,或将整型值赋给实型变量可以将实型赋给整型变量,或将整型值赋给实型变量int x,x=5.3;x的值为的值为 5float y,y=5;y的值为的值为 5.00
48、00003.赋值运算的优先级赋值运算的优先级比算术、关系、逻辑运算低比算术、关系、逻辑运算低4.赋值运算的结合性赋值运算的结合性从右向左从右向左x=y=5第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识复合(自反算术)赋值运算符及其表达式复合(自反算术)赋值运算符及其表达式赋值运算符两侧出赋值运算符两侧出现相同的变量现相同的变量x=x+nx=x-nx=x*nx=x/nx=x%nx+=nx-=nx*=nx/=nx%=n算术运算与赋算术运算与赋值运算相结合值运算相结合x与与n均为整数均为整数x=x+nn 为常数为常数x+=n第二章第二章第二章
49、第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识main()int a,b,c,d,e;a=2;b=5;c=6;d=10;a+=b;b-=c;c*=d;d/=a;a%=c;printf(“%d,%d,%d,%dn”,a,b,c,d);7,-1,60,1第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识1、逗号运算符、逗号运算符(表达式表达式 1,表达式表达式 2,表达式表达式 3,表达式表达式 n)用于连接几个表达式用于连接几个表达式2、求解过程、求解过程顺序求解几个表达式顺序求解几个表达式3、优先级、
50、优先级逗号运算符的优先级最低逗号运算符的优先级最低4、结合性、结合性从左向右从左向右5、逗号表达式、逗号表达式逗号表达式的值为最后一个逗号表达式的值为最后一个表达式的值表达式的值(表达式表达式n 的值的值)X=(a=4*5,a*2),a+6)a为为?x为为?五、五、逗号运算符与逗号表达式逗号运算符与逗号表达式第二章第二章第二章第二章 编制编制编制编制C C程序的基础知识程序的基础知识程序的基础知识程序的基础知识自动进行自动进行-隐式转换隐式转换强制进行强制进行-显式转换显式转换1、算术转换、算术转换(隐式转换隐式转换)级别低的向级别高的转换级别低的向级别高的转换double floatlong