中科大c语言程序设计考题,中科大C语言程序设计.ppt

253b171540df25e1b84436cbe50dfc72.gif中科大C语言程序设计.ppt

第2章数据类型 运算符和表达式 C语言程序设计 第2章数据类型 运算符和表达式 2 目录 数据类型 常量和变量的定义运算符的种类 优先级和结合方向表达式的类型和求值简单的C程序设计及基本输入输出 C语言程序设计 第2章数据类型 运算符和表达式 3 C的数据类型 DataTypes 基本类型整型 字符型 浮点型 实型 枚举类型构造类型数组类型 结构体类型 共用体类型指针类型空类型 C语言程序设计 第2章数据类型 运算符和表达式 4 数据类型 常量和变量 C的数据结构是以数据类型形式出现的由前述数据类型可以构造出更复杂的数据结构C语言的数据有常量和变量之分常量和变量都分别属于某一数据类型程序中用到的所有数据都必须指定类型本章仅介绍基本数据类型 C语言程序设计 第2章数据类型 运算符和表达式 5 标识符 Identifier 标识符变量名 符号常量名 函数名 类型名 标识符命名规范由字母 数字 下划线 Underscore 组成第一个字符必须为字母或下划线C语言标识符是大小写敏感的标识符的名称一般应具有一定的含义不要与C语言关键字 Keywords 重复一般不要使用以下划线开头的标识符 C语言程序设计 第2章数据类型 运算符和表达式 6 标识符示例 正确的标识符student num1 SUM 1 2 3MyName myname my name错误的标识符room3 1包含了其他字符 减号 2men以数字开头long与关键字重复Mr Zhu包含了其他字符 小数点 C语言程序设计 第2章数据类型 运算符和表达式 7 常量 Constants 常量程序运行过程中 其值不能被改变的量例如 12 6 7 a 符号常量 SymbolicConstants 用一个标识符代表的常量相当于把标识符用一个常量简单替换下来标识符是一个整体 不要试图拆开来替换含义清楚 一改全改习惯上符号常量名用大写字母 C语言程序设计 第2章数据类型 运算符和表达式 8 常量示例 definePRICE30 defineNUM12voidmain total NUM PRICE total2 84 PRICE2 printf total d total 不会被替换 total 12 30 常量 符号常量 C语言程序设计 第2章数据类型 运算符和表达式 9 变量 Variables 其值可以改变的量称为变量变量有一个名字 即标识符变量在存储器中占据一定的存储单元变量占据存储空间的大小由其类型决定变量名表示存储变量的存储单元地址程序使用变量名表示这个变量所占据的存储单元里存储的数据的值变量要 先定义 后使用 C语言程序设计 第2章数据类型 运算符和表达式 10 变量的存储 变量名 存储单元 地址 变量值 C语言程序设计 第2章数据类型 运算符和表达式 11 整型 Integer 整型常量的表示方法整型变量整型数据在内存中的存放形式整型变量的类型整型变量的定义整型数据的溢出整型常量的类型 C语言程序设计 第2章数据类型 运算符和表达式 12 整型常量的表示方法 十进制 Decimal 例如 123 456 0八进制 Octal 以0开头 不得含有8或9例如 0123 0456错例 0138 0912十六进制 Hexadecimal 以0 x或0X开头 用a f或A F表示10 15例如 0 x123 0X45 0 x3AB 0 xabc C语言程序设计 第2章数据类型 运算符和表达式 13 整型数据在内存中的存放方式 二进制形式举例 inti 50 int类型占2字节 补码 Complement 正数 与原码一致 首位为0负数 绝对值取反加一 首位为1零 各位全为0 C语言程序设计 第2章数据类型 运算符和表达式 14 补码举例 举例inti 50 int类型占2字节 50的原码 50的补码 C语言程序设计 第2章数据类型 运算符和表达式 15 整型变量的分类 按占用存储空间的大小划分基本整型int短整型short int 长整型long int 按有无符号划分有符号 signed 无符号unsigned上述两种分类方式组合 可得到6种类型 C语言程序设计 第2章数据类型 运算符和表达式 16 整数的长度 整数的类型与长度short 占2字节 16bit long 占4字节 32bit int 占2或4字节 16或32bit 2Bytes short int long 4Bytes若需要精确的长度 可选用short或long举例BC3 1 int长度为2Bytesgcc int长度为4Bytes C语言程序设计 第2章数据类型 运算符和表达式 17 有符号数与无符号数 有符号数二进制补码表示 首位为符号位指定signed或缺省情况 即为有符号数无符号数没有符号位 只能表示非负数无符号数类型必须指定为unsigned若把负数赋值给无符号数 则把该负数的补码当作无符号数进行处理 C语言程序设计 第2章数据类型 运算符和表达式 18 有符号数与无符号数举例 voidmain inti unsignedj i j 50 i i 2 25 j j 2 32743 C语言程序设计 第2章数据类型 运算符和表达式 19 整型数据的取值范围 C语言程序设计 第2章数据类型 运算符和表达式 20 整型变量的定义 Definition 定义形式inta b unsignedc longd unsignedshorte 变量的定义一般放在一个函数开头的声明部分 关于变量定义的具体内容在以后相关章节里详细介绍 C语言程序设计 第2章数据类型 运算符和表达式 21 整型变量的定义与使用举例 voidmain inta 定义有符号基本整型变量a unsignedb 定义无符号基本整型变量b longc 定义有符号长整型变量c a 23 a的值为 23 b 45 b的值为45 c a b c的值为22 C语言程序设计 第2章数据类型 运算符和表达式 22 整型数据的溢出 Overflow 溢出数据超出了变量能够存储的范围 造成数据丢失或数值改变等举例 voidmain inta 32767 a 32768 32767的补码 32768的补码 C语言程序设计 第2章数据类型 运算符和表达式 23 整型常量的类型 常量的类型后缀 Suffix l L表示常量是一个长整型u U表示常量是一个无符号整型数两种后缀可以一起使用举例123l长整型常数123456U无符号整型常数456789ul无符号长整型常数789101Lu无符号长整型常数101 C语言程序设计 第2章数据类型 运算符和表达式 24 整型常量使用中的类型问题 对整型变量赋值常量的值不要超过变量的取值范围直接使用常量带有l L u U等后缀的整型常量一般用于函数调用不带有后缀的整型常量的类型 是根据其数值大小所处的范围来确定的 C语言程序设计 第2章数据类型 运算符和表达式 25 浮点型 FloatingPoint 浮点型常量的表示方法浮点型变量浮点型数据在内存中的存放形式浮点型变量的类型浮点型数据的舍入误差浮点型常数的类型 C语言程序设计 第2章数据类型 运算符和表达式 26 浮点型常量的表示方法 十进制小数形式由符号 数字和小数点 必须 组成整数和小数部分都可省略 但不能同时省略举例 12 3 123 123 0 0指数形式由整数 或小数 e 或E 整数顺序组成e或E之前必须有数字 之后必须是整数举例 123 4e 5表示123 4 10 5错例 e1 12e 1 2e3 4 e5 e C语言程序设计 第2章数据类型 运算符和表达式 27 规范化指数形式 规范化指数形式类似于 科学计数法 e或E之前的小数中 小数点前面有且仅有一个非零数字举例 123 456规范化形式 1 23456e2 1 23456E 002非规范化形式 123 456 12 3456e1 12345 6e 2 0 123456e3 12345600e 5 C语言程序设计 第2章数据类型 运算符和表达式 28 浮点型数据在内存中的存放方式 二进制规范化指数形式小数部分长度与能表示的精度有关指数部分长度与能表示的数值范围有关 C语言程序设计 第2章数据类型 运算符和表达式 29 几个特殊的数 无穷大 Infinition Inf举例 1 0 0 0 Inf举例 1 0 0 0NaN NotaNumber NaN举例 sqrt 1 开平方 NaN举例 sqrt 1 零 Zero 浮点数用特殊的形式表示零 C语言程序设计 第2章数据类型 运算符和表达式 30 浮点型变量的类型 分类单精度float双精度double长双精度longdouble长度和取值范围 C语言程序设计 第2章数据类型 运算符和表达式 31 浮点型数据的舍入误差 由于浮点型变量能够表示的有效数字有限 将有效位以外的数字舍去造成误差举例 floata 123456 789e5 b b a 20 b 12345678920 printf a f nb f n a b 运行结果 a 12345678848 000000b 12345678848 000000 思考 1 0 3 3 C语言程序设计 第2章数据类型 运算符和表达式 32 浮点型常量的类型 类型后缀f F表示常量是一个单精度型浮点数l L表示常量是一个长双精度型浮点数无任何后缀的浮点型常量视作双精度型对浮点型变量赋值一个浮点型常量可以赋值给任何类型的浮点型变量根据变量类型截取常量的相应有效数字注意防止出现溢出 C语言程序设计 第2章数据类型 运算符和表达式 33 字符型 Character 字符型常量字符型变量字符型数据在内存中的存放形式字符型数据的使用方法字符串常量 C语言程序设计 第2章数据类型 运算符和表达式 34 字符型常量 单引号括起来的一个字符举例 a A 1 错例 abc 我 转义字符以 开头的特殊字符 ddd 1到3位8进制数ASCII码代表的字符 xhh 1到2位16进制数ASCII码代表的字符举例 n t 123 x3A C语言程序设计 第2章数据类型 运算符和表达式 35 字符型变量 字符型变量只能存放一个字符定义与使用 voidmain charc1 c2 定义字符型变量c1和c2 c1 a c1的值为 a c2 2 c2的值为 2 C语言程序设计 第2章数据类型 运算符和表达式 36 字符型数据在内存中的存放形式 一个字符型数据占一个字节的空间字符型数据以其ASCII码形式存放字符型数据的存放形式与只占一个字节长度的整型数据完全相同 C语言程序设计 第2章数据类型 运算符和表达式 37 字符型数据的使用方法 可以把字符型数据视作一种长度为1字节的整型数据处理当使用字符型数据时 与使用这个字符的ASCII码 一个8位整数 是完全一样的字符型数据的用法与整型数据完全一样 包括运算 赋值 输入 输出等字符型数据使用过程中 同样需要注意溢出 符号等问题是字符还是整数 只有在输出时才有意义 C语言程序设计 第2章数据类型 运算符和表达式 38 字符型数据使用举例 voidmain charc inti j c 97 c a i c 20 i 117 j 2 j 50 printf c d n c c a 97 C语言程序设计 第2章数据类型 运算符和表达式 39 字符型变量的符号 字符型变量与整型变量一样 也分为有符号数与无符号数无符号字符unsignedcharc 举例 表示一个班级的人数 256 赋值和使用中需要注意的问题 与整型变量相同 C语言程序设计 第2章数据类型 运算符和表达式 40 字符串 String 常量 表示形式一对双引号括起来的字符序列引号内可以包括0个 1个或多个字符字符序列中的特殊字符用转义字符表示举例 abc a 我 举例 12 4 C HOME 字符常量和字符串常量是不同类型的数据例如 a 与 a 是不同的不能把一个字符串赋值给一个字符型变量 C语言程序设计 第2章数据类型 运算符和表达式 41 字符串在内存中的存放方式 在内存中每个字符按顺序存放字符串结尾有一个空字符 ASCII 0 0 作为字符串结束标志字符串结束标志 0 是不能显示的 在字符串常量中 也不用显式写出来举例 TEST a C语言程序设计 第2章数据类型 运算符和表达式 42 变量赋初值 Initialization 在定义变量的同时对变量赋值 初始化 举例inta 1 相当于inta a 1 inta b 3 对b赋初值 a没有初值 intb c a b c 100 对三个变量赋同样的初值 变量使用前 一般应先对它赋值 C语言程序设计 第2章数据类型 运算符和表达式 43 各类数值型数据间的混合运算 整型 字符型 浮点型数据可混合运算混合运算时 不同类型的数据按照一定的规则先转换为同一类型 然后再运算 C语言程序设计 第2章数据类型 运算符和表达式 44 运算符 Operator 运算符的种类运算符的优先级运算符的结合方向 C语言程序设计 第2章数据类型 运算符和表达式 45 运算符的种类 1 算术运算符 关系运算符 赋值运算符 条件运算符 C语言程序设计 第2章数据类型 运算符和表达式 46 运算符的种类 2 逗号运算符 指针运算符 求字节数运算符sizeof强制类型转换运算符 type 分量运算符 下标运算符 其他运算符 C语言程序设计 第2章数据类型 运算符和表达式 47 运算符的优先级 Precedence 优先级运算符的运算次序按优先级由高到低执行可以用圆括号 改变运算符的执行次序举例a b c d e 先算乘除 后算加减 乘除比加减优先级高 a b c d e 先算加减 后算乘除 C语言程序设计 第2章数据类型 运算符和表达式 48 运算符的结合方向 Associativity 结合方向当一个操作数两侧的运算符优先级相同时 运算次序按照结合方向的规定进行举例a b c 和 的结合方向都是从左向右 b先与 结合计算a b 然后执行减法 a b 1 的结合方向是从右向左 先计算b 1 C语言程序设计 第2章数据类型 运算符和表达式 49 运算符的结合方向规则 单目运算符的结合方向都是 从右向左 正号 负号 指针运算符 地址运算符 sizeof type 赋值运算符的结合方向是 从右向左 三目运算符的结合方向是 从右向左 唯一的三目运算符 条件运算符 其他运算符的结合方向都是 从左向右 C语言程序设计 第2章数据类型 运算符和表达式 50 优先级与结合方向总结 不同优先级的运算符 运算次序按优先级由高到低执行同一优先级的运算符 运算次序按结合方向的规定执行可以使用圆括号 明确运算次序圆括号 具有最高的优先级 C语言程序设计 第2章数据类型 运算符和表达式 51 表达式 Expression 表达式的概念表达式的类型表达式求值算术运算符和算术表达式赋值运算符和赋值表达式逗号运算符和逗号表达式 C语言程序设计 第2章数据类型 运算符和表达式 52 表达式的概念 表达式用运算符把操作数连接起来 并符合C语言语法规则的式子操作数包括常量 变量 函数调用 表达式广义上 常量 变量 函数调用也可以看作属于表达式的范畴举例a 2 5 b 6 c z max x y a 1e 6 b c sqrt f C语言程序设计 第2章数据类型 运算符和表达式 53 表达式的类型 表达式的类型表达式的值的类型取决于操作数的类型以及它们所做的运算举例a 2 5 b 6 c z 混合类型算术运算 值为double类型 a 1e 6 b c sqrt f 逻辑判断的结果是逻辑值 C语言用整型表示逻辑类型 C语言程序设计 第2章数据类型 运算符和表达式 54 算术运算符 ArithmeticOperators 基本算术运算符 强制类型转换运算符 类型名 自增 自减运算符 C语言程序设计 第2章数据类型 运算符和表达式 55 基本算术运算符 C语言程序设计 第2章数据类型 运算符和表达式 56 基本算术运算符的特性 优先级 从高到低 正号 负号 加 减 结合方向 正号 负号 从右向左 加 减 从左向右 C语言程序设计 第2章数据类型 运算符和表达式 57 基本算术运算符的说明 两个整数相除 结果也为整数直接舍去商的小数部分 而不会 四舍五入 负数整数除法 结果的舍入方向没有规定如果需要得到精确的运算结果 可以把其中一个操作数转换为浮点数举例 5 3 1 5 0 3 1 66666 举例 5 3 1 2 模运算符的两个操作数都必须是整数负数模运算结果的符号没有规定举例 5 3 2 5 3 2 1 C语言程序设计 第2章数据类型 运算符和表达式 58 强制类型转换运算符 形式 类型名 操作数说明强制把表达式转换成所需的类型强制类型转换运算符的优先级比较高强制类型转换不会改变操作数自身的类型 只是得到一个所需类型的中间量多用于自动类型转换不能实现的目的强制类型转换后 会影响C语言做类型检查 C语言程序设计 第2章数据类型 运算符和表达式 59 强制类型转换举例 floatx 2 8 y 3 7 z inta b c d 5 e 2 a int x y a 5 2 3 7 5 b int x y b 6 int 6 5 c int x printf x f c d n x c x 2 800000 c 2 z float d e z 2 5 C语言程序设计 第2章数据类型 运算符和表达式 60 自增 自减运算符 形式 i i使用i之前 先使i的值加 减1i i 使用i之后 再使i的值加 减1说明 i和 i的值是加 减1之后i的值i 和i 的值是加 减1之前i的值 和 只能用于变量 不能用于常量和表达式 和 的结合方向是 自右向左 C语言程序设计 第2章数据类型 运算符和表达式 61 自增 自减运算符举例 inti 3 j a b 1 c 2 j i i i 1 j i i 4 j 4 j i j i i i 1 i 5 j 4 j i i i 6 j 5 j i 2 i 2 i 7 j 12 a b c 非法 a 34 非法 j i 非法 C语言程序设计 第2章数据类型 运算符和表达式 62 有关表达式使用的问题 表达式中子表达式的求值顺序没有规定i 3 j i i i j 9 12 C编译程序自左向右尽可能多的将若干字符组合成一个运算符 标识符 关键字i j i j i j 调用函数时 实参的求值顺序没有规定i 3 printf d d n i i 3 3 4 3 C语言程序设计 第2章数据类型 运算符和表达式 63 赋值运算符 AssignmentOperators 赋值运算符 把右侧表达式的值赋给左侧的变量一般情况下 赋值运算符左侧只能是变量赋值运算符的优先级较低 自右向左 结合运算符两侧类型不一致时 要进行类型转换注意 赋值 与 等于 的区别 例如i i 2 复合赋值运算符 前加上算术运算符或位运算符 如 举例 z x y z z x y C语言程序设计 第2章数据类型 运算符和表达式 64 赋值表达式 赋值表达式赋值表达式的值就是所赋的值运算符右侧的表达式可以是一个赋值表达式举例a 5 表达式的值为5 a b 3 a b 3 a b c 1 a b c 1 a b 4 c 3 b 4 c 3 a 7 C语言程序设计 第2章数据类型 运算符和表达式 65 逗号运算符 逗号运算符 exp1 exp2逗号运算符的优先级最低 自左向右 结合逗号表达式的值是exp2的值exp1和exp2都可以又是 逗号表达式 把多个表达式组合成一个表达式使用举例x a 3 6 a a 3 x 18 x a 3 6 a a 3 x 3 C语言程序设计 第2章数据类型 运算符和表达式 66 基本输入输出 头文件 include输入输出函数字符输出函数putchar字符输入函数getchar格式输出函数printf格式输入函数scanf字符串输出函数puts字符串输入函数gets C语言程序设计 第2章数据类型 运算符和表达式 67 字符输出函数putchar 函数说明intputchar intc 输出一个字符到标准输出设备参数说明intc要输出的字符 可以是整数或字符 若超出字符型范围 则只使用低字节返回值若成功 返回输出字符的ASCII码值若失败 返回EOF EndofFile C语言程序设计 第2章数据类型 运算符和表达式 68 函数putchar举例 02 01 C intc i putchar a 输出 a putchar n 输出换行符 putchar 101 输出 e putchar 101 输出 A c 1000 i putchar c 输出 i 232 C语言程序设计 第2章数据类型 运算符和表达式 69 字符输入函数getchar 函数说明intgetchar void 从标准输入设备输入一个字符需要输入回车后 函数才返回参数说明无参数返回值若成功 返回输入字符的ASCII码值若失败 返回EOF EndofFile C语言程序设计 第2章数据类型 运算符和表达式 70 函数getchar举例 02 02 C intc c getchar 输入 a 后回车 putchar c 输出 a c getchar 是否需要输入 printf c d n c 输出c 10 c getchar 输入 abcd 后回车 putchar c 输出 a putchar getchar 输出 b C语言程序设计 第2章数据类型 运算符和表达式 71 格式输出函数printf 函数说明intprintf char at args 格式化输出若干任意类型数据参数说明char at格式控制字符串args需要输出的数据列表 可以多个或没有返回值若成功 返回输出的字节数 包括换行符若失败 返回EOF EndofFile C语言程序设计 第2章数据类型 运算符和表达式 72 函数printf的参数说明 格式字符串包括 格式说明 和 普通字符 格式说明 由 和 格式字符 组成 将输出数据按指定格式输出 普通字符 按原样输出输出列表需要输出的数据可以是变量 常量 表达式 函数调用等输出数据按顺序与 格式说明 对应输出 C语言程序设计 第2章数据类型 运算符和表达式 73 函数printf的格式举例 printf a db d a b 输出结果 a 3b 4 C语言程序设计 第2章数据类型 运算符和表达式 74 格式字符 C语言程序设计 第2章数据类型 运算符和表达式 75 附加格式字符 C语言程序设计 第2章数据类型 运算符和表达式 76 函数printf举例 02 03 C inti 1234 floatf 56 78 printf i 6d i i 1234 printf c i printf 08x i 0 x0004d2 printf 10 5E f 5 67800E 01 printf 7 4f f 56 7800 printf 6 3G f 56 8 printf 6 3s Hello Hel C语言程序设计 第2章数据类型 运算符和表达式 77 格式输入函数scanf 函数说明intscanf char at addrs 格式化输入若干任意类型数据参数说明char at格式控制字符串addrs需要输入的地址列表 可以有多个返回值返回输入并赋值的数据项的个数 C语言程序设计 第2章数据类型 运算符和表达式 78 函数scanf使用说明 地址列表 中是变量的地址 而非变量scanf d 关于输入格式格式字符串中的普通字符须按相应位置输入除字符型 c 外 输入项之间用一个或多个空白字符分隔 包括空格 回车 制表符空白字符会作为 c对应的输入 如果需要输入下一个非空白字符 可以用 1s如规定了最大宽度 且输入数据超出宽度 则按宽度截取数据 C语言程序设计 第2章数据类型 运算符和表达式 79 格式字符 C语言程序设计 第2章数据类型 运算符和表达式 80 附加格式字符 C语言程序设计 第2章数据类型 运算符和表达式 81 函数scanf举例 02 04 C inti j charc scanf d d 2a3 i 2 c j出错 2a3 i 2 c a j 3 C语言程序设计 第2章数据类型 运算符和表达式 82 简单的C程序设计 例1 输入球体半径 求球的体积 例2 输入大写字母 转换为小写字母 C语言程序设计 第2章数据类型 运算符和表达式 83 例1 球体体积 02 05 C include definePI3 1415926voidmain floatr V printf r scanf f C语言程序设计 第2章数据类型 运算符和表达式 84 例2 字母大小写转换 02 06 C includevoidmain charcup clow cup getchar clow cup a A printf c n clow C语言程序设计 第2章数据类型 运算符和表达式 85 作业 习题3 6 3 9 3 10 3 12 3 5 习题4 5 4 6 4 9 C语言程序设计 第2章数据类型 运算符和表达式 86 结束 TheEnd

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值