授课教师:江星玲 E-mail:jxl894178228@sina.com 1
教学安排 总 学 时: 48 hour 理论教学: 32 hour 上机操作: 16 hour 必须按时上课,不迟到,不旷课(3次不到,平时成绩作0分处理) 2
成绩计算 平时成绩: 50分 平时成绩=考勤+课堂表现+上机+作业 期末考试: 50分 3
参 考 书 主要参考书: C程序设计 谭浩强编著 清华大学出版社 C语言大学实用教程 苏小红 电子工业出版社 标准C语言基础教程 Gray J.Bronson 电子工业出版社 网站:http://www.vcgood.com/ C语言帝国 http://bbs.bccn.net/ C语言论坛 http://www.vcok.com/ 唯C空间 4
学习程序设计的方法 具体要求: 1、一讲、二练、三考 2、多读源程序、多编写程序、多上机调试 3、忌上课只听不记、忌“纸上谈兵”、忌课下不练习 具体要求: 1、上课有重点、有选择的记 2、上机有准备:准备好课本、笔记、作业等 3、除课后习题必须全部解决外,多做一些二级考试的模拟题 4、做一个自己感兴趣的完整的程序(小项目)
可以让你今后衣食无忧,能够无忧无虑地生活。 学习程序设计价值 学好C语言,成为C高手, 可以让你今后衣食无忧,能够无忧无虑地生活。 编写系统软件。 编写应用软件。 数据计算。 信息处理。 图形处理。 兴趣是最好的老师! 6
第1章 C语言的基本概述 基本内容: 重点: 了解C语言结构和特点。 了解C语言编辑、编译、运行等上机操作步骤。 掌握算法的概念及特点,了解算法的描述方法。 重点: C程序的结构、特点、算法的概念。 7
1.1 程序设计概述 一、概念: 1、程序:程序是为解决某一问题而编写的语句序列。通俗的说,将解决一个实际问题的具体操作步骤用某种计算机语言描述出来,就形成了程序。
2、程序设计语言:即计算机语言 分类: 机器语言:用计算机能直接理解和执行的“0”和“1” 表示各种操作的程序设计语言,很难使用。 汇编语言:用助记符号来表示各个基本操作的程序设计语言 ,如 add r1, 4 高级语言: 用接近自然语言和数学语言的语法符号描述基本操作的程序设计语言 。 本课程主要介绍的是高级语言中的C语言。
二、程序设计的一般过程 用计算机解决问题的基本过程如图1.1所示: 对于简单问题,前三步可看作一步,即分析问题、设计算法。
二、程序设计的基本过程: (1)分析要解决的问题,明确任务。 即分析要处理的数据是什么,从哪里来,作怎样的处理,结果送往那里。 例如:求学生的平均成绩。 分析该问题,明确它有三项功能: 输入学生成绩、求平均成绩、输出结果; 要处理的原始数据为:学生的成绩; 要进行的处理为:求平均; 结果为:平均值,送屏幕显示或保存于文件中。
二、程序设计的基本过程: (2)分析问题,建立数学模型,并选择合适的解决方案 例如:分析求平均成绩的处理过程,可以将数据的具体含义去掉,抽象为:计算一批数据的平均值。 (3)确定数据结构和算法 :数据结构及数据的组织方式,算法是对数据处理过程的具体描述。不同的数据结构对应不同的算法。 例如:有一堆盒子,上面有编号(设编号为两为数字),要查找某个编号的盒子,如何实现?
二、程序设计的基本过程: 方法1:若该堆盒子已排成一队,则可以从第一个开始逐个比较,直至找到或找完为止。 方法2:若该堆盒子已按编号排成多队,每一队的高位数字相同,则可以根据要找的盒子的高位直接确定他在那一队,然后在该队中再逐个查找。 由此可见,只有先确定了数据结构,才能设计相应的算法
二、程序设计的基本过程: (4)编码:即编写程序 。 用某种计算机语言将上一步设计好的算法描述出来,就是程序。 (5)调试程序:将源程序送入计算机,进行排错、试运行,调试的结果是得到一个能正确运行的程序。 通常,调试程序至少占整个程序设计工作量的一半。 (6)整理资料,交付使用
1.2 C语言的简单历史 C语言的历史:C语言诞生于上个世纪的70年代. 1963年英国剑桥大学推出了CPL(Combined Programming Language)语言. 1967年剑桥又推出 BCPL 语言。(Basic) 1970年美国贝尔实验室的 Thompson(汤姆森)以BCPL为基础,推出 B(取 BCPL的第一个字母)语言。 1972到1973年贝尔实验室的 Ritchie (里奇) 在B语言的基础上设计出了C语言(取BCPL的第二个字母)。 15
C语言的设计者 Dennis M. Ritchie(丹尼斯.里奇) 16
里奇接受美国国家技术勋章(右为当时的美国总统克林顿) 17
Ritchie和Thompson用C语言在开发UNIX操作系统 18
1.3 C程序实例 1.3.1 三个实例: 1. C程序实例(1) 2. C程序实例(2) 3. C程序实例(3) 1.3.1 三个实例: 《 C程序设计》 (Visual C++ 6.0环境) 1. C程序实例(1) 2. C程序实例(2) 3. C程序实例(3) 19
C程序实例(1) 1.C程序实例1 《 C程序设计》 (Visual C++ 6.0环境) 【例1.1】输出一行信息:This is a C program. 程序名为l1_1.cpp。 #include "stdio.h" /*文件包含*/ void main() /*主函数*/ { printf("This is a C program.\n"); /*输出信息*/ } 程序输出结果: This is a C program. 程序演示 20
1.3 C程序的基本结构 1.3.1 C程序的结构特点 1.3.2 C程序的书写格式 《 C程序设计》 (Visual C++ 6.0环境) 21
1.3.1 C程序的结构特点 C语言程序的结构特点: 一个源程序文件中可以包括三个部分: 预处理指令 全局声明 函数定义 #include <stdio.h>等 在函数之外进行的数据声明 每个函数用来实现一定的功能
1.3.1 C程序的基本结构 C语言程序的结构特点: 2.函数是C程序的主要组成部分 一个C程序是由一个或多个函数组成的 必须包含一个main函数(只能有一个) 每个函数都用来实现一个或几个特定功能 被调用的函数可以是库函数,也可以是自己编制设计的函数
1.3.1 C程序的基本结构 C语言程序的结构特点: 3.一个函数包括两个部分: 函数首部 int max ( int x, int y ) 函数的第1行 参数类型 函数类型 函数名 参数名
1.3.1 C程序的基本结构 C语言程序的结构特点: 3.一个函数包括两个部分: 函数首部 int max ( int x, int y ) 若函数无参,在括弧中写void或空括弧 int main( void) 或 int main()
1.3.1 C程序的基本结构 C语言程序的结构特点: 3.一个函数包括两个部分: 函数体 定义在本函数中所用到的变量 声明部分 定义在本函数中所用到的变量 对本函数所调用函数进行声明 执行部分:由若干个语句组成,指定在函数中所进行的操作 可以没有声明部分
1.3.1 C程序的基本结构 C语言程序的结构特点: 3.一个函数包括两个部分: 函数体 void dump ( ) { } 可以是空函数
1.3.1 C程序的基本结构 C语言程序的结构特点: 4. 程序总是从main函数开始执行 5. C程序对计算机的操作由C语句完成 一行内可以写几个语句 一个语句可以分写在多行上 为清晰起见,习惯上每行只写一个语句
1.3.1 C程序的基本结构 C语言程序的结构特点: 4. 程序总是从main函数开始执行 5. C程序对计算机的操作由C语句完成 6. 数据声明和语句最后必须有分号 7. C语言本身不提供输入输出语句 8. 程序应当包含注释,增加可读性
1.3.2 C程序的书写格式 1.C程序书写格式自由 2.C程序书写采用缩进格式 3.程序中适当使用注释信息 《 C程序设计》 (Visual C++ 6.0环境) 1.C程序书写格式自由 2.C程序书写采用缩进格式 3.程序中适当使用注释信息 对于短语句可以多条语句书写在同一行,也可以将长语句分写在多行。但需要注意,多条语句写在一行上,用“;”作为分隔符,一条语句写在多行上,用“\”作为连接符。我们提倡一行一条语句的风格。 根据语句的从属关系,程序书写时采用缩进格式,使程序语句的层次结构清晰,提高程序的可读性。同一层次语句要左对齐,不同层次的语句要缩进若干个字符,这样程序层次清楚,便于阅读和理解。 在书写程序时,适当地加入注释同样可增加程序的可读性。 可以是成对的:/* 注释内容 */ 多行注释符 也可以是:// 单行注释符 30
编写系统软件(如Foxpro unix Windows) 1.4 C语言的特点 C语言特点 语言简洁、紧凑、灵活 运算符和数据类型丰富 程序设计结构化、模块化 生成目标代码质量高 可移植性好 中级语言 熟练的程序员都能用c语言编程 既有高级语言的特点,又有低级语言的特点 编写系统软件(如Foxpro unix Windows) 效率高,可移植性比较好 31
1.5.1 C程序的开发过程 1.编辑:Edit 2.编译: Compile 《 C程序设计》 (Visual C++ 6.0环境) (1)编辑指编辑创建源程序是将编写好的C语言源程序代码录入到计算机中,形成源程序文件(.c 或 .cpp的文件)。 (2)用Visual C++ 6.0环境提供的全屏幕编辑器。 (3)在VC 6.0环境中的源程序文件,默认的扩展名为.cpp,而在Turbo C 2.0环境中的源程序文件的扩展名为.c。 (1)编译源程序就是由C系统提供的编译器将源程序文件的源代码转换成目标代码的过程(. obj 的文件)。 (2)编译过程主要进行词法分析和语法分析,在分析过程中如果发现错误,将错误信息显示在屏幕上通知用户。经过编译后的目标文件的扩展名为.obj。 返回本节目录 32
1.5.1 C程序的开发过程 3.连接:Link 4.运行:Run 《 C程序设计》 (Visual C++ 6.0环境) (1)连接过程是将编译过程中生成的目标代码进行连接处理,生成可执行程序文件的过程。 (2)在连接过程中,时常还要加入一些系统提供的库文件代码。经过连接后生成的可执行文件的扩展名为.exe。 运行可执行文件的方法很多,可在C系统下执行“运行”命令。也可以在操作系统下直接执行可执行文件。 可执行的程序文件运行后,将在屏幕上显示程序执行的结果。 33
1.5.1 C程序的开发过程 《 C程序设计》 (Visual C++ 6.0环境) 34
常用的集成开发环境 Visual C++ 6.0 Turbo C++3.0 WINtc Turbo C 2.0集成开发环境 C语言程序设计 第一章 C语言概述 常用的集成开发环境 Visual C++ 6.0 Turbo C++3.0 WINtc Turbo C 2.0集成开发环境 35
1.5.2 Visual C++ 6.0集成环境 利用Visual C++ 6.0集成环境开发C程序的过程如下: 2.编辑源程序文件 3.编译和连接 4.执行 36
1.5.2 Visual C++ 6.0集成环境 1.启动Visual C++ 6.0环境: 方法:单击 “开始”->“程序”->“Microsoft Visual studio 6.0”->“Microsoft Visual C++ 6.0”命令,启动Visual C++,VC6主窗口如下: 菜单栏 项目工作区 标题栏 输出区 工具栏 状态栏 文件编辑区 37
1.5.2 Visual C++ 6.0集成环境 2. 编辑源程序文件: 《 C程序设计》 (Visual C++ 6.0环境) 单击该选项 输入项目名 《 C程序设计》 (Visual C++ 6.0环境) (1)建立新工程项目 ①单击“文件”-“新建”,弹出 “新建”对话框。 单击“工程” 选择新项目位置 ②单击“工程”选项卡;单击 “Win32 Console Application” 选项;“工程”文件框中输入项目名,如“gc1”和“位置”框输入或选择新项目所在位置,单击 “确定”按钮。 弹出“Win32 Console Application Step 1of 1”对话框。 单击“确定” 单击“完成” 单击“Win32 Console Application” 单击“确定” ③单击“An empty project”按钮和“完 成”按钮。系统显示“新建工程信息”对 话框。单击“确定”按钮。 38
1.5.2 Visual C++ 6.0集成环境 2. 编辑源程序文件 《 C程序设计》 (Visual C++ 6.0环境) 输入文件名 (2)建立新项目中的文件 ①单击“文件”-“新建”,弹 出“新建”对话框。 单击“文件” 选择“添加工程” 单击“C++ Source file” ② 选择“文件”选项卡。单击 “C++ Source File”选项,在 “文件”文件框中输入文件名, 单击“确定”按钮。系统自动 返回VC6主窗口。 输入源程序 单击“确定” ③显示文件编辑区窗口,在文件编辑 区窗口输入源程序文件。 39
1.5.2 Visual C++ 6.0集成环境 3. 编译和连接 《 C程序设计》 (Visual C++ 6.0环境) 单击“编译” 方法一:选择主窗口菜单栏中“组建”菜单中的编译 单击“Build” 方法二:单击主窗口编译工具栏上的 “Build”按钮进行编译和连接。 (1)系统对程序文件进行编译和连接,生成以项目名称命名的可执行目标代码文件.exe。 (2)编译连接过程中,系统如发现程序有语法错误,则在输出区窗口中显示错误信息,给出错误的性质、出现位置和错误的原因等。如果双击某条错误,编辑区窗口右侧出现一个箭头,指示再现错误的程序行。用户据此对源程序进行相应的修改,并重新编译和连接,直到通过为止。
1.5.2 Visual C++ 6.0集成环境 4. 执行 《 C程序设计》 (Visual C++ 6.0环境) 方法一:单击“组建”菜单中“执行”命令。 方法二:单击主窗口编译工具栏上的 “Build Execute”按钮来执行编译连接后的程序。 单击“编译” 单击“Build Execute” 运行成功,屏幕上输出执行结果,并提示信息:“Press any key to continue”。此时按任意键系统都将返回VC6主窗口。 在执行程序过程中出现运行错误。用户要修改源程序文件并且重新编译、连接和执行。 41
习题一 1.1, 1.3, 1.3 复习第二章数据的存储与运算 42