林子雨《C语言程序设计》讲义PPT

Similar documents
PowerPoint 演示文稿

《C语言程序设计》教材习题参考答案

活 動 流 程 時 間 教 學 資 源 評 量 ( 二 ) 活 動 一 : 地 震 所 帶 來 的 傷 害 5 學 生 能 踴 1. 教 師 提 問 : 看 完 剛 的 影 片, 有 沒 有 注 意 躍 的 舉 手 到 地 震 對 我 們 所 帶 來 的 傷 害 有 哪 些? 回 答 2. 學 生

林子雨《C语言程序设计》讲义PPT

树木(一)

untitled

untitled

_汪_文前新ok[3.1].doc

《C语言程序设计》教材习题参考答案

数学分析(I)短课程 [Part 2] 4mm 自然数、整数和有理数

《C语言程序设计》第2版教材习题参考答案

C C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C Project 30 C Project 3 60 Project 40

378高雄市都市計畫說明書

Generated by Unregistered Batch DOC TO PDF Converter , please register! 浙江大学 C 程序设计及实验 试题卷 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:3

教育部高等学校教学

山西医科大学 2017 级英语 学年第三学期周教学进度表 学院 系 ( 部 ): 外语系年级 / 专业 :2017 级英语 ( 医学英语 ) 班级 : (2) 人数 :64 人实习分组 : 序号 课程名称 总学时 理论课 实验

法 律 時 事 漫 談 民 事 訴 訟, 當 事 人 要 適 格 摘 錄 自 法 務 部 全 球 資 訊 網 / 法 治 視 窗 ( 作 者 葉 雪 鵬, 曾 任 最 高 法 院 檢 察 署 主 任 檢 察 官 ) 不 久 之 前, 位 於 新 北 市 的 一 處 聘 有 保 全 公 司 入 駐,

( ) / ISBN /D ( )

经典案例(三)

第5章:汇编语言程序设计

“国家高等职业教育会计专业

幻灯片 1

:,,?,?,,,,,,, 1 ( ) (. ) ( ) :,?? :,,,,, ( ) (. ) : (. ) ( ),,, ( ) ( ), (. ), ( ) ( ) - (. - ) (. ) ;, (. ) ( ),, ( ),,, : ( - ), ( - - ) ( ) (. ),,,

PowerPoint 演示文稿

CC213

Microsoft Word _Java_術科 .doc

Microsoft Word - 01a

申 请 者 的 承 诺 与 成 果 使 用 授 权 本 人 自 愿 申 报 广 东 省 高 等 职 业 教 育 教 学 改 革 项 目, 认 可 所 填 写 的 广 东 省 高 等 职 业 教 育 教 学 改 革 项 目 申 请 书 ( 以 下 简 称 为 申 请 书 ) 为 有 约 束 力 的 协

新版 明解C言語入門編

危险品航空运输培训管理办法

建筑学院建筑学本科专业建设发展规划.doc

Microsoft Word - 黃玉緞 _民間文學教案設計_民歌擬作舉隅

untitled

untitled

BQY.PS2

Microsoft Word - 8-柯香君-原稿初修-0516.doc

书 名 : 额 尔 古 纳 河 右 岸 作 者 : 迟 子 建 出 版 社 : 北 京 十 月 文 艺 出 版 社 出 版 日 期 : 开 本 : 正 16 开 页 数 :262 ISBN:

untitled

Ps22Pdf

)001 (131 ) : ISBN / :

...T.U.p65

书 名 : 作 者 : 出 版 社 : 中 国 电 影 出 版 社 版 权 所 有 : 烨 子 工 作 室 类 别 : 中 国 传 世 情 爱 小 说 出 版 时 间 :2005 年 10 月 字 书 数 :150 千 字 号 :ISBN /B 0030

untitled

ISBN Z

untitled

Ps22Pdf

Ps22Pdf

untitled

: : ISBN /B 007 :

untitled

()001 ( 131 ) : ISBN / I1021 :7.50

untitled

untitled

Ps22Pdf

untitled

untitled

()001 ( 131 ) : ISBN / I1020 :6.50

5 2. 过程与方法 情感 态度与价值观 三 知识结构图 四 教学内容和教学要求 课 程 教学要求 课时安排


前言 ""# " # % % & " #& " # & & & " # & " # & ( & & &

