• 1. C程序设计
    • 2. 课程要求 为什么学习程序设计 为什么选择C语言 怎样学习C程序设计
    • 3. 为什么要学习程序设计 计算机的本质是“程序的机器”,只有懂得程序设计,才能进一步懂得计算机,真正了解计算机是怎样工作的,掌握用计算机处理问题的方法;培养分析问题和解决问题的能力。即使将来不是计算机专业人员,由于学过程序设计理解软件生产的特点和生产过程,就能与程序开发人员个更好的沟通与合作,开展本领域中的计算机应用,开发与本领域有关的应用程序。
    • 4. 为什么选择C语言 进行程序设计,必须用一种计算机语言作为工具。可选择的语言很多,各有特点和应用领域。 C语言: 代码量小:同样功能的软件用C语言编写容量很小。Wps与office,界面功能基本类似,但是wps只有23.3M,但是微软office就有千兆左右。 速度快:windows内核是C语言,外核是C++。unix和linux都是用c语言编写的。 功能强大:C语言可访问我们的硬件,C语言中有指针可访问我们的内存等硬件。 C++是为处理大规模的程序开发而研制的大型语言,比C语言复杂难学。C语言是更为基本的,最基础的。在它基础上学习java和c#更容易。C语言是当前程序员共同的语言。
    • 5. 怎样学习C语言理论:讲授理论知识,多做练习(C语言程序设计—学习指导与练习提高) 上机:在机房完成本课练习。原则上每次上机作业都要进行检查记分。 多思考,多练习,多上机。 目标:能看懂程序,并调试程序,自学能力要强。(计算机二级等级考试)
    • 6. 第一章C语言概述
    • 7. 本章要点C语言的发展及其特点 运行C程序的步骤与方法 最简单的C语言程序 程序设计的任务
    • 8. C语言发展及其特点(略)C语言是国际上广泛流行的高级语言。 C语言是在B语言的基础上发展起来的。 B (BCPL)语言是1970年由美国贝尔实验室设计的, 并用于编写了第一个UNIX操作系统,在PDP 7上实现。优点:精练,接近硬件,缺点:过于简单,数据无类型。 1973年贝尔实验室的D.M.Ritchie 在B语言的基础上设计出了C语言,对B取长补短,并用之改写了原来用汇编编写的UNIX,(即UNIX第5版),但仅在贝尔实验室使用。
    • 9. C语言出现的历史背景(略)1975年UNIX第6版发布,C优点突出引起关注。 1977年出现了《可移植C语言编译程序》 ,推动了UNIX在各种机器上实现 ,C语言也得到推广,其发展相辅相成。 1978年影响深远的名著《The C Programming Language》由 Brian W.Kernighan和Dennis M.Ritchie 合著,被称为标准C。 之后,C语言先后移植到大、中、小、微型计算机上,已独立于UNIX和PDP,风靡世界,成为最广泛的几种计算机语言之一。
    • 10. C语言出现的历史背景(略)1983年,美国国家标准化协会(ANSI)根据C语言各种版本对C的发展和扩充,制定了新的标准ANSI C ,比标准C有了很大的发展。 1988年K & R按照 ANSI C修改了他们的《The C Programming Language》。 1989年,ANSI公布了一个完整的c语言标准——ANSI C或C89。 1990年,国际标准化组织接受了C89为ISO C 的标准(ISO9899—1990)。 1995年,ISO又修订了C语言标准。 1999年,ISO有对C语言标准进行修订在基本保留原来的C语言特征的基础上,针对应用的需要又增加一些功能。命名ISO/IEC9899:1999 2001和2004年先后进行两次技术修正(TC1、TC2) ISO/IEC9899:1999及其技术修正被称为C99。讲课依据C99标准。
    • 11. 说明: 不同版本的C编译系统所实现的语言功能和语法规则又略有差别,因此我们应了解所用的C语言编译系统的特点(可以参阅网上相关资料)。本课程使用的是二级语言考试的编译程序Visiua C++6.0。
    • 12. C语言的特点(略)(1)语言简洁、紧凑,使用方便、灵活。 32个关键字、9种控制语句,程序形式自由,主要用小写字母表示,压缩而一切不必要的成分。 (2)运算符丰富。34种运算符,把括号、复制和强制类型转化等都作为运算符处理,从而使C语言的运算类型机极其丰富,表达式类型多样化,灵活使用各种运算符。 (3)数据类型丰富,具有现代语言的各种数据结构。整型、浮点型、字符型、数组类型、指针类型、结构体类型和共用体类型,C99扩充了复数浮点类型、超长整型和布尔类型。 (4)具有结构化的控制语句 ,是完全模块化和结构化的语言。 (5)语法限制不太严格,程序设计自由度大。例如对数组越界不进行检查,由程序编写者自己保证程序的正确,对变量的类型使用比较灵活。
    • 13. 32个关键字(略)1 数据类型关键字(12个): (1)char:声明字符型变量或函数 (2)double:声明双精度变量或函数 (3)enum:声明枚举类型 (4)float:声明浮点型变量或函数 (5)int:声明整型变量或函数 (6)long:声明长整型变量或函数 (7)short:声明短整型变量或函数 (8)signed:声明有符号类型变量或函数 (9)struct:声明结构体变量或函数 (10)union:声明共用体(联合)数据类型 (11)unsigned:声明无符号类型变量或函数 (12)void:声明函数无返回值或无参数
    • 14. 2控制语句关键字(12个): A循环语句 (1)for:一种循环语句(可意会不可言传) (2)do:循环语句的循环体 (3)while:循环语句的循环条件 (4)break:跳出当前循环 (5)continue:结束当前循环,开始下一轮循环 B条件语句 (1)if:条件语句 (2)else:条件语句否定分支(与if连用) (3)goto:无条件跳转语句32个关键字(略)
    • 15. 2控制语句关键字(12个): C开关语句 (1)switch:用于开关语句 (2)case:开关语句分支 (3)default:开关语句中的“其他”分支 D返回语句 return:子程序返回语句(可以带参数,也看不带参数)32个关键字(略)
    • 16. 3存储类型关键字(4个) (1)auto:声明自动变量一般不使用 (2)extern:声明变量是在其他文件正声明(也可以看做是引用变量) (3)register:声明积存器变量 (4)static:声明静态变量 4其它关键字(4个): (1)const:声明只读变量 (2)sizeof:计算数据类型长度 (3)typedef:用以给数据类型取别名(当然还有其他作用 (4)volatile:说明变量在程序执行中可被隐含地改变32个关键字(略)
    • 17. 3存储类型关键字(4个) (1)auto:声明自动变量一般不使用 (2)extern:声明变量是在其他文件正声明(也可以看做是引用变量) (3)register:声明积存器变量 (4)static:声明静态变量 4其它关键字(4个): (1)const:声明只读变量 (2)sizeof:计算数据类型长度 (3)typedef:用以给数据类型取别名(当然还有其他作用 (4)volatile:说明变量在程序执行中可被隐含地改变32个关键字(略)
    • 18. (6)允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可直接对硬件进行操作。兼有高级和低级语言的特点 。既是成功的系统描述语言,有时通用的程序设计语言。 (7)目标代码质量高,程序执行效率高。只比汇编程序生成的目标代码效率低10%-20%。 (8)程序可移植性好(与汇编语言比)。基本上不做修改就能用于各种型号的计算机和各种操作系统。 C语言的特点(略)
    • 19. 解释1:C++是由于开发大型应用软件的需要而产生的,并不是所有的人都要去编写大型软件; 解释2:面向对象的基础是面向过程。C++是面向对象的语言,C是面向过程的,学起来比C语言困难得多,所以不太适合程序设计的初学者。问题:既然有了面向对象的C++语言,为什么还要学习C语言?C语言的特点(略)
    • 20. 运行C程序的步骤与方法 ---在Visual C++6.0环境下运行C程序的方法安装Visual C++6.0和进入Visual C++6.0环境 Visual C++6.0是在Windows环境下工作的, Visual C++6.0有中文版和英文版,方法相同。 为了能使用Visual C++6.0集成环境,必须事先在所用的计算机上安装Visual C++6.0。 (安装时选择默认设置,安装结束时如果提示未响应,直接关闭即可。)
    • 21. Visual C++6.0主界面
    • 22. 1. 新建/打开程序 1.1 新建File—New—Files—C++Source File
    • 23. 表示要建立新的c++源程序文件。然后在location(位置)中输入源程序文件的存储路径(除C盘之外,可用字母、数字和下划线,不能用中文,如D:\ c1_1 ),file(文件)输入源程序文件的名字(如c1_1.c)。我们指定的文件名后缀为.c,如果是.cpp则表示要建立的是C++程序。
    • 24. 输入实例程序(例1.1 输出一行信息。程序及说明见教材P3),并保存。
    • 25. 1.2 打开已有程序 文件—打开,可以在此基础上修改另存为一个新的源程序。 在编译新程序前,应先用file---close workspace(关闭工作空间) 将原有的工作区关闭,以免新文件在原有的工作区进行编译。
    • 26. 2. 程序的编译 -- Ctrl+F7在编辑和保存源文件以后,如需要对其进行编译,单击build(组建),在菜单中选择complie(编译) 此编译命令要求一个有效地项目工作区,你是否同意建立一个默认的项目工作区。单击“是”,表示同意由系统建立默认的项目工作区,然后开始编译。 在进行编译时,编译系统检查源程序中有无语法错误,然后在调试信息窗口输出便以信息,如果无错,生成目标文件c1-1.obj,如果有错,指出位置和性质,提示改正。
    • 27. 编译系统能查出程序中的语法错误。语法错误分为两类:一类是致命错误,以error表示,如果有这种错误就通不过编译,无法形成目标程序。另一类是轻微错误,以warning表示,这类错误不影响生成目标程序和可执行程序,但可能影响运行的结果。
    • 28. 3. 程序的连接得到目标程序后,就可以对程序进行链接了,生成的目标程序c1-1.obj编译系统据此确定在连接后生成一个c1-1.exe的可执行文件,在菜单中显示了此文件名。build(组建)--bulid(组建)。
    • 29. 4. 程序的运行在得到可执行文件.exe后,就可以直接执行.exe了。选择build(组建)---!execute(执行)。 按任何一键以便继续。 回到主窗口,建立新的程序,选择关闭工作空间
    • 30. 简单的C语言程序介绍#include //这是编译预处理指令 int main( ) //定义主函数 { //函数开始 printf (“This is a C program.\n”); //输出所指定的一行信 return 0; //函数执行完毕时返回函数值0 } //函数结束的标志 说明: main-主函数名, 每个C程序必须有一个主函数main,main前面的int表示此函数的类型。在执行主函数后会得到一个值(即函数值)。 return 0;当main函数执行结束前将整数0作为函数值,返回到调用函数处(返回给调用main函数的操作系统的。程序员可以利用操作指令检查main函数的返回值,从而判断main函数师傅正常执行。)。(c99建议。) { }是函数开始和结束的标志,不可省 每个C语句以分号结束 printf是c编译系统提供的函数库中的输出函数。 使用函数库中的输入输出函数时,编译系统要求程序提供有关此函数的信息。应在程序开头一行写: #include stdio.h是系统提供的一个文件名。用#include指令把这些信息调入供使用说明: 本程序的作用是输出一行信息: This is a C program.
    • 31. 注释C语言允许的两种注释方式: 1)以//开始的单行注释。不能跨行。如果注释内容一行内写不下,可以另起一行重新用//,继续注释。注释范围从//开始,以换行符结束。 2)以/*开始以*/结束的块式注释,可以包含多行。内容它可以单独占一行,也可包含多行。编译系统在发现一个/*后,会开始找注释结束符*/。把中间内容作为注释。 注释可用汉字或英文字符表示
    • 32. 例1.2 求两数之和 #include int main( ) /*求两数之和*/ { int a,b,sum; /*声明,定义变量为整型*/ /*以下3行为C语句 */ a=123; b=456; sum=a+b; printf(″sum is %d\n″,sum); }说明: /*……*/表示注释。注释只是给人看的,对编译和运行不起作用。所以可以用汉字或英文字符表示,可以出现在一行中的最右侧,也可以单独成为一行。说明: 输出一行信息:sum is 579
    • 33. 例1.3 求3个数中较大者。 #include int main( ) /* 主函数*/ { int max(int x,int y); / 对被调用函数max的声明 */ int a, b, c; /*定义变量a、b、c */ scanf(″%d,%d″,&a,&b); /*输入变量a和b的值*/ c=max(a,b); /*调用max函数,将得到的值赋给c */ printf(″max=%d\\n″,c); /*输出c的值*/ }int max(int x, int y) { int z; if (x>y) z=x; else z=y; return (z); }max(int x,int y); max(a,b); 说明:本程序包括main和被调用函数max两个函数。max函数的作用是将x和y中较大者的值赋给变量z。return语句将z的值返回给主调函数main。
    • 34. C语言程序的结构(1)一个程序由一个或多个源程序文件组成。一个规模较小的程序,往往只包括一个源程序文件。一个源程序文件包括3部分: 预处理指令:由预处理的到的结果与程序其它部分一起,组成一个完整的,可以用来编译的最后的源程序。 全局声明:例如把例2中的int a,b,sum;放到main函数的前面,就是全局声明,在整个源程序文件范围内有效在函数中声明的变量,只在函数范围内有效。本节所讲例子没有用全局声明。只定义了局部变量。 函数定义 (2) 函数是c程序的主要组成部分,程序的几乎全部工作都是由各个函分别完成的,函数是c程序的基本单位。必须包含仅一个main函数 (3)一个函数由两部分组成: 函数的首部:例1.3中的max函数首部 int max(int x,int y ) 函数体:花括号内的部分。若一个函数有多个花括号,则最外层的一对花括号为函数体的范围。 函数体包括两部分 : 声明部分:int a,b,c; 可缺省 执行部分:由若干个语句组成。可缺省
    • 35. 简单的C语言程序介绍注意: 函数的声明部分和执行部分都可缺省,例如: void dump ( ) { } 这是一个空函数,什么也不做,但是合法的函数。
    • 36. 简单的C语言程序介绍小结: (1) C程序总是从main函数开始执行的,与main函数的位置无关。 (2) C程序书写格式自由,一行内可以写几个语句, 一个语句可以分写在多行上,C程序没有行号。 (3) 每个语句和数据声明的最后必须有一个分号。 (4) C语言本身没有输入输出语句。输入和输出的操作是由库函数scanf和printf等函数来完成的。C对输入输出实行“函数化”。 (5) 程序应当包含注释。增加程序的可读性。
    • 37. 运行C程序的步骤和方法1. 输入与编辑源程序 2. 对源程序进行编译(Compile) 3. 与库函数连接(Build) 4. 运行目标程序(Execute)
    • 38. 第一章 上机作业上机运行3个例题。 参照例题:编写一个c程序,输出以下信息: ******************** Very good ! ********************
    • 39. 第一章 书面作业请编写一个C程序,输出以下信息: Hello, everyone. This is my first C program!
    • 40. 第一章 思考题
    • 41. (本页无文本内容)