C语言第3章2类型、运算符与表达式.ppt_第1页
C语言第3章2类型、运算符与表达式.ppt_第2页
C语言第3章2类型、运算符与表达式.ppt_第3页
C语言第3章2类型、运算符与表达式.ppt_第4页
C语言第3章2类型、运算符与表达式.ppt_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章 数据类型、运算符和表达式 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用于输入短整型数据(可用, ) 域宽指定输入数据所占宽度(列数),域宽应为正整数 表示本输入项在读入后不赋给相应的变量 scanf格式字符 说明: 对unsigned型变量所需要的数据,可以用%u,%d或%o,%x格式输入。 可以指定输入数据所占的列数,系统自动按它截取所需数据。 如果在%后有一个“*”附加说明符,表示跳过它指定的列数。 输入数据时不能规定精度。 51 字符数据的输入输出 用putchar函数输出一个字符 putchar函数(字符输出函数)的作用是向终端输出 一个字符。 一般形式为 putchar(c) 可以是字 符型变量或 整型变量 52 例1:输出单个字符。 #include void main() char a,b,c; a=B; b=O; c=Y; putchar(a); putchar(b); putchar(c); putchar(n); 53 字符数据的输入输出 用getchar函数输入一个字符 getchar函数(字符输入函数)的作用是从计算机终 端输入一个字符。 getchar函数没有参数,一般形式为 getchar() 函数的值就是 从输入设备得 到的字符 54 3.7.3 数学函数 使用数学库中的函数时,应该首先用预处理命令 #include 指明要用到的数学函数的描述所在的头文件。 调用数学函数时,要给出函数名,后面是一对圆括 号,括号内是使用函数所需的参数,参数可以是常 量、变量或表达式。 55 例:计算并打印2的3次方的语句可以写成: printf(“%7.2f”, pow(2.0 , 3.0); 调用的数学函数pow需要两个参数,这两个参数都 是double型的,返回值也是double型的。 语句执行结果为: 8.00。 56 常用数学函数 函 数 名功 能举 例 fabs(x)计算x的绝对值fabs(-3.5)等于3.5 sqrt(x)计算x的非负平方根sqrt(16.0)等于4.0 exp(x)计算指数函数exexp(1.0)等于2.71828 log(x)计算x的自然对数ln xlog(2.718282)等于1.0 log10(x) 以10为底的对数函数log10xLog10(10.0)等于1.0 pow(x,y ) 计算xypow(2.0,3.0)等于8.0 sin(x)正弦函数sin(0.0)等于0.0 cos(x)余弦函数cos(0.0)等于1.0 57 变量的定义 int a,b,c; 指定a,b,c为整型变量 unsigned lower指定lower为无符号整型变量 float x,y;指定x,y为实型变量 double z;指定z为双精度实型变量 char c1,c2;指定c1,c2为字符型变量 课堂练习课堂练习 58 1. 定义一个无符号长整变量 L1; unsigned short S1 unsigned long L1 2. 定义一个无符号短整变量 S1; 3. 定义一个浮点类型变量 F1; 4. 定义一个双精度变量 D1; float F1 double D1 按要求写语句: 59 转义字符程序测试 #include #include void main( ) void main( ) printf( “this is one program in c n“);printf( “this is one program in c n“); printf(“nthis is one program in c“); printf(“nthis is one program in c“); printf(“athis is one program in c n“); printf(“athis is one program in c n“); printf(“this is one program in c n“);printf(“this is one program in c n“); printf(“bbthis is one program in c n“);printf(“bbthis is one program in c n“); printf(“this is one program in c “);printf(“this is one program in c “); printf(“rsecond program n“);printf(“rsecond program n“); printf(“this is one program in c “);printf(“this is one program in c “); printf(“tsecond program n“);printf(“tsecond program n“); printf(“this is one program in c “);printf(“this is one program in c “); printf(“101 second program n“);printf(“101 second program n“); printf(“this is one program in c “);printf(“this is one program in c “); printf(“x1a second program n“);printf(“x1a second program n“); 60 写出下面算术表达式的值:写出下面算术表达式的值: 设设x = 2.5x = 2.5,a = 10a = 10,y = 4.7y = 4.7 求表达式的值求表达式的值 x + a%3*(int)(x + y)%2/4x + a%3*(int)(x + y)%2/4 1.1. x = 2.5x = 2.5; a = 10 a = 10 ; y = 4.7y = 4.7; 2.2.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论