是 這 個 洗 手 台? 莫 嘸 錯, 就 是 洗 碟 子 的 這 個 洗 手 台 我 看 你 們 洗 盤 子 相 好 卡 小 心 師 傅 講 得 口 沫 橫 飛, 吸 引 了 大 家 的 思 緒 擱 莫 完 擱 莫 完, 被 黑 貓 嚇 到 後, 我 放 下 盆 栽, 去 廚 房 拿 出 大 刀,

Ps22Pdf

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

PowerPoint Presentation

Transcription:

C 语言程序设计 厦门大学计算机科学系 2013/2/26 林子雨 ziyulin@xmu.edu.cn 2013/2/26 厦门大学非计算机专业本科生公共课 (2012-2013 第 2 学期 ) C 语言程序设计 第 1 章绪论 林子雨 厦门大学计算机科学系 E-mail: ziyulin@xmu.edu.cn 个人主页 :http://www.cs.xmu.edu.cn/linziyu

课程提要 第一章绪论 第二章 C 语言基础 第三章结构化程序设计 第四章选择结构 第五章循环结构程序设计 第六章函数 第七章编译预处理 第八章数组 第九章结构体 共用体和枚举类型 第十章指针

第 0 章课程说明 教科书 C 语言程序设计 ( 第 2 版 ), 黄保和 江弋编著, 清华大学出版社, 2011 年 10 月第 2 版 ISBN:978-7-302-26972-4 参考书 (1) C 程序设计题解与上机指导, 谭浩强著, 北京 : 清华大学出版社 (2) C 程序设计试题汇编, 谭浩强著, 北京 : 清华大学出版社 (3) C 程序设计 ( 第二版 ), 谭浩强著, 北京 : 清华大学出版社 课程介绍网站 : http://dblab.xmu.edu.cn/node/124 班级网站 : http://dblab.xmu.edu.cn/node/347

第 0 章课程说明 课程目标 了解软件开发的一般过程, 软件开发和运行平台, 软件工程的基本概念 掌握 C 语言的基本语法, 能灵活应用 C 语言编写中等难度的程序 掌握结构化程序设计方法, 理解模块的概念, 能熟练进行函数的定义和调用, 熟练掌握顺序 分支和循环三种基本程序控制结构 熟练掌握 VC 平台, 掌握程序调试和测试的一般方法

第 0 章课程说明 学习方法 认真听讲, 及时复习 注重实际操作 认真完成作业和上机作业 多利用课外时间上机实践 两条主线 程序设计 包括程序阅读 程序设计和程序调试 学习数据类型 控制结构 语法规则等 循次渐进 阅读 / 分析程序 摹仿编程 掌握常见程序模块 简单程序 复杂编程

第 0 章课程说明 课程考核 课程结束考核方式 : 闭卷机考 课堂考试时间 :100 分钟 考试命题 : 考试题目从题库中随机抽取 选择题 23 题,46 分 ; 程序调试题 2 题 12 分 ; 程序阅读题 3 题 18 分 ; 程序设计题 4 题 24 分 其中程序阅读题和程序设计题中基本 中等和较难的题目各一题 随堂监考授权 : 公共计算机教学部 实验考核的方式 : 和理论考试合卷 期中考试 : 无 口试 : 无

第 1 章绪论 1.0 计算机的硬件和软件 1.1 程序设计语言 1.2 程序设计的概念 1.3 C 语言的发展和 C++ 简介 1.4 C 语言程序的基本结构 1.5 算法 1.6 Visual C++ 开发环境

1.0 计算机的硬件和软件 算术逻辑单元 控制器 3.CPU ( 微处理器 ) 4. 主要存储器 ( 内存 ) 5. 适配器 ( 声卡 网卡 电视卡等 ) 2. 主板 1. 显示器 6. 电源供应器 10. 鼠标 7. 软驱 / 光盘驱动器 I/O: 外部世界信息 计算机 8. 次要存储器 ( 硬盘 ) 9. 键盘

1.0 计算机的硬件和软件 计算机的特点 : 可编程 软件 程序和相关资源 计算机如何存储指令和数据? 内存 1 0 1 1 0 0 0 0 CPU 中的寄存器 :register 地址 :1256 指令类型 : 数据移动 算术运算 指令跳转 条件验证

1.1 程序设计语言 就发展过程而言, 程序设计语言一般可分为机器语言 汇编语言和高级语言 机器语言 是二进制代码组成的代码序列 可以由计算机直接执行 需要程序设计者对硬件有充分的了解 机器语言的描述和人们的习惯思维方式有较大差异 由于不同机器的机器指令不同, 程序的可移植性差 程序可读性差 0110010 0011011

