C语言程序的基本构成(0909NITL).ppt

上传人:max****ui 文档编号:8291607 上传时间:2020-03-28 格式:PPT 页数:93 大小:1.03MB
返回 下载 相关 举报
C语言程序的基本构成(0909NITL).ppt_第1页
第1页 / 共93页
C语言程序的基本构成(0909NITL).ppt_第2页
第2页 / 共93页
C语言程序的基本构成(0909NITL).ppt_第3页
第3页 / 共93页
点击查看更多>>
资源描述
1 上机实验中出现的问题 一 编写时候注意符号在英文格式下面输入二 语句结束后 容易遗漏 但是也不能乱加 如while if后面不能加 三 对于函数来说 基本格式 函数头 一对 四 scanf和printf函数 2 第2章C程序的基本构成 3 2 1C语言源文件C语言是结构化的程序设计语言 一个C源程序可以由一个或多个文件组成 C源程序文件的扩展名一般为 c或 cpp 下面通过实例学习多文件系统中的函数调用 说明 文件 是指存放在存储器上以文件名进行管理的一组信息 函数 指具有独立功能 按一定格式构成的代码段 一个大型 典型的C语言源程序大致如下所示 4 C语言源程序 源程序文件1 源程序文件n 源程序文件2 预处理命令 全局变量声明 函数1 函数n 函数首部 函数体 局部变量声明 执行语句 5 文件包含的概念 一个文件可以将另一个源文件的全部内容包含进来 这叫文件包含处理 当然文件包含予处理也可在特定的盘 特定的目录 文件夹 中寻找包含文件 如 include c myfolder myfile c 文件包含的一般格式 include或者 include 文件名 6 在编译时 将file2 c全部内容复制到 include file2 c 的位置上 将file1 c作为一个源文件单位进行编译 7 例2 1在VisualC 环境下新建两个文件 其文件名分别为2 1 1 c 2 1 2 c 其中2 1 1 c文件定义一个做乘法的函数f 定义另一个主调函数main 在主调函数中分别调用函数f 以及存放在2 1 2 c中的函数disp 在main函数中输出f 的返回值 8 分析 在文件2 1 1 c中由两个函数构成 文件2 1 2 c由一个函数构成 程序的执行从main 函数开始 main函数调用f 函数 然后再调用disp 函数 9 10 总结 1 C程序是由函数组成 必须要包含一个主函数main 函数之间可以相互调用 因此 函数是C程序的基本单位 1 C用各种各样的函数来完成某些特定功能 2 C函数库十分丰富 标准C提供一百多个函数 被调函数可以是系统提供的库函数 如 printf scanf 也可以是根据需要自己编写的函数 如 disp 11 2 一个C程序总是从main 函数开始执行 不管这个main 在整个程序中处于什么位置 main 函数可放在整个程序的最上头 或最后 或一些函数的中间 3 C程序书写格式自由 一行内可以写几条语句 一条语句可写在多行上 行尾使用续行符 书写程序时 一律使用英文标点符号 12 C语言程序中区分大小写 在程序中int return include叫保留字 在C语言中有特定的含义 一般不作它用 而disp f a b等为用户自定义标识符 通常为了定义函数 变量所取的名字 取名要有一定的规则 13 4 每条语句及变量定义的最后要有一个分号 分号 是语句的必要组成部分 如 intx y 7 c a b 注 变量定义必须放在函数的开头部分 执行语句之前 不能插入在语句当中 C 可放程序任何位置 5 C语言本身并没有输入 输出语句 输入 输出的操作是由库函数 像printf scanf 函数来完成 C语言对输入 输出实行 函数化 管理 14 2 2C函数函数是完成特定任务的独立模块 函数的使用最主要涉及到函数的定义与调用 C程序是由一个或多个文件构成 而文件可由一个或多个函数组成 如在前述的文件2 1 1 c中 由两个函数main F 构成 文件2 1 2 c由一个函数disp 构成 15 一 函数的调用形式为 函数名 参数 注 函数的原型 函数返回值类型函数名 形式参数表 参数 执行一个函数所必须提供的数据叫参数 16 返回值类型函数名 形式参数声明 数据声明部分语句部分 二 C函数定义的结构示意图 17 intadd intx inty intz 变量定义 给变量分配内存空间 z x y 执行语句 returnz 18 注 在C语言中 变量在使用前 一定要先定义 指定变量的名字及类型 在编译时给变量分配存储空间 例如 intz 指定变量的名字为z 及类型为int 在编译时给变量分配存储空间 19 变量的定义 变量定义的一般形式 类型名变量名表 注 变量名按C语言的命名规则命名 变量名一般用小写字母 见名知义 例如 intx3 n 定义整型变量floaty2 定义单精度浮点型变量doublearea length 定义双精度浮点型变量 多个变量用逗号 分开 最后加一分号 20 每一个变量有二个特性 有一个名字和相应的类型 并在编译时分配相应的内存单元 该存储单元的大小由变量的数据类型决定 变量名 变量值 存储单元 21 C语言中的变量和代数中的变量含义不同 数学中的变量代表未知数 如在C语言中的式子 x x 1在代数中没有意义 但在C语言中 式子x x 1表示把变量x中的值加1 然后再保存到x中 这里的 是赋值运算符 构成了一赋值表达式 x x 1 22 2 3C语句C文件由函数构成 函数由语句构成 语句的结束符用 表示 在例2 1中的文件2 1 1 c中的main函数 由5条语句构成 每条语句用 表示语句的结束 intx 3 y 4 z 变量定义语句 表示定义了x y z三个变量 并给x y分别赋予一个最初的值3与4 intx 3 y 4 z disp z f x y printf d d d n x y z disp disp 函数调用语句 表示调用函数disp 输出 23 intx 3 y 4 z disp z f x y printf d d d n x y z disp z f x y 表示调用函数f 在调用函数f 时把实参x y的值分别传给形参a b 返回值最后赋给变量z printf d d d n x y z 表示调用系统函数printf输出 其输出形式为 3 4 12 在被调函数f 中把a b的乘积赋给变量c 然后函数f 把返回值c赋给main函数中的z 24 2 4保留字与标识符语句由保留字 标识符 运算符和表达式构成 2 4 1保留字保留字是指C语言中有特殊含义的名字 只能用于C语言中特定的场合 例如 int 用于定义整型类型变量float 用于定义实型变量double 用于定义双精度变量char 用于定义字符变量或字符串变量 25 注意 保留字只能用于规定的场合 不能用作给变量取名或用户自定义标识符 if 用于判断for 用于循环while 用于循环在C语言中其它的保留字见附录C 其含义在以后的章节中陆续学到 26 2 4 2标识符标识符简单的理解就是给在程序中涉及的对象取的名字 标识符分为系统命名的标识符与用户自命名标识符 系统标识符通常用于系统函数的命名 如 printf strlen scanf fabs malloc等 用户自命名标识符是用户为命名变量或定义函数等而取的名字 通常用户自定义标识符以字母 数字 下划线组成 并以字母或下划线开头 27 注意 a 12 12 ab12等都是正确命名的标识符 12a a b等都是不正确的标识符 思考 是否可用 intif 5 定义一个整型变量 为什么 28 2 5运算符在C程序中有极为丰富的运算符 例如 赋值运算符 算术运算符 关系运算符 逻辑运算符 位运算符等 运算符及其优先级请参阅附录 29 2 5 1算术运算符算术运算符有 加 减 乘 除 取余数 它们的表达方式及含义如下表所示 运算符含义例备注 加5 2结果7 减5 2结果3 乘5 2结果10 除5 2结果2 求余5 2结果1只适用于整型数 自增 自减 30 算术运算符的优先级 低 高 31 1 关于除法运算符 两个整数相除结果为整数 5 2结果25 3结果1 2 关于求余运算符 两边的操作数都应是整数 5 2结果17 4结果3 除法运算符 的运算结果跟两个操作数的类型有关 1 如果两边都是整形 结果必定为整形 2 如果两边是其它类形 结果不是整形 32 3 C语言也规定了算术运算符的优选级和结合性 在表达式求值时 先按运算符的优先级别高低次序执行 如a b c 如果在一个运算对象两侧的运算符级别一样 则按 结合方向 处理 算术运算符的结合方向是 自左至右 即先左后右 又称 左结合性 即运算对象先与左边的运算符相结合 33 如 a b c 因此b先与减号结合 执行a b的运算 再执行加 c的运算 以后还将遇到 右结合性 的运算符 其结合方向为自右至左 即运算对象与右边运算符的相结合 结合性是在别的高级语言中没有的 是C特有的 请参阅附录 列出所有运算符的优先级和结合性 34 3 算术表达式 算术表达式 用算术运算符将运算对象连接起来的 符合C语言语法规则的式子 什么是表达式 由常量 变量 各种运算符 函数和括号连接而成的 合符c语言语法规则的有意义的式子 称为表达式 如 a 23 t sqrt y z x y Pi r r 35 从广义上来讲 单个变量 单个常量也可看作表达式 c具有众多运算符 可以构成多种表达式 赋值表达式 算术表达式 字符串表达式 关系表达式 逻辑表达式 36 算术表达式的书写规则 在数学表达式中省略的内容要写上 如 2x要写成2 x2 r要写成2 r s s a s b s c 要写成s s a s b s c 5 9 F 32 要写成 5 9 F 32 x1 x2要写成x1 x2 37 4 自增 自减运算符 在算术运算符中 C语言又增加了两个很有用的运算符 加1运算符 自增 减1运算符 自减 作用 使变量的值加1或减1 如 x 相当于x x 1 x 相当于x x 1 38 增1 减1运算符可放在操作数之前 也可放在其后 如 i i变量使用之前 先使i增1 减1 i i 变量使用之后 再使i加1 减1 设 i 3 j i j的值为4 j i j的值为3 i的值为4 注意 39 例 main inta 100 printf d n a printf d n a printf d n a 结果 101 101 102 40 2 结合方向是 自右至左 即 右结合 如有 i 负号和 同一优先级 结合方向同为 自右而左 即相当于 i 注 1 运算符只能用于变量 不能用于常量与表达式 如 5 a b 都不合法 41 思考 表达式y 1 x 是否等同于x y 1 x还是等同于y 1 x x 42 上机练习21 上机调试下列程序 总结余数的符号与什么相关 includeintmain printf d d n 5 2 5 2 return0 43 2 上机调试下列程序 分析程序输出的结果 includeintmain intx y z scanf d 的含义是 取地址 的意思 函数的作用是 从键盘输入的两个值 分别送到x所占地址的内存单元中去 也就是输入x的值 d为输入格式说明 d为十进制整数格式说明符 现设给x输入了一个5 问 y z x输出各为多少 输出 y 5 z 7 x 7 44 又 includeintmain intx y z scanf d 3 把前程序中的 都改为 再次调试程序 观察程序运行的结果 现设给x输入了一个5 问 y z x输出各为多少 输出 y 5 z 3 x 3 45 5 赋值运算符 在C中 把赋值符 也列为运算符之列 执行赋值操作 如 y 23 3x 45 3 y 4 执行过程如下 变量 表达式 注 左边必须是一个变量 1 首先计算表达式的值 同时把其类型转为左边变量的类型 46 说明 1 如果在赋值运算中 赋值符两侧类型不一致 在赋值时要进行类型转换 规则 赋值符右边的值转变为赋值符左边变量所属的类型 系统自动转换 例如 a 将实型数据赋给整型变量时 小数部分自动丢失 inti i 8 56 i为整型变量 i的值就为8 47 b 将整型数据赋给实型变量时 数值不变 但以浮点形式存于内存 如 floatf2 f2 28 f2将以28 000000存于内存 单精度以6位有效数字存入 双精度有15位有效数字 48 例 若x是整型变量 表达式 x 10 0 4 0 的值是 A 2 5B 2 0C 3D 2 49 6 复合赋值运算符 1 如果在赋值符 之前加上其它运算符 可构成复合赋值运算符 如 相加赋值 相乘赋值 例如 a 3相当于a a 3x y 8相当于x x y 8 x 3相当于x x 3 C采用这种形式 一是为了简化程序 二是为了提高编译效率 凡是二目 二元 运算符 都可与赋值符组成复合赋值符 50 为了便于记忆 可以这样理解 设有 a b又设a为变量 b为表达式a b 左边部分 插入 右边 a a b 左边补上变量名 如果b表达式是包含若干项的表达式 它相当于有括号 x y 3x y 3 x x y 3 51 2 赋值表达式 由赋值运算符将一个变量和一个表达式连接起来的式子称为 赋值表达式 如 a 5 b 就是一个赋值表达式 赋值表达式的值就是被赋值的变量的值 52 7 强制类型转换运算符如 double a2 将a2变量强制转换成double型 int x y 将 x y 的类型强制转换int型 一般形式为 类型名 表达式 说明 进行强制类型转换时 得到一个所需的中间变量 原来的变量类型不变 例 floatx1 inti x1 13 6 i int x1 i的值为13 53 类型转换有二种方法 a 系统自动进行 b 强制进行 强制类型转换在函数调用时 当要求形参与实参的类型一致时使用 54 2 5 2关系运算符一 关系运算符与关系表达式 关系运算符也就是一种比较大小的运算符 55 算术运算符 高关系运算符 赋值运算符 低复合赋值运算符 运算符的优先级请见附录B 56 2 关系表达式 用关系运算符将两个表达式连起来的式子 关系表达式 关系表达式由于是一种比较的操作 其结果是成立 不成立的关系 也即产生一个逻辑值 真 或 假 C语言中没有设逻辑型数据 C中用1代表逻辑真 0代表逻辑假 0 1 57 如 设 a 4 b 3 c 2 则 1 a b的值为 真 表达式的值为1 2 d b c d的值为1 3 e a b c e的值为0 因 运算符自左到右结合 先执行a b 值为1 再执行1 c 值为0 4 f a b af的值为5 58 思考 表达式y 6 10 1它等同于y 6 10 1还是y 6 10 1 59 2 5 3逻辑运算符1 逻辑运算符及优先级 逻辑运算符是对逻辑量进行操作 共有三种 逻辑非 NOT 对操作数取反 如操作数为真 结果就为假 逻辑与 AND 只有两个操作数的值同时为真时 结果为真 逻辑或 OR 只要两个操作数中的一个值为真时 结果就为真 60 逻辑运算符的功能 逻辑与 逻辑或 逻辑非 真值表 aba ba b a假假假假真假真假真真真假假真假真真真真假 是双目 二元 运算符 是单目 一元 运算符 61 优先级 逻辑运算符 高算术运算符 关系运算符 逻辑运算符 赋值运算符 低 62 例 a b x y a b x y a a b a a b 2 逻辑表达式 用逻辑运算符将关系表达式 或逻辑量连起来的式子 叫逻辑表达式 逻辑表达式的值应该是一个逻辑量 真 1 假 0 63 但在判断一个量是否为真或为假时 即以非0为真 包括负值 以0值为假 这种表示方法法最先在C中使用 因为它使得编程显示特别方便 说明 C语言在编译时 给出逻辑运算结果时 如关系表达式 逻辑表达式 如果是真 用数值1表示 是假用0表示 64 例 设a 4 b 5那么 a的值为0 因为a的值为非0 认为是真 a b的值为1 a b的值为1 4 0 2的值为1 自左向右运算 可见 1 逻辑运算结果不是0 就是1 2 参加逻辑运算的操作数可以是1 0 真 假 也可是整数 也可以是任何类型的数据 系统最终是以 0判断为假 非0判断为真 65 例 求表达式的值 5 3 2 8 4 0 4 0即 3得 5 3 2 8 3 5 3结果为1 8 3结果为0得 1 2 0 1 2结果为1最后结果为1 注 逻辑表达式求解自左向右 且一旦知道结果的真假值 求值即停止 例 若设 a 1 b 1 c 3 d 4 m n原值为1 那么 m a b n c d 则m新值为0 n不再赋值 66 1 判断ch是否为小写英文字母 ch a ch z 2 判断ch是否为英文字母 ch a ch A ch Z 熟练掌握关系运算符和逻辑运算符 可以巧妙地用一个逻辑表达式来表示一个复杂的条件 67 例 闰年的条件 a 能被4整除 但不能被100整除b 能被400整除 设year为某一年份 year为闰年的表达式 year 4 0 year 100 0 year 400 0 当上述逻辑表达式为1时 year这一年为闰年 当为0时 year这一年为非闰年 68 例2 3 includeintmain intx 20 y 3 z 0 a a x y printf d d d n x y a a x y printf d d d n x y a a x y printf d d d n x y a ch2 2 3 c 输出符号 时 需写成 69 a x y printf d d d n x y a a x y printf d d d n x y a a x 70 注 由于 通常用于格式控制符中 当在printf中输出符号 时 需写成 printf d d d n x y a 而不是 printf d d d n x y a 说明 在编译新程序前要关闭前一程序的 工作空间 注意 71 思考 1 写出判断x大于0并且小于10的表达式 x 0 x 10 2 写出判断ch是大写字母的的表达式 3 写出判断ch是字母的表达式 4 写出整型数a b c能构成一个三角形的表达式 72 2 5 4位运算符位运算符的运算对象为二进制数 运算符含义1 按位取反例 1结果0 1010结果0101 2 1 0为01100 1010结果1000 73 3 按位或例 1 1为1 1 0为1 0 0为0 1100 1010结果1110 4 按位异或例 1 1为0 0 0为0 1 0为1 1100 1010结果0110 74 75 5 按位左移例 0010 1左移1位结果0100 6 按位右移例 0010 1右移1位结果0001 76 例2 4从键盘输入一个整型数 判断此数转化为二进制数后第2位是否为1 分析 假定此整数为12 转化为二进制后为1100 你可以用windows中的计算器转换 判断第2位是否为1 即此数只要与二进制数0100作 与 运算 如结果不为0 即可判断此数的二进制数的第2位不为0 第0位 77 数制与编码 二进制与八进制 十六进制之间相互转换准备知识 二进制与八进制的对应关系 二进制与十六进制的对应关系 不同数制之间的转换 78 includeintmain intx y scanf d 请读者自行调试 如程序运行时分别输入7 8 输出是什么 为什么 ch2 2 4 c 输入12 12 1100 4 0100 79 2 6编辑C程序时应注意的问题1 C程序中区分大小写字母 书写格式自由 一行内可写几个语句 用 作为语句的结束标记 3 函数定义如 main include definePI3 14159不是语句 后面不能用 号 注释用符号 和 来界定 和 之间不可以有空格 一个好的程序应该有详细的注释 80 第2章C程序的基本构成结束 81 例 执行下列程序段后 a值为 inta b a 15 b 1 a a bA 15B 0C 1D 16 例 写出下列程序段的输出结果 floatx1 x2 x1 3 2 x2 x1 2 printf d 1f int x1 x2 C 1 1 0 5 3 2的值为1 82 练习与实践一 选择题1 是构成C语言程序的基本单位 A 函数 B 过程 C 子程序 D 文件 83 2 在下述程序段中 是错误的程序注释方法 注 本例多个选择 A in 包含 cludevoidmain printf Howareyou n B includevoidmain inti 3 整型数 84 C includevoidmain intx 初始化 10 打印 printf d x D includevoidmain intx 10 printf d x 打印x x 10 的值 85 3 是C语言提供的合法的数据类型关键字 A Float B signed C integer D Char4 以下选项中不合法的用户标识符是 A abc c B file C Main D PRINTF5 合法的 语言字符常数是 A 084 B A C ab D x43 86 6 C语言中 要求运算数必须是整型的运算符是 A B C D 7 以下选项中不正确的实型常量是 A 2 607E 1 B 0 8103e2 C 77 77 D 456e 28 合法的C语言赋值语句为 A a b 58 B i C a 50 b 50 D k int a b 87 9 不合法的C语言赋值语句为 A a B n1 n2 n3 0 C a b c D k a b 1 10 正确的语句是 A intx y z 0 B intz x y C x 3 2 D x 2 5 88 11 下述程序的输出是 includevoidmain intx 023 printf d x A 17 B 18 C 23 D 24 89 12 设a b c均定义为int型 且已赋于大于1的数 能正确表达1 abc 的表达式是 A 1 a b c B 1 a b c C 1 0 a b c D 1 0 a b c 90 二 写出表达式或程序的运行结果1 以下程序输出结果是 includevoidmain inta d 241 a d 100 9 printf d n a 91 2 定义 inta 5 b 4 floatx 5 5 y 3 7 float a b 2 int x int y int x y 4 2值为 3 定义inta 2 b 3 c 4 执行完下列语句后 a 10 b c a b c 92 4 定义 inty 0 x 3 y x x x 执行后x y的值为 x y 5 定义 inta 20 n 10 求各式的值 A a a a a B a n 7 a C a a a a a 93 6 若x y z均为int型变量 则执行以下语句后的输出为 x y z 10 5 5 printf x d y d z d n x y z y z x 0 x 10 printf x d y d z d n x y z
展开阅读全文
相关资源
相关搜索

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


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

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


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