C语言程序设计第2章基本数据类型与运算符.ppt_第1页
C语言程序设计第2章基本数据类型与运算符.ppt_第2页
C语言程序设计第2章基本数据类型与运算符.ppt_第3页
C语言程序设计第2章基本数据类型与运算符.ppt_第4页
C语言程序设计第2章基本数据类型与运算符.ppt_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计电子教案 第2章 基本数据类型与运算符 第2章 基本数据类型与运算符 返回总目录 C语言程序设计电子教案 第2章 基本数据类型与运算符 目 录 2.1 数据类型和取值范围 2.2 运算符 2.3 输入/输出函数 2.4 习题二 返回总目录 C语言程序设计电子教案 第2章 基本数据类型与运算符 基本要求: )熟悉C语言的常用数据类型; )熟悉C语言的常用运算符; )熟练掌握输入/输出函数的使用。 学习重点: )C语言运算符的使用; )输入/输出函数的使用。 C语言程序设计电子教案 第2章 基本数据类型与运算符 2.1 基本数据类型和取值范围 2.1.12.1.1 基本数据类型和取值范围 C 数 据 类 型 基本类型 构造类型 指针类型 空类型void 自定义typedef 数值类型 字符类型char 枚举类型enum 整 型 浮点型 单精度型float 双精度型double 短整型short 长整型long 整型int 数组 结构体struct 共用体union 数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 其上可进行的操作 数据类型总表 返回目录 C语言程序设计电子教案 第2章 基本数据类型与运算符 基本类型及范围 (Visual C+ 6.0环境下) 2.1 基本数据类型和取值范围 2.1.12.1.1 基本数据类型和取值范围 C语言程序设计电子教案 第2章 基本数据类型与运算符 2.1.22.1.2 常量与变量 标识符 定义:用来标识变量、常量、函数等的字符序列 组成: v只能由字母、数字、下划线组成,且第一个字母必须是字母或下划 线 v大小写敏感 v不能使用关键字 命名原则: v见名知意 v不宜混淆 如l与I, o与0 2.1 基本数据类型和取值范围 C语言程序设计电子教案 第2章 基本数据类型与运算符 2.1.22.1.2 常量与变量 标识符 例:判断下列标识符号合法性 sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab _above $123 M.D.John3days #33 char$123ab 2.1 基本数据类型和取值范围 C语言程序设计电子教案 第2章 基本数据类型与运算符 2.1.22.1.2 常量与变量 常量 定义:程序运行时其值不能改变的量(即常数) 分类: v符号常量:用标识符代表常量 l定义格式: #define 符号常量 常量 如 #define PRICE 30 例 符号常量举例 #define PRICE 30 main() int num,total; num=10; total=num*PRICE; printf(“total=%d“,total); l一般用大写字母 l是宏定义预处理命令,不是C语句 v直接常量: l整型常量 l实型常量 l字符常量 l字符串常量 2.1 基本数据类型和取值范围 C语言程序设计电子教案 第2章 基本数据类型与运算符 2.1.22.1.2 常量与变量 常量-整型常量(整常数) 三种形式: v十进制整数:由数字09和正负号表示.如 123,-456,0 v八进制整数:由数字0开头,后跟数字07表示.如 0123,011 v十六进制整数:由0x开头,后跟09,af,AF表示. 如0x123,0Xff 示例: 0571 = (377 )10 0x179 = (377 )10 0X179 = (377 )10 2.1 基本数据类型和取值范围 C语言程序设计电子教案 第2章 基本数据类型与运算符 2.1.22.1.2 常量与变量 常量-整型常量(整常数) 两种长度:整型常量按长度划分为两种:短整型和 长整型(后缀为小写字母l或大写字母L),从长度来看: vTurbo C中默认为短整型,如-377是一个短整型数,而 - 377l或-377L表示-377是长整型数。 v而在Visual C+ 6.0中默认为长整型,如-377、-377l或 - 377L均表示-377是长整型数。 l 例:语句:printf(“%d,%d”,sizeof(-377),sizeof(-377L); 在 Turbo C中的运行结果为:2,4 而在VC中的结果为:4,4 小结:从数据类型角度来分析,整型常量默认为int 类型,而加上后缀(l或L)后,就是long int类型。 2.1 基本数据类型和取值范围 C语言程序设计电子教案 第2章 基本数据类型与运算符 2.1.22.1.2 常量与变量 常量-实型常量(实数或浮点数) 表示形式: v十进制数形式:(必须有小数点) 如0.123, .123, 123.0, 0.0, 123. v指数形式:(e或E之前必须有数字;指数必须为整数)如 12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5 实型常量的类型 v默认double型 v在实型常量后加字母f或F,认为它是float 型 l例:语句:printf(“%d,%d”,sizeof(0.123),sizeof(0.123F); 在Turbo C和VC中的运行结果均为:8,4 2.1 基本数据类型和取值范围 C语言程序设计电子教案 第2章 基本数据类型与运算符 2.1.22.1.2 常量与变量 常量-字符常量 定义:用单引号括起来的单个普通字符或转义字符. 字符常量的值:该字符的ASCII码值 如 a A ? n 101 转义字符:反斜线后面跟一个字符或一个代码值表示 如 A65, a97, 048 , n10 2.1 基本数据类型和取值范围 C语言程序设计电子教案 第2章 基本数据类型与运算符 2.1.22.1.2 常量与变量 常量-字符常量 main() double a=1.234567890123456789e18; float b=a; printf(“a=%.20len“,a); printf(“b=%.20len“,b); 程序输出结果为: c=1.23456789012345680000e18 d=1.23456793955060940000e18 C语言程序设计电子教案 第2章 基本数据类型与运算符 2.1.22.1.2 常量与变量 变量 /* a=68; */ x=A+5; /* x=65+5; */ s=!+G /* s=33+71; */ 没有字符串变量,字符串用字符数组存放 2.1 基本数据类型和取值范围 C语言程序设计电子教案 第2章 基本数据类型与运算符 2.1.22.1.2 常量与变量 变量 变量综合示例: #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 宏定义 变量定义 输出结果 2.1 基本数据类型和取值范围 C语言程序设计电子教案 第2章 基本数据类型与运算符 2.2 运算符 2.2.12.2.1 优先级与结合规则 C 运 算 符 算术运算符:(+ - * / % + -) 关系运算符:( = !=) 逻辑运算符:(! k=+j; j=3; k=j+; j=3; printf(“%d”,+j); j=3; printf(“%d”,j+); a=3;b=5;c=(+a)*b; a=3;b=5;c=(a+)*b; /k=4,j=4 /k=3,j=4 /4 /3 /c=20,a=4 /c=15,a=4 “先加后用 ” “先用后加 ” C语言程序设计电子教案 第2章 基本数据类型与运算符 2.2 运算符 2.2.32.2.3 算术运算 自增、自减运算符+ - v说明: l+ - 不能用于常量和表达式,如5+,(a+b)+ l+ -结合方向: 自右向左 l优先级:- + - -* / % -+ - (2) (3) (4) 例 -i+ -(i+) i=3; printf(“%d”,-i+); /- 3 例 -i+ i=3; printf(“%d”,-i+); C语言程序设计电子教案 第2章 基本数据类型与运算符 2.2 运算符 2.2.32.2.3 算术运算 自增、自减运算符+ - v特别提示:慎用+,-运算符! ! ! 4,3 4 5,3,2,2 3,3 4 3,2,2,2 a=3; printf(“%d,%dn“,a,a+); printf(“%dn“,a); a=3; printf(“%d,%d,%d,%dn“,+a,a+,a+,-a); 例 TC中结果: VC中结果: 从例中可分析出: 1、函数参数均按从右到左的顺序求值; 2、对于后置运算,都遵循“先用后加”规 则,但“加”的时机不同,TC中是用后马 上加,这样下个左边的参数用到的值是加 后的值,而在VC中,用后不马上加,而是 在函数调用(printf)完成后才加。 C语言程序设计电子教案 第2章 基本数据类型与运算符 2.2 运算符 2.2.32.2.3 算术运算 自增、自减运算符+ - v特别提示:慎用+,-运算符! ! ! 由上例知,由于+,-运算符在不同版本的C编译系统中使用 时会出现非预期的结果,因此要慎用! 例如: a=3; printf(“%d,%d”,a,a+); 在有的系统中,函数参数是从左至右求值,输出“3,3”, 在多数系统(如TC和VC)中是从右至左求值,输出“4,3” 或“3,3”。因此,以上写法不宜提倡,最好改写成: a=3; b=a+; printf(“%d,%d”,a,b); 或:a=3; b=a; a+; printf(“%d,%d”,a,b); 则结果都是明确的(输出“4,3”)。 C语言程序设计电子教案 第2章 基本数据类型与运算符 2.2 运算符 2.2.32.2.3 算术运算 自增、自减运算符+ - v特别提示:慎用+,-运算符! ! ! 总之,不要编写让人很难看懂,也不知 道系统会怎样执行的程序。 所以,我们可以通过一些含+,-比较 多的表达式来加深对其运算规则的理解,但 在实际编程中,除非不得已,否则绝对不要 编写含+,-比较多的表达式。 从上面的介绍可知,含+,-比较多的 复杂语句或有歧义的语句完全可以用简单 易懂、结果明确的语句组替代。 C语言程序设计电子教案 第2章 基本数据类型与运算符 2.2 运算符 2.2.42.2.4 关系运算 关系运算又称为比较大小运算,它有六个运 算符: 、=、= 、3 5=3 532 在数学上是恒成立的。但在C语言中,上式却不成立,因为首先计 算第一个大于号,其值为1,而后计算第二个大于号时,成为计算 12,显然不成立,其值为0。实际上,连续比较大小时,表示几个 条件同时满足,因此若将上式改写为条件表达式 53 x=y=z=0; +x|+y|+z; printf(“x=%d y=%d z=%dn”,x,y,z); x=y=z=0; +x printf(“x=%d y=%d z=%dn”,x,y,z); x=y=z=0; +x printf(“x=%d y=%d z=%dn”,x,y,z); x=y=z=0; +x|+y printf(“x=%d y=%d z=%dn”,x,y,z); 程序运行结果为: x=1 y=0 z=0 x=1 y=1 z=0 x=1 y=1 z=1 x=1 y=0 z=0 C语言程序设计电子教案 第2章 基本数据类型与运算符 2.2 运算符 2.2.62.2.6 位运算 位运算操作符 表2.5 位运算符号表 运算符符号名例子意义优先级结合规则 unsigned char d= -25; c=aprintf(“%dn”,c); c=a|b;printf(“%dn”,c); c=ab;printf(“%dn”,c); c=a;printf(“%dn”,c); b=3; c=ab;printf(“%dn”,c); c=db;printf(“%dn”,c); a=25; c=ab;printf(“%dn”,c); c=ab) printf(“%d”,a); else printf(“%d”,b); printf(“%d”,ab?a:b); C语言程序设计电子教案 第2章 基本数据类型与运算符 v条件运算符可嵌套 如 x0?1:(xb?a:cd?c:d ab?a:(cd?c:d) 2.2 运算符 2.2.72.2.7 条件运算 例 求 a+|b| printf(“a+|b|=%dn”,b0?a+b:a-b); 例 (a=b)?Y:N (x%2=1)?1:0 (x=0)?x:-x (c=a float z=4; x=(y=y+6,y/z); printf(“x=%dn“,x); X=3 程序运行结果为: C语言程序设计电子教案 第2章 基本数据类型与运算符 2.2 运算符 2.2.102.2.10 求字节数(sizeof) 1)sizeof计算类型占用字节数的形式为: sizeof(类型) 2)sizeof计算变量占用字节数的形式有两种: sizeof(变量)或sizeof 变量 示例: #include main() int a=5; printf(“%dn“,sizeof(int); printf(“%dn“,sizeof(a); printf(“%dn“,sizeof a); 2 2 2 运行结果为: C语言程序设计电子教案 第2章 基本数据类型与运算符 2.2 运算符 2.2.112.2.11 类型转换 算术运算类型转换 算术运算中,当两个运算数类型相同时,运算结果类型与原类 型相同,当两个运算数类型不同时,运算结果类型为级别较高的 数据类型。类型级别高低按下述规则进行: 即字符型向整型转换转换 、整型向实实数型转换转换 、短型向长长型转换转换 、 不带带符号型向带带符号型转换转换 。 C语言程序设计电子教案 第2章 基本数据类型与运算符 例如表达式: 5/2+3*4.5+2 的运算结果为17.5,而不是18。 因为5/2时,除法运算符“/”两边运算数的类型都为整数,其运 算结果类型也应为整数类型,其值当然为2,而不是2.5;乘法 3*4.5两边运算数的类型不同,结果类型为级别高的类型,即实 型,值为13.5,整个表达式值为17.5。 如将上述表达式改写为: 5/2.0+3*4.5+2 此时时,其运算结结果为为18.0,而不是17.5,请读请读 者自行分析。 2.2 运算符 2.2.112.2.11 类型转换 算术运算类型转换 C语言程序设计电子教案 第2章 基本数据类型与运算符 2.2 运算符 2.2.112.2.11 类型转换 赋值转换 执行赋值运算 变量a = 表达式b 时,若a、b类型相同,则直接将b赋给a即可, 若a、b类型不同,则需先将b的类型转换为a的 类型后再赋值,这种类型转换,我们称之为赋 值类型转换。 C语言程序设计电子教案 第2章 基本数据类型与运算符 2.2 运算符 2.2.112.2.11 类型转换 强制类型转换 强制类型转换的一般格式为: (目标类型)表达式 其功能是将表达式类型转换为目标类型,其转换 方法同赋值转换。 如: float a=3.1; int i; i=(int)a; 则i的值为3。 C语言程序设计电子教案 第2章 基本数据类型与运算符 2.2 运算符 2.2.112.2.11 类型转换 输入/输出类型转换 示例: #include main() int a=15; char ch=A; printf(“%dn“,ch); printf(“%Xn“,a); 65 F 程序运行结果为: 详见“输入/输出函数”一节 C语言程序设计电子教案 第2章 基本数据类型与运算符 2.3 输入/输出函数 2.3.12.3.1 格式化输出函数printf printf( )函数调用格式 5#include 格式:printf(“格式字符串”,输出表) 功能:按指定格式向显示器输出数据 输出表:要输出的数据(可以没有,多个时以“,”分隔) 格式控制串:包含两种信息 格式说明: %flagswidth.precisionF|N|h|ltype, 用于指定输出格式 普通字符或转义序列:原样输出 返回目录 C语言程序设计电子教案 第2章 基本数据类型与运算符 2.3 输入/输出函数 2.3.12.3.1 格式化输出函数printf Type类型代码及示例 d,i x,X o u c s e,E f g % 十六进制无符号整数 不带符号十进制整数 十进制整数 指数形式浮点小数 单一字符 字符串 八进制无符号整数 小数形式浮点小数 e和f中较短一种,去0 百分号本身 int a=567;printf ( “%d”,a); int a=255;printf(“%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); printf(“%”); 567 ff 101 567 A ABC 5.677890e+002 567.789001 567.789 % p指针,int a=567; int *q= printf(“%p,%X”,q,FFF4,FFFF4 以无符号的十六进制形式输出变量的地址 C语言程序设计电子教案 第2章 基本数据类型与运算符 说明 vType类型代码字符与输出项个数应相同,按先后顺序一 一对应。 2.3 输入/输出函数 2.3.12.3.1 格式化输出函数printf 程序运行结果为: Type类型代码及示例 3 4 a=3, b=4 示例: main( ) int a=3,b=4; printf(“%d %dn”,a,b); printf(“a=%d , b=%dn”,a,b); C语言程序设计电子教案 第2章 基本数据类型与运算符 说明 v输出类型转换:格式字符与输出项类型不一致,按指定type 类型输出。输出类型转换与赋值类型转换规律相同。 2.3 输入/输出函数 2.3.12.3.1 格式化输出函数printf 程序在VC中运行结果为: Type类型代码及示例 u=1 u=4294967295 示例: main( ) int u=-1; printf(“u=%dn“,u); printf(“u=%un”,u); C语言程序设计电子教案 第2章 基本数据类型与运算符 2.3 输入/输出函数 2.3.12.3.1 格式化输出函数printf 可选格式说明符宽度 width 定义输出数据域宽。数据长度 C语言程序设计电子教案 第2章 基本数据类型与运算符 2.3 输入/输出函数 2.3.22.3.2 格式化输入函数scanf scanf( )函数调用格式 说明:各项的含义与printf中的含义相同,不同的是输入 格式串没有“精度项”,其中“*”用于跳读输入的数据项. 程序运行结果为: 例2.13: main( ) int r,h; float v; scanf(“%d%*d%d“, v=3.14159*r*r*h; printf(“The volume is:%.5fn“,v); 3 5 4 The volume is:113.09724 C语言程序设计电子教案 第2章 基本数据类型与运算符 2.3 输入/输出函数 2.3.22.3.2 格式化输入函数scanf 输入数据流的分隔方式 用空白符号分隔:空白符有:空格,制表符,回车符; 程序运行结果为: 例2.13: main( ) int r,h; float v; scanf(“%d%*d%d“, v=3.14159*r*r*h; printf(“The volume is:%.5fn“,v); 3 5 4 The volume is:113.09724 程序运行结果为: 3 5 4 The volume is:113.09724 C语言程序设计电子教案 第2章 基本数据类型与运算符 2.3 输入/输出函数 2.3.22.3.2 格式化输入函数scanf 输入数据流的分隔方式 示例: main( ) int r,h; float v; scanf(“r=%dh=%d“, v=3.14159*r*r*h; printf(“The volume is:%.5fn“,v); 程序运行结果为: r=3 h=4 The volume is:113.09724 用指定的符号分隔: C语言程序设计电子教案 第2章 基本数据类型与运算符 2.3 输入/输出函数 2.3.22.3.2 格式化输入函数scanf 输入数据流的分隔方式 示例: main( ) int r,h; float v; scanf(“%2d%*3d%2d“, v=3.14159*r*r*h; printf(“The volume is:%.5fn“,v); 程序运行结果为: 12345678 r=12 h=67 The volume is:30310.06055 用指定输入宽度分隔: C语言程序设计电子教案 第2章 基本数据类型与运算符 2.3 输入/输出函数 2.3.22.3.2 格式化输入函数scanf 输入数据流的分隔方式 根据数据含义分隔: 示例: main( ) int r,h; char c; float v; scanf(“%d%d%c“, printf(“r=%d h=%dn“,r,h); printf(“Input character is:%cn“,c); v=3.14159*r*r*h; printf(“The volume is:%.5fn“,v); 程序运行结果为: 3 5r r=3 h=5 Input character is:r The volume is:113.09724 C语言程序设计电子教案 第2章 基本数据类型与运算符 2.3 输入/输出函数 2.3.32.3.3 字符输入/输出函数 字符输入 采用scanf函数 例如:char ch; sc

温馨提示

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

评论

0/150

提交评论