1.1 程序设计语言 汇编语言 用助记符号来代表机器语言中的 01 代码 汇编语言指令与机器语言指令是一一对应的 需要 汇编程序 翻译 可读性稍好 与硬件相关, 不能通用 描述问题方式与人们思维相距甚远 MOV A, 3 ADD A, 6

1.1 程序设计语言 高级语言 为了提高程序开发的效率, 针对机器语言和汇编语言的缺点, 各种高级语言相继涌现 接近于人类自然语言的表述习惯, 可读性高 不依赖于计算机的具体型号, 具有良好的可移植性 一条语句通常对应于多条机器指令 MOV A, 3 ADD A, 6 汇编语言源程序 汇编程序 编译程序 目标程序 0110010 0011011 连接程序 可执行程序 A=5, B=4 C=B+A*2/B 高级语言源程序 解释程序 翻译一句 执行一句

1.1 程序设计语言 三种语言的对比 计算机发展 while(b!=0) /* 采用辗转相除法求最大公约数 */ { temp=a%b; a=b; b=temp; }

1.2 程序设计的概念 程序设计的步骤 : 1. 系统分析 ( 需求分析 ) 做什么 ( 任务书 ) 2. 系统设计 怎样做? 支持环境选择 总体设计 数据结构设计 算法设计等 3. 程序设计 ( 编码 ) 用计算机语言描述问题的处理过程 4. 程序调试 程序测试 调试 : 检查和改正程序的错误 测试 : 验证程序的功能 5. 程序运行与维护 维护 : 完善和扩充程序的功能

1.3 C 语言的发展和 C++ 简介 C 语言发展过程 60 年 63 年 67 年 70 年 72 年贝尔 78 年 ALGOL 60 CPL BCPL B 语言 C 语言 可移植 ( 标准 C) 83 年 87 年 90 年 ANSI C 87 ANSI C ISO C C 语言在 2013 年 2 月的编程语言排名请参考附件 不同版本的 C 语言普遍遵守两个重要标准 : (1)Brian W. Kernighan 和 Denis M. Ritchie 于 1978 年合著的名著 The C Programming Language, 被称为 标准 C (2) 美国国家标准化协会 (ANSI) 于 1983 年开始制定, 并于 1988 年最终完成的 ANSI 标准, 即 ANSI C

1.3 C 语言的发展和 C++ 简介 C 语言特点 语言简洁 紧凑, 使用方便 灵活 32 个关键字 9 种控制语句, 程序形式自由 运算符丰富 34 种运算符 数据类型丰富, 具有现代语言的各种数据结构 具有结构化的控制语句, 完全模块化和结构化 语法限制不太严格, 程序设计自由度大 允许直接访问物理地址, 能进行位操作, 能实现汇编语言的大部分功能, 可直接对硬件进行操作 兼有高级和低级语言的特点 目标代码质量高, 程序执行效率高 只比汇编程序生成的目标代码效率低 10%-20% 程序可移植性好 ( 与汇编语言比 ) 基本上不做修改就能用于各种型号的计算机和各种操作系统

1.3 C 语言的发展和 C++ 简介 C 语言特点 函数 C 语言程序的基本单位是函数每个函数是具有独立功能的程序模块函数是由语句组成的 段落 语句 句子 词汇 单词 基本字符集 字母 C 语言 自然语言

C++ 简介 1.3 C 语言的发展和 C++ 简介 C++ 是 C 语言的超集, 由两部分组成 : 过程性语言部分 : 遵守 ANSI C 标准 ; 类和对象部分 : 它是面向对象程序设计的主体 C++ 充分保持了与 C 语言的兼容性, 绝大多数 C 语言程序都可以不经修改, 直接在 C++ 环境中运行 C++ 仍然支持面向过程的程序设计, 是一种理想的结构化程序设计语言 Visual C++: 简称 VC,Microsoft 公司,windows 系统 VC 平台 : 是一个集 C 源程序编辑 编译 调试和运行为一体的集成环境

1.4 C 语言程序的基本结构 #include<stdio.h> #define pi 3.14159 void main() { float r,s; scanf( %f,&r); s=pi*r*r;/* 求出圆的面积 s*/ printf( s=%f\n,s); }

1.4 C 语言程序的基本结构 C 程序 : 由若干个函数组成, 必须有一个函数名为 main main 函数称为主函数, 程序如果包含多个函数, 必定从主函数开始执行 函数 : 由函数首部和函数体组成, 函数体用于描述函数的功能 函数体由一系列语句组成 C 语句 : 包括数据描述语句 ( 如 float r,s;) 和数据处理语句 ( 如 s=pi*r*r;) 两类, 以分号作为语句结束标志 单词 : 语句由单词组成 单词包括关键字 标识符 运算符 常量等

