1、1.1 数据类型数据类型1.2 量与表达式量与表达式1.3 语语 句句1.4 基本输入输出函数基本输入输出函数1.5 程序设计风格程序设计风格l整数类型整数类型l浮点数类型浮点数类型l字符串类型字符串类型分类分类(1)基本型:以基本型:以int 表示。表示。(2)短整型:以短整型:以short int 或或short 表示。表示。(3)长整型:以长整型:以long int 或或long 表示。表示。(4)无符号型:存贮单元中全部二进制位用无符号型:存贮单元中全部二进制位用作存放数本身,不包括符号。作存放数本身,不包括符号。无无符号数符号数整整型:型:unsigned int短整型:短整型:un
2、signed short int长整型:长整型:unsigned long int注意:整数运算的溢出问题注意:整数运算的溢出问题类型类型占字节数占字节数表数范围表数范围int4B-231 231-1long4B-231 231-1short2B-215 215-1unsigned int4B0 232-1unsigned long4B0 232-1unsigned short2B0 216-1一、分类一、分类float:单精度浮点数、:单精度浮点数、4B 、7位有效数字位有效数字double:双精度浮点数、:双精度浮点数、8B、16位有效数字位有效数字 注意:浮点数存储是有误差的。注意:浮点
3、数存储是有误差的。二、浮点数应用举例二、浮点数应用举例例例1.编写程序,计算用户输入的两个浮点数之和编写程序,计算用户输入的两个浮点数之和一、字符串类型名一、字符串类型名STRING 注意:该类型名是由本书作者自定义的。注意:该类型名是由本书作者自定义的。二、字符串类型应用举例二、字符串类型应用举例例例2.接受用户输入的用户名,向用户问好。接受用户输入的用户名,向用户问好。步骤:步骤:(1)创建新工程)创建新工程(2)将文件)将文件“zylib.h”与与“zylib.c”拷贝到程序目拷贝到程序目录下录下(3)在工程项目中添加)在工程项目中添加“zylib.c”文件文件(4)在程序代码中使用双引
4、号包含头文件)在程序代码中使用双引号包含头文件“zylib.h”l文字与常量文字与常量l变变 量量l表达式表达式l赋值与初始化赋值与初始化l混合运算与类型转换混合运算与类型转换一、什么是文字一、什么是文字 程序中显示出现的数据值。程序中显示出现的数据值。 例:例: 100 、 3.14、 “Hello”等等二、二、整数类型文字整数类型文字三、三、浮点型文字浮点型文字四、四、字符串文字字符串文字一、什么是常量一、什么是常量程序执行期间其值不可改变的量。程序执行期间其值不可改变的量。二、常量定义格式二、常量定义格式const 数据类型数据类型 常量名称常量名称 = 初始值初始值;例:例:const
5、 int zero = 0;注意:定义常量时必须进行初始化!注意:定义常量时必须进行初始化! const int zero; 三、常量与文字区别三、常量与文字区别常量可以寻址:常量可以寻址:&zero&zero(1)十进制表示:例十进制表示:例: 55、-32(2)十六进制表示:以十六进制表示:以“0 x”或或“0X”开头的开头的 09、A/aF/f 序列序列例:例:0 x55、0X1F、0 x2a(3)八进制表示:以八进制表示:以“0”开头的开头的 07 序列序列例:例:055注意:不要与十进制混淆!注意:不要与十进制混淆!表示方式:表示方式:(1)一般形式一般形式由数字、小数点和正负号组成
6、由数字、小数点和正负号组成例:例: 314.16 、.23、-2.(2)指数形式指数形式(科学计数法科学计数法)由尾数部分、字符由尾数部分、字符E与指数部分组成与指数部分组成例:例:314.16e-2 、1.718E2314.16 10-2-1.718 102注意:注意:e e或或E E前必须有尾数,指数必须是整数。前必须有尾数,指数必须是整数。浮点型文字默认为double类型表示方式:表示方式:字符串文字:用双引号引起来的字符序列。字符串文字:用双引号引起来的字符序列。例:例:“A”、“abcn”、“123”、“”“” 转义字符:以反斜杠开始,后跟一个或多个字符转义字符:以反斜杠开始,后跟一
7、个或多个字符例:例:n 转义序列转义序列功能与意义功能与意义a响铃响铃b退格退格f换页换页n换行换行r返回到当前行首返回到当前行首t水平制表键水平制表键v垂直制表键垂直制表键0ASCII 码码 0反斜杠字符自身反斜杠字符自身单引号字符(仅在字符常数中需要使用此方式)单引号字符(仅在字符常数中需要使用此方式)双引号字符(仅在字符串常数中需要使用此方式)双引号字符(仅在字符串常数中需要使用此方式)ddd“ddd”表示八进制的该字符表示八进制的该字符 ASCII 码值码值xhh“hh”表示十六进制的字符表示十六进制的字符 ASCII 码值,码值,x 为十六进制标为十六进制标志志一、什么是变量一、什么
8、是变量程序执行期间,值可以发生变化的量。程序执行期间,值可以发生变化的量。二、变量定义格式二、变量定义格式变量类型变量类型 变量名称变量名称;例:例:int a; int b,c;三、变量的基本特征三、变量的基本特征变量具有类型、名称、值和地址。变量具有类型、名称、值和地址。注意:注意:(1)变量要先定义,后使用。变量要先定义,后使用。(2)在同一作用范围内,变量不能同名。在同一作用范围内,变量不能同名。一、定义一、定义操作数与操作符组成的序列操作数与操作符组成的序列二、操作数二、操作数文字、常量、变量、函数调用文字、常量、变量、函数调用三、三、操作符操作符即运算符即运算符例:例:a+1、b=
9、c、+i、2*sqrt(2)、a/(b+c)一、操作符分类一、操作符分类(1)一元操作符:只有单个操作数,例如负号一元操作符:只有单个操作数,例如负号(2)二元操作符:带有两个操作数,例如加减乘除二元操作符:带有两个操作数,例如加减乘除(3)三元操作符:带有三个操作数,例如条件运算符三元操作符:带有三个操作数,例如条件运算符二、操作符的优先级与结合性二、操作符的优先级与结合性优先级确定计算顺序优先级确定计算顺序 a-b*c结合性确定计算方向结合性确定计算方向左结合:从左向右结合左结合:从左向右结合右结合:从右向左结合右结合:从右向左结合注意:优先级相同的情况下,考虑结合性。注意:优先级相同的情
10、况下,考虑结合性。三、算术操作符三、算术操作符+、-、*、/、%优先级:优先级: *、/、%高于高于+、-结合性:左结合结合性:左结合注意注意:(1)两侧操作数是整型两侧操作数是整型 例:例:5%2=0(2)整数相除结果是整数整数相除结果是整数 例:例:5/2=2 (3)整数与浮点数相除结果是浮点数整数与浮点数相除结果是浮点数 例:例:5/2.0=2.5四、赋值操作符四、赋值操作符=变量名变量名=表达式表达式优先级:仅高于,操作符。优先级:仅高于,操作符。结合性:右结合结合性:右结合例:例: a=1 a=a+2 a=b=1 注意注意:=左侧只能是变量,不能是表达式左侧只能是变量,不能是表达式例
11、:例:a+2=b a=b+c=1 都是错误的都是错误的赋值表达式赋值表达式五、复合赋值操作符五、复合赋值操作符+=、-=、*=、/=、%=变量名变量名 表达式表达式优先级:与优先级:与=相同。相同。结合性:右结合结合性:右结合例:例:a=1 a*=a+2 a+=a*=a-=3六、自加自减操作符六、自加自减操作符+、-(1)变量名变量名+ 表达式的值等于变量的值表达式的值等于变量的值 ,变量的值增加,变量的值增加1 (2)+变量名变量名变量的值增加变量的值增加1,表达式的值等于变量的值,表达式的值等于变量的值 例:例:a=3 a+ +a a- -a b=a+ b=+a结合性:右结合结合性:右结合
12、 注意:注意:+、-只能用于变量,只能用于变量,不能用于常量或不能用于常量或表达式。表达式。七、逗号操作符,七、逗号操作符,表达式表达式1 1,表达式,表达式2 2,表达式表达式n n优先级:最低。优先级:最低。结合性:左结合结合性:左结合例:例:a=b=1 a+2,b+3,a+b a=3+4,a+7,a*3 x=a=3,6*a x=(a=3,6*3) 逗号表达式逗号表达式一、赋值语句一、赋值语句由赋值表达式加分号构成由赋值表达式加分号构成格式:格式:变量名称变量名称 = 表达式表达式;例:例:a = 0;二、变量的初始化二、变量的初始化在定义变量时直接设定初始值在定义变量时直接设定初始值例:
13、例:int a = 0;判断正误:判断正误:int a,b,c; a=b=c=1; int a=b=c=1;一、各类数值型数据间的混合运算一、各类数值型数据间的混合运算例:例:3*5.2+ A整型、字符型、浮点型数据可以混合运算,不整型、字符型、浮点型数据可以混合运算,不同类型的数据要先转换成同一类型,然后运算。同类型的数据要先转换成同一类型,然后运算。double float long unsigned int char ,short高高低低方向是必定的转换。方向是必定的转换。 方向表示操作数为方向表示操作数为不同类型时转换的方不同类型时转换的方向。向。(1)隐式类型转换隐式类型转换 例:例
14、: int a; double g = 9.80665; a=g; (2)显式类型转换显式类型转换格式格式:(转换后的数据类型转换后的数据类型)(表达式表达式)例:例:a = (int)g * 4; /a 值为值为 4*9=36 a = (int)(g * 4); /a 值为值为 39 a = (int)g%2 /a 值为值为1二、类型转换二、类型转换一、简单语句一、简单语句格式:表达式后加分号格式:表达式后加分号例:例:sum = a + b; a+; printf( %d + %d = %dn, a, b, sum );二、复合语句二、复合语句格式:花括号括起来的语句序列格式:花括号括起来
15、的语句序列三、空语句三、空语句格式:格式: ;目的:满足程序特定语法规则的要求;作为未来目的:满足程序特定语法规则的要求;作为未来添加程序代码的占位标记添加程序代码的占位标记四、控制语句四、控制语句if( ) else for( ) while( ) do while( )continuebreakswitchgotoreturn典型输入输出函数典型输入输出函数格式化输出函数格式化输出函数 printf格式化输入函数格式化输入函数 scanf应用举例:应用举例:编写程序,询问用户姓名,向用户问好,然后编写程序,询问用户姓名,向用户问好,然后请求用户输入一整数和一实数,输出加法运算请求用户输入一
16、整数和一实数,输出加法运算结果。结果。一、一、printf 函数的格式函数的格式printf( “输出格式控制字符串输出格式控制字符串”, 输出项列表输出项列表 ); 例例:printf(“Hello.n); printf(“Hello, %s.n”,name); printf(“a=%dnb=%dnsum=%dn,a,b,a+b); printf(“%d,%f,%sn”,100,1.23,“good”);格式码,由格式码,由“%”和格式描述符组成。和格式描述符组成。普通字符。普通字符。文字、常量、变量、表达式文字、常量、变量、表达式二、二、格式码格式码%d:有符号十进制整数有符号十进制整数%
17、o:八进制整数:八进制整数%x:十六进制整数:十六进制整数%f:float型浮点小数;型浮点小数;%e:float型指数形式型指数形式 %lf:double型浮点小数;型浮点小数;%le:double型指数形式型指数形式%s:字符串字符串%u:无符号十进制整数无符号十进制整数%c:单个字符单个字符%:输出:输出“%”自身自身%对齐标志对齐标志场宽场宽.精度精度格式描述符格式描述符(1)对齐标志:确定输出项左侧还是右侧对齐对齐标志:确定输出项左侧还是右侧对齐(2)场宽:确定输出项占用多少字符宽度场宽:确定输出项占用多少字符宽度(3)精度:对于浮点数,表示小数点后的小数位数。精度:对于浮点数,表示
18、小数点后的小数位数。四、四、printf函数示例函数示例例:例:编写程序编写程序,按照下列格式输出截止,按照下列格式输出截止2005年底的部分年底的部分省市统计数据。所有数据均来自各地政府官方网站,面省市统计数据。所有数据均来自各地政府官方网站,面积仅包括陆域(单位:平方公里),人口仅包括户籍人积仅包括陆域(单位:平方公里),人口仅包括户籍人口(单位:万人),其中部分数据为约数。口(单位:万人),其中部分数据为约数。 l可以使用可以使用 zylib 库中的三个函数代替库中的三个函数代替scanf!(1)整数输入:整数输入:a=GetIntegerFromKeyboard()(2)浮点数输入:浮
19、点数输入:b=GetRealFromKeyboard()(3)字符串输入:字符串输入:c=GetStringFromKeyboard()一、一、scanf 函数的格式函数的格式scanf( “输入格式控制字符串输入格式控制字符串”, 地址表列地址表列); 例:例:scanf(“%d%d”,&a,&b); scanf(“%d,%d”,&a,&b); scanf(“a=%d,b=%d”,&a,&b);l注注 释释l命名规范命名规范l宏定义宏定义l源代码的排版源代码的排版一、注释的目的一、注释的目的增强程序的可读性、可维护性增强程序的可读性、可维护性二、注释的格式二、注释的格式格式一:格式一: /
20、/* *注释内容注释内容* */ / 注释内容可以是多行注释内容可以是多行格式二:格式二:/注释内容注释内容注释从注释从/开始一直到行尾开始一直到行尾一、标识符一、标识符用来表示常量、变量、函数、类型等的名称。用来表示常量、变量、函数、类型等的名称。二、命名规则二、命名规则以下划线或字母开头,由下划线、字母、数字组成。以下划线或字母开头,由下划线、字母、数字组成。注意:标识符区分大小写!注意:标识符区分大小写!格式:格式:#define 宏名宏名 替换文本替换文本#include #define PI 3.14int main() double r, area; r = 3.0; area = PI * r * r; printf( %f, area ); return 0;l递进层次应使用缩进格式递进层次应使用缩进格式l每行代码不能过长,不超过每行代码不能过长,不超过80个字符个字符l函数代码不超过函数代码不超过60行行l使用空行区分不同功能代码使用空行区分不同功能代码l复合语句书写格式要统一复合语句书写格式要统一l除非特别必要,否则不要在一行上书写多条语句除非特别必要,否则不要在一行上书写多条语句l命名规范要一致命名规范要一致