1 / 107

C 程 序 设 计

C 程 序 设 计. 第三版 计算机学院基础教学中心. 课程教学安排. 学时分配:课堂 —— 48 学时 实验 ——30 学时; ( 包括大作业上机 ) 学习目标: 掌握 C 语言基本语法、语义、数据类型; 掌握程序设计的基本方法、常用算法; 掌握调试程序的基本技能 : 能够熟练应用 Turbo C 、 Visaul C++ 集成环境或其它集成开发环境进行 C 语言的编写、编译与调试. 考核内容和方式. 内容 1 :习题集和课后内容编程题 方式:在本地机调试后,在指定时间内上传到服务器,由计算机改题。

petra
Download Presentation

C 程 序 设 计

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. C 程 序 设 计 第三版 计算机学院基础教学中心

  2. 课程教学安排 • 学时分配:课堂—— 48学时 实验——30学时; (包括大作业上机) • 学习目标: • 掌握C语言基本语法、语义、数据类型; • 掌握程序设计的基本方法、常用算法; • 掌握调试程序的基本技能:能够熟练应用Turbo C、Visaul C++集成环境或其它集成开发环境进行C语言的编写、编译与调试 计算机学院基础教学中心

  3. 考核内容和方式 • 内容1:习题集和课后内容编程题 • 方式:在本地机调试后,在指定时间内上传到服务器,由计算机改题。 • 内容2:习题集中的客观题(选择题,填空题,程序修改题) • 方式:在本学期内由教师收取习题集批改检查。 计算机学院基础教学中心

  4. 考核内容和方式(续) • 内容3:实验编程题 • 方式:在实验课上完成提交给服务器后由计算机批改 • 内容4:技能测试题 • 方式:在最后一次实验课上用1个半小时时间进行测试。 • 内容5:提交大作业 计算机学院基础教学中心

  5. 考核 • 理论成绩:平时作业(30%)+期末考试(70%) • 实验成绩:大作业成绩(30%)+技能测试成绩(70%) 计算机学院基础教学中心

  6. 内容和进度1 • 第 1 章 C语言概述 • 第 2 章 程序的灵魂—算法 • 第 3 章 数据类型、运算符与表达式 • 第 4 章 最简单的程序设计—顺序程序设计 • 第 5 章 选择结构程序设计 • 第 6 章 循环控制 计算机学院基础教学中心

  7. 内容和进度2 • 第 7 章 数组 • 第 8 章 函数 • 第 9 章 预处理命令 • 第10章 指针 • 第11章 结构体 • 第12章 位运算 • 第13章 文件 计算机学院基础教学中心

  8. 第一章 c语言概述 • 1.1 C语言出现的历史背景 • 1.2 C语言的特点 • 1.3 简单C程序介绍 计算机学院基础教学中心

  9. C语言历史 • 1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。 • 1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言。 • 1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个名字“B语言”。 • 1973年,美国贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BGPL的第二个字母作为这种语言的名字,这就是C语言 计算机学院基础教学中心

  10. C语言历史(Contiue) • 1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《The C Programming Language》,从而使C语言成为目前世界上流行最广泛的高级程序设计语言 计算机学院基础教学中心

  11. 1.1 c语言概述 • 常见的高级语言 • FORTRAN——数值计算、丰富的数学库; • BASIC——解释型、编译型; • PASCAL——第一个系统体现结构化的语言; • C——可用于系统软件、应用软件的开发; • C + +——面向对象的方法;C的超集; • JAVA——与操作平台无关,适于编写网络异构 环境应用软件 计算机学院基础教学中心

  12. 1.2 C语言的特点 • C语言允许直接访问物理地址,能进行位运算,可以直接对硬件进行操作。 • 计算机语言的分类 • 机器语言——二进制机器指令、可直接执行、依 赖具体计算机硬件; • 汇编语言——助记符号、需经汇编处理、依赖具 体计算机硬件; • 高级语言——需经编译处理、与硬件无关,可移 植性好; 计算机学院基础教学中心

  13. 1.3 简单的C程序介绍 • 输出hello,world main() { printf(“hello,world”); } 编译 运行 Hello.c Hello.exe 计算机学院基础教学中心

  14. YS • 计算两个数中的较大数 main( ) { int a , b , c ; scanf (”%d,%d”, &a, &b) ; c = max(a , b) ; /*调用max函数*/ printf (“max=%d\n”, c) ; } int max(int x , int y) /*自定义函数*/ { int z ; if (x>y) z=x ; else z=y ; return(z) ; } 计算机学院基础教学中心

  15. 总结C程序概貌1 • 函数是构成C程序的基本单位; • 被调用函数可以是用户自定义函数、也可是系统提供的函数; • 函数的构成: 函数类型 函数名(函数参数) 函数首部 {…………} 函数体 计算机学院基础教学中心

  16. 总结C程序概貌2 • 一个C程序中必须有一个而且只能有一个main函数;一个程序总是从main函数开始执行。 • 每个语句最后必须有一个分号。 • 可以用/*…*/在c程序中加以注释. 计算机学院基础教学中心

  17. 第一章要点: • C程序的关键特点 • C程序由函数构成,优点 计算机学院基础教学中心

  18. 第二章 程序的灵魂--算法 • 2.1 算法的概念 • 2.2 简单算法举例 • 2.3 算法的特征(自学) • 2.4 算法的表示 • 2.2 算法举例 • 2.5 结构化程序设计方法 计算机学院基础教学中心

  19. 2.1 算法的概念 • 算法——求解问题的方法和步骤; • 算法设计——要考虑到是否正确、质量优劣、 表达明确清晰; • 算法类别——数值运算算法、非数值运算算法; 计算机学院基础教学中心

  20. 2.4 怎样表达一个算法 • 算法的表示方法: • 自然语言 • 传统流程图 • N-S结构化流程图 • 伪代码 • 结构化程序设计的三种基本结构: • 顺序结构 • 选择结构 • 循环结构 计算机学院基础教学中心

  21. 开始 A B 结束 结构化程序设计的三种基本结构1 • 顺序结构 N-S流程图 传统流程图 计算机学院基础教学中心

  22. T F P P B A T F A B 结构化程序设计的三种基本结构2 • 选择结构(分支结构) 入口 N-S流程图 传统流程图 出口 计算机学院基础教学中心

  23. 结构化程序设计的三种基本结构3 • 例:对学生成绩s进行判断,及格则输出PASS字样 s>=60? T F 输出"PASS"  s<60? T F  输出"PASS" 计算机学院基础教学中心

  24. 结构化程序设计的三种基本结构4 • 循环结构 其中:P为循环判断条件;A为要重复执行的操作,称为循环体 当P为真 A P A 出口 计算机学院基础教学中心

  25. 2.5 结构化程序设计方法 • 自顶向下:由整体到具体 • 逐步细化:逐层划分功能 • 模块化设计:每个模块各司其值实现具体功能 • 结构化编程:用结构化语句描述控制过程 • 特点:结构清晰,可靠性强,易于调试,验证,扩充 计算机学院基础教学中心

  26. 第三章 数据类型、运算符与表达式 • 3. 1 C的数据类型 • 3. 2 常量与变量 • 3. 3 整型数据 • 3. 4 实型数据 • 3. 5 字符型数据 计算机学院基础教学中心

  27. 第三章 数据类型、运算符与表达式 • 3. 6 变量赋初值 • 3. 7 各类数值型数据间的混合运算 • 3. 8 算术运算符和算术表达式 • 3. 9 赋值运算符和赋值表达式 • 3. 10 逗号运算符和逗号表达式 计算机学院基础教学中心

  28. 3.1 C的数据类型 计算机学院基础教学中心

  29. 3. 2 常量与变量 • 常量 • 符号常量的使用 • 变量 • 变量三要素 • 标识符命名规则 计算机学院基础教学中心

  30. 常量定义 • 常量: 其值不能改变的量 形式上:程序序中直接书写的数据 例如:a=100; b=a+12; 常量类型:以字面形式区分 例如: 12 (基本整型) 3.5 (实型) 123L(厂整型) ‘A’ (字符型) 计算机学院基础教学中心

  31. 常量--符号常量1 符号常量:用标识符代表的常量 例如: #define PRICE 30 /*定义符号常量*/ main( ) { int num1, num2, num3, cost1, cose2, cost3; ┇ cost1=num1*PRICE; /*引用符号常量*/ cost2=num2*PRICE; cost2=num2*PRICE; ┇ } 计算机学院基础教学中心

  32. 常量--符号常量2 定义符号常量的意义: 在程序中多处引用同一个常数时,采用符号常 量便于参数的修改、减少较长数据的输入工作量。 注意: • 符号常量名可用大写或小写字母,为了便于与变量名区分,通常用大写。 • 在符号常量作用域内,不得出现符号常量被赋值 现象。如:PRICE=20 非法。 计算机学院基础教学中心

  33. 变量 • 定义: 其值可以改变的量 计算机学院基础教学中心

  34. 变量--命名规则1 • 标识符命名规则 • 由大或小写字母、数字、下划线组成,且第一个字符必须是字母或下划线。 • 变量命名举例: 合法:sum、SUM、Average、toal、cost_1、_1 非法:for、num-1、1a、ABC# 计算机学院基础教学中心

  35. 变量--命名规则2 • C变量名中字母可大小写,但有大小写之分, SUM、sum、Sum被视为不同的变量。 • 有效字符相同的变量名被视为是同一个变量; • 如MS C中student_name与 student_number。 • 在实际应用中命名应尽量见名知义。 • C中变量必须先定义后引用。 计算机学院基础教学中心

  36. ┇ n的地址→ 202 m的地址→204 10 25 变量--三要素1 • 变量名 • 变量值 • 变量的地址: • 给变量分配的存储单元第一个字节的地址(变量的指针) 例如:int n, m; n=10; m=25; 计算机学院基础教学中心

  37. 变量--三要素2 • 变量被赋值的物理意义是向它的存储单元存数; • 变量可多次被赋值,新值将覆盖旧值; 例如:n=10; /*赋值:破坏性的*/ n=45; • 变量被引用的物理意义是从它的存储单元中读数; 例如:n=10; m=n+2; /*引用:非破坏性的*/ • 定义变量的时候用数据类型定义 例如:int a; 计算机学院基础教学中心

  38. 3. 3 整型数据 • 整型常量 • 整型变量 • 整型数据的溢出 计算机学院基础教学中心

  39. 整型常量 有三种表示形式: • 十进制 • 八进制——以数字0开头; • 十六进制——以0x 或0X开头; 其中0:数字0 例:53 0123 0x53 -127 -0177 -0X7F 计算机学院基础教学中心

  40. 整型变量--类型 计算机学院基础教学中心

  41. 整型变量--类型2 • 在TC中各类型值的范围 32bit -231~ (231-1) 即-2147483648~2147483647 • 在VC++ 6.0中各类型值的范围 计算机学院基础教学中心

  42. 整型变量—定义形式 • C变量定义的一般形式: (适合于任何类型) 类型标识符 变量名表; 其中: 变量名表——多个变量以逗号分隔; 变量定义位置——通常在函数体内执行语句之前。 计算机学院基础教学中心

  43. 2byte i 初值不定 j K m 初值为0 a 初值不定 b 初值为5 u 4byte ┇ 2byte ┇ 例: main( ) { int i, j, k; static int m; long a, b=5; unsigned u; ┇ i=20; b=20; ┇ } 计算机学院基础教学中心

  44. 整常量--类型 • int 型常数: -32768~32767视为int常数,可赋给int、long型变量。 • long型常数: 在 -2147483648 ~ 2147483647之内、但超出 • -32768~32767的数及带后缀l / L的视为long型常数;可赋给long型变量。 • 一个整常量后面加上一个U/u,认为是unsigned int,例:123u 计算机学院基础教学中心

  45. 整型量--溢出 • 一个变量无法容纳下要存入的数,这种现象称为溢出,溢出将导致数据存储错误;在运算过程中也有可能产生溢出导致运算结果错,因此程序设计中应避免产生溢出。 计算机学院基础教学中心

  46. 整型量--溢出(续1) 例:int a, b; a=65536; b=123*456; printf("a=%d, b=%d", a, b); (溢出的错误结果) a=0, b=-9448 计算机学院基础教学中心

  47. 整型量--溢出3 • a=65536; 65535=(1 0000 0000 0000 0000 )2 a: 只存后16位 • b=123*456; 123×456=56088=( 1101 1011 0001 1000 )2 b: -9448的补码 0000 0000 0000 0000 1101 1011 0001 1000 计算机学院基础教学中心

  48. 整型量--溢出4 修改后: long a, b; a=65536; b=123L*456; printf("a=%ld, b=%ld", a, b); a=65536, b=56088 (正确) 计算机学院基础教学中心

  49. 3. 4 实型数据 • 实型常量 • 实型变量 • 实型量的舍入误差 计算机学院基础教学中心

  50. 实型常量1 • 有两种表示形式:十进制小数、十进制指数 • 例:123.0 0.123 -14.2 0.0 0. .123 1.23e2 12.3e1 • 例:表示12亿3千万 数学方式——1230000000或12.3×108 程序中——1230000000.0 (小数形式的实常数),12.3e+8、1.23e9、123e7 (指数形式) 计算机学院基础教学中心

More Related