C语言程序设计Ch

上传人:lc****zq 文档编号:54793193 上传时间:2018-09-19 格式:PPT 页数:70 大小:722KB
返回 下载 相关 举报
C语言程序设计Ch_第1页
第1页 / 共70页
C语言程序设计Ch_第2页
第2页 / 共70页
C语言程序设计Ch_第3页
第3页 / 共70页
C语言程序设计Ch_第4页
第4页 / 共70页
C语言程序设计Ch_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《C语言程序设计Ch》由会员分享,可在线阅读,更多相关《C语言程序设计Ch(70页珍藏版)》请在金锄头文库上搜索。

1、第一章 C语言程序设计的概念,2010年8月,学习目标,本章要求: 掌握程序与程序设计语言的概念及高级语言的开发过程; 了解C语言的标准; 了解C语言程序涉及的基本概念; 掌握C程序的基本组成结构; 掌握最基本的赋值运算与算术运算; 熟悉开发环境、掌握开发环境的基本操作。 本章重点: C程序的基本组成结构函数 开发环境的熟悉 本章难点: C语言中的函数,1.1程序与程序设计语言,计算机 计算机是用来延伸人的能力的工具,需要人来驾驭 计算机科学的最重要的目的就是解决问题(problem solving) 计算机基本工作过程 整个过程的执行者是硬件,但硬件是受软件控制的 编程就是编写软件使硬件按照

2、人的意图工作 程序 按照一定顺序安排的工作步骤,1.1程序与程序设计语言,自动工作的两个条件 要有记忆功能; 具有按照程序控制相关部件操作的能力。 程序存储控制: 任何工具所做的工作,都是由程序控制的; 只有工具具备记忆程序的功能,并能按照程序进行自我控制,该工具才能自动工作。,1.1程序与程序设计语言,计算机程序设计语言 1、机器语言:(Machine Language) 机器语言是用二进制代码“0”和“1”的形式表示的,是唯一能被计算机直接识别和直接运行的语言;机器语言依赖于计算机指令系统,不同型号的计算机,其机器语言是不同的,因此存在兼容性问题;机器语言的执行效率高,但是不便于记忆和理解

3、,编写的程序难以修改和维护,因此很少直接使用机器语言编程程序。,1.1程序与程序设计语言,2、汇编语言 (Assemble Language),汇编语言程序的执行过程,汇编语言和机器语言都是面向机器的程序设计语言,一般称为低级语言(lower-level machine language)。,采用助记符来代替机器语言的操作数和操作码。,1.1程序与程序设计语言,3、高级语言(Higher-level programming language)高级语言是一种与硬件结构及指令系统无关,表达方式比较接近自然语言和数学表达式的一种计算机程序设计语言。 优点:描述问题能力强,通用性、可读性、可维护性都较

4、好 缺点:执行速度较慢,编制访问硬件资源的系统软件较难。,1.1程序与程序设计语言,机器语言编写的1+1程序101110000000000100000000000001010000000100000000 汇编语言(Assemble Language)编写的1+1程序MOV AX, 1ADD AX, 1,1.1程序与程序设计语言,BASIC语言编写的1+1程序PRINT 1+1 C语言编写的1+1程序#include int main(void)printf(“%dn“, 1+1);,高级语言程序有编译和解释两种执行方式。,编译是将源程序整个编译成等价的,独立的目标程序,然后通过链接程序将目标

5、程序链接成可执行程序。,高级语言编译执行过程,1.1程序与程序设计语言,高级语言程序的编译执行:,高级语言程序的解释执行:,解释方式是将源程序逐句翻译,翻译一句执行一句,边翻译边执行,不产生目标程序。整个执行过程,解释程序都一直在内存中。,高级语言解释执行过程,1.1程序与程序设计语言,流行语言,应用编程语言 机器语言 汇编语言 Basic Pascal C C+ Java C# 专项编程语言 Lotus Notes Power Builder,Web编程语言 HTML XML PHP ASP JSP JavaScript VBScript 其他 perl python VBA,1.1程序与程

6、序设计语言,三、高级语言程序的开发过程 1、分析问题,建立模型,即通过忽略次要方面而找出解题规律的过程 2、表现模型:用一种符号-语言系统来描述模型 3、源程序的编辑 4、程序的编译(或解释)与链接:5、程序的测试与调试 6、编写程序文档 7、程序的维护,重中之重,1.2 C语言及其标准,一、C语言的发展史 一切从一个叫“Space Travel”的电子游戏开始。 为了让他的游戏能在PDP-7上运行,Ken Thompson用汇编语言给PDP-7写了一个操作系统UNIX 汇编太不好用了,Thompson需要高级语言 试验了一些高级语言,包括Fortran,都不理想 他在BCPL基础上,自己设计

7、了一个B语言 UNIX开始发展,B也不够用了 Dennis Ritchie加入,把B改造成C 开始用C重写UNIX,1.2 C语言及其标准,二、C语言的标准,1.3 C语言程序概要,一、C语言的特点 是一种高级语言 高级语言并不是“高级”,只是相对低级语言,在一个高的级别上进行编程 历史悠久,战勋卓著 诞生于上世纪70年代初,成熟于80年代(C89),修 订与90年代(C99) 很多重量级软件都是用C写的 上天入地,无所不能 几乎没有不能用C写出来的软件,没有不支持C的系统 很多流行语言、新生语言都借鉴了它的思想、语法 从C+,到Java,再到C#,还有php等,计算机的层次,高级语言的地盘,

