




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、辽宁师范大学 计算机与信息技术学院 蔡静,C 语言程序设计,本人版权所有,复制必究。,目录,C语言概述 程序的灵魂算法 数据类型、运算符与表达式 C程序设计 数组 函数 预处理命令 指针 结构体和共用体 位运算 文件 测试及综合应用,辽宁师范大学 蔡静,3,须知:,课程的性质、地位和意义 课程性质:专业必修课 (考试)。 课程的地位和意义:是本专业的第一门程序设计语言课程,涉及软硬件的基础知识,也是数据结构、操作系统、数据库原理、计算机图形、图象等相关后继课程的先行课。 课程的教学目的和任务 本课程系统介绍C语言的语法语义、丰富的数据类型及模块化结构程序设计方法。通过本课程教学,学生应掌握程序
2、设计的初步知识,建立模块化结构程序设计的思想,并具有对问题进行分析、综合运用C语言知识进行编程实现的能力。,辽宁师范大学 蔡静,4,教材及参考资料:,教材: C语言程序设计第3版,谭浩强编著,清华大学出版社,2009。 参考资料: C:The Computer Reference,Herbert schildt McGraw-Hill. The C Programming Language,B.M.Kernigrhan, D.W.Ritchie, Prantice-Hall Soft Ware Series. Advanced C,Herbert schildt McGraw-Hill. Pr
3、ogramming In ANSI C,Stephen G.Rochan, Hayden Books. C语言程序设计及其应用,龚杰民,金益民编著,西北电讯工程大学出版社。 C程序设计试题汇编,谭浩强主编,清华大学出版社 C语言习题集与上机指导 ,谭浩强主编,清华大学出版社,辽宁师范大学 蔡静,5,学习建议:,课前预习,每次带着问题来听课解疑 课后巩固理解,保证每周课余至少4小时的上机时间 利用做题来检验自己的掌握程度,可参考计算机等级考试、程序员考试等考试题目,第一章 C语言概述,1.1 C语言出现的历史背景 1.2 C语言的特点 1.3 简单的C语言程序介绍 1.4 运行C程序的步骤与方法
4、,辽宁师范大学 蔡静,7,1.1 C语言出现的历史背景,1960年出现的ALGOL 60是一种面向问题的高级语言,它离硬件比较远,不宜用来编写系统程序 1963年英国的剑桥大学推出了CPL (combined programming language)语言。CPL语言在ALGOL 60的基础上接近硬件一些,但规模比较大,难以实现 1967年英国剑桥大学的Matin Richards对CPL语言做了简化,推出了BCPL (basic combined programming language) 语言 1970年美国贝尔实验室的Ken Thompson 以BCPL语言为基础,设计出了简单且很接近硬
5、件的B语言 (取BCPL的第一个字母), 并用B语言写了第一个UNIX操作系统。但B语言过于简单,功能有限 1972年至1973年间,贝尔实验室的D.M.Ritchie 在B语言的基础上设计出了C语言(取BCPL的第二个字母)。C语言既保持了BCPL和B语言的优点(精练,接近硬件),又克服了它们的缺点(过于简单,数据无类型等)。 1973年,K.Thompson和D.M.Ritchie两人合作把UNIX的90%以上用C改写,即UNIX第5版 1983年,美国国家标准化协会(ANSI)根据C语言问世以来各种版本对C的发展和扩充,制定了新的标准,称为ANSI C 1987年,ANSI又公布了新标准
6、 87 ANSI C 1990年,国际标准化组织ISO (International Standard Organization) 接受87 ANSI C为ISO C 的标准(ISO 98991990),辽宁师范大学 蔡静,8,C语言的作者,Dennis M. Ritchie 丹尼斯里奇,Harvard University获学士和博士学位 1967年加入Bell实验室工作 1972年发明C语言 1978年, Brian W.Kernighan和Dennis M.Ritchie 合著The C Programming Language Turing奖(1983)和IEEE先驱奖(1992)获得
7、者、美国工程院院士,辽宁师范大学 蔡静,9,1.2 C语言的特点,语言简洁、紧凑,使用方便、灵活。 运算符方便。 数据类型丰富,具有现代语言的各种数据结构。 具有结构化的控制语句。 语法限制不太严格,程序设计自由度大。 C语言允许自由访问物理地址,能进行位操作,可直接对硬件进行操作。 生成目标代码的质量高,程序执行效率高。 可移植性好。,辽宁师范大学 蔡静,10,1.3 简单的C语言程序介绍,1个C程序有且仅有1个main函数。 函数体用花括号“ ” 括住。花括号可以用来括起任何一组C代码,从而构成复合语句或分程序 简单C语句之后有一个分号“;”。 #include 是编译预处理命令行,指明有
8、关输入和输出标准函数也将是程序的一部分。 程序中的“/* */”表示程序的注释部分。注释便于人阅读程序,对程序编译和运行都没有作用。,例1.1:一个只输出一行信息的程序 #include void main( ) /* 主函数 */ int i; i=20; printf(nProgramming is fun.i=%d,i); ,辽宁师范大学 蔡静,11,例1.2 读入两个整数,输出它们的和 #include void main() /* 变量定义部分 */ int x, y, sum; /* 定义 x, y, sum */ /* 以下为语句序列 */ printf(Input x and
9、yn);/*提示输入数据*/ scanf(%d%d, /* 输出结果 */ ,辽宁师范大学 蔡静,12,【例1.3】求三个数的平均值 #include void main() /* 变量定义部分 */ double x, y,z, ave; /* 定义 x, y,z, ave */ /* 以下为语句序列 */ x=3.5;y=4.6;z=2.9; /*赋值*/ ave = (x+y+z)/3 ; printf(x,y, z的平均值是: %fn, ave); /* 输出结果 */ ,辽宁师范大学 蔡静,13,【例1.3】求三个数的平均值(函数调用) #include double average
10、(double x,double y,double z) return (x+y+z)/3.0; void main( ) /* 变量定义部分 */ double x, y,z, ave; /* 定义 x, y,z, ave */ /* 以下为语句序列 */ x=3.5; y=4.6; z=2.9; /*赋值*/ ave = average(x,y,z) ; /*调用average函数*/ printf(x,y, z的平均值是: %fn, ave); /* 输出结果 */ ,辽宁师范大学 蔡静,14,函数 Function,C程序由若干函数组成。每个程序都有且仅有1个主函数main()函数和若
11、干子函数构成。 一个函数定义由函数头和函数体组成。函数头包括函数属性、 函数返回值类型、函数名、函数形式参数名,形式参数类型。,函数返回值类型 函数名(参数说明表) 说明和定义部分 执行语句序列 ,辽宁师范大学 蔡静,15,函数 Function (续),说明: 函数可以没有参数,但函数名之后的一对圆括号是必须的 函数体是函数头之后用一对花括号括住的部分。函数体用于描述实现函数功能的代码,它又包括: 说明和定义部分 说明数据结构(类型)和定义函数专用的局部变量等 执行部分 由语句和控制结构代码组成,辽宁师范大学 蔡静,16,【例】利用公式:C = (5/9)(F-32)输出F氏温度与C氏温度对
12、照表,设已知F氏温度取0、20、200。 #include void main() float f, c; /* 变量定义 */ int lower, upper, step; lower = 0; upper = 200; step = 20; f = lower; while (f = upper) /* 循环计算 */ c = 5.0/9.0 * (f - 32.0); printf(%3.0f %6.1fn, f, c); f = f + step; ,辽宁师范大学 蔡静,17,【例】统计输入字符行中各数字符、空白符与制表符符以及其它字符的出现次数。 #include void mai
13、n() int c, k, nWhite, nOther; int nDigit10; /* 定义有10个数字符的计数器 */ nWhite = nOther = 0; for(k = 0; k = 0 ,辽宁师范大学 蔡静,18,【例】输入两个实数, 输出它们中的小的数 #include void main() float x, y, c; /* 变量定义 */ float min(float, float); /* 函数说明 */ printf(输入x和y. n); scanf(%f%f, /* 返回 temp 到调用 min() 函数处 */ ,辽宁师范大学 蔡静,19,1.4 运行C程
14、序的步骤与方法,编 辑,开 始,结 束,有错误,有错误,有错误,无错误,无错误,无错误,结果,键盘输入,源程序,f.c 磁盘文件,f.obj 目标文件,f.exe 可执行文件,有错误,无错误,编 译,连 接,运 行,辽宁师范大学 蔡静,20,C程序的开发过程:,分析问题、建立模型 表现模型 源程序的编辑 程序的变异/解释与链接 程序的测试与调试 编写程序文档 程序的维护,辽宁师范大学 蔡静,21,编辑、预处理与编译,编辑:程序员用系统环境提供的编辑器编辑源程序,产生一个源程序文件.c 或.h 预处理:编译前,C编绎器先自动调用预处理程序,对源程序文件作文字转换,产生一个新的内部程序代码 编译:
15、若编译过程中发现程序有错误,则输出错误的详细信息;对正确的源程序产生机器语言程序,称为源程序的目的代码,辽宁师范大学 蔡静,22,连接、加载与执行,连接:连接程序将目的代码和一些库函数的目的代码连接起来,产生计算机可直接执行的程序映象文件 静态连接vs.动态连接 加载:将要执行的程序装入内存 执行:装入内存的程序在计算机的操作系统控制下执行,辽宁师范大学 蔡静,23,三种开发环境:一、TC 环境,程序格式 关键字及编译预处理命令用小写字母书写。 由语句组成。 以分号(;)作为语句的结束符(不是分隔符)。 没有行的概念,可任意书写。 用大括号对 表示程序的层次范围,一个完整的程序模块要用一对 包
16、括。 不能在变量名、函数名、关键字中插入空格和空行。,辽宁师范大学 蔡静,24,TC环境(续) :,常用快捷键 F2:New F3 :Load Alt+F3 :Pick F4 :Go to cursor F5 :Edit窗/ Edit.Message窗Alt+F5:User Screen F6 : Edit窗/Message窗光标切换 F7 : Trace into单步调试Alt+F7:Add Watch F8 :Step over Ctrl+F9 :运行 代码块 Ctrl+K,B:块首 Ctrl+K,K:块尾/撤销 Ctrl+K,C:拷贝 Ctrl+K,V:移动 Ctrl+K,Y:删除,辽宁
17、师范大学 蔡静,25,二、Win-TC 环境,由于Turbo C 2.0(简称TC2.0)是基于MS-DOS的,存在诸如不支持鼠标操作、字体大小不能调整、文本复制步骤繁琐、必须另外启动UCDOS等中文环境才能支持中文输入输出等缺点,而这些缺陷或多或少影响了教学活动开展的效果。 基于这样的认识,一般在教学过程中使用了一个基于TC2.0编译内核开发出来的编译环境Win-TC,它实际上是对TC2.0的一个封装。对于C语言的教学,使用该软件的主要优点有: 由于Win-TC是Windows程序,所以在其中进行鼠标操作、程序段的复制、中文输入输出等功能变得非常方便。 支持字体大小的调整和C程序中各种关键字符的变色显示,这样教师在课程上演示程序的时候可以适当将程序的字体放大,方便坐在后排的学生的观看。 Win-TC消除了初学者设置工作目录的烦恼,自动设置好工作目录。程序编写好之后就可以直接编译运行。 中文界面,提示出错信息也是中文的,消除了我们的学生由于对英文的恐惧而造成的无法正确修改程序中的错误。 支持在运行结果中显示中文,这样在程序中就可以输出中文的提示语句了。,辽
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乌鲁木齐养殖转让合同标准文本
- 伙合合同标准文本
- 供销平台合同标准文本
- 使用附件合同标准文本英文
- 保安转包协议合同标准文本
- PPP项目项目合同标准文本
- 公积金代缴合同样本
- 个人检合同样本
- 公司门卫聘用合同标准文本
- 买卖商务合同样本
- 【初中道法】正确对待顺境和逆境(课件)-2024-2025学年七年级道德与法治上册(统编版2024)
- 膨胀节检修施工方案
- 幼儿园安全隐患举报奖励制度
- 民间借贷利息计算表
- GB/T 13477.25-2024建筑密封材料试验方法第25 部分:耐霉菌性的测定
- 决策与协调机制制度
- 劳动合同到期不续签证明
- 朋友是你点燃了我作文600字
- 2024年人教版小学五年级数学(下册)期中试卷附答案
- 学生作业打卡模板
- DZ∕T 0222-2006 地质灾害防治工程监理规范(正式版)
评论
0/150
提交评论