C语言第一章语言概述E.ppt
《C语言第一章语言概述E.ppt》由会员分享,可在线阅读,更多相关《C语言第一章语言概述E.ppt(56页珍藏版)》请在三一办公上搜索。
1、第一章 C语言程序设计概述,程序设计与C语言概述简单的C语言程序举例算法及其描述结构化程序设计方法,一、程序设计语言的发展,面向机器的语言(低级语言)机器语言(加运算:01D8)-16进制汇编语言(加运算:ADD AX,BX)-文本面向过程的语言(高级语言)FORTRANBASICC 面向对象的语言(高级语言)C+,VC,VB,JAVAVFP,机器语言,由01序列构成的指令码10000000 加10010000 减机器能识别,执行速度快.不直观、难记、难认、难理解、不易查错。,汇编语言,由助记符代替 0 1 代码。ADDAX,BX SUBAX,BX面向机器,随机器而异。机器不能直接识别、理解和
2、执行。汇编语言源程序的执行过程,汇编语言与机器语言,都依CPU的不同而异,是面向机器的语言。用面向机器的语言编程,可以编出效率极高的程序,但是编程时,程序员不仅要考虑解题思路,还要熟悉机器的内部结构,并且要“手工”地进行存储器分配。编程劳动强度很大,给计算机的普及推广造成很大的障碍。,面向过程的语言(高级语言),不再是面向具体的机器,而是面向解题过程。不需要熟悉计算机的内部的具体构造。用人们易于理解的形式表示解题过程。是计算机发展道路上的一个里程碑。执行过程:,面向对象的语言(高级语言),把现实世界看成是由许多对象(object)所组成,对象之间通过互相发送和接收消息进行联系;每个对象都是一个
3、数据和方法的封装体抽象数据类型。所有的对象都属于特定的“类”(class),或者说每一个对象都是类的一个实例。封装和继承是面向对象的程序设计语言的基本特征。面向对象的程序设计语言大都提供可视化的开发工具,所以也有将其称为可视化编程语言的。面向对象的程序比面向过程的程序更清晰、易懂,更适宜编写更大规模的程序,常用高级语言及其发展变迁,C语言发展简况,1960 ALGOL 面向问题(远离硬件)1963 CPL 部分硬件驱动1967 BCPL 直接硬件驱动 但太简单1970 B 197273 C 直接硬件驱动 功能强大 C+面向对象 Visual-C+提供了可视化编程工具,程序设计语言的支撑环境,操
4、作系统是各种软件的核心与基础,所有其他程序都在它的控制下运行操作系统的主要功能包括:CPU管理、存储器管理、文件管理、设备管理、作业管理等在不同的操作系统下编译和运行C语言程序的方式和命令不同。,经过编译和连接后生成的可执行程序,其他程序,程序的编辑、编译、连接与执行,编辑:将源程序逐个字符输入到计算机内存;修改源程序;将修改好的源程序保存在磁盘文件中。编辑的对象是源程序,它是以ASCII代码的形式输人和存储的,不能被计算机执行。使用较多的编辑软件有:UNIX下的编辑程序ed、vi等,MS-DOS下的Edit、Wordstar,WPS,Windows下的 Notepad、Write、Word等
5、字处理软件。目前的集成开发环境大部分都有自己的编辑器,掌握他的使用,可以提高编写程序的效率。,程序的编辑、编译、连接与执行,编译:将已编辑好的源程序(已存储在磁盘文件中)翻译成二进制的目标代码。在编译时,还要对源程序进行语法检查,如发现有错,则在屏幕上显示出错信息,此时应重新进入编辑状态,对源程序进行修改后再重新编译,直到通过编译为止。编译后得到的二进制代码在UNIX下是后缀为“.o”的文件,在MSDOS下是后缀为“.obj”文件。经编译后得到的二进制代码还不能直接执行,因为每一个模块往往是单独编译的,必须把经过编译的各个模块的目标代码与系统提供的标准模块(如C语言中的标准函数库)连接后才能运
6、行。,程序的编辑、编译、连接与执行,连接:将各模块的二进制目标代码与系统标准模块经连接处理后,得到具有绝对地址的可执行文件,它是计算机能直接执行的文件。在Unix操作系统下,他以“.out”为后缀;在MS-DOS和Windows下,以“.exe为后缀(例如,f.exe)执行:一个经过编译和连接的可执行件,只有在操作系统的支持和管理下才能执行它。,程序的编辑、编译、连接与执行,编辑,目标文件(.obj),编译,源文件(.c),连接,程序文件(.exe),运行,有语法错误,有连接错误,库文件(.lib),有逻辑错误,完成,有错误时,C语言的特点,语言简洁、紧凑、使用方便、灵活。结构上:核心小、外围
7、(函数)大运算符、数据结构丰富具有结构化的控制语句语法限制不太严格,程序设计自由度大。允许直接访问物理地址,能进行位(bit)操作生成目标代码质量高,程序执行效率高。可移植性好,二、简单的C语言程序举例,用库函数组装C程序C语言本身语句很少,许多功能都是通过函数来完成的(如输入输出功能并不是C语言本身提供的)。这样做的目的是使C语言的核心部分规模较小,而外围(函数)可以做得很丰富,并且可以根据需要增加新的函数。为了避免重复开发,提高编程效率和可靠性,C语言提供了丰富的库函数,在编写C程序时应尽量利用C的库函数所提供的功能,来实现自己的目的。,#include stdio.hvoid main(
8、)printf(This is a C program.n);运行结果为:This is a C program.,例1.1 显示“This is a C program”:,C程序由函数组成,每一个函数完成相对独立的功能。本程序是由一个称为main的函数构成的。main是函数名,函数名后面有一对圆括号,括号内写函数参数,本程序的main函数没有参数故不写,但圆括号不能省略。一个完整的程序必须有一个main函数,它称为主函数,程序总是从main函数开始执行。,main()后面有一对花括号,其内的部分称为函数体。一般情况下函数体由“说明部分”和“执行部分”组成。说明部分定义数据类型;执行部分给出
9、操作指令,执行部分由若干语句组成。本程序中的函数体只由一个语句组成。,C语言规定每个语句以分号“;”结束,分号是语句不可缺少的组成部分。本程序中main函数的函数体内只有一个语句,也必须有一个分号。,printf是C的库函数中的一个函数,它的作用是在显示屏上输出指定的内容.,“n”是C语言中规定的一个特殊符号,作为控制代码,其作用是“回车换行”。本程序中“n”的作用是:在输出“This is a C Programing”以后执行一个回车换行操作,使后续的输出从下一行的左端开始。以后还会讲述在反斜杠“”后面跟一个指定的字符,就会组合成一个具有专门含义的“转义字符”。,调用C语言的库函数,必须用
10、#include预编译指令调入包含该函数定义的“头文件”,“.h”是头文件的后缀。头文件总是被放在函数的前面。,例1.2 求Sin(X)的值,#include“stdio.h”#include“math.h”void main()float x;/*定义一个实型变量*/x=sin(0.19199);printf(“sin(0.19199)=%fn”,x);运行结果为:sin(0.19199)=0.190813,用输出函数printf输出数值数据的形式:括号中有双引号内和双引号外两部分。双引号内是“格式字符串”,用它指定输出时的打印格式。“f”是输出一个实数的格式字符,执行时用双引号外的变量的值
11、取代“f”,并以实型格式输出。f格式提供小数点后6位数字,小数点前的数字位数不指定,根据实际值的位数输出。,“x=sin(0.19199)”可执行一次函数调用,求出0.19199弧度的正弦值,并赋给实型变量x。,“math.h”是调用数学函数时需要包含的头文件.,“float x;”是声明x是一个实型变量,/*与*/之间为注释信息,对程序运行结果不发生影响,也不被编译,只是为了帮助人们(包括自己)更好地理解程序中有关部分内容而写的。,二、简单的C语言程序举例,设计自己的C函数用库函数组装程序是程序设计的一条捷径和重要方法。但是,任何函数库都不可能是包罗万象的,当我们在函数库中找不到所需功能的函
12、数时,便要动手设计自己所需的函数。函数设计的基本方法可以是从主函数开始,按调用关系,自上而下地进行;也可以先设计函数,然后在主函数调用,自下而上进行。,例 1.3 求三个数的平均值,/函数定义float average(float x,float y,float z)float aver;aver=(x+y+z)/3;函数体 return(aver);,函数头:说明函数名、返回值类型和参数,定义参数的个数和类型,将aver的值作为函数的返回值,并返回调用程序,应当注意,函数定义中所使用的参数(这里的x,y,z)称为形式参数(简称形参),只用于描述被加工的数据是一种什么样的角色,以及如何对它们进
13、行加工,并不说明也不可能说明哪些具体的数据被加工。具体的数据是由调用语句在调用时传递的。,例 1.3 求三个数的平均值,/在主函数中声明和调用average 函数#include stdio.hvoid main()float average(float x,float y,float z);float a,b,c,ave;a=3.5;b=4.6;c=7.9;ave=average(a,b,c);printf(average=%f n,ave);运行结果为:average=5.333333,用变量a,b,c的值作为参数,调用average函数,并将函数返回值赋给变量ave,这是对要调用函数的声
14、明,声明a,b,c,ave为实型变量,给变量a,b,c赋值(一行可以有多个语句),例1.4 求任意三个数的平均值,/在主函数中声明和调用#include stdio.hvoid main()float average();float a,b,c,ave;scanf(%f,%f,%f,调用“格式输入函数”(库函数)scanf,从键盘输入所需的数据,并依次赋给有关变量.,声明average为返回实型数据类型的函数。如果函数调用在前,函数定义在后,必须在调用前声明,反之则可以不声明。,“&a,&b,&c”用于分别求变量a,b,c的地址,“&”是“地址运算符”或“取地址符”,&a表示取变量a的地址.,
15、“%f,%f,%f”表示输入三个数a,b,c时为实数,其相临两个输入数据间以逗号相隔。,例1.5 求任意两个数中的大数,#include stdio.hvoid main()float a,b;scanf(%f,%f,这是if语句,它的作用是判断其后的表达式(ab)是否成立,如果成立则执行紧随其后的语句,否则执行else后的语句。,注意 if语句的表达式后和else语句后没有分号。,例1.6 求1+2+3+10的值,#include stdio.hvoid main()int sum,i;sum=0;i=1;while(i=10)sum=sum+i;i=i+1;printf(%dn,sum);
16、,while语句是循环语句,它后面的一对花括号内是循环体,当它后面括号内的表达式成立时才执行循环体。,注意 while语句的表达式后不能有分号。否则会成为死循环。,C语言函数定义的一般形式,函数类型 函数名(形式参数及其类型,)数据定义部分 函数执行部分,函数头,函数体,float average(float x,float y,float z)float aver;aver=(x+y+z)/3;return(aver);,把函数的形参类型定义写在函数名后面的括号内float average(x,y,z)float x,y,z;改写为一行:float average(float x,float
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 第一章 概述

链接地址:https://www.31ppt.com/p-6504269.html