C程序设计的初步知识.ppt

上传人:max****ui 文档编号:8291318 上传时间:2020-03-28 格式:PPT 页数:49 大小:813KB
返回 下载 相关 举报
C程序设计的初步知识.ppt_第1页
第1页 / 共49页
C程序设计的初步知识.ppt_第2页
第2页 / 共49页
C程序设计的初步知识.ppt_第3页
第3页 / 共49页
点击查看更多>>
资源描述
第2章 C程序设计的初步知识 2 大纲要求2 1 1 C语言程序的构成和格式 程序的构成 main函数和其它函数语言基本概念 头文件 数据说明 函数的开始和结束标志 源程序的书写格式 C语言的风格 2 常量 变量和标示符 C中标示符的定义规则和分类 常量 变量的概念以及合法形式 3 数据类型 C的基本数据类型 整型 实型 及其定义方法 3 大纲要求2 2 4 C运算 C基本算术运算符号 运算符的优先级 结合性和算术表达式 不同数据间的转换与运算 5 C表达式 表达式类型 赋值表达式 算数表达式 逗号表达式 和求值规则 4 C程序的基本结构 includevoidmain printf HelloWorld n 以 开始的语句称为预处理器指令 include语句不是必需的 但是 如果程序有该语句 就必须将它放在程序的开始处 以 h为后缀的文件被称为头文件 可以是C程序中现成的标准库文件 也可以是自定义的库文件 stdio h文件中包含了有关输入输出语句的函数 main 函数是C程序处理的起点 main 函数可以返回一个值 也可以不返回值 如果某个函数没有返回值 那么在它的前面有一个关键字void 在函数定义的后面有一个左大括号 即 它表示函数的开始 后面是函数的主体 大括号也可以用于将语句块括起来 在函数定义的结尾处有一个右大括号 即 在屏幕上产生一行输出 Helloworld 并换行 n 函数主体中的每个语句都以分号结束 C程序中的一个语句可以跨越多行 并且用分号通知编译器该语句已结束 5 C程序中的注释 includevoidmain printf HelloWorld n 此程序用来打印HelloWorld 单行注释 C程序可以包含注释 以便向读者作一般说明 编译器并不处理这些注释 此程序由 编写 用来打印输出 HelloWorld 多行注释 作者 创建日期 描述 includevoidmain 注释 在程序中添加注释是一个好的编程习惯 可以增强程序的可读性 6 例题 1 以下叙述中正确的是 2008 09 A C程序的基本组成单位是语句B C程序中每一行只能写一条语句C 简单C语句必须以分号结束D C语句必须在一行内写完 7 例题 2 以下叙述中正确的是 2008 04 A C程序中的注释只能出现在程序的开始位置和语句的后面B C程序书写格式严格 要求一行内只能写一个语句C C程序书写格式自由 一个语句可以写在多行上D 用C语言编写的程序只能放在一个程序文件中 8 例题 3 以下叙述中正确的是 2007 09 A C语言程序将从源程序中第一个函数开始执行B 可以在程序中由用户指定任意一个函数作为主函数 程序将从此开始执行C C语言规定必须用main作为主函数名 程序将从此开始执行 在此结束D main可作为用户标识符 用以命名任意一个函数作为主函数 9 例题 4 对于一个正常运行的C程序 以下叙述中正确的是 2007 04 A 程序的执行总是从main函数开始 在main函数结束B 程序的执行总是从程序的第一个函数开始 在main函数结束C 程序的执行总是从main函数开始 在程序的最后一个函数中结束D 程序的执行总是从程序的第一个函数开始 在程序的最后一个函数中结束 10 例题 5 下列叙述中正确的是 2006 09 A 每个C程序文件中都必须有一个main 函数B 在C程序中main 函数的位置是固定的C C程序可以由一个或多个函数组成D 在C程序的函数中不能定义另一个函数 6 下列叙述中错误的是 2006 09 A 一个C语言程序只能实现一种算法B C程序可以由多个程序文件组成C C程序可以由一个或多个函数组成D 一个C函数可以单独作为一个C程序文件存在 11 标识符2 1 1 定义 就是用来标识变量名 符号常量名 函数名 类型名 文件名等的有效字符序列 2 命名规则 1 标识符只能由字母 数字和下划线三种字符组成 2 第一个字符必须为字母或下划线如 1yearmonthstudent namesum0M D Jones 123 a3b ca b 12 标识符2 2 3 注意事项 1 在C语言中 大小写字母不等效 因此 a和A I和i Sum和sum 分别是两个不同的标识符 习惯上 变量名用小写字母表示 符号常量用大写字母表示 2 C语言中的关键字是一类特殊的标识符 它们具有特定的含义 已被C语言本身使用 不能用作变量名 常量名等 3 C语言中提供了大量的库函数与头文件 这些库函数名和头文件中定义的标识符都统称为预定义标识符 用户定义标识符时应注意避免和预定义标识符重名 13 常量3 1 1 定义 在程序运行中 其数值不能被改变的量 2 分类 整型常量 实型常量 字符常量和字符串常量 其中前两者又称数值型常量 1 整型常量 也称整数 包括正负整数和零 2 实型常量 即实数 又称浮点数 3 字符常量 用单引号括起来的一个字符 如 a 等 单引号只是作为定界符使用 并不是其组成部分 单引号内的字符不允许是单引号或反斜杠 字符常量具有数值 字符常量与证型常量等价 14 常量3 2 字符创常量 由一对双引号括起来 的字符序列 其存放只能在字符型数组中 转义字符常量 C语言允许用一种特殊形式的字符常量 它是以反斜杠 开头的特定字符序列 表示ASCII字符集中控制字符 某些用于功能定义的字符和其他字符 如 n 表示回车换行符 表示字符 15 转义序列 输出结果 Name AudreyHepburnMovie RomanHoliday 代码 printf Name AudreyHepburn nMovie RomanHoliday 转义序列允许在输出结果中包括特殊字符 16 常量3 3 3 符号常量 用一个标识符代表一个常量 即常量可以用 符号 代替 代替常量的符号就成符号常量 符号常量在使用之前必须先定义 定义放法 define标识符常量数据 注意没用分号 一个 define只能定义一个符号常量 17 变量 变量 是指在程序执行过程中其值可以被改变的量 变量定义的实质是按照变量说明的数据类型为变量分配相应空间的存储单元 在该存储单元中存放变量的值 C语言中 变量使用时遵循 先定义 后使用 的原则 变量分为整型变量 实型变量 字符变量等 在定义时要说明变量类型 系统编译时根据变量及其类型为它分配相应数量的存储空间 18 例题 1 以下选项中不能作为C语言合法常量的是 2008 09 A cd B 0 1e 6C a D 011 2 以下选项中正确的定义语句是 2008 09 A doublea b B doublea b 7 C doublea 7 b 7 D double a b 3 以下选项中不合法的标识符是 2008 04 A printB FORC aD 00 19 例题 4 以下定义语句中正确的是 2008 04 A inta b 0 B charA 65 1 b b C floata 1 b 5 可在C程序中用做用户标识符的一组标识符是 2007 09 A andB DateC HiD case 2007y m dDr TomBigl6 按照C语言规定的用户标识符命名规则 不能出现在标识符中的是 2007 04 A 大写字母B 连接符C 数字字符D 下划线 20 例题 7 下列定义变量的语句中错误的是 2007 09 A int int B doubleint C charfor D floatUSS8 以下不合法的用户标识符是 2006 04 A j2 KEYB DoubleC 4dD 8 9 以下不合法的数值常量是 2006 04 A 011B 1e1C 8 0E0 5D 0 xabcd 21 整型常量 表示形式 十进制整型常量 以数字1 9开头 其他位以数字0 9构成十进制整型常量 如12 38等 八进制整型常量 以数字0开头 其他位以数字0 7构成八进制整型常如012 037等 018十六进制整型常量 以0X或0 x开头 数字0和大写或小写字母x 其他位以数字0 9或字母a f或A F构成十六进制整型常量 如0 x12 0Xa9等 22 整型变量 分类 基本型 短整型 长整型和无符号型 基本型 以int表示 intk inti j k C规定 可以在定义变量的同时给变量赋初值 也称初始化变量 inti 1 j 2 k 0 23 整型常量与变量的分类 在VC6 0中 除长整型 L或l 占用的字节数为4 其余皆为2个字节 无符号整数在数的末尾加上u或U 24 整型 25 整数在内存中的存储形式 计算机中最小的存储单位是 位 bite 8个二进制位组成一个 字节 byte 若干个字节组成一个 字 word C语言中 一个int整数通常用2个字节存储 其中最高位 最左边一位 用来存放整数的符号 正整数最高位为0 负整数最高位为1 正整数50000000000000101负整数 原码 反码 补码 51111111111111011无符号整数不可能是负数 26 例题 1 C源程序中不能表示的数制是 2008 09 A 二进制B 八进制C 十进制D 十六进制2 以下关于long int和short类型数据占用内存大小的叙述中正确的是 2007 09 A 均占4个字节B 根据数据的大小来决定所占内存的字节数C 由用户自己定义D 由C语言编译系统决定 27 实型常量 实型常量又称实数 在C语言中的表示形式 小数形式 由整数部分 小数点和小数部分组成 如 0 98 0 21 0 0等 指数形式 由尾数部分 字母e E 和指数部分组成 如 12 34E 9 43 21e 10等 28 实型变量 实型变量 指值为实数的变量 其命名与标识符的规则相同 实型变量分为两类 单精度型 float 分配4个字节的存储单元 双精度型 double 分配8个字节的存储单元 29 例题 1 以下选项中 合法的一组C语言数值常量是 2007 09 A 028B 12 C 177D 0 x8A 5e 3OXa234c1 510 000 0 xf4 5e0Oabc3 e52 以下选项中可作为C语言合法常量的是 2006 09 A 80 B 080C 8e1 0D 80 0e 30 基本的算术运算符 基本算术运算符包括加法 减法 乘法 除法 和求余 1 若除法运算符的运算对象均为整型数据 则结果为其商的整数部分 舍去小数部分 如13 7的结果为1 若运算对象中有一个为负值 则舍入的方向是不固定的 如 13 7在有的机器上得到结果是 1 有的机器上得到结果是 2 但多数机器采取 向零取整 方法 即13 7 1 13 7 1 取整后向零靠拢 2 求余运算符的运算对象必须是整型数据 运算结果的符号与被除数的符号相同 如 13 7运算结果为 6 13 7运算结果为6 13 7运算结果为 6 31 算术运算符的优先级 算术运算符和圆括号的优先级次序如下 由高到低 以上所列的运算符 只有单目运算符 和 的结合性是从右到左 其余运算符的结合性都是从左到右 32 强制类型转换 语法 类型名 表达式 其中前面的称为强制类型转换运算符 例如 float x将x转换成浮点型 double 8 3 将8 3转换成双精度型 33 例题 1 以下不能正确表示代数式2ab cd的C语言表达式是 2008 09 A 2 a b c dB a b c d 2C a c d b 2D 2 a b c d2 以下选项中 当x为大于1的奇数时 值为0的表达式 2007 04 A x 2 1B x 2C x 2 0D x 2 03 表达式3 6 5 2 1 2 5 2的值是 2006 04 A 4 3B 4 8C 3 3D 3 8 34 简单赋值表达式 赋值运算符是 其作用是将赋值运算符右侧的表达式的值赋给其左侧的变量 在实例中 i 3 a 5 b 7 c a b a b d ab a b 相当于a b c a b a b 35 简单赋值表达式 值得注意的是 赋值运算符运算对象中的左侧对象一定是变量 如 a b c 5 相当于a b c 5 由于表达式中出现将数值5赋给b c表达式 因此 该表达式是非法的 赋值符 与数学中的等号 外观相同 作用不同 36 复合赋值表达式 C语言允许在赋值运算符 之前加上其他运算符 构成复合运算符 在 之前加上算术运算符 则构成算术复合赋值运算符 在 之前加上位运算符 则构成位复合赋值运算符 象 等 使用如 a b c等价于a a b c a b c等价于a a b c 复合赋值运算符 共10个 已有变量a 其值为9 计算表达式a a a a的值 37 赋值运算符的类型转换 若赋值运算符两侧的类型不同 在赋值时要自动转换类型 其转换原则是 不管赋值号两侧类型级别高低如何 一律将赋值号右侧的类型转换成左边变量的类型 然后再赋值 其规则如下 1 将实数赋给整形变量时 舍弃实数的小数部分 2 将整数赋给单 双精度变量时 数值不变 将整数转换成浮点数形式存放到左边的变量中 3 将字符型赋给整型时 因字符型为1字节 而整型2字节 故将字符的ASCII码值放到整型量低8位 搞8位为0 4 将整型赋给字符型时 只把低8位赋给字符量 38 例题 1 设变量已正确定义并赋值 以下正确的表达式是 2008 04 A x y 5 x zB int 15 8 5 C x y z 5 yD x 25 5 02 若变量均已正确定义并赋值 以下合法的C语言赋值语句是 2007 09 A x y 5 B x n 2 5 C x n I D x 5 4 1 3 若变量x y已正确定义并赋值 以下符合C语言语法的表达式是 2006 09 A x y x B x 1 yC x x 10 x yD double x 10 39 例题 1 设变量a和b已正确定义并赋初值 请写出与a a b等价的赋值表达式 2008 09 40 自增 和自减 运算符4 1 自增 和自减 运算符是单目运算符 其功能是使运算对象 变量 的值增1或减1 它们既可以作前缀运算符 位于运算对象的前面 如 i i 也可以作后缀运算符 位于运算对象的后面 如i i 前缀和后缀运算的数据处理方法有明显的差异 41 i i 先增 减 1 再使用i i i 先使用i 再增 减 1 1 单独使用时 i 等价 i 等价 i i 1 2 j i 3 j i 若i的初始值为3 i 4 j 4 i 4 j 3 自增 和自减 运算符4 2 42 结合性 自右向左 例 i 2 j i 分析 1 正号 取负 是同级运算符 结合方向 自右向左 2 i 等价于 i 3 对于括号内的自增运算 又要先使用i 再使i增加1 运算结果 i的值为3 j的值为 2 自增 和自减 运算符4 3 43 自增 和自减 运算符4 4 自增或自减运算符在使用时 需要注意以下几点 1 运算符的操作对象 只能是变量 而不能作用于常量或表达式 运算符的优先级高于基本算术运算符 结合性是 自右向左 右结合 2 i 遵照右结合原则 它相当于 i 而不相当于 i 形式 44 逗号运算符和逗号表达式2 1 逗号运算符是 它的优先级低于赋值运算符 是左结合性 用逗号运算符将若干个表达式连接成一个逗号表达式 一般形式如下 表达式1 表达式2 表达式n逗号表达式的操作过程是 先计算表达式1 再计算表达式2 最后再计算机表达式n 而逗号表达式的值为最右边表达式n的值 如 a 4 5 b 6 4 34 5 20 1 a b该逗号运算表达式 它由四个表达式结合而成 从左向右依次计算 逗号表达式的值为a b的值 即 1 9 45 逗号运算符和逗号表达式2 2 注意 1 逗号运算符的结合性是从左到右 2 逗号运算符在所有运算符中优先级最低 3 表达式可以嵌套 即表达式1和表达式2本身也可以是逗号表达式 4 并非所有出现逗号的地方都可以作为逗号表达式 如printf d d a b 46 例题 1 设有定义 intk 0 以下选项的四个表达式中与其他三个表达式的值不相同的是 2007 04 A k B k 1C kD k 12 有以下程序main intx y z x y 1 z x y y printf d d d n x y z 程序运行后的输出结果是 2006 09 A 2 3 3B 2 3 2C 2 3 1D 2 2 1 47 例题 1 设变量已正确定义为整型 则表达式 n i 2 i i 的值为 2008 04 2 执行以下程序后的输出结果是 2007 04 main inta 10 a 3 5 a 4 printf a d n a 48 综合练习 1 数字字符0的ASCII码值为48 若有以下程序 main chara 1 b 2 printf c b printf d n b a 程序运行后的输出结果是 49 综合练习 2 有以下程序 main intm 12 n 34 printf d d m n printf d d n n m 程序运行后的输出结果是
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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