C程序设计基础-郭友强版课件.ppt

上传人(卖家):三亚风情 文档编号:3008416 上传时间:2022-06-21 格式:PPT 页数:83 大小:1.17MB
下载 相关 举报
C程序设计基础-郭友强版课件.ppt_第1页
第1页 / 共83页
C程序设计基础-郭友强版课件.ppt_第2页
第2页 / 共83页
C程序设计基础-郭友强版课件.ppt_第3页
第3页 / 共83页
C程序设计基础-郭友强版课件.ppt_第4页
第4页 / 共83页
C程序设计基础-郭友强版课件.ppt_第5页
第5页 / 共83页
点击查看更多>>
资源描述

1、2016“”1第2章 C程序设计基础uC语言语法基础u数据与数据类型u常量u变量u混合运算与数据类型转换u数据的输入与输出u基本运算符和表达式“”2第第2 2章章【本章导读】【本章导读】C C程序设计基础程序设计基础 数据是程序处理的对象,是程序设计中的重要组成部分。计算机中处理的数据不仅仅是简单的数字,还包括文字,声音,图形、图像等各种数据形式。C语言为我们提供了丰富的数据类型和运算符运算符及语法规则,方便了我们对现实世界中各种各样数据形式的描述和处理。 本章主要介绍C语言的基本数据类型、标识符和关键字、常量和变量,运算符与表达式以及数据类型之间的转换等。通过对本章的学习,掌握C语言数据和数

2、据类型的相关知识,熟练掌握运算符和表达式的使用方法。“”3一. 字符集一个C程序是C语言基本字符构成的一个序列.(1)大小写英文字母52个(2)数字10个(3)键盘符号33个(4)转义字符。由“反斜杠( )”开始后跟单个字符或若干个字符组成,通常用来表示键盘上的控制代码或特殊符号。2.12.1C语言语法基础语言语法基础 “”4 定义:用户自行定义的符号,用来表示程序中需要辨认的对象的名称如变量、常量、函数、标号等 组成: 只能由字母、数字、下划线 _组成,且第一个字符必须是字母或下划线 大小写敏感 不能使用关键词 长度:最长32个字符 命名原则: 见名知意 不宜混淆 如l与I, o与0 常用大

3、写字母表示常量标识符,变量等其他类型标识符用小写字母表示 系统内部使用了一些用下划线开头的标识符,建议定义标识符时尽量不用下划线开头,以防止冲突。例:判断下列标识符号合法性sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab _above $123M.D.John3days#33char$123ab二. 词汇 1.标识符 “”52. 关键字(保留字)标识符的一个特殊的集合。其中的标识符在C语言中有预先定义好的特殊意义。不能用于其他任何目的。(1)数据类型关键字(12个): int, long, short, f

4、loat, double, char, unsigned, struct, union, enum, void,file(2)控制语句关键字(12个):break, case, continue, default, do, else, for, goto, if, return, switch, while(3)存储类型关键字(4个):auto, extern, register, static(4)其它关键字(4个):const, sizeof, typedef, volatile“”63.运算符:+ ,-,*,/,%4.分隔符:逗号,空格5.常量:数字常量、字符常量、字符串常量、符号常量、

5、转义字符6.注释符 : /* */“”7三、 语句语句是组成程序的基本单位。C语言中的语句分为:(1)表达式语句: 表达式; x=2;i+;(2)函数调用语句: 函数名(实际参数);printf(“hello!”);(3)流程控制语句:如如 t=t+m; a=3; i+; i=1 , j=2;如如 func( ); printf(“Hello,world!n”);if语句语句 switch语句语句for语句语句while语句语句dowhile语句语句continue语句语句break语句语句goto语句语句return语句语句分支循环辅助控制“”8 复合语句复合语句( (又称语句块又称语句块)

6、 ):用:用 括起来的一组语句括起来的一组语句一般形式:一般形式: 说明:说明:“”后不加分号后不加分号语法上和单一语句相同语法上和单一语句相同复合语句可嵌套复合语句可嵌套例:例: int sum; int a,b; scanf(“%d%d”,&a,&b); sum=a+b; printf(“%d”,sum); “”9l 空语句:空语句: ;main() int i; i=i+1; int k; main() int i; i=i+1;printf(“%d”,i); 注意注意 说明部分和语句部分要分离。说明部分和语句部分要分离。 语句不能写在函数外面。语句不能写在函数外面。“”10四、标准库函