8、低级语言的地盘,C 语 言 的 地 盘,二、函数 例1.1:/*示例代码文件名:ex010101.C*/ /*功能:仅由main()函数构成的语言程序示例*/ #include int main(void) printf(“Programming is fun!n”) ;return 0; 程序运行结果:Programming is fun!,1.3 C语言程序概要,语句结束标志,函数名,函数体结束标志,参数列表,函数返回值,编译预处理命令,函数体开始标志,返回值语句,printf函数调用,注释,1.3 C语言程序概要,几点说明: (1)main函数就是在执行程序时,由操作系统直接调用的函数,

9、每一个C语言程序有且仅有一个main函数; (2)函数名后面的“()”用于表示参数,参数部分写“void”表示该函数没有参数 (3)中的部分称为函数体,用来表明该函数的功能如何实现; (4)int 表明该函数的返回值是一个整数,若程序正常执行和结束,应返回0,否则返回一个非0值;,1.3 C语言程序概要,(5)程序最前面的#include是在程序编译之前要处理的内容,称为文件包含命令,属于编译预处理命令; (6)“/*/”中的文字是一些说明性文字注释,用以增加程序可读性,不被编译,也不被执行; /* 和 */ 必须成对使用,且“/”和“*”、以及“*”和“/”之间不能有空格,否则都出错;注释的

10、位置,可以单占1行,也可以跟在语句的后面;允许多行注释;注释中允许使用汉字。在非中文操作系统下,看到的是一串乱码,但不影响程序运行。,有错的程序,include studio.h main /* this program prints the number of weeks in a year. /* ( int s s:=52; print(There are s weeks in a year“);,有错的程序,在第一行中有三个错误。 以 # 开始一行。 studio.h 应为 stdio.h 把文件名放在 中。 在第二行中有一个错误。是 (), 不是 。 在第三行中有一个错误。注释是以

11、*/ 结束, 而不能用 /* 结束。 在第四行中有一个错误。函数体以 开始。 在第五行中有一个错误。语句结尾使用 ; 在第六行中有一个错误。赋值语句中用 =, 而不用 := 在第七行中有三个错误。 是 printf 而不是 print 缺少 “ 打印十进制整数要用 %d 在第八行中有一个错误。函数体以 结束。,正确的程序,/* this program prints the number of weeks in a year. */ #include int main(void) int s; s=52; printf(“There are %d weeks in a year”,s); re

12、turn 0;,1.3 C语言程序概要,例1.2 计算两个整数2、3相加的结果。/*文件名:ex010201.c*/ #include int add(int,int); int main(void) int s; /*声明将要使用的变量s是整型的*/s=add(2,3);/*调用add()进行计算,并用s接收结果*/printf(“The sum is:%d”,s);/*输出s的值*/return 0; ,1.3 C语言程序概要,int add(int a, int b) /*函数add()的定义*/ int sum; /*定义一个整数sum,用于存放和*/sum=a+b; /*将a和b求和

13、,并把结果赋给sum*/return sum; /*返回sum的值到调用程序*/ ,1.3 C语言程序概要,ex010201,ex010201.exe,1.3 C语言程序概要,几点说明: (1)变量及其类型:变量是程序中被命名的数据实体;变量在使用之前要先进行声明 (2)函数必须声明:函数声明的作用是让编译器知道该函数的原型,以便对调用语句进行语法检查。若函数定义出现在其被调用之前,就可以不写函数声明;若函数调用在其定义之前,则需要一个函数原型声明。,1.3 C语言程序概要,一般惯例:在main函数前声明所有函数,在main函数后定义所有函数, main函数中调用所有函数。编译器把某些类型的库

14、函数的原型声明写在某一头文件中,程序员只要把要用到的头文件用文件包含语句写在程序的函数调用之前,就等于把函数原型声明写在了函数调用之前。 (3)函数必须定义 (4)函数必须调用,定义是为了调用,1.3 C语言程序概要,关于赋值运算:“=”称为赋值运算符,其作用是把右面的值赋给其左面的变量(左值);在C语言中,等号是“=”。,1.3 C语言程序概要,例1.3 计算一个数的正弦值的C语言程序。 /* 文件名:ex010301.c */ #include #include int main(void) float x; /*定义x为实型变量*/x = sin(0.19199); /*调用sin函数*

15、/printf(“%fn“,x); /*调用printf函数,输出x的值*/return 0; ,1.3 C语言程序概要,总结: (1)C语言程序由函数组成,函数由声明和语句组成; (2)C语言程序的执行是从系统调用主函数开始的; (3)主函数的部分功能也可以通过其他子函数补充实现; (4)使用库函数时,要通过文件包含命令将所需的头文件包含至程序调用该函数之前。,1.3 C语言程序概要,三、语句 1、表达式语句 例1.1中的s=add(2,3)和sum=a+b 使用运算符需要注意的三点: (1)含义:区分一个运算符号在C语言程序中和在普通数学表达式中的意义的不同 (2)优先级:一个表达式中存在

16、多个运算符时,进行运算的先后顺序。 (3)结合性:即在一个表达式中存在多个优先级别相同的运算符时,先进行哪个运算。,1.3 C语言程序概要,2、流程控制语句,1.3 C语言程序概要,例1.4/*文件名:ex010401.c*/ #include void max2(float x,float y) float max; /*声明一个浮点型变量max*/if(x=y) /*选择判断 */max=x; /*条件满足时所进行的运算*/elsemax=y; /*条件不符时所进行的运算*/printf(“The max is:%f”,max); ,1.3 C语言程序概要,int main(void) float a,b;printf(“Input two real numbers:n”); /*输入提示*/scanf(“%f%f”, ,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号