版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2变量和数据类型第章本章目标理解常量和变量的含义以及变量的命名规则理解常量和变量的含义以及变量的命名规则 熟悉基本数据类型熟悉基本数据类型int、char、float和和double掌握如何使用算术运算符掌握如何使用算术运算符 理解几种类型转换理解几种类型转换熟练使用熟练使用scanf()和和printf()函数函数熟练使用熟练使用getchar()和和putchar()函数函数2.1 常量和变量常常量量变变量量常量常量常量是程序运行过程中其值保持不变的量。是程序运行过程中其值保持不变的量。#includevoid main() int iSum, iNumber; iNumber = 10;
2、 iSum = 20 * iNumber; printf(%d, iSum); #includevoid main() int iSum, iNumber; iNumber = 10; iSum = 50 * iNumber; printf(%d, iSum); 常量常量整型常量整型常量实型常量实型常量字符常量字符常量字符串常量字符串常量522831500125.8-37.61.5e+1an 6Hello Word!my first programiSum0500变量变量变量是程序运行过程中其值可以改变的量。是程序运行过程中其值可以改变的量。#includevoid main() int iS
3、um = 0, iNumber; iNumber = 10; iSum = 50 * iNumber; printf(%d, iSum); 任何一个变量都有自己的一个名称任何一个变量都有自己的一个名称任何一个变量都有自己的一个内存单元任何一个变量都有自己的一个内存单元基本数据类型int 型型float 型型char 型型16位位32位位8位位字符常量任务任务2.1:定义并初始化用户信息表:定义并初始化用户信息表程序一般过程程序一般过程1、定义变量(、定义变量(申请空间申请空间)2、输入变量的值、输入变量的值(输入函数)(输入函数)3、数据的处理(、数据的处理(数据的运算数据的运算)4、输出最终
4、结果(、输出最终结果(输出函数输出函数)int payment; 变量定义变量定义float charge; char sex; 变量初始化变量初始化初始化:初始化:float SingleFee=0.1;初始化:初始化:char sex = 男男;初始化:初始化:int payment=15;今天的任务今天的任务v函数的输入函数函数的输入函数 scanf函数、函数、getchar函数函数v函数的输出函数函数的输出函数 printf函数、函数、putchar函数函数 假设定义三个类型不同的变量:假设定义三个类型不同的变量: int a; flaot f1; char c1; 关于关于a、f1、
5、c1的输入输出:的输入输出: scanf(“%d”,&a); printf(“%d”,a);vscanf(“%f”,&f1); printf(“%f”,f1);vscanf(“%c”,&c1); printf(“%c”,c1);v字符变量的输入输出 vgetchar(); putchar();输入/输出函数 printf函数printf (number = %d, number); 将一些信息按照指定的格式送到标准输出(显示器)将一些信息按照指定的格式送到标准输出(显示器) 格式描述串:普通字符,原样输出格式描述串:普通字符,原样输出 转换字符串转换字符串说明说明%d将参数按整型形式输出,对应
6、参数应该是将参数按整型形式输出,对应参数应该是intint型型%ld将参数按长整型形式输出,对应参数应是将参数按长整型形式输出,对应参数应是longlong型型%c输出一个字符,对应参数应该是一个字符输出一个字符,对应参数应该是一个字符%f将参数按带小数点形式输出,对应参数应是将参数按带小数点形式输出,对应参数应是floatfloat或或doubledouble型,默认有效数字型,默认有效数字6 6位位按照指定格式输出改变量的值按照指定格式输出改变量的值 printf(格式描述串,输出列表)(格式描述串,输出列表) printf函数格式描述串v输出数据时可以规定精度:输出数据时可以规定精度:如
7、:如:printf(“%10.3f,x)v格式说明与格式说明与“其他参数其他参数”个数一致个数一致v格式说明和对应参数的类型一致格式说明和对应参数的类型一致#include void main() int payment = 15; /月租月租 printf ( %d, payment);15输入/输出函数 printf函数%d 按整型数据的实际长度输出按整型数据的实际长度输出 2:打印不同格式的月租:打印不同格式的月租#include void main() int payment = 15; /月租月租 printf ( %3d, payment);15输入/输出函数 printf函数如果
8、数据的位数大于如果数据的位数大于m,按实际位数输出,按实际位数输出%md 按指定长度输出,按指定长度输出,m为指定宽度为指定宽度 #include void main() int payment =15; printf ( %6d, payment);_ _ _ _ _15输入/输出函数 printf函数如果数据的位数小于如果数据的位数小于m,则左端补空格,则左端补空格%md 按指定长度输出,按指定长度输出,m为指定宽度为指定宽度 #include void main() float charge =67.8; /手机费用手机费用 printf ( %f , charge);67.8输入/输出
9、函数 printf函数以小数形式输出以小数形式输出 %f 用来输出实数(包括单、双精度),以小数形式输出用来输出实数(包括单、双精度),以小数形式输出 #include void main() double charge = 168.225; printf (%7.2f , charge);_ 168.22 输入/输出函数 printf函数m表示所有数字和小数点所占的位数,即数据输出表示所有数字和小数点所占的位数,即数据输出是占是占m m列,列,n表示有几位小数。按要求输出后的数据表示有几位小数。按要求输出后的数据小于小于m列,则数据右对齐,左端补空格。列,则数据右对齐,左端补空格。%m.nf
10、 指定数据输出的宽度及小数点的位数指定数据输出的宽度及小数点的位数#include void main() double mercury_level = 168.2251074; printf (%-7.2f , mercury_level);168.23 _ _ 输入/输出函数 printf函数%-m.nf与与%m.nf基本相同,只是如果数值长基本相同,只是如果数值长度小于度小于m,则数据左对齐,右端补空格,则数据左对齐,右端补空格。%-m.nf 指定数据输出的宽度及小数点的位数指定数据输出的宽度及小数点的位数scanf (%d, &number);变量的名称变量的名称转换字符串转换字符串参
11、数变量类型参数变量类型要求的实际输入要求的实际输入%dint十进制数字序列十进制数字序列%ldlong十进制数字序列十进制数字序列%cchar字符型数字符型数%ffloat十进制,可以有小数点及小数部分十进制,可以有小数点及小数部分&符号(附在读取的每一个变量上)符号(附在读取的每一个变量上) 用于指明变量用于指明变量scanf(格式字符串,地址列表)(格式字符串,地址列表) 输入/输出函数 scanf函数_10 由键盘输入数由键盘输入数值值“10” 光标闪烁,要求输光标闪烁,要求输入变量入变量payment的值的值float payment;scanf ( %f , &payment); 输
12、入的值存储输入的值存储在变量在变量payment中,中,也就是变量也就是变量payment分配的内存空间中分配的内存空间中_10内存内存申请内存空间申请内存空间 输入/输出函数 scanf函数内存内存dRadiusdHighdVol10.5 #include void main() double dRadius, dHigh, dVol; printf(“请输入半径和高请输入半径和高: : n); scanf(%lf%lf,&dRadius,&dHigh); dVol = 3.14 * dRadius * dRadius * dHigh; printf(7.2f, %7.2f, %7.2fn,
13、dRadius,dHigh,dVol); scanf函数 printf函数使用实例请输入半径和高请输入半径和高: :10.5 20.510.520.57096.7910.5 20.5 7096.79转义字符转义字符转义字符是一种特殊的字符常量。转义字符以反斜是一种特殊的字符常量。转义字符以反斜线线开头,后跟一个或几个字符。转义字符具有开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称特定的含义,不同于字符原有的意义,故称“转义转义”字符字符 转义序列转义序列名称名称描述描述a 警告警告产生一则警告。产生一则警告。b 退格退格将光标回退一格。将光标回退一格。f 换页换页
14、将光标移到下一页的第一格。将光标移到下一页的第一格。n 换行换行将光标移到下一行的第一格。将光标移到下一行的第一格。r 回车回车将光标移到当前行的第一格。将光标移到当前行的第一格。t 水平制表水平制表 将光标移到下一个水平制表位置。将光标移到下一个水平制表位置。v 垂直制表垂直制表将光标移到下一个垂直制表位置。将光标移到下一个垂直制表位置。 单引号单引号产生一个单引号。产生一个单引号。 双引号双引号产生一个双引号。产生一个双引号。? 问号问号产生一个问号。产生一个问号。反斜线反斜线产生一条反斜线。产生一条反斜线。0 空空产生一个空字符。产生一个空字符。转义字符2.3 算术运算符 一元运算符一元
15、运算符一元运算符+-num+num = num + 1num-num = num - 1ij+ numnum = num + 1inum-num = num - 1j任务任务2.4:修改用户信息并显:修改用户信息并显 示示 #include void main() int count,c1,c2,c3,c4; printf(请输入短信数请输入短信数: n); scanf(%d,&count); c1=count+;c2=+count; printf(%d, %d, %d,c1,c2,count); 1:修改短信数:修改短信数v请同学们自己输入短信数,并做自减运算,请同学们自己输入短信数,并做自
16、减运算,查看运算结果查看运算结果#include void main() int count,c1,c2,c3,c4; printf(请输入短信数请输入短信数:n); scanf(%d,&count); c1=count-;c2=-count;c3=count-;c4=-count; printf(“c1=%d, c2=%d, c3=%d, c4=%d, count=%d,c1,c2, c3, c4, count); v思考讨论:思考讨论:c3为何不同为何不同c1c4为何不等于为何不等于c2?算术运算符 二元运算符二元运算符二元运算符 操作数操作数1 操作数操作数2 #include void
17、 main() int count= 180; int charge=27; float SingleFee; SingleFee = (float) charge / count; printf(%f, SingleFee); 类型转换2:计算单条短信费用:计算单条短信费用此时此时SingleFee的值为的值为0.150000, ,如果不用强制类如果不用强制类型转换型转换, ,结果为结果为0.000000类型转换自动类型转换是在不同数据类型的量进行混合运算时,编译自动类型转换是在不同数据类型的量进行混合运算时,编译系统将自动完成不同数据类型之间的转换。系统将自动完成不同数据类型之间的转换。
18、v自动类型转换自动类型转换原则:原则:把表示范围小的类型的值转换到表示范围大的类型把表示范围小的类型的值转换到表示范围大的类型的值。转换顺序为如图所示。的值。转换顺序为如图所示。 shortcharintlongdoublefloat类型转换强制类型转换是使用强制类型转换符,强迫表达式的值转换强制类型转换是使用强制类型转换符,强迫表达式的值转换成某一特定类型。强制类型转换形式为:成某一特定类型。强制类型转换形式为:v强制类型转换强制类型转换强制类型转换最主要的用途之一是满足一些运算对类型的强制类型转换最主要的用途之一是满足一些运算对类型的特殊要求,例如求余运算符特殊要求,例如求余运算符“%”,
19、要求运算符两侧的数据,要求运算符两侧的数据为整型,如为整型,如(int)2.5%3;其次是为了防止整数除法中的;其次是为了防止整数除法中的小数部分丢失。小数部分丢失。(类型名)(表达式)(类型名)(表达式) v getchar函数函数getchar是字符输入函数,作用是从终端输入一个字符。是字符输入函数,作用是从终端输入一个字符。一般形式为:一般形式为:getchar( ) ;v putchar函数函数格式:格式:putchar( )参数:参数:c为字符常量、变量或表达式为字符常量、变量或表达式功能:把字符功能:把字符c输出到显示器上输出到显示器上3:接收并显示用户性别:接收并显示用户性别q接
20、收并显示字符#include void main() char sex; printf(请输入一个字符:请输入一个字符:n); sex = getchar(); fflush(sex); putchar(sex);q内存内存aq请输入一个字符:请输入一个字符:m_mm代表代表man表达式的组成 num1 num2num3+*运算符运算符 操作数操作数 表达式表达式表达式是运算符和操作数构成的式子。表达式是运算符和操作数构成的式子。v 操作数包括常量、变量、函数等。操作数包括常量、变量、函数等。v 运算符包括算术运算符、赋值运算符、关系运算符、运算符包括算术运算符、赋值运算符、关系运算符、 逻辑
21、运算符逻辑运算符3.1 赋值运算符 C语言中,赋值符号语言中,赋值符号“= =”就是赋值运算符,它的作就是赋值运算符,它的作用是将一个数据赋给一个变量。用是将一个数据赋给一个变量。 由它构成赋值表达式:由它构成赋值表达式: 变量名变量名 = 表达式表达式 例如:例如:c = 2 + 5x = 10area = length * high赋值运算符的右结合性 x = y = z = 100 x = (y = (z = 100)(y = (z = 100)自右向左自右向左 复合赋值运算符的用法 在赋值运算符在赋值运算符“=”的前面加上其他的前面加上其他(、(、%、 、 、&、| 、其中之一)运其中
22、之一)运算符可构成复合赋值运算符。算符可构成复合赋值运算符。变量名变量名 ? = 表达式表达式 复合赋值运算符的用法#include void main () float charge1 = 60.75,charge2 = 12.50,charge; printf(小张小张2012年年2月语音费用月语音费用 = %fn, charge1); printf(小张小张2012年年2月短信费用月短信费用 = %fn, charge2); charge=charge1+charge2; charge+=15; printf(小张小张2012年年2月的总费用月的总费用 = %fn, charge); c
23、harge=charge+15;4. 计算输出月消费额计算输出月消费额 条件结构 if语句 v 条件结构就是根据不同条件进行判断,然后根条件结构就是根据不同条件进行判断,然后根据判断的结果执行不同的操作。据判断的结果执行不同的操作。C语言中,语言中,if语句语句可以实现这种操作。可以实现这种操作。 v 简单简单if语句的一般形式:语句的一般形式: if ( (表达式表达式) ) 表达式表达式 语句语句 真真假假条件结构 if-else语句v if-else语句的一般形式:语句的一般形式: If ( (表达式表达式) ) else 真真假假语句语句2 语句语句1表达式表达式 v程序中经常会出现比
24、较两个量的大小,根据比较程序中经常会出现比较两个量的大小,根据比较的结果决定下一步做什么。的结果决定下一步做什么。C C语言中用语言中用“关系运算关系运算符符”来进行来进行“比较运算比较运算”。 操作数操作数1 1 操作数操作数2 2 关系运算符关系运算符 10 5(20*5)=10020=15(45-20)=(100-75)c!=c 结果结果 真真假假真真假假真真假假1010103.2 关系运算符 #include void main() float charge; printf(请输入用户手机费用:请输入用户手机费用:); scanf(%f,&charge); if(charge = 30
25、.0) printf(此用户此用户2012年年2月话费超过月话费超过30元元n,charge); else printf(此用户此用户2012年年2月话费低于月话费低于30元元n,charge);任务任务2.5 划分用户消费类型划分用户消费类型 1. 利用关系运算符打印用户消费类型利用关系运算符打印用户消费类型 2.6 逻辑运算符 v 逻辑运算符用于连接一个或多个关系表达式或逻逻辑运算符用于连接一个或多个关系表达式或逻辑量,判断条件是否成立。用逻辑运算符将关系表达辑量,判断条件是否成立。用逻辑运算符将关系表达式或逻辑量连接起来的式子就是逻辑表达式。式或逻辑量连接起来的式子就是逻辑表达式。 v逻
26、辑运算符的类型:逻辑运算符的类型: &运算符的功能 表达式表达式1 1语音费超语音费超50 短信费超短信费超20 无返话费无返话费5元元 无返话费无返话费5元元无返话费无返话费5元元无返话费无返话费5元元NO表达式表达式2 2NOYESNONOYESYESYES表达式表达式 1 1表达式表达式 2 2结果结果000100010111&运算符示例 #include void main() float charge; printf(“请输入用户手机费用:请输入用户手机费用:); scanf(%f,&charge); if(charge = 30.0 & charge = 50.0) printf(
27、手机费用为手机费用为%f的用户返送的用户返送5元话费元话费n,charge); 2. 利用逻辑运算符打印用户消费类型利用逻辑运算符打印用户消费类型 学生任务:根据电脑价格划分学生任务:根据电脑价格划分#include void main() float price; printf(请输入电脑价格:请输入电脑价格:); scanf(%f,&price); if(price =2500 & price = 3500) printf(学校会购买此台电脑学校会购买此台电脑n); else printf(学校不会购买此台电脑学校不会购买此台电脑n); |运算符的功能 表达式表达式 1 1表达式表达式 2
28、 2结果结果000101011111|运算符示例 #include void main() float charge1, charge2; printf(请输入小张请输入小张2012年年2月的语音费用和短信费用:月的语音费用和短信费用:); scanf(%f,%f,&charge1,&charge2); if(charge1 = 30 | charge2 = 20) printf(小张可获取返送话费小张可获取返送话费5元元);!运算符的功能 消费额消费额chargecharge大于大于60元元 返赠话费返赠话费5元元 无返赠话费无返赠话费YESNO表达式表达式结果结果1001!运算符示例 #i
29、nclude void main() float charge;printf(输入小张输入小张2012年年3月消费额:月消费额:); scanf(%d,& charge); if(!(charge 60) printf(n无返赠话费无返赠话费n); else printf(返赠话费返赠话费5元!元!);50消费额消费额 60返赠返赠无返赠无返赠YESNO成绩不及格!成绩不及格!逻辑运算符的总结 &只有当只有当两个两个条条件都为件都为真真时才时才执行操作执行操作只要只要任何任何一个一个条件为条件为真真时就时就执行操作执行操作|对原条件对原条件取取反反,即:,即:如果原条件如果原条件为假时就执为假
30、时就执行操作行操作!位运算左移运算符() 8 2a = a number0 0 0 0 1 0 0 00 088 20 0 1 0 0 0 0 00 032#include void main() int i; printf(输入一个整数:输入一个整数:); scanf(%d,&i); i=i) 学生任务:输入一个数,打印右移结果学生任务:输入一个数,打印右移结果15 2a = a number0 0 0 0 1 1 1 10 03sizeof运算符 v sizeof 操作符以字节形式给出了其操作数的存储操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型大小。操
31、作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。名。操作数的存储大小由操作数的类型决定。 v 使用使用sizeof运算符的一般形式:运算符的一般形式: 用于数据类型:用于数据类型: sizeof ( type ) 用于变量:用于变量: sizeof ( var_name ) sizeof var_namesizeof运算符注意:注意:同一段同一段C C程序,程序,使用不同编译使用不同编译器编译,相同器编译,相同数据类型的变数据类型的变量所占空间可量所占空间可能不同,所以能不同,所以求出的求出的sizeof值可能不同。值可能不同。2.7 运算符的优先级优先级优先级运
32、算符运算符含义含义口诀口诀结合方向结合方向1( )圆括号圆括号括号成员排第一括号成员排第一自左至右自左至右2!+-(类型类型)sizeof逻辑非运算符逻辑非运算符按位取反运算符按位取反运算符自增运算符自增运算符自减运算符自减运算符类型转换运算符类型转换运算符长度运算符长度运算符单目成员列第二单目成员列第二自右至左自右至左3*/%乘法运算符乘法运算符除法运算符除法运算符求余运算符求余运算符乘除余三乘除余三自左至右自左至右4+-加法运算符加法运算符减法运算符减法运算符加减四加减四自左至右自左至右运算符的优先级优先级优先级运算符运算符含义含义口诀口诀结合方向结合方向5左移运算符左移运算符右移运算符右
33、移运算符移位五移位五自左至右自左至右6 =关系运算符关系运算符关系六关系六自左至右自左至右7=!=等于运算符等于运算符不等于运算符不等于运算符等于、不等排第七等于、不等排第七自左至右自左至右8&按位与运算符按位与运算符位与异或和位或,位与异或和位或,“三分天下三分天下”八九十八九十自左至右自左至右9按位异或运算符按位异或运算符10|按位或运算符按位或运算符11&逻辑与运算符逻辑与运算符逻辑或跟与,逻辑或跟与,十二和十一十二和十一自左至右自左至右12|逻辑或运算符逻辑或运算符13= += -=*= /= %=赋值运算符赋值运算符赋值排在第十三赋值排在第十三自右至左自右至左运算符的优先级int a = 1, b = 2, c =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026商旅大数据应用实践与决策支持系统建设报告
- 2025 医学炎性肠病肠内营养护理课件
- 2026散装食用油行业市场供需分析及投资机会评估报告
- 2026中国特种设备制造行业技术标准与安全监管研究报告
- 精神科基础护理的重要性
- 系统性红斑狼疮护理诊断
- 药物滥用与患者康复护理
- 脑卒中患者护理策略研究
- 山东省莱芜市钢城新兴路学校高中英语 Module3 TheFifth Period Writing教学设计 外研版必修5
- 内蒙古鄂尔多斯市东胜区九年级化学下册 9.2 化学合成材料教学设计 (新版)粤教版
- 2026广东湛江市遂溪发展集团有限公司招聘15人(第二批)考试备考题库及答案详解
- 2026年重庆市部编版高一语文一轮复习第五单元文言文阅读测试题库试卷
- 2025秋新版道德与法治二年级上册教学工作计划及教学进度表
- 2026年高职院校教务干事岗笔试真题附答案
- 2026 年秋季开学:新时代教师师德师风建设专题培训
- GB/T 12008.3-2026塑料聚氨酯生产用聚醚多元醇第3部分:羟值的测定
- 六年级上册人教部编版语文 《单元习作导学单+作文范文》
- 电梯困人应急演练总结报告
- 2026年幼儿园新生家长会后勤园长
- 2026高速铁路通讯行业市场供需分析及投资布局规划分析研究报告
- 工程伦理第2版
评论
0/150
提交评论