7、数 标准库函数不是C语言本身的组成部分,它是由C编译系统提供的一些非常有用的功能函数。输入输出一个字符:getchar() putchar()有格式的输入输出:scanf() printf()“”11一、一、 数据类型概述数据类型概述整型(整型(int)数据类型数据类型基本类型基本类型整型整型单精度型(单精度型(float)字符型(字符型(char)长整型(长整型(long)短整型(短整型(short)实型实型双精度型双精度型(double)枚举类型(枚举类型(enum)共用体类型(共用体类型(union)构造类型构造类型结构体类型(结构体类型(struct)数组类型数组类型空类型(空类型(v

8、oid)指针类型(指针类型(*)(第)(第8章介绍)章介绍)2.2 数据与数据类型数据类型决定:1. 数据占内存字节数2. 数据取值范围3. 其上可进行的操作“”12 一般用大写字母 是宏定义预处理命令,不是C语句 整型常量 实型常量 字符常量 字符串常量如 #define PRICE 30定义:程序运行时其值不能改变的量分类: 符号常量:用标识符代表常量 定义格式: #define 标识符 常量例 符号常量举例(ch2_1.c)#include #define PRICE 30main() int num,total; num=10; total=num*PRICE; printf(tota

9、l=%d,total);运行结果:total=300常量 2.3 常量“”13 三种表示形式: 十进制整数:由数字09和正负号表示.如 32767, 123,-456,0 八进制整数:由数字0开头,后跟数字07表示.如0123,011 十六进制整数:由0 x或0X开头,后跟09,af,AF表示. 如0 x123,0Xff例 12 与 12L 12 为int型 12L 为long int型例 30000 为int型 65536 为long int 型 整型常量的类型 根据其值所在范围确定其数据类型 在整常量后加字母l或L,认为它是long int 型常量问题:0123 = ( )100 x123

10、 = ( )100Xff = ( )1083291255问题:0123 = ( )100 x123 = ( )100Xff = ( )10一、整型常量(整常数) “”14 表示形式: 十进制数形式:(必须有小数点) 如0.123, .123, 123.0, 0.0, 123. 指数形式:(e或E之前必须有数字;指数必须为整数)如12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5 实型常量的类型 默认double型 在浮点常量后加字母f或F,认为它是float型二、实型常量(浮点常量、实数或浮点数)e-51.2E-3.5 “”15实数类型 类 型字节数有效数字数值范围f

11、loatfloat4 47 7-3.4-3.41010-38 -38 3.43.410103838doubledouble8 81616-1.7-1.71010-308 -308 1.71.71010308308long long doubledouble10101919-3.4-3.41010-4932 -4932 3.43.410104 4932932以上数据为理论上的参考数据,实际上不同机器可能有差异,例如在有的机器上测试为:-1.2E-383.4E+38(float) -2.3E-3081.7E+308(double)-9.0E-49286.3E+4931(long double)。注

12、意:在Turbo C 2.0中只输出6位小数,输出double时加l修饰,输出long double加L修饰。 “”16 定义:用单引号括起来的单个普通字符或转义字符. 字符常量的值:该字符的ASCII码值如 101 -A 012 -n x40 - x61 -a 60 -0 483 -()A-101-x41-65如 a A ? n 101 转义字符:反斜线后面跟一个字符或一个代码值表示例 转义字符举例 main() printf(101 x42 Cn); printf(I say:How are you?n); printf(C Programn); printf(Turbo C );运行结果

13、:运行结果:( (屏幕显示屏幕显示) )A B CI say:”How are you?”C ProgramTurbo C三、字符常量如 A65, a97, 048, n10 注意:和是不合法的字符常量转义字符及其含义:转义字符含义nvrdddtbf”xhh转义字符含义换行竖向跳格回车单引号3位8进制数代表的字符横向跳格(Tab)退格换行但不回车反斜线双引号2位16进制数代表的字符main( )printf(“abx4134cd102y”);“”17字符类型的数据包括计算机所用编码字符集中的所有字符。常用的ASCII字符集,其中的字符包括所有大小写英文字母、数字、各种标点符号字符,还有一些控制

14、字符,一共128个。扩展的ASCII字符集包括ASCII字符集中的全部字符和另外的128个字符,总共256个字符。 字符类型数据在内存中存储的是它的ASCII码编码值,例如A和8分别存储ASCII值65和56。一个字符通常占用内存一个字节。 说明说明: :“”18 字符常量与字符串常量不同 定义:用双引号(“”)括起来的字符序列 存储:每个字符串尾自动加一个 0 作为字符串结束标志h e l l o 0例 字符串“hello”在内存中6565 0例 a“a”例 空串 “”0四、字符串常量 “”19编译程序根据变量定义为其分配指定字节的内存单元.地址int a=1, b=-3,c;abc2字节2

15、字节2字节地址地址.内存1-3随机数 概念:其值可以改变的量 变量代表某个存储空间及其所存储的数据 变量说明的一般格式: ,; 变量初始化:说明时赋初值;可对被说明变量的部分初始化 例: int a,b,c; float data; char ch1; double z;合法标识符例: int a=2,b,c=4; float data=3.67; char ch=A; int x=1,y=1,z=1; 变量的使用:先说明,后使用例 int student; stadent=19; /*Undefined symbol stadent in function main*/ 变量说明位置:一般放

16、在函数开头main() int a,b=2; float data; a=1; data=(a+b)*1.2; printf(“data=%fn”,data);变量说明可执行语句main() int a,b=2; a=1; float data; data=(a+b)*1.2; printf(“data=%fn”,data);决定分配字节数和数的表示范围2.4 变量“”20变量代表某个存储空间及其所存储的数据变量名、变量值和变量的地址 变量名:标识变量的名字,与内存中的某一存储空间相联系 变量值:在这个存储空间中存储的数据 变量的地址:这个存储空间的首地址 在程序中通过变量名来引用变量值赋值:

17、向变量所代表的存储空间传送数据的操作。赋值操作用“=”表示 例: a=1; a=a+1; b=a;“”21(1)整型,以int表示,在内存中占2个字节(2) 短整型, 以short int表示,或以short表示。(3) 长整型, 以long int表示,或以long表示。在内存中占4个字节(4)无符号型,说明类型符为unsigned。类 型 字节数 取值范围 intint2 2-32768 -32768 32767 32767 即 -2-215 15 (2(215 15 1)1)unsigned unsigned intint 2 20 0 65536 65536 即 0 0 (2(216

18、16 1)1)shortshort2 2-32768 -32768 32767 32767 即 -2-215 15 (2(215 15 -1)-1)unsigned shortunsigned short2 20 0 65536 65536 即 0 0 (2(216 16 -1)-1)longlong4 4-2147483648-21474836482147483647 2147483647 即 -2-231 31 (2(231 31 -1)-1)unsigned longunsigned long4 40 04294967295 4294967295 即 0 0 (2(232 32 -1)-

19、1)一、整型变量“”22在turbo c中一个int型的变量的值范围为-215(215-1) ,即-3276832767。可以用以下6种整型变量。即:有符号整型有符号整型 signed int 无符号整型无符号整型 unsigned int有符号短整型有符号短整型 signed short int无符号短整型无符号短整型 unsigned short int有符号长整型有符号长整型 signed long int无符号长整型无符号长整型 unsigned long int“”23整型变量的定义在c语言中,要求对所有用到的变量作强制定义,也就是“先定义,后使用”。整型变量的定义:形式:类型说明符

20、 变量名标志符1,变量名标志符2 ;例如: int a,b,c,max;unsigned long x,y;“”24(1)编译系统将根据定义检测函数中的变量名。编译系统将根据定义检测函数中的变量名。 例如在语句例如在语句: maxx=3;中变量中变量max错写成了错写成了maxx,编译系统将提示,编译系统将提示maxx没有被定没有被定义的错误信息。义的错误信息。(2)编译系统将对每一个变量根据它被定义的类型分配相应编译系统将对每一个变量根据它被定义的类型分配相应的存储单元。的存储单元。 例如对上述被定义的变量例如对上述被定义的变量a、b、c和和max分别分配分别分配2字节字节的整型存储单元,对

21、变量的整型存储单元,对变量x,y分配分配4字节的无符号长整型存字节的无符号长整型存储单元。储单元。 变量存储单元地址可用变量存储单元地址可用“&变量名变量名”求得,例如求得,例如“&f”表表示变量示变量f的地址。的地址。变量定义有以下作用:变量定义有以下作用:“”25变量定义有以下作用变量定义有以下作用(续续)可以用长度运算符sizeof( )求出任意类型变量存储单元的字节数。例如对int型变量a和float型变量f,sizeof(a)和sizeof(f)的值分别为2和4。也可以用sizeof( )作用到类型标识符上,如:sizeof(int)和sizeof(float)得到同样的结果。(3)

22、编译系统根据变量被定义的类型检查该变量进行运算的合法性。例如上述整型变量a、b、c和max均可以参与求余运算,例如b对c求余的结果赋给a: a=b%c;是合法的,而实型变量f参加求余运算将是非法的。“”26变量定义有以下作用变量定义有以下作用(续续)(4)可以给变量赋初始值。如果没有给变量赋初始值,普通变量将存储随机值,直到给它赋值为止。定义变量应注意以下问题:(1)变量名可以是任何合法的标识符。例如a、b2、c_1、_3y等均是合法的变量名,而#abc、.com、¥b1、5fd2、for等均是不合法的变量名。尽管除了关键字以外的标识符均可以作为合法的变量名,但应尽量做到“见名知义”,例如用m

23、ax表示最大值变量,用sex表示性别变量等。另外还要注意,在C语言中大小写不同的变量名将表示不同的变量;尽管变量名中可以出现大写字母,但C语言习惯在变量名中使用小写字母。(2)在一个函数中,同一个变量不能被定义两次,无论两次定义的类型是否相同,否则编译时将提示出错信息。“”27二、实型变量语言的实型变量,分为两种:1、单精度型关键字为:float,占字节(32位)、提供位有效数字2、双精度型关键字:double,占个字节(64位)、提供1516位有效数字类 型字节数有效数字数值范围floatfloat4 47 7-3.4-3.41010-38 -38 3.43.410103838doubled

24、ouble8 81616-1.7-1.71010-308 -308 1.71.71010308308l o n g l o n g doubledouble10101919-3.4-3.41010-4932 -4932 3.43.410104 4932932“”28字符型变量用来存放字符常量,请注意只能放一个字符。类型说明符是char.字符变量存放字符ASCII码 char与int数据间可进行算术运算一个字符变量在内存中占一个字节.将一个字符常量放到一个字符变量中,实际上并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中。三、字符变量三、字符变量类 型字节数取

25、值范围charchar1 1-128 -128 127 127 即 -2-27 7 (2(27 7 1)1)unsigned unsigned charchar1 10 0 255 255 即 0 0 (2(28 8 -1)-1)例 int a; char ch; a=D; /* a=68; */ ch=8+0; /* ch=8; */ ch=E+a-A /* ch=e; */ ch=65; /* ch=A; */没有字符串变量,用字符数组存放“”29例如例如:char c1,c2;c1=a;c2=b;字符字符a的的ASCII代码为代码为97,b为为98,在内存中变量,在内存中变量c1、c2的

26、值如图的值如图(a)所示。实际上是以二进制形式存放的,如图所示。实际上是以二进制形式存放的,如图(b)所示所示“”30 #define PRICE 12.5 main() int num=3; float total; char ch1,ch2=D; total=num*PRICE; ch1=ch2-A+a; printf(“total=%f,ch1=%cn”,total,ch1); 宏定义变量说明输出结果运行结果:total=37.500000, ch1=d例子例子 “”31四、变量的赋值和类型转换1.变量赋初值变量赋初值变量的赋值就是给变量的存储单元存储一定的值。给变量赋变量的赋值就是给变

27、量的存储单元存储一定的值。给变量赋值有两种方式,一种方式是值有两种方式,一种方式是在定义变量时给变量初始化赋值在定义变量时给变量初始化赋值;例如例如: int a=3; float x=3.56; char ch1=a; int a,b,c=5;另一种方式是在另一种方式是在程序运行时用赋值语句程序运行时用赋值语句给变量赋值,如:给变量赋值,如: int a,b,c;a=2;b=5;c=10;“”322.变量类型转换:自动转换和强制转换(1)自动转换,遵循右图“”33 char ch; int i; float f; double d;ch/i + f*d - (f+i)intintdouble

28、doubledoubledoubledoubledouble例“”34 一般形式:一般形式:( (类型名类型名) ) 例例: (int)(x+y): (int)(x+y) (int)x+y (int)x+y (double)(3/2) (double)(3/2) (int)3.6 (int)3.6 说明:强制转换得到所需类型的中间变量,原变量类型不变说明:强制转换得到所需类型的中间变量,原变量类型不变 显式转换(强制转换)结合性:从右向左结合性:从右向左例: (double)a (int)(x+y) (float)5/3注意:表达式一定要加括号(因强制类型转换是单目运算,优先级高),例如上面最

29、后一个表达式中只是将5转变成float型,而不是将5/3转变成float型。若对变量实型显式转换,将得到新类型的一个值,原变量的类型及其存储值均不变。 例例 main() float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); 结果:结果:x=3.600000,i=3精度损失问题精度损失问题较高类型向较低类型转换时可能发生较高类型向较低类型转换时可能发生“”352.6 2.6 数据的输入和输出数据的输入和输出 C语言无语言无I/O语句,语句,I/O操作由标准操作由标准I/O函数实现函数实现 #include “”36格式:printf

30、(“控制字符串”,参数1,参数2,)功能:按控制字符串,将参数转换成一定格式输出返回值:正常,返回输出字节数;出错,返回EOF(-1)参数:合法的表达式,可以缺省控制字符串,包含两种信息: 格式说明: %修饰符转换字符 ,用于指定输出格式 普通字符:(包括转义字符):原样输出(或执行)一、格式输出函数一、格式输出函数printfprintf“”37dx,Xoucse,Efg十六进制无符号整数不带符号十进制整数十进制整数指数形式浮点数(5)单个字符字符串八进制无符号整数小数形式浮点数(6)e和f中较短一种int a=567; printf ( “%d”,a);int a=255; printf(

31、“%x”,a);int a=65; printf(“%o”,a);int a=567; printf(“%u”,a);char a=65; printf(“%c”,a);printf(“%s”, “ABC”);float a=567.789; printf(“%e”,a);float a=567.789; printf(“%f”,a);float a=567.789; printf(“%g”,a);567ff101567AABC5.67789e+02567.789000567.789说明:转换字符决定数据输出类型转换字符与输出项个数应相同,按先后顺序一一对应输出转换:转换字符与输出项类型不一致

32、,自动按指定格式输出格式字符格式字符“”38附加格式说明符(修饰符)附加格式说明符(修饰符)可缺省可缺省.n精度,对实数,指定输出n位小数(四舍五入)修饰符功 能m输出数据宽度,数据长度m,左补空格;否则按实际输出按左对齐方式输出(缺省右对齐)-输出数值时在其左边用0填充以达到指定或缺省数据宽度0在d,o,x,u前,指定输出为long型在e,f,g前,指定输出为double型l对字符串,指定截取的字符个数格式说明: -0m.nh/l注意:其中不得有空格;顺序不当,格式说明会无效格式控制字符串“”39例 int a=1234,c=-1; long b=2269978; printf(“%dAn”

33、,a); printf(“%8dAn”,a); printf(“%-8dAn”,a); printf(“%08dAn”,a); printf(“%8ldAn”,b); printf(“%u,%dn”,c,c); 整型数输出/*ch2_6.c*/例 int a=123; printf(“%d,%o,%Xn”,a,a,a); 例/1234A/1234 A/00001234A/123,173,7B例/ 2269978A/ 1234A/65535,-1“”40例 float f=123.456; printf(“%fn”,f); printf(“%010.2fn”,f); printf(“%0.2fn

34、”,f); printf(“%10.2en”,f); 浮点数输出/*ch2_6.c*/例 char c=W; int i=87; printf(“%c,%dn”,c,c); printf(“%d,%cn”,i,i); printf(“%-5c,%5cn”,c,c); 例 字符输出/123.456000/0000123.46/W,87例/ 1.23e+02/123.46/87,W/W , W“”41例 printf(“%s!n”,“123456789”); printf(“%.8s!n”,“123456789”); printf(“%12.8s!n”,“123456789”); printf(“

35、%-12.8s!n”,“123456789”); 字符串输出例 long a=65536; printf(“%8ld,%dn”,a, a); 例 l00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00/123456789!/12345678!/ 12345678!/12345678 !/ 65536,0例 “”42格式: scanf(“控制字符串”,地址表)功能:从键盘读入数据,按控制字符串中所指定格式来解释它们,并将结果存到相应参数指定的存储单元中返回值:正常,返回输入数据个数;出错返回0地址表:变量的地址,它指出转换后的输入数据应存储的位置。常用取

36、地址运算符&控制字符串:包含两种信息 格式说明:%修饰符转换字符 ,用于指定解释数据的格式 普通字符(不能是%):输入时原样输入转换字符: d , o , x , c , s , f , e例 scanf(“%d”,&a); 输入:10 则 a=10例 scanf(“%x”,&a); 输入:11 则 a=17二、格式输入函数scanf“”43附加格式说明符(修饰符) % * m l/h l修饰符功 能hm*用于d,o,x前,指定输入为short型整数用于d,o,x前,指定输入为long型整数用于e,f前,指定输入为double型实数指定输入数据宽度,遇空格或不可转换字符则结束抑制符,指定输入项

37、读入后不赋给变量例 scanf(“%4d%2d%2d”,&yy,&mm,&dd); 输入 19991015 则1999yy, 10 mm, 15 dd“”44 一般以空格、TAB或回车键作为分隔符 其它字符做分隔符:格式串中两个格式说明间的其他字符,输入时要原样输入例 scanf(“%d:%d:%d”,&h,&m,&s); 输入 12:30:45 则12 h, 30 m, 45 s例 scanf(“%d,%d”,&a,&b) 输入 3,4 则3a, 4 b例 scanf(“a=%d,b=%d,c=%d”,&a,&b,&c); 输入 a=12,b=24,c=36 输入分隔符的指定输入分隔符的指定

38、例 scanf(“%d%o%x”,&a,&b,&c); printf(“a=%d,b=%d,c=%dn”,a,b,c); 输入 123 123 123 输出 a=123,b=83,c=291“”45字符型数据,输入时不能有分隔符,否则分隔符会被当作有效字符输入 输入数值数据时,遇以下情况认为该数据结束: 遇空格、TAB、或回车 遇宽度结束 遇非法输入例 int x; char ch; scanf(“%d”,&x); scanf(“%c”,&ch); printf(“x=%d,ch=%dn”,x,ch);执行:123输出:x=123,ch=10说明:说明:如 scanf(“%c%c%c”,&c1

39、,&c2,&c3); 若输入a b c 则 a c1, c2, b c3如 scanf(“%d%c%f”,&a,&b,&c); 若输入1234a123o.26 则 1234 a, a b, 123 c“”46#include main() float a,b,area; scanf(“%f,%f,&a,&b); area=a*b; printf(a=%7.2f, b=%7.2fn,a,b); printf(“The area is %5.2fn,area);输入:3.0,4.0输出:a= 3.00, b= 4.00 The area is 12.00baarea文件包含预处理命令变量说明输入数

40、据输出数据例 输入一长方形的二边长,求面积“”47#include stdio.hmain() char c1,c2; c1=getchar(); printf(%c,%dn,c1,c1); c2=c1+a-A; printf(%c,%dn,c2,c2);输入:A 输出:A,65 a,97例 从键盘输入大写字母,用小写字母输出“”48#include stdio.hmain() int x,y,temp; scanf(“%d%d”,&x,&y); printf(“x=%d,y=%dn,x,y); temp=x; x=y; y=temp; printf(“x=%d,y=%dn,x,y);输入:5

41、6 87 输出:x=56,y=87 x=87,y=56例 交换两个变量的值 “”49格式: c=getchar( )功能:从键盘读一个字符返回值:正常, 返回读取的字符;出错, 返回EOF(-1) 字符输入函数 例 #include main() int c; printf(Enter a character:); c=getchar(); printf(%c-hex%xn,c,c);运行结果:Enter a character:AA-hex41三、单字符输入输出函数“”50格式:putchar( char ch )参数:ch为字符常量、变量或表达式功能:把字符ch输出到显示器上返回值:正常,

42、为输出的字符ch;出错,为EOF(-1)字符输出函数#include main() int c; printf(Enter a character:); c=getchar(); putchar(c);运行结果:Enter a character:AA“”512.7 2.7 基本运算符和表达式基本运算符和表达式一、一、 运算符、表达式、优先级和结合性运算符、表达式、优先级和结合性 1.1.运算符的种类运算符的种类C语言的运算符非常丰富,语言的运算符非常丰富,共有共有13类类45个运算符个运算符 “”521.算术运算符 + - * / % + -2.关系运算符 = = = = != 3.逻辑运算

43、符! & | 4.位运算符 | & 5.赋值类运算符= 及 自反赋值运算符 6.条件运算符?:7.逗号运算符, 8.指针及求地址运算符* &9.求存储单元字节数运算符sizeof10.类型转换运算符(类型)11.结构体成员运算符 -12.下标运算符 13.其他运算符 如函数调用运算符( )等 “”532.优先级和结合性学习运算符要注意几个方面问题:(1)运算符的功能;(2)运算符与操作对象即操作数(包括常量、变量、函数调用等)的关系: 要求操作数的个数(单目、双目、三目); 要求操作数的类型(如求余运算符%要求操作数是整型); 结合方向(操作数到运算符)::左结合、右结合(单目、赋值类、条件运

44、算符);(3)运算符的优先级;(4)运算结果的数据类型:不同类型数据运算将发生类型转换“”54运算符结合性1 1( ) - .( ) - .左2 2! + - -! + - -(负号运算符) (type) (type) * *(取内容运算符) & &(取地址运算符) sizeofsizeof右3 3* *(乘法运算符) / %/ %左4 4+ -+ -(减法运算符)左5 5 左6 6 = =左7 7= != !=左8 8& &(按位与运算符)左9 9 左1010| |左1111&左1212|左1313?:?:右1414= += -= = += -= * *= /= %= = |= &= = =

45、 ) - * * / % - + - / % - + -(减号)(减号) 说明:说明: 两整数相除,结果为整数,舍小数部分;否则为两整数相除,结果为整数,舍小数部分;否则为doubledouble型型 % %要求两侧均为整型数据要求两侧均为整型数据例例 5/2 = -5/2.0 =例例 5%2 = -5%2 = 1%10 = 5%1 = 5.5%2二、算术运算符和算术表达式2-2.51-110( )“”56算术表达式算术表达式用算术运算符和括号将运算对象用算术运算符和括号将运算对象(也称操作数也称操作数)连接连接起来的、符合起来的、符合c语法规则的式子,称语法规则的式子,称c算术表达式。算术表

46、达式。运算对象包括常量、变量、函数等。运算对象包括常量、变量、函数等。注意:1、双目运算符两侧运算对象要一致。2.乘号不能省略3.使用合法标识符4.内容书写在同一行,不允许有分子分母形式5.不允许使用 和 “”57算术表达式的计算算术表达式的计算 优先级类型运算符结合性1结构类( )自左向右2单目+、-(正、负号)、+、-自右向左3双目(类型名)自左向右4双目sizeof( )自左向右5赋值类*、/、%自右向左说明说明: :1 1圆括号优先级最高,有多层圆括号从内向外运算;圆括号优先级最高,有多层圆括号从内向外运算;2 2( (类型名类型名)()(表达式表达式) )为强制类型转换运算;为强制类

47、型转换运算;3 3先按运算符的优先级由高到低进行,如先按运算符的优先级由高到低进行,如5 5* *-2-2相当于相当于5 5* *(-(-2)2),结果为,结果为-10-10;4 4同级的运算符按结合方向进行同级的运算符按结合方向进行 “”58例:设有变量声明例:设有变量声明float a=3float a=3. .0; int b=2;0; int b=2;计算表达计算表达式式2+sqrt(12+sqrt(1. .0+a)0+a)* *b+/2b+/2算术表达式的计算算术表达式的计算 解:解:2+sqrt(1. .0+a)*b+/22+sqrt(4. .0)*b+/22+2. .0*2/22

48、+4. .0/22+2. .04. .0即表达式的值为即表达式的值为4. .0,同时,同时b的值变为的值变为3,a的值不变。的值不变。 “”59简单赋值运算符简单赋值运算符 符号:符号: = = 格式:格式: = 作用:将作用:将 的值赋给的值赋给 例例 a=3;a=3; d=func(); d=func(); c=d+2; c=d+2;三、赋值运算符和表达式三、赋值运算符和表达式“”60例例 / /* * e2_12.c e2_12.c * */ /#include #include main()main() int i=5; int i=5; float a=3.5,a1; float a

49、=3.5,a1; double b=123456789.123456789;double b=123456789.123456789;char c=char c= A A ; ; printf(i=%d,a=%f,b=%f,c=%cn,i,a,b,c); printf(i=%d,a=%f,b=%f,c=%cn,i,a,b,c); a1=i;a1=i;i=a;i=a;a=b;a=b;c=i; c=i; printf(i=%d,a=%f,a1=%f,c=%cn,i,a,a1,c);printf(i=%d,a=%f,a1=%f,c=%cn,i,a,a1,c);程序运行结果:i=5i=5,a=3.50

50、0000a=3.500000,b=123456789.123457b=123456789.123457,c=Ac=Ai=3i=3,a=123456792.000000a=123456792.000000,a1=5.000000a1=5.000000,c=c= “”61main() int i=2,j=3,k,n,m; k=i+j; printf(%d,k); k=k+1; printf(%d,k); n=k*3; printf(%d,n); m=n%j; printf(%d,m); m=m-i; printf(%d,m); n=k/j; printf(%d,n);【例】写出下面程序的运行结果写

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(C程序设计基础-郭友强版课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|