1.5 算法 算法概念 泛指解决某一个问题的方法和步骤 是一种解决问题的策略, 是人们对问题进行分析和抽象的结果 是解决做什么和怎么做的问题 数学公式和计算机程序, 都属于算法的具体表现

1.5 算法 例 1.5.1 求 6! 朴素算法 : 步骤 1: 先求 1 2, 得到结果 2; 步骤 2: 将步骤 1 得到的乘积 2, 再乘以 3, 得到结果 6; 步骤 3: 将 6 再乘以 4, 得到 24; 步骤 4: 将 24 再乘以 5, 得到 120; 步骤 5: 将 120 再乘以 6, 得到 720 就得到了最后结果

1.5 算法 例 1.5.1 求 6! 改进算法 : 设两个变量, 一个变量代表被乘数, 一个变量代表乘数 乘积结果不再设定新变量存放, 而是直接将每一步骤的乘积放在被乘数变量中 如 : 设 m 为被乘数,i 为乘数, 算法如下 : S1: 使 m=1; S2: 使 i=2; S3: 使 m i, 乘积仍放在变量 m 中, 可表示为 m i m; S4: 使 i 的值增加 1, 即 i+1 i; S5: 如果 i 不大于 6, 返回重新执行步骤 S3 以及其后的步骤 S4 和 S5; 否则, 转到步骤 S6; S6: 输出 m 的值, 算法结束

1.5 算法 例 1.5.2 对一个大于或等于 3 的正整数, 判断它是不是一个素数 方法 : 将一个数 n 作为被除数, 将 2 到 n-1 各个整数轮流作为除数, 如果都不能整除 n, 则 n 为素数 算法如下 : S1: 输入 n 的值 ; S2: 2 i(i 作为除数 ); S3:n 被 i 除, 得余数 r; S4: 如果 r=0, 表示 n 能够被 i 整除, 则打印 n 不是素数, 算法结束 ; 否则, 执行 S5; S5:i+1 i; S6: 如果 i n-1, 返回 S3; 否则, 打印 n 是素数, 算法结束

1.5 算法 算法的特征 : (1) 确定性 (2) 有效性 (3) 有穷性 (4) 有输入 (5) 有输出

1.5 算法 算法表示方法 用自然语言表示算法 用流程图表示算法 用 N-S 流程图表示算法 用 PAD 图描述算法 用伪代码描述算法

1.6 Visual C++ 开发环境 参见文档 林子雨 -C 程序上机与实践.ppt 将在上机实践课介绍

附件 :2013 年 2 月编程语言排名 2013 年 2 月编程语言排行榜 Top 20 榜单 TIOBE 编程语言社区排行榜是编程语言流行趋势的一个指标, 每月更新 这份排行榜排名基于互联网上有经验的程序员 课程和第三方厂商的数量 排名使用著名的搜索引擎 ( 诸如 Google MSN 雅虎 ) 以及 Wikipedia 和 YouTube 进行计算 请注意这个排行榜只是反映某个编程语言的热门程度, 并不能说明一门编程语言好不好, 或者一门语言所编写的代码数量多少 Objective-C 的目前市场份额主要归功于 iphone 和 ipad 的持续成功, 这两种设备上的程序主要都由 Objective-C 实现 Java 失去编程冠军宝座已有 10 个月, 如今再次夺得桂冠, 这得益于 Android 手机领域的大力发展

附件 :2013 年 2 月编程语言排名 2013 年 2 月编程语言排行榜前 10 位的长期走势图

附件 : 课程教师和助教 (2012-2013 第 2 学期 ) 主讲教师 : 林子雨 单位 : 厦门大学信息科学与技术学院计算机科学系办公地点 : 福建省厦门市思明区厦门大学海韵园 E-mail:ziyulin@xmu.edu.cn 个人主页 :http://www.cs.xmu.edu.cn/linziyu 助教 : 刘颖杰 单位 : 厦门大学计算机科学系 2012 级硕士研究生 E-mail: 376339705@qq.com 手机 :18020761782

附件 : 课程教材 (2012-2013 第 2 学期 ) C 语言程序设计 ( 第 2 版 ) 清华大学出版社, 黄保和, 江弋编著 版次 :2011 年 10 月第 2 版 ISBN:978-7-302-26972-4 定价 :35 元

Department of Computer Science, Xiamen University, February 26, 2013