第一章概述

Download Report

Transcript 第一章概述

第一章概述
本章主要内容
•
•
•
•
•
计算机语言及发展
C语言的特点
C语言简单程序组成
从C语言源代码形成可执行代码过程
VC++6.0开发环境介绍
计算机语言
• 语言:
– 交流沟通的工具
• 计算机语言:
– 人和计算机交流的
工具,通过计算机语
言,告诉计算机,怎样
完成工作
计算机语言的发展--机器语言
• 机器语言是计算机硬件唯一
能识别的语言
• 在机器语言中,不同的二进制
代码表示不同的操作,CPU中
的控制器, 把指令不同的二进
制位,在CLK不同始终周期,通
过控制总线发送出开关信号,
这样就把原来没有先后关系
的二进制指令,翻译成有前后
次序的一系列控制信号,控制
计算机的操作
计算机语言的发展--汇编语言
• 由于机器语言不易记忆,因此直接用机器语言编
写程序极不方便,因此用一个能表示此指令功能
的英文单词代替原来的一条机器指令,以方便记
忆和编程,这就产生了汇编语言,如:
– MOV 067EH,36
– INC AX
• 汇编语言是计算机硬件无法识别的,必须由人工
或汇编程序把汇编语言组成的程序翻译成机器
语言的程序,才能交给计算机去执行
计算机语言的发展--高级语言
•
•
•
机器语言和汇编语言统称为低级语言
低级语言特点:
优点:
–
•
缺点:
–
–
•
•
•
•
编程效率非常低
不具备可移植性
高级语言的设计是根据人们编程的需要而非象汇编语言那样寻找的助记符号,脱
离了计算机的硬件,使得非计算机专业的人即使不了解计算机结构,也能编程完
成自己的工作,如
Age=36
write(“welcome”);
优点:
–
–
•
直接对硬件操作,灵活性很高
编程效率高,
具备可移植性
缺点:
–
灵活性不如低级语言
计算机语言的发展-- 4GL
•
•
•
•
机器语言—第一代
汇编语言—第二代
高级语言—第三代
使用前三代语言编程时,需要给出详细的执行
步骤,而第四代语言只需要告诉计算机要做什
么,而不需要告诉怎样做,目前第四代语言只
出现在一些个别领域。如SQL中的
– SELECT WHERE 年龄>30
高级语言简介
•
通用语言:可以适合大部分普通目的的编程
–
–
–
–
–
•
FORTRAN 最早出现的的高级语言,其含义是FORmula TRANslation,公式翻译语言,
最适宜科学计算,后期有Visiual FORTRAN
BASIC (Beginner’s All-purpose Symbolie Instruction Code) 是初学者通用符号
指令代码一词的简写 ,特点是易学易用
COBOL(面向商业的通用语言,又称为企业管理语言、数据处理语言等,Common
Business Oriented Langauge)是世界上第一个商用语言。
PASCAL语言也是一种算法语言,它是瑞士苏黎世联邦工业大学的N.沃思(Niklaus Wirth)
教授于1968年设计完成的 ,语法规范,可读性强
JAVA由C语言发展出的一种语言,原代码在执行时,须先编译成字节码,然后再通过虚
拟机解释执行,可以在不同的软硬件平台运行上运行
专用语言:为特殊应用设计,有特殊的语法形式、面对特定的问题
–
–
–
APL是A Programming Language或Array Processing Language的缩写 ,程序书写与传统
的结构式编程语言不同,电脑设计、机器人、数据显适用于示、保险技术、传统的数据
处理等
LISP全名LISt Processor,就是链表处理语言,程序整个由表构成,较适合人工智能领域
Prolog语言接近于自然语言,文法简捷,逻辑性强,易写易读,便于学习和使用,易于
正确性证明,具有一阶逻辑的推理能力,因而被应用于人工智能多个研究领域中。
C语言的发展
• C语言是为编写UNIX操作系统而设计的
UNIX 90%以上是用C编写的,由Dennis
Ritchie发明并在PDP-11上实现,C语言的
指令和语言与下面图中的语言有继承关
系
C语言的发展
•
•
•
•
•
•
•
C语言的发展颇为有趣。它的原型ALGOL 60语言。
1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined programming
Language)语言。
1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了
BCPL语言。
1970年,美国贝尔实验室的Ken Thompson将BCPL进行了简化,起名 “B
语言”。并且他用B语言写了第一个UNIX操作系统。
而在1973年,美国贝尔实验室的D.M.RITCHIE在B语言的基础上又进行
简化,设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言
的名字,这就是C语言。
为了使UNIX操作系统推广,1977年Dennis M.Ritchie 发表了不依赖于具
体机器系统的C语言编译文本《可移植的C语言编译程序》。
1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《The C
Programming Language》,从而使C语言成为目前世界上流行最广泛的高
级程序设计语言。
高级语言程序转化为可执行程
序的过程
• 解释型
• 编译型
• 编译加解
释型
C语言标准与C语言编译软件
• C语言编译软件
• Turbo C 1.0 2.0 2.0p 3.0forDos C/C++3.0 ,
C/C++3.1
• BORLAND C/C++ 2.0 3.0 3.1 4.0 5.0 5.02
• MS C 6.0 6.0a 7.0 QuickC 1.0,2.5
• MS VC++ 5.0 6.0 7.0 C#
• BORLAND C++ Builder 4.0 5.0 5.5 6.0
• C语言标准
– 美国标准ANSI C
C、C++、VC之间的关系
C语言的特点
• C语言是中级语言:适用于系统软件和控制软
件的开发
可以直接访问内存和接口,可以内嵌汇编语言代码
C语言既有高级语言的高效性又具有低级语言的灵活性
• C语言是面向函数的语言:C语言程序是由函数
组成的, C语言中只有函数没有过程,当函数没
有反回值时,返回值为void
• 如 :void main(){}
….其他特点见课本P18
C语言程序结构
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
#include <iostream.h>
//头部预处理处理部分没有";"
#define pi 3.14
void main()
//函数头(C++扩充的注释方法,只能单行注释)
{
//函数体开始花括号
float r,s;
//每个语句都有语句结束符";"
cout<<"输入半径:"<<endl;
cin>>r;
s=pi*r*r; //可以一行写多条语句
cout<<"圆面积是:"
<<s
<<endl;
/*可以一条语句写成数行,
但是不能把一个变量或常量跨行,如字符串常量*/
}
//函数体结束花括号
/*除注释语句外,所有语句必须在花括号括起的函数替内,
不能出现函数外的语句(C语言中的注释方法,可以实现多行注释)
*/
变量与常量
• 常量是一个固定的值,而变量是一个存储数值的空间
– 以坐出租车为例,与司机定好费用为10元,10是个固定值,是常量;
而根据记程表付费,记程表是一个存储数字的装置,则是变量
• 常量举例123,‘a’,”asdfas”,123.56
• 变量特点:读不尽,冲的掉
a=2;b=a;c=a;//a中的值仍然为2
a=2;a=3;
//a中的数值为3
• 程序中为什么要进行变量说明
– 变量的说明是为了告诉编译程序要预留存储空间及存储空间
的大小
C语言的组成字符集(P20)
•
•
•
•
0~9,a~z,A~Z
运算符+ - * / % ^ && || ~
分割符号( ) { } , : ;
注释// /* ……*/
关键字
– 有特定含义,不能作为他用
•
•
•
•
•
•
auto,static,register,const,void,extern,volatile
int,char,shaort,float,long,double,sigend,unsigend,enoum,struct,union
sizeof ,typedef,
if else ,switch case default break,do,continue,while,for,
return
C++中:关键字
catch,class,delete,friend,new,inline,operator,private,protected,public,te
mplate,this,throw,try,typeid,virtual
• 其他保留字:entry,asm,fortran,define,undef,include,ifdef,endif,line
标识符命名规则(变量名、函数名)
• 命名规则(P28)
–
–
–
–
以字母或 _ 开头后跟字母、数字或 _
区分大小写
不能使用关键字及其他保留字
尽可能见名知意
变量名的Hungarian标记法
• 用1~n个字母表示变量类型,后面用单词表
示变量内容,单词第一个字母大写其他小
写
• 类型表示:
– a(array),b(boolean),c(char),dw|l(long int)
– i|n|w(int),m(member of Class),p(point),lp(far
point),s(String),
– 如:nLength,bMarried
VC++6.0使用
•
•
•
•
调出VC++6.0
编辑
编译、连接、执行
调试
VC++6.0环境
• 工具栏中的的编译,连接,执行按钮
• output 窗口
注意
•
•
•
•
•
C区分大小写
C不是强类型语言
C不执行越界检查
C的关键字都是小写的
相等的比较运算符号==