资源预览内容
第1页 / 共63页
第2页 / 共63页
第3页 / 共63页
第4页 / 共63页
第5页 / 共63页
第6页 / 共63页
第7页 / 共63页
第8页 / 共63页
第9页 / 共63页
第10页 / 共63页
亲,该文档总共63页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第三章 数据类型、运算符和表达式 2 主要内容 1. 预备知识 2. 常量和变量的概念 3. 各种数据类型的常量及变量 4. 变量赋初值 5. 不同类型数据之间的混合运算 6. 常用运算符和表达式 7. 输入函数与输出函数 3 3.4.1 变量和内存的概念 变量: u程序运行过程中其值可以改变的量。 u系统为程序中的每一个变量开辟存储单元。 变量名: u字母开头,后跟字母、数字和下划线组成。 uC语言中的关键字不能作为变量名。 4 3.4.1 变量和内存的概念 #include #define PI 3.1415926 void main( ) float r, s, ar; scanf(“%f”, s = 2 * PI * r; ar = PI * r * r; printf(“s=%7.2f, “ , s ); printf(“ ar=%7.2f “ , ar ) ; 说明: 变量必须先定义后使用; 变量中存储的只能是一个 数据,往变量中存放数据 的操作称为赋值。 变量改变的是其值,而不 是变量名。 5 3.4.2 变量赋初值 变量定义 int a , b , c ; float w ; double z; char c1 , c2; 类型标识符 变量名1=常量1, 变量名2=常量2, ; /*指定a,b,c为整型变量*/ /*指定w为单精度实型变量*/ /*指定z为双精度实型变量*/ /*指定c1,c2为字符型变量*/ 6 3.4.2 变量定义和赋初值 变量赋初值 int i = 0 ; int a = 5 , b = 5 , c = 5; float ep = 0.001; char c = a ; /*指定i为整型变量,初值为0*/ /*指定a,b,c的初值为5*/ /*指定ep的初值为0.001*/ /*指定c的初值为a*/ 7 注意: 变量的“名”和变量的“值”不同,变量的“ 名”是该变量所代表的存储单元的标志,而变量的 “值”是指存储单元中的内容。 如:int a; a=5; a=10; ? 5 10 8 9 10 11 12 主要内容 1. 预备知识 2. 常量和变量的概念 3. 各种数据类型的常量及变量 4. 变量赋初值 5. 不同类型数据之间的混合运算 6. 常用运算符和表达式 7. 输入函数与输出函数 13 3.6 运算符和表达式 C 运 算 符 算术运算符:+ - * / % + - 关系运算符:= != 逻辑运算符:(! c=a/b; A. 0 B. 1/2 C. 0.5 D. 1 答案:答案: B B 答案:答案: A A 22 算术运算符的算术运算符的优先级优先级 + + 、-(-(加减运算符加减运算符) ) 最低!最低! * *、 / /、 % % 第二级!第二级! - ( - (负号运算符负号运算符) ) 无括号时我最高无括号时我最高! ( (、)()(括号括号) ) 最优先!最优先! 23 自增自增( + )( + )和自减运算和自减运算( - - )( - - ) + + 运算符的作用:是使变量的值增运算符的作用:是使变量的值增 1 1。 - - 运算符的作用:是使变量的值减运算符的作用:是使变量的值减1 1。 原始值原始值原始值原始值+ 1+ 1 + 变量变量变量变量 原始值原始值原始值原始值- 1- 1 - - 变量变量变量变量 24 自增自增( + )( + )和自减运算和自减运算( - )( - ) 自增和自减运算只能应用于自增和自减运算只能应用于整型变量和指针型变整型变量和指针型变 量。量。 + + 和和 - - 可以写在变量的左侧或右侧;而且其可以写在变量的左侧或右侧;而且其 意义不同。意义不同。 “ “ + + 变量名变量名”和和“ “ - - 变量名变量名”: 先做运算,后取值先做运算,后取值 “变量名变量名 + ”+ ”和和“变量名变量名 - ”- ”: 先取值,后做运算先取值,后做运算 25 自增自增( + )( + )和自减运算和自减运算( - - )( - - )举例举例 N = I + N = I + 变量变量NN 0 0 1010 变量变量I I 变量变量NN ? ?变量变量I I N = + IN = + I 变量变量NN 0 0 1010 变量变量I I 变量变量NN ? ?变量变量I I 1111 1010 1111 1111 26 练习练习 : 已知已知 i = 7i = 7 j = i + j = i + ; j = ? i = ?j = ? i = ? j = + ij = + i; j = ? i = ? j = ? i = ? 7 7 8 8 8 8 8 8 27 若 k 和 j 为 int 型变量,运算表达式 j=3; k=+j; j+; 执行后,变量 k 的值为_, 变量 j 的值为_ 。 4 4 5 5 练习练习 28 关于自增和自减运算符的说明:关于自增和自减运算符的说明: 1.1. 自增和自减运算符的运算对象不能是常量或表达自增和自减运算符的运算对象不能是常量或表达 式,只能是单个变量。式,只能是单个变量。 2.2. 自增和自减运算符的自增和自减运算符的结合方向结合方向是是“自右向左自右向左”。 例例: - i + - i + 等价于等价于 - (i + )- (i + ); * * i + i + 等价于等价于 * *(i + )(i + ); 29 2 2、赋值运算符和赋值表达式、赋值运算符和赋值表达式 1.赋值:在计算机程序中,要完成这样一种操 作将一个表达式的计算结果送到一个变量当 中。 2.简单的赋值运算符:= 3.赋值表达式:变量名 = 表达式 4.赋值运算符的结合性:自右向左 5.即: a = b = c 相当于 a = (b = c) 30 算术运算符与“=”结合在一起,形成复合的 赋值运算符。 复合的赋值运算符复合的赋值运算符 例: i += 2 a %= 3 a * = b + 5 等价于 i = i + 2 等价于 a = a % 3 等价于 a = a * (b + 5) 31 C 运 算 符 算术运算符:+ - * / % + - 关系运算符:= != 逻辑运算符:(! float b; int c; char d;执行 语句c=(d+b)*c-a;后,变量c的数据类型是( )。 A. double B. float C. int D. char 正确答案:正确答案: C C 38 2、强制类型转换 强制类型转换运算符,将一个类型的变量值强制 转换为另一种类型。 一般格式为:(类型标识符)表达式 例: k =(int)(int)x +(float)i) (float)(x = 85) 39 注意:对一个变量进行强制转换后,得到一个新的 类型的数据,但原来变量的类型不变。 例:x原为实型变量且值为2.6,在执行 i = (int)x 后得到一个整数 2,并把它赋给整型变量 i, 但 x 仍为实型,值为2.6。 2、强制类型转换 40 练习: 若有定义:float a=3.9, b=6.9; int c; 执行语 句c=a+(int)(a+b)%3/2; 后,c的值为( )。 A. 3 B. 3.9 C. 4 D. 4.4 正确答案:正确答案: A A 41 主要内容 1. 预备知识 2. 常量和变量的概念 3. 各种数据类型的常量及变量 4. 变量赋初值 5. 不同类型数据之间的混合运算 6. 常用运算符和表达式 7. 输入函数与输出函数 42 3.7 输入函数与输出函数 输出计算机向外部输出设备(显示器,打印机等) 输出数据 输入从输入设备(键盘,鼠标,扫描仪等)向计算 机输入数据 在使用系统库函数时,要用预编译命令 “#include”包含有关的头文件 #include /*标准输入输出库函数*/ #include“stdio.h”/*标准输入输出库函数*/ 43 3.7.1 格式输出函数printf printf函数一般格式: printf(格式控制,输出表列) 格式控制是由双引号括起来的字符串,包含三种信息: 1、格式说明:由“%”和格式字符组成,如%d,%f等 。它的作用是将输出的数据按照指定的格式输出。 2、普通字符:需要原样输出的字符。 3、转义字符:用于控制输出。 输出表列是一些要输出的数据。 44 3.7.1 格式输出函数printf printf函数一般格式: printf(格式控制,输出表列) 普通字符 输出表列 printf(“sum=%dn”, sum); 格式说明 转义字符 printf(“%d,%dn“ , a, b); 45 格式说明项:由“%”与格式字符组成,其作用是将数据转换为 指定的格式输出,按不同类型的数据有以下不同的格式字符: u %d、%ld,按整型数据的实际长度输出。 u %md、%mld,m为指定的输出字段的宽度,如数据的位数小于 m,则左端补空;若数据位数大于m,则按实际长度输出。 u %c:用于输出一个字符。 u %f:用于以小数形式输出实数(包括单、双精度); u %m.nf、%m.nlf,指定输出的数据共占 m 位,其中包括 n 位小数,如数据的位数小于m,则左端补空;若数据位数大于m ,按实际长度输出。小数位数被截断时按四舍五入输出。 3.7.1 格式输出函数printf 46 int a = -1 , b = 25 , c = 125 ; long x=356142; printf(“%d,%5dn“ , a, b); printf(“%5d,%2dn“ , c , c); printf(“%ld,%dn“ , x , x); 输出结果为: 例: 47 3.7.2 格式输入函数scanf scanf函数一般格式:scanf(格式控制,地址表列) scanf函数的功能是按照指定的格式输入数据,可以 输入任意类型的多个数据。 格式控制与printf函数含义相同,它由若干个格式 说明构成,其作用是控制转换输入数据的类型。 地址表列由若干个地址构成,它们可以是变量的地 址,也可以是字符串的首地址。 48 如何分隔数据? 用隐含的分隔符:在输入数据中用空格或换行符分隔数据。 scanf(“%d%d%d“, 输入数据 3 4 5 或输入 3 4 5 则a=3,b=4,c=5 使用显示分隔符:在格式说明符中还可以有其它字符,在输入 字符时应输入与这些字符相同的字符。 scanf(“%d,%d,%d“, 输入数据 3,4,5 则 a=3,b=4,c=5 49 格式字符说明 d, i用来输入有符号的十进制整数 u用来输入无符号的十进制整数 o用来输入无符号的八进制整数 x X 用来输入无符号的十六进制整数(大小写作用相同) c用来输入单个字符 f用来输入实数,可以用小数形式或指数形式输入 s用来输入字符串,将字符串送到一个字符数组中, 在输入时以非空白字符开始,以第一个空白字符结 束。字符串以串结束标志作为其最后一个字符 e E g G 与作用相同,与、g可以互相替换(大小写作 用相同) scanf格式字符 50 字符说明 l用于输入长整型数据(可用%ld,%lo,%lx,%lu) 以及double型数据(用%lf或%le) h用于输入短整型数据(可用, ) 域宽指定输入数据
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号