c语言教案第1-4章.ppt

上传人:max****ui 文档编号:8614525 上传时间:2020-03-30 格式:PPT 页数:64 大小:421KB
返回 下载 相关 举报
c语言教案第1-4章.ppt_第1页
第1页 / 共64页
c语言教案第1-4章.ppt_第2页
第2页 / 共64页
c语言教案第1-4章.ppt_第3页
第3页 / 共64页
点击查看更多>>
资源描述
C语言程序设计 第一章C语言概述 C语言的特点 1 语言结构简单 使用方便 灵活 32个关键字2 运算符丰富 共有34种运算符3 数据结构丰富 具有现代语言的各种数据结构4 具有结构化的控制语句5 语法限制不严格 程序设计自由度大6 C语言允许直接访问物理地址7 生成目标代码质量高 程序执行效率高8 用C语言写的程序可移植性好 第二章上机步骤 菜单 编辑窗口 1 调用TurboC程序 1 进入DOS 进入TurboC子目录 调用TC例如 C盘根目录下存放TC子目录C C CDTCC TC TC 2 我的电脑或资源管理器 TC EXE2 使用TC编辑窗口和菜单之间切换 F10Alt f r c 第三章数据类型 运算符与表达式 3 1C的数据类型3 2常量与变量3 3整型数据3 4实型数据3 5字符型数据3 6变量赋初值3 7各类数值型数据间的混合运算3 8算术运算符和算术表达式3 9赋值运算符和赋值表达式3 10逗号运算符和逗号表达式 3 1C的数据类型 整型实型基本类型字符型枚举型数组类型数据类型构造类型结构体共用体指针类型空类型 3 2常量与变量 1 常量 在程序运行过程中其值不能被改变的量符号常量 用一个标识符代表一个常量 definePRICE30 习惯大写 main intnum total num 10 total num PRICE printf total d total P39 3 1注意 不能重新赋值好处 1 含义清楚2 一改全改2 变量 其值可以改变的量条件 1 变量应有一个名字2 在内存中占据一定的存储空间 通过变量名找到相应的内存地址 从存储单元中读取数据标识符 字母 数字和下滑线三种字符组成 且第一个字符必须是字母或下滑线 除32各关键字 用来标识变量名 符号常量名 函数名 数组名等注意 1 区分大小写sum和SUM是两个不同的变量名一般变量名用小写字母表示 符号常量用大写2 标识符的长度 TurboC允许32个字符为了可读性最好不好超过8个 强制定义 在C中所有变量都要先定义后使用目的 1 保证程序中变量名使用正确2 每个变量定义的时候指定一个确定的类型 编译的时候为其分配相应的存储空间3 指定每一个变量的类型 编译的时候检查变量所进行的运算是否合法如a b 3 3整型数据 1 整型常量 十进制 八进制 以0开头的数 0123 十六进制 以0 x开头的数 0 x122 整型变量 分类 基本型 int 2字节 32768 32767短整型 short int 2字节长整型 long int 4字节无符号型 存储单元中全部存放数据本身 不包括符号 数据范围扩大一倍 无符号整型 unsignedint0 65535无符号短整型 unsignedshort无符号长整型 unsignedlong 整型变量的定义 inta b unsignedshortc d e main inta b c d unsignedintu a 12 b 24 u 10 c a u d b u printf a u d b u d n c d p44 3 2 整形数据的溢出main inta b a 32767 b a 1 printf d d a b P44 3 3 溢出操作是将该数减去整形数据类型的模65536 运行结果 32767 32768原因 整形数据存放形式 二进制 变反加1 4 整型常量的类型1 一个整型常量其值在 215 215 1范围之内 认为int型 可赋值给intlongint2 一个整型常量其值在 231 231 1范围之内 认为long型 可赋值给longint3 如short和int型数据在内存中占用相同长度 则short和int表示的数据范围相同4 在一个整型常量后面加u 则认为unsigned型常量如 1234u5 在一个整型常量后面加L或l 则认为是longint型常量 如 123L 3 4实型数据 1 实型常量 又称浮点数两种表示形式 十进制数形式 由数字和小数点组成 0 123 12 0指数形式 如 123E3 123e3等注意 E e前面必须有数字 且E后面必须是整数 规范化形式 e E前小数部分中小数点前有且只有一位非零数字2 实型变量 单精度float 4个字节 双精度double 8个字节 存放形式 floatx y doublee 指定x y为单精度实数 e为双精度实数误差 main floata b a 123456 789e5 b a 20 printf f b 单精度实数提供7为有效数字双精度实数提供15 16为有效数字注意 实数常量不分float型和double型 一个实数常量可以赋值给一个float型也可以赋值给double型 根据变量的类型来截取有效位数字floata a 111111 111a 111111 1 3 5字符型数据 一 字符常量 1 字符常量 用单引号括起来的一个字符 a A 是不同的常量2 转义字符 特殊形式的符号常量 以 开头的字符序列 n 代表一个 换行 符 t 跳到下一个输入区 一个输入区占8列 b 退格 r 回车 不换行 返回本行最左端 反斜杠字符 单引号字符 ddd 1到3位8进制所代表的字符 101 A xhh 1到2位16进制所代表的字符 x41 A 二 字符变量 用来存放字符常量 只能放一个字符 不能存放字符串 若干个字符 在内存中占一个字节 定义形式 charc1 c2 c1 a c2 b 三 字符数据在内存中的存储形式及使用方法 存储形式 将字符常量存放到一个符号变量中 实际上将字符相应的ASCII码放到存储单元中 如 a 的ASCII码为97 01100001使用方法 1 字符型数据与整型数据可以通用2 字符型数据可以以字符形式输出 先将存储单元中的ASCII码转换成相应的字符 然后输出也可以以整数形式输出 直接将ASCII码作为整数输出3 字符数据可以进行算术运算 相当于对其ASCII码进行算术运算 main charc1 c2 c1 97 c2 98 printf c c n c1 c2 printf d d n c1 c2 P50 3 6运行结果 a b97 98注意 字符型数据只占一个字节 存储范围0 255之间 main charc1 c2 c1 a c2 b c1 c1 32 c2 c1 32 printf c c c1 c2 P51 3 7运行结果 AB 字符数据与整型数据可以互相赋值例如 inti charc i a c 97 printf c d c c printf c d i i 输出结果 a97a97 四 字符串常量 一对双引号括起来的字符序列例如 howareyou a charc c a c a 原因 a 是字符常量 而 a 是字符串常量 规定在每一个字符串结尾处加一个 字符串结束标志 0 ASCII码为0 空操作字符 不引起任何控制动作 也不是一个可显示的字符 a 占一个字节 a 占2个字节 CHINA 0长度为6个字符 输出时 一个一个字符输出 直到遇到最后的 0 字符 停止输出 注意 在书写字符串时不要加 0 系统自动加 a 3 6变量赋初值 1 C规定 可以在定义变量的同时使变量初始化例如 inta 3 a为整型变量 初值为3floatf 3 56 f为实型变量 初值为3 56inta b c 5 应改为inta 5 b 5 c 5 或inta b c a b c 5 inta b c 5 a b c为整型变量 c的值为52 初始化不是在编译阶段完成的 而是在程序运行时执行本函数时赋以初值 相当于有一个赋值语句 inta 3 相当于 inta a 3 inta b c 5 相当于 inta b c c 5 3 7各类数值型数据间的混合运算 整型 实型 单精度 双精度 字符型数据可以进行混合运算 在进行运算时 不同类型数据要转化成同一类型 然后运算 Doublefloatlongunsignedintshort char横行向右的箭头表示必定的转换 纵向箭头表示当运算对象为不同类型时转换的方向 例 inti floatf doubled longe 10 a i f d e 10 a a 转换成整数97 运算结果为107 i fi f转换成double 107 i f107转换成double d ee转换成double 10 a i f d e结果为double型注意 转换是由系统自动进行的 3 8算术运算符和算术表达式 一 基本算术运算符 加法运算符 减法运算符 乘法运算符 除法运算符说明 两个整数相除结果为整数 5 3 1 舍去余数部分 但除数和被除数中有一个为负值 舍去的方向是不固定的 5 3 1或 2 多数机器采取 向零取整 方法 即 5 3 11 3 01 0 3 0 333333 模运算符或求余运算符要求两侧均为整型数据7 4 3 二 算术表达式和运算符的优先级与结合性算术表达式 用算术运算符和括号将操作数连接起来优先级 在表达式求值时 先按运算符的优先级高低次序执行 算术运算符的结合方向为 自左至右 既先左后右 左结合性三 利用强制类型转换运算符将表达式转换成所需类型方法 类型名 表达式 double a 将a转换成double型不要写成double a int x y 将x y的值转换成整型强制类型转换时 得到一个所需类型的中间变量 原来变量的类型未发生变化 main floatx inti x 3 6 i int x printf x f i d x i 运行结果 x 3 6 i 3 四 自增 自减运算符i i 在使用i之后 先使i的值加 减 1 i i 在使用i之前 先使i的值加 减 1i 3 j i j的值为4 i的值是4 j i j的值为3 然后i变为4 注意 1 自增运算符 自减运算符 只能用于变量 不能用于常量或表达式5 a b 都是不合法的2 和 的结合方向是 自右至左 i 相当于 i i 3 printf d i 输出结果是 3 五 有关表达式使用中的问题说明1 在表达式中包含自增或自减运算时 很容易出错i 3 k i i i k 9i 6k i i ik 18i 62 运算符由两个字符组成时 结合性尽可能多地自左向右i j相当于 i j3 调用函数时 实参的求值顺序i 3 printf d d i i 有的系统从左向右求值 输出3 3有的系统从右向左求值 输出4 3多数采用此方法 3 9赋值运算符和赋值表达式 一 赋值运算符 是赋值符号作用是将一个数据赋给一个变量 a 3是一个赋值表达式 将常量3赋值给变量aa 3 5是将一个表达式的值赋值给一个变量二 类型转换如果赋值运算符两侧类型不一致 且都是数值型或字符型 在赋值时要进行类型转换1 floatdoubleint实型数据赋值给整型变量时 舍弃实数的小数部分 inti i 3 45 printf i d i 结果 i 3 2 intfloatdouble整型数据赋值给实型变量时 数值不变 floatf f 23 先将23转换成23 00000 7位 再存放到变量中doubled d 23 先将23转换成23 0000000000000 16位 再存放到变量中3 charint由于整型变量占2个字节 字符占1个字节 因此将字符数据放到整型变量低8位中 有两种情况 1 高8位补零 2 高8位进行符号扩展 4 doublefloatdoublefloat 截取前7位floatdouble 数值不变 有效位扩充到16位5 intlong 符号位扩充longint 截取低16位6 intshortlongchar 截取低8位7 unsignedintlongint 只需将高位补零8 signedunsigned 原样赋值 三 复合的赋值运算符 在赋值符 之前加上其他运算符就可以构成复合运算符a 3相当于 a a 3x y 8相当于 x x y 8 作用 简化程序 提高编译效率 四 赋值表达式形式 作用 将赋值运算符右侧的 表达式 的值赋值给左边的变量 a b c 3表达式值为3 a b c值均为3a b 10 c 2 表达式的值为5 a 5 b 10 c 2a 12 a a a a最后a 264 3 10逗号运算符和逗号表达式 逗号运算符 例如 3 5 4 9形式 表达式1 表达式2 表达式n求解过程 先求表达式1 再求表达式2 整个逗号表达式的值是最后一个表达式的值 a 3 5 a 4表达式的值 60原因 的优先级高于 运算符a 3 a a 5 a 4 a 5表达式的值 20赋值表达式 x a 3 6 3 x 18x a 3 6 ax 3表达式的值为 18 作业 3 093 103 12 第四章顺序程序设计 4 1C语句概述4 2程序的三种基本结构4 3赋值语句4 4数据输出4 5数据输入4 6程序举例 4 1C语句概述 C语句可以分为五类 1 控制语句if else for while 2 函数调用语句printf C语言程序设计 3 表达式语句 由一个表达式加一个分号构成a 3 i i i x y 4 空语句 只有一个分号的语句 什么都不做 5 可以用 把一些语句括起来成为复合语句main intt t 2 intt 3 printf d t printf d t 输出结果 32 4 2程序的三种结构 有三种基本结构 顺序结构 选择结构 循环结构1 顺序结构 2 选择结构 3 循环语句 当型循环直到型 4 2赋值语句 赋值语句是由表达式加上一个分号构成注意 1 是赋值运算符2 赋值表达式和赋值语句不同 如 if a b 0 t a if a b 0 t a 4 3数据输入输出的概念及在C中的实现 1 输入 从外部向输入设备 键盘 磁盘等 输入数据输出 从计算机向外部输出设备 显示器 打印机 输出数据2 C本身不提供输入输出语句 是由函数完成的 include standardinput output include stdio h putchar 输出字符 gerchar 输入字符 pirntf 格式输出 scanf 格式输入 等 4 4字符数据的输入输出 1 字符输出函数 putchar 作用 向终端输出一个字符格式 putchar c 说明 将字符变量c输出其中c可以是int或char 包括转义字符 includemain chara b c a B b O c Y putchar a putchar b putchar c 输出结果 BOY includemain chara b c a B b O c Y putchar a putchar n putchar b putchar n putchar c putchar n 输出结果 BOY putchar 101 2 字符输入函数 getchar 作用 从终端输入一个字符格式 getchar 说明 没有参数 函数值是从终端得到的字符 includemain charc c getchar putchar c 输入 c输出 c 注意 1 getchar 只能接收一个字符2 getchar 函数得到的字符可以 赋给字符变量例如 charc c getchar 赋给整型变量例如 intc c getchar 作为表达式的一部分例如 putchar getchar 4 5格式输入与输出 1 格式输出函数 printf 作用 向终端输出若干个任意类型数据区分 putchar函数 只能输出字符 且只能输出一个字符printf函数 可以输出多个数据 且为任意类型格式 printf 格式控制 输出表列 格式控制 用双引号括起来的字符串 包括两个信息 格式说明 由 和格式字符组成 d f u等作用 将输出数据转换成指定的格式输出普通字符 需要原样输出的字符 输出表列 需要输出的一些数据 可以是表达式例 printf a d b d a a b 格式说明输出表列格式字符 对不同类型的数据用不同的格式字符 1 d格式符 d 按整形数据的实际长度输出 md m为指定输出字段宽度 如数据的位数小于m 则左端补空格 若大于m 按实际位数输出a 123 d 12345printf 4d 4d a d 结果 ld 输出长整型数据 如用 d输出长整型数据就会出错longa 123456 printf ld a 结果 printf 8ld a 结果 注意 int型数据可以用 d或 ld格式输出 123 12345 123456 123456 2 o格式符 以八进制数形式输出整数按八进制形式输出的数值不带符号inta 1 printf d o 8o a a a 输出结果 3 x格式符 以十六进制数输出整数 同样不会出现负数inta 1 printf d o x a a a 输出结果 1 177777 177777 1 177777 ffff 4 u格式符 输出无符号型数据即以十进制形式输出无符号数unsignedinta 65535 printf a d o x u n a a a a 输出结果 intb 2 printf b d o x u b b b b 输出结果 a 1 177777 ffff 65535 b 2 177776 fffe 65534 5 c格式符 用来输出一个字符charc a printf c c 输出结果 一个整数其值在0 255也可以用字符形式输出 同样字符型数据也可以用整数形式输出charc a inti 97 printf c d c d c c i i 结果 printf 3c 3d 3c 3d c c i i 结果 a a 97 a 97 a 97 a 97 6 s格式符 用来输出一个字符串 s printf s china 结果 ms 输出的字符串占m列 如字符串的本身长度大于m 则将字符串全部输出 若小于m则左补空格 ms 如串长度小于m 则在m列范围内右补空格 字符串左靠 m ns 输出占m列 但只取字符串中左端n个字符 字符串在m列的右侧 左侧补空格 m ns 如果nm 则m自动取n值 n个字符正常输出 printf 3s 7 2s 4s 5 3s n china china china china 输出结果 china china ch chin chi 7 f格式符 用来输出实数 单 双精度 以小数形式输出 f 不指定字符宽度 由系统自动指定 使整数部分全部输出 并输出6位小数注意 单精度前7位有效 双精度前16位有效 floatx 111111 111 y 222222 222 printf f x y 结果 m nf 输出数据占8列 其中有n位小数 如数值长度小于m 则左端补空格 m nf 输出的数值向左靠近 右端补空格floatf 123 456 printf f 10f 10 2f 2f 10 2f f f f f 结果 333333 328125超过7位无意义 123 456001 123 456001 123 46 123 46 8 e格式符 以指数形式输出实数 e 不指定输出数据所占的宽度和数字部分小数位数 由系统自动指定 给出6位小数 指数部分占5位 如e 002 其中e占一位 指数符号占一位 指数占3位 数值按标准化指数输出 小数点前有且只有一个非零数字 printf e 123 456 输出 m ne和 m ne m n字符含义与前面相同 n指小数部分的位数 1 234560e 002 9 g格式符 用来输出实数 根据数值的大小自动选择f格式和e格式 选择输出时占宽度较小的一种 且不输出无意义的零 f 123 468 printf f e g f f f 结果 123 468000 1 234680e 002 123 468 使用printf函数时应注意 1 格式字符要用小写字母 除XEG d不要写成 D 2 可以在 格式控制 字符串内包含 转义字符 如 n t b等 3 格式说明以 开头 以d o x u c s f e g等9个格式字符结束 在格式说明中可以插入附加字符 其他字符均以原样输出 Printf c c f f s s c f s 4 如果想输出字符 则应在 格式控制 字符串中用连续两个 表示 Printf f 1 0 3 输出 0 333333 2 格式输入函数 scanf函数区分 getchar函数只能用来输入一个字符scanf函数可以用来输入任何类型的多个数据 形式 scanf 格式控制 地址表列 地址表列 由若干个地址组成的表列 可以是变量的地址或字符串的首地址inta b c scanf d d d 运行 3 4 53 4 5 a b c中的 是地址运算符 a指a在内存中的地址scanf函数的作用 按a b c在内存的地址将a b c的值存进去 a b c的地址是在定义a b c之后就确定了 在编译阶段分配的 d d d 表示按十进制整数形式输入数据 输入数据时两个数据之间以一个或多个空格间隔 或回车键 跳格键tab合法的输入 1 345 2 345 3 3 tab键 45不合法的输入 3 4 5 格式说明 1 标准C在scanf中不使用 u说明符 对unsigned型数据 d o x格式输入2 可以指定输入数据所占列数 系统自动按它截取所需数据scanf 3d 3d scanf函数在执行时应注意 1 scanf函数中的 格式控制 后面应是变量地址 而不是变量名scanf d d a b 2 在 格式控制 字符串中除了格式说明外还有其他字符 则在输入数据时应输入与这些字符相同的字符 scanf d d a 12 b 34 c 56 3 在用 c 格式输入字符时 空格字符和转义字符都作为有效字符输入 scanf c c c 输入 1234a123o 35abc 作业 4 84 9
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!