C语言基础知识 考研复习篇PPT课件.ppt_第1页
C语言基础知识 考研复习篇PPT课件.ppt_第2页
C语言基础知识 考研复习篇PPT课件.ppt_第3页
C语言基础知识 考研复习篇PPT课件.ppt_第4页
C语言基础知识 考研复习篇PPT课件.ppt_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

C 基础知识 专题一 1 热身练习 1 已知各变量的类型说明如下 则以下不符合C语言语法的表达式是 intk a b unsignedlongw 5 doublex 1 42 A x 3 B w 2C k a 2 b 3 a b D a a b 4 a 3 2 热身练习 2 设x y t均为int型变量 则执行语句 x y 3 t x y 后 x的值为 y的值为 A 不定值B 4C 3D 8 3 热身练习 3 有如下定义 若要求a1 a2 c1 c2的值分别为10 20 A和B 当从第一列开始输入数据时 正确的数据输入方式是 inta1 a2 charc1 c2 scanf d d A 1020ABB 1020ABC 1020ABD 1020AB 4 一 语言的特点 语言简洁 紧凑 使用方便 灵活 一共有32个关键字 9种控制语句 主要用小写字母表示 5 一 语言的特点 九种控制语句 6 一 语言的特点 2 运算符丰富 共有34种运算符 算术运算符 关系运算符 逻辑运算符 位操作运算符 赋值运算符 条件运算符 逗号运算符 指针运算符 求字节数运算符 特殊运算符等 3 数据结构丰富 的数据类型有 整型 实型 字符型 数组类型 结构体类型 共用体类型 指针类型 空类型等 7 一 语言的特点 4 具有结构化的控制语句 5 语法限制不太严格 程序设计自由度大 6 C语言能进行位操作 能实现汇编语言的大部分功能 可以直接对硬件进行操作 7 生成目标代码质量高 程序执行效率高 8 用C语言编写的程序可移植性好 8 二 语言的词汇 在 语言中使用的词汇分为六类 标识符 变量名 函数名 标号等统称为标识符标识符只能是字母 数字 下划线组成的字符串 并且第一个字符必须是字母或下划线 用户定义的标识符不应与关键字相同 关键字 由 语言规定的具有特定意义的字符串运算符 与变量 函数一起组成表达式 实现运算功能分隔符 逗号和空格常量 数字常量 字符常量 字符串常量 符号常量 转义字符注释符 开头并以 结尾的串 9 三 数据类型 10 一 基本类型的分类及特点 注 带 号表示的数据类型与机器硬件有关 11 二 变量在内存中的存放形式 1 整型数据在内存中以补码形式存放正数 原码即为补码 该数的二进制数 负数 1 取绝对值 2 求绝对值的二进制形式 3 将二进制按位取反 4 再加上1 可得补码注意 若给出一个数在内存中的存放形式 先看最高位来判断是正负数 10在机器内存中的存放形式 12 二 变量在内存中的存放形式 求 10的补码过程 10的原码 0000000000001010按位取反 1111111111110101再加1 得 10的补码 1111111111110110 13 二 变量在内存中的存放形式 有符号整型变量 最大表示32767无符号整型变量 最大表示65535 14 二 变量在内存中的存放形式 解决整型数据的溢出问题如 inta 32767 b b a 1 printf d b b 32768 15 二 变量在内存中的存放形式 2 实型数据在内存中的存放形式实型数据一般占4个字节 32位 内存空间 按指数形式存储 实数3 14159在内存中的存放形式如下 16 三 数据类型 变量 main floata doubleb a 33333 33333 b 33333 33333333333333 printf f n f n a b 由于a是单精度浮点型 有效位数只有七位 而整数已占五位 故小数二位后之后均为无效数字 b是双精度型 有效位为十六位 但TurboC规定小数后最多保留六位 其余部分四舍五入 doubled 12 3456789 printf lf d 17 三 数据类型 常量 1 整数常量十进制整数 带符号 0 9组成 第一位数字为非零 除零外 456八进制整数 0 7组成 最高位用0引导0123 123 8 83 10十六进制整数 0 9及a f或A F组成 最高位用0 x或0X引导 0 x123 123 16 291 10整数常量后加字母u或U表示该数为无符号型 加字母l或L表示该数为长整型12345u123L 18 三 数据类型 常量 2 实型常量在C中有两种表示方法 十进制小数形式 0 0 25 0 300 267 8230等 注意 必须有小数点 指数形式 me n 或mE n 表示m 10 n 这里m为非0实数 n为整数 如 12 3E 2表示12 3 10 2在C编译系统中 将浮点型常量作为双精度来处理 以下不是合法的实数 请说明理由 345E7 553 E32 7E 19 三 数据类型 常量 3 字符常量 转义字符 20 三 数据类型 常量 3 字符常量 转义字符 ddd输出一到三位八进制数所对应的字符 xhh输出一到两位16进制数所对应的字符例如 chara 101 b x41 putchar a putchar b 答案 AA 21 三 数据类型 常量 字符常量就是一个普通整数 也可参与各种数学运算每个字符具有一个0 255之间的数值 可从ASCII表查出注意 5 和整数5的区别 5 的ASCII码值是53思考 6 2 的值是多少 22 例题 小写字母转换为大写字母 includemain charch b printf c d n ch ch ch b 32 printf c d n ch ch includemain charch b printf c d n ch ch ch b a A printf c d n ch ch b 98B 66 b 98B 66 相当于97 65 23 三 数据类型 常量 4 字符串常量用双引号括住的由0个或多个字符组成的字符序列 Iamastring 表示空字符串除注释外 是唯一可以出现中文的地方C语言内部用 0 表示字符串的结束 x 和 x 是不同的里定义了一系列专门的字符串处理函数转义字符也可在字符串中使用 24 实践挑战 1 设 char s ta 017 bc 则strlen s 的值为 04南师大 2 在一个32位系统中 如WindowsXP 若定义char s 010 010 010 n 则sizeof s 的值为 strlen s 的值为 答案 1 52 29 25 sizeof到底是什么 C语言的关键字 并非函数计算类型占用的字节数两种语法形式sizeof 类型 结果为类型占用的字节数sizeof 表达式 结果为表达式值所属类型占用的字节数一般都使用sizeof 变量名 26 strlen 到底是什么 strlen 是函数 返回字符串中所包含的字符个数 注 统计时不包括 0 两种语法形式strlen 字符串 如 strlen abcd strlen 字符指针变量 char s abc stelen s 27 三 数据类型 常量 宏常量也称符号常量一般采用全大写字母表示宏定义不是语句 而是一种编译预处理命令格式如下 define标识符字符串使用时 将标识符用字符串完全替换 28 正确的实例 计算圆的周长和面积 include definePI3 14159 defineR5 3main printf area f n PI R R printf circumference f n 2 PI R area 88 247263circumference 33 300854 相当于执行 includemain printf area f n 3 14159 5 3 5 3 printf circumference f n 2 3 14159 5 3 宏替换 29 错误实例 计算圆的周长和面积 include definePI3 14159 defineR5 3 main printf area f n PI R R printf circumference f n 2 PI R 相当于执行 includemain printf area f n 3 14159 5 3 5 3 printf circumference f n 2 3 14159 5 3 语法错误 30 实践挑战 3 在C语言中 宏定义 definePI3 14159中 用宏名PI代替了一个 南师大06 A 单精度数B 双精度数C 字符序列D 常量 答案 C 31 枚举 Enumeration 常量 enumweeks SUN MON TUE WED THU FRI SAT 声明了一个枚举类型 enumweekstoday 用上面类型定义变量 today TUE 变量today只能在上面定义的范围内取值 enumresponse no yes none enumresponseanswer answer yes enumresponse no 1 yes 1 none 0 其值为2 其值为1 32 四 运算符 常见的运算符算术运算符赋值运算符类型强转 强制类型转换 关系运算符逻辑运算符增 和减 位运算符 33 四 运算符 运算符有三个属性 运算元数 最少1个 最多3个 1 3 2 3 2优先级 结合性 即指运算符与运算元的结合方向 用于指导同级的运算表达式 运算元与运算符的组合式a b c 2 2 A 简化后的优先级 1一级运算符2单变量运算符3算术运算符4位运算符5关系运算符6位逻辑运算符7逻辑运算符8条件运算符9赋值运算符10逗号运算符 34 四 运算符 基本的算术运算符 当两个整数相除时 其结果为整数 即舍去小数部分 如 10 3 3 35 四 运算符 赋值运算符及赋值表达式简单的赋值运算符用 表示属于双目运算符优先级较低 仅高于逗号具有右结合性由 连接的式子称为赋值表达式功能是计算表达式的值再赋予左边的变量a b c 5可理解为a b c 5 赋值表达式的值就是 号右侧的值x a 5 b 8 36 四 运算符 复合的赋值运算符在赋值符 之前加上其它二目运算符可构成复合赋值符 如 例如 a 5等价于a a 5x y 7等价于x x y 7 r p等价于r r p能提高编译效率并产生质量较高的目标代码 37 自动类型转换 相同类型数据的运算结果 还是该类型不同类型数据的运算结果 是两种类型中取值范围大的那种double float long int short char 38 自动类型转换 取值范围小的类型赋值给取值范围大的类型是安全的doubled floatf 1 5 d f 反之是不安全的若大类型的值在小类型能容纳的范围之内 则平安无事doubled 1 5 floatf f d 若浮点数转为整数 会丢失小数部分 非四舍五入inti floatf 1 64 i f i的值为1 反之 转换后的结果必然是错误的 具体结果与机器和实现方式有关doubled 123 456789e100 floatf f d 39 Example intx 10 floaty y float x float 10 10 000000 消除从大到小的警告x int y 通过下面方式把表达式的值转为任意类型 类型 表达式 不改变x 强制类型转换 40 Example inttotal number floataverage average total number 15 2 7 两个整数运算的结果还是整数 不是浮点数 强制类型转换 41 Example inttotal number floataverage average float total number 15 000000 2 7 500000 强制类型转换 42 增一和减一运算符 n n n n 让参与运算的变量加1 让参与运算的变量减1作为后缀 postfix 运算符时 先取n的值 然后加 减1 43 n n n n 让参与运算的变量加1 让参与运算的变量减1作为后缀 postfix 运算符时 先取n的值 然后加 减1作为前缀 prefix 运算符时 先加 减1 然后取n的值 增一和减一运算符 44 例如 j i 2 等价于 i i 1 j i 2 4 6 增一和减一运算符 45 例如 j i 2 等价于 j i 2 i i 1 3 6 增一和减一运算符 46 例 输出结果和变量a的值 inta 3 printf d a 等价于 printf d a a a 1 4 增一和减一运算符 47 例题 main inti 5 j 5 p q p i i i q j j j printf d d d d p q i j 解析 对p i i i 应理解为三个i相加 故P值为15 然后i再自增1三次相当于加3故i的最后值为8 而对于q的值则不然 q j j j 应理解为q先自增1 再参与运算 由于q自增1三次后值为8 三个8相加的和为24 j的最后值仍为8 48 四 运算符 逗号运算符和逗号表达式功能是把两个表达式连接起来组成一个表达式 称为逗号表达式 其一般形式为 表达式1 表达式2分别求两个表达式的值 并以表达式2的值作为整个逗号表达式的值 如 inta 2 b 4 c 6 x y y x a b b c 49 四 运算符 关系运算符大于 大于或等于 等于 不等于 双目运算符结合性均为左结合优先级低于算术运算符高于赋值运算符其中 的优先级相同 高于 和 和 的优先级相同 50 四 运算符 逻辑运算符 与运算 或运算 非运算 与运算符 和或运算符 为双目运算符具有左结合性非运算符 为单目运算符 具有右结合性 逻辑运算符的优先级为 非 与 或 51 四 运算符 位运算符 按位与运算 按位或运算 按位异或运算 按位右移运算 按位求反 52 位运算 按位与

温馨提示

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

评论

0/150

提交评论