C程序设计基础(周仲兴).ppt_第1页
C程序设计基础(周仲兴).ppt_第2页
C程序设计基础(周仲兴).ppt_第3页
C程序设计基础(周仲兴).ppt_第4页
C程序设计基础(周仲兴).ppt_第5页
已阅读5页,还剩55页未读, 继续免费阅读

下载本文档

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

文档简介

C 程序设计基础 周仲兴Room 17楼430室Email zhouzhongxing Phone考核 平时成绩 30 期末考试 70 平时成绩包括上课 作业和上机实验期末考试为闭卷考试为什么要学C 程序设计 1 C 语言的所处的地位 2 C 语言的应用如何学好这门课 机器语言 第一代语言 汇编语言 第二代语言 面向过程的语言 Fortran Basic C Pascal 第三代语言 面向对象的语言 C Java C 第四代语言 C 语言所处的地位 计算机语言的发展现状 计算机认识的机器语言 计算机只认识二进制指令 二进制中只有0和1 0和1如何电路表示 数字电路 低电平0 高电平1 开关 计算1 2 机器语言 01110100000000010010010000000010汇编语言 MOVA 1ADDA 2C语言 x 1 2 C 语言的应用 C 语言一般采用的编程平台 VisualC 6 0 2010 学会C 能做什么 1 天津市总医院超声影像科 超声心动图像纹理识别系统 2001年 2 天津市总医院超声科 超声心动图像纹理识别系统及影像管理系统 2002年 3 天津九安科技有限公司 家用心电检测系统 掌握C 就可以迅速掌握其他编程语言 a b alpha节律下特征振荡模式的ERD ERS特征分布的脑地形图 a 左手左腿协同动作想象b 右手右腿协同动作想象 Matlab编程语言 天津唐邦科技有限公司 嵌入式水疗系统 MCGS嵌入式编程语言 1 天津市总医院超声科 超声心动图像纹理识别系统及影像管理系统 主要完成人 1 2 2 天津大学结晶中心 磷酸结晶系统 主要完成人 1 2 3 天津大学精仪学院 大气检测无线传输系统 主要完成人 1 2 4 天津九安科技有限公司 家用心电检测系统 主持人兼完成人5 天津唐邦科技有限公司 嵌入式水疗系统 主持人兼完成人6 天津唐邦科技有限公司 门户网站建设 主持人兼完成人7 河北沧州武警242团公文系统及网站建设 主要完成人 1 3 8 国际贸易加信 JiaXinGroup 门户网站 主要完成人 1 2 C 只是一个工具 学会用高级语言进行程序设计 指挥计算机解决实际问题 实际问题 数学问题 计算机运算 数学建模 程序设计 但是 工欲善其事 必先利其器 为什么要学C 程序设计 C 是普及 常用的高级语言C 即可进行结构化程序设计 又支持面向对象的程序设计语言学会程序设计基本思路 举一反三科学计算 工程应用的工具 结构化程序设计语言 第1 5章 面向对象程序设计语言 第6 11章 怎样学C 每一讲分四次课前两节为理论课 讲授理论知识后两节为上机课 在机房完成当堂练习 综合实验楼第8机房 穿鞋套 要求 1 当堂课练习必须在两节上机课中完成2 机房随时有辅导老师辅导3 老师检查后方可离开 途径 多思考 多上机目标 能看懂程序 能调试程序 自学能力要加强 第一章C 程序设计基础 C 程序开发过程C 基本数据类型常量 变量和引用表达式和运算符基本输入输出 1 2C 程序开发过程 高级语言 cpp源文件 h头文件 机器语言 可执行文件 exe 1 3 程序实例 例1 在屏幕输出Hello youarewelcome Helloprogram includevoidmain cout Hello youarewelcome 你好 欢迎你 程序说明 两种注释编译预处理行main 函数 void 函数体 程序执行处语句 一行可以写若干条语句 每个语句用 作为结束 例2 编写程序从键盘任意输入2个数 输出这2个数的和 includevoidmain inta b n cout a b n a b cout a b n endl 程序说明 第 行为变量定义第4行是输出语句第 行输入第 行是赋值运算第 行中endl也可以用 代替 表示换行 例3 由两个函数组成的 程序 includeintfmax inta intb if a b returna elsereturnb main intv1 v2 cout v1 v2 cout 两个数中较大数是 fmax v1 v2 endl return0 简单的程序设计几要素 1 建立程序框架 主函数 子函数 2 定义所需要的变量3 对变量进行数学运算4 用户输入输出 进制基数进位使用符号二进制2逢2进位0 1八进制8逢8进位0 1 2 3 4 5 6 7十进制10逢10进位0 1 2 3 4 5 6 7 8 9十六进制16逢16进位0 1 2 3 4 5 6 7 8 9 A B C D E F 常用进制 二进制信息的存储单位 位 bit 二进制的1位 是计算机中数据处理的最小单位 字节 Byte 8位二进制位组成一个字节 1Byte 8bit 常用来描述容量的单位有 千字节 KB 1KB 1024Byte兆字节 MB 1MB 1024KB千兆字节 GB 1GB 1024MB 二 八 十 十六进制之间的转换 二进制与八进制之间转换方法 以小数点为界 左右分别按3位一划分 整数部分高位 小数部分低位不够3位时补0 将划分的3位数按八进制数读出即可 例如 将二进制10100110101 0111转换成八进制 010100110101 0111002465 34因此 10100110101 01110 2 2465 34 8 将八进制转换成二进制时 将每位八进制数用3位二进制表示出来即可 二进制与十六进制之间转换方法 以小数点为界 左右分别按4位一划分 整数部分高位 小数部分低位不够4位时补0 将划分的4位数按十六进制数读出即可 例如将二进制111101101011010转换成十六进制 01111011010110107B5A因此 111101101011010 2 7B5A 16 将十六进制转换成二进制时 将每位十六进制数用4位二进制表示出来即可 原码 反码和补码 有符号数00000000代表 010000000代表 0 1 原码最高位为符号位 其余为对应数值的绝对值的二进制数值表示 2 反码最高位为符号位 正数 原码负数 符号位 原码对应的其他位数取反 3 补码最高位为符号位 正数 原码负数 反码 1 原码弱点 反码计算时会出现错误 例如两个负数相加 符号位相加后得0就变为正数 反码弱点 正数的原码 反码和补码都是一样的 127 01111111 1 000000010 00000000 1 10000001 11111110 11111111 2 10000010 11111101 11111110 3 10000011 11111100 11111101 124 11111100 10000011 10000100 125 11111101 10000010 10000011 126 11111110 10000001 10000010 127 11111111 10000000 10000001再继续下去 下一个补码是什么呢 当然是 128 先略过 再略过 10000000从补码求原码的方法跟原码求补码是一样的 先保留符号位其它求反 11111111 除了符号位 后7位再加1 得到10000000 加上符号位110000000超过了8位了取低8位得10000000即为 128的补码 也就是原码中多出来的 0 原码反码补码 十进制转换为二进制方法 1 十进制整数转换为二进制整数采用 除2取余 逆序排列 法 具体做法是 用2去除十进制整数 可以得到一个商和余数 再用2去除商 又会得到一个商和余数 如此进行 直到商为0时为止 然后把先得到的余数作为二进制数的低位有效位 后得到的余数作为二进制数的高位有效位 依次排列起来 2 十进制小数转换成二进制小数采用 乘2取整 顺序排列 法 具体做法是 用2乘十进制小数 可以得到积 将积的整数部分取出 再用2乘余下的小数部分 又得到一个积 再将积的整数部分取出 如此进行 直到积中的小数部分为零或者达到所要求的精度为止 789 1100010101除以2整数余数位置 从最低位开始 789 23941最低位394 21970197 298198 249049 224124 212012 2606 2303 2111 201最高位 0 7 2 1 4 取出整数部分10 4 2 0 8 取出整数部分00 8 2 1 6 取出整数部分10 6 2 1 2 取出整数部分10 2 2 0 4 取出整数部分00 4 2 0 8 取出整数部分00 8 2 1 6 取出整数部分10 6 2 1 2 取出整数部分10 2 2 0 4 取出整数部分0 0 7 0 101100110 B 1 4基本数据类型 基本数据类型 系统已定义的类型 可以直接利用这些类型名来定义数据 类型名说明字节取值范围bool布尔型1true false singned char有符号字符型1 128 127unsignedchar无符号字符型1 255 signed shortint有符号短整型2 32768 32767unsignedshortint无符号短整型2 65535 signed int有符号整型4 2147483648 2147483647unsignedint无符号整型40 4294967295 signed longint长整型4 2147483648 2147483647unsignedlongint无符号长整型4 4294967275double双浮点型8 1 7 10 308 1 7 10 308 float浮点型4 3 4 10 38 3 4 10 38 longdouble长双浮点型10 1 2 10 4932 1 2 10 4932 符号位 0正1负以整型数据为例N位能表达的最大数 2N 1 1unsignedint 4byte 32bit0 232 1int 1bit符号 31bit数据 231 1 231 1 符号位数值部分 程序中处理的数据分为不同的类型 类型不同 存储方式和使用的场合也不同 1 5常量 变量及引用 1 常量程序中可以直接使用的常数称为常量y x 5常量分为整型浮点型字符型字符串常量布尔常量 1 整型常量 int 十进制整数 如0 15 247 八进制整数 以数字0开头 如015 0238 十六进制整数 以0 x或0X开头 如 0 x516 0 x8AB 0 xb2ff 八进制和十六进制只能表示无符号整数 长整型 如 12345L无符号整型 如 7895u或7895U 小数形式 3 14159 0 55 123 0 65 65 指数形式 5 25e 8 0 5678 05 2 浮点型常量 实型 double float longdouble 指数形式表示浮点型数时e 或E 前可以是整数或小数 但e后的指数部分必须是整型数 浮点型数总是按double类型存储的 只有在数的后面加上f才按float类型存储 如1 234E 6f 长双精度 longdouble 型常量通常在双精度数后面加上l或L表示 如1 2345e 12L 说明 3 字符型常量 char 字符型常量是用单引号括起来的单个字符例如 A S n 说明 字符型常量中的单引号作为定界符 不是字符型常量内容 字符型常量具有数值 其值就是该字符的ASCII码值 而且值可以作为整数参与运算 如 a 5结果为字符 f 如 9 6结果为数字字符 3 如 A 32结果为 a f d 结果为整数2 可以是ASCII字符集中任意可打印字符 包括空格 转义字符 见P15表1 3 P316 附录C ASCII码表 4 字符串常量 char数组 或者CSting类型 用双引号括起来的一串字符 Thisisastring a ABCxyz n 1234 中国天津 说明 字符串中可以包含空格 转义字符 中文字符等 双引号作为字符串的定界符 计算字符串长度时双引号不计算在内 编译程序在存储字符串常量时自动在字符串最后加一个 0 作为一个字符串的结束标志 0 占一个字节位置 一个字符占一个字节 一个汉字占两个字节 在程序设计中字符串通常用字符数组或字符指针存放 5 布尔常量 bool 布尔常量仅有两个值 即true 真 和false 假 c把所有的非0视为true 0视为false includevoidmain boolx true y false cout x y endl 10 运行结果 符号常量 为常量起一个名字 称为符号常量 符号常量在使用前必须进行说明 符号常量的说明形式为 const数据类型名常量名 常量值 或数据类型名const常量名 常量值 例 constintm 100 constfloatpi 3 1415926 说明 符号常量在说明时一定要赋初值 其值程序中不能修改 符号常量名不要和一般变量名重名 使用符号常量可以提高程序的可读性 增强程序的可维护性 2 变量 在程序中可以改变值的量称为变量 每个变量在内存中占有一定的存储单元 该存储单元中存放变量的值 在程序设计中可以根据需要改变变量的值 每个存储单元都有一个地址 变量的几大要素 12 345 变量名 X1 变量值 变量的类型和变量的地址 floatx1 12 345 1 变量名 标识符的命名规则用来为变量 符号常量 数组 函数 类型等命名命名标识符有以下规则 必须由字母 下划线和数字组成第 个字符应是字母或下划线字符a x1 data 5 count等为合法的标识符 1x x 2 变量1等不是合法的标识符 标识符的长度视具体的编译系统而定 不能使用 的关键字作为标识符 中变量名区分大小写 因此ex1和EX1是两个不同的变量名 2 定义变量 程序中的变量名在使用之前必须定义 先声明后使用 例如 chara b c intx y 等3 变量的初始化 在定义的同时可以给其赋值chara A intx 0 y 12 doublew1 12 3456 w2 0 4567e 4 charch B longintx1 1 y1 100 doubledata1 12 056 data2 0 12e 4 程序举例 includevoidmain intd1 5 d2 20 doublex1 12 5 x2 5 0 charch1 ch2 A cout d1 d2 endl cout x1 x2 endl cout ch1 ch2 3 endl 2517 5 D 运行结果 3 引用给程序中定义过的变量再起一个别名 这个名字称为引用 reference 格式 数据类型 引用名 变量名 或数据类型 引用名 变量名 includevoidmain inta 5 int 输出结果 551010 10 1 6运算符与表达式 表达式由操作数和运算符组成操作数 常量 变量及函数调用 例如 3 a sqrt 4 运算符 对操作数进行的运算和处理 的表达式既可以单独作为语句使用 也可以在其他语句中作为测试的条件以及调用函数的参数使用例如 3 4 cout10 f1 3 4 1 算术运算符与算术表达式 算术运算符包括 加 减 乘 除 取余 使用规则 与一般数学运算相同 其中 可作一元运算符使用 表示取负 优先级为 先 后 两个整型数相除 取商的整数部分 例如 8 5结果为1 5 8结果为0两实型数相除 结果为实型数 例如 8 0 5 0结果为1 6 a b ab a b a b a b 2 c a b c 2 常见错误 inta 10 b 4 doublex 1 5 charc1 A longw 12345 表达式1 a b x w c1表达式2 a x b x w 15 c1 4 算术表达式举例 表达式1和表达式2的计算过程及最后类型 讨论 用于求两个整数相除的余数 例如 8 5为3 10 5为0参加运算的两个操作数的类型不同时 按由低到高规则转换后计算 赋值运算符与赋值表达式 1 简单赋值运算符 形式为 变量 操作数其中操作数可以是常量 变量和C 任意合法的表达式inta 15 doubledata s data 8 1245 s a 50 data 3 赋值号 左边必须是变量 错误 a b 3 赋值表达式的值和类型为 号左边变量的值和类型 例如 在上例中 s 8 3 说明 2 复合赋值运算符 将算术运算和赋值放在一起的缩写形式包括 a 3 相当于a a 3 a 相当于a a b a b 相当于a a b a 相当于a a b a 相当于a a b a 相当于a a b 当复合赋值运算的右边是表达式时 将表达式视为一个整体 例如a x y 相当于 a a x y 由于有存储功能 复合赋值运算符左边必须是变量名 一个表达式中可以用多个赋值运算符 按照从右往左计算 以下是错误的 a b c d 12 a b c 12是正确的 自增和自减运算符 自增自减运算符有如下4种形式 i前置自增 将i的值先加1 再使用i的值i 后置自增 先使用i的值 然后i的值加1 i前置自减 将i的值先减1 再使用i的值 i 后置自减 先使用i的值 然后i的值减1 说明 因为有加减和赋值的功能 运算对象必须是变量 不能是常数或表达式单独作为一个语句使用时 前置增 减 或后置增 减 是一样的 但若和其他运算符组合使用 采用前置或后置就会产生不同的结果 运算符 或 是一个整体 使用时两个 或 之间不要有空 自

温馨提示

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

评论

0/150

提交评论