版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
记忆语法、思考算法。读懂程序、循序渐进。记好笔记、上机调试。学习方法记忆语法、思考算法。学习方法1程序设计语言计算机语言的种类机器语言汇编语言高级语言面向机器面向过程面向对象翻译程序设计语言计算机语言的种类机器语言汇编语言高级语言面向机器2程序翻译方式解
释编
译边翻译边执行不产生目标代码先翻译后执行产生目标代码BasicC、C++程序翻译方式解释编译边翻译边执行先翻译后执行Basi3例如:X=1Y=2PrintX+Ymain(){intx,y;x=1;y=2;printf(“%d,%d\n”,x,y);}Basic源程序C源程序01代码01代码01代码01代码执行执行执行解
释…01代码执行编
译目标程序例如:X=1main()Basic源程序C源程序01代码04常用的C语言编译系统TurboC2.0DOS环境英文界面编译C程序机房选用TurboC++3.0DOS界面支持鼠标编译C++程序.CPP兼容C程序.C第三版选用VisualC++6.0可视化开发环境Windows界面编译C++程序实际开发复赛上机环境:Dev-C++4.9.9.2
常用的C语言编译系统TurboC2.0DOS环境机房选用5C语言概述
C语言–––既可作为系统软件的程序设计语言,又可作为应用软件的程序设计语言。尤其是当今计算机应用极为广泛,软件的设计、编写质量要求高,经常与硬件部分打交道,如:界面设计等,所以用C语言编写是最理想的。因而C语言也是当前计算机语言中用得最广泛的语言之一。C语言概述
C语言–––既可作为系统软件的程61.1C语言出现的历史背景一、操作系统的设计语言O.S.–––操作系统,为用户使用计算机提供一个操作环境:系统命令、语言编程等。如:DOS.UNIX以前:O.S.软件用汇编指令编写。汇编语言:一种二进制指令代码的符号表示,既烦锁,又易出错,可读性差。改进:用C语言编写,既提高了程序的可读性,又可与硬件打交道。1.1C语言出现的历史背景一、操作系统的设计语言O.S.7二、发展过程
1960年出现了Algol60语言,但该语言主要面向问题,与硬件较远,故英国剑桥大学推出了CPL(CombinedProgrammingLanguage)
1967年,MatinRichards对CPL进行改进、简化、推出了BCPL(BasicCombinedProgrammingLanguage)
1970年,美国贝尔实验室KenThomson以BCPL为基础,再次简化推出了B语言,并写了第一个UNIX系统。二、发展过程1960年出现了Algol60语言,但该语言8
美国贝尔实验室D.M.Ritchie在B语言基础上设计出了C语言,并用其将UNIX系统全部改写并实现。
经进一步改进,至1977年出现了与具体机器无关的C编译文本,从而使C语言广泛应用,各种机器皆可使用。
1978年,美国BrainW.Kernighan与Dennis.M.Ritchie联合出版一书《TheCProgrammingLanguage》成为ANSIC之基础。美国贝尔实验室D.M.Ritchie在B语言基础上设9
1983年,美国标准化协会(ANSI)制定了ANSIC。
ANSIC为基础:不同机器有不同版本,尤其是函数均应参考相应的机器。1983年,美国标准化协会(ANSI)制定了ANSI101.2C语言的特点只有通过学习,方可理解C之特点,先简叙之:1.简洁、紧凑、方便、灵活32个关键字,9种控制语句,主要用小写字母,压缩一切不必要成分2.运算符丰富除了最基本的+、-、×、÷、%等运算外,还将括号、赋值、类型强制转换等均作为运算符,共有34种运算符。1.2C语言的特点只有通过学习,方可理解113.数据结构丰富除基本类型外,有指针,结构体、共同体等类型。4.具有结构化的控制语句模块完整,控制中的语句可完整化。5.语法严格,但有灵活性如:数据类型可相互通用:整型、字符型通用。3.数据结构丰富4.具有结构化的控制语句5.语法严格,126.可与机器硬件打交道,直接访问内存地址,具有“高”、“低”级语言之功能。7.生成目标代码质量高,执行效率高。8.可移植性优于汇编语言。6.可与机器硬件打交道,直接访问内存地址,具有“高131.3简单的C程序介绍例1.1:显示一行信息。main为函数名,表示主函数,()内为函数参数,无参时()不能省。每个函数完成独立的功能。一个程序必须有一个主函数,程序从主函数开始执行。一、C语言程序是由函数组成的。main(){printf(“ThisisaCprogram\n”);}{}内为函数体printf是标准函数库中的输出函数,在屏幕上显示指定内容。“”表示字符串,按原样输出。\n为转义字符(换行符)。说明部分执行部分由若干语句组成,语句以;号结束定义函数用到的数据类型(可以没有说明部分)运行结果:ThisisaCprogram1.3简单的C程序介绍例1.1:显示一行信息。main为14例1.2main()/*求两数之和*/{inta,b,sum;/*这是定义变量*/a=123;b=456;/*以下3行为C语句*/sum=a+b;printf("sumis%d/n",sum);}本程序的作用是求两个整数a和b之和sum。/*……*/表示注释部分,为便于理解,我们用汉字表示注释,当然也可以用英语或汉字拼音作注释。注释只是给人看的,对编译和运行不起作用。注释可以加在程序中任何位置。第2行是声明部分,定义变量a和b,指定a和b为整型(int)变量。第3行是两个赋值语句,使a和b的值分别为123和例1.215456。第4行使sum的值为a+b,第5行中“%d”是输入输出的“格式字符串”,用来指定输入输出时的数据类型和格式(详见第4章),“%d”表示“以十进制整数形式输出”。在执行输出时,此位置上代以一个十进制整数值。printf函数中括弧内最右端sum是要输出的变量,现在它的值为579(即123+456之值)。因此输出一行信息为sumis579456。第4行使sum的值为a+b,第5行中“%d”是输入16main()/*主函数*/{inta,b,c;/*定义变量*/scanf("%d,%d",&a,&b);/*输入变量a和b的值*/c=max(a,b);/*调用max函数,将得到的值赋给c*/printf("max=%d",c);
/*输出c的值*/}例1.3main()17intmax(intx,inty)/*对形参x、y作类型定义*/{intz;/*max函用到的变量z,也要加以定义*/z=y;if(x>y)z=x;return(z);/*将z的值返回,通过max带回调用处*/}intmax(intx,inty)/*对18本程序包括两个函数:主函数main和被调用的函数max。max函数的作用是将x和y中较大者的值赋给变量z。return语句将z的值返回给主调函数main。返回值是通过函数名max带回到main函数的调用处。main函数中的scanf是“输入函数”的名字(scanf和printf都是C系统提供的标准输入输出函数)。程序中scanf函数的作用是输入a和b的值。&a和&b中的“&”的含义是“取地址”,此scanf函数的作用是将两个数值分别输入到变量a和b的地址所标志的单元中,也就是输入给变量a和b。本程序包括两个函数:主函数main和被调用的19main函数中第4行为调用max函数,在调用时将实际参数a和b的值分别传送给max函数中的形式参数x和y。经过执行max函数得到一个返回值(即max函数中变量z的值),把这个值赋给变量c。然后输出c的值。printf函数中双引号内的“max=%d”,在输出时,其中“%d”将由c的值取代之,“max=”原样输出。程序运行情况如下:8,5(输入8和5给a和b)max=8(输出c的值)main函数中第4行为调用max函数,在调用时将实际参数a和20本例用到了函数调用、实际参数和形式参数等概念,我们只做了很简单的解释。读者如对此不大理解,可以先不予以深究,在学到以后有关章节时,问题自然迎刃而解。在此介绍此例子,无非是使读者对C程序的组成和形式有一个初步的了解。本例用到了函数调用、实际参数和形式参数等概念,我们只做了很简21通过以上几个例子,可以看到:1、C程序是由函数构成的。一个C源程序至少包含一个main函数,也可以包含一个main函数和若干个其他函数。因此,函数是C程序的基本单位。被调用的函数可以是系统提供的库函数(例如printf和scanf函数),也可以是用户根据需要自己编制设计的函数(例如,例1.3中的max函数)。C的函数相当于其他语言中的子程序,用函数来实现特定的功能。程序中的全部工作都是由各个函数分别完成的。编写C程序就是编写一个个函数。通过以上几个例子,可以看到:1、C程序是由函数构成的。一个C222、一个函数由两部分组成:①函数的首部,即函数的第一行。包括函数名、函数类型、函数属性、函数参数(形参)名、参数类型。例如,例1.3中的max函数的首部为intmax(intx,inty)↓↓↓↓↓↓
函数类型函数名函数参数类型函数参数名函数参数类型函数参数名一个函数名后面必须跟一对圆括弧,函数参数可以没有,如main()。2、一个函数由两部分组成:①函数的首部,即函数的第一行。包23②函数体即函数首部下面的大括弧{……}内的部分。如果一个函数内有多个大括弧,则最外层的一对{}为函数体的范围。函数体一般包括:声明部分:在这部分中定义所用到的变量,如例1.3中main函数中的“inta,b,c;”。在第8章中还将会看到,在声明部分中要对所调用的函数进行声明。执行部分:由若干个语句组成。②函数体即函数首部下面的大括弧{……}内的部分。如果一个函24当然,在某些情况下也可以没有声明部分(例如,例1.1)。甚至可以既无声明部分,也无执行部分。如:dump(){}它是一个空函数,什么也不干,但这是合法的。当然,在某些情况下也可以没有声明部分(例如,例1.1)。甚至253、一个C程序总是从main函数开始执行的,而不论main函数在整个程序中的位置如何(main函数可以放在程序最前头,也可以放在程序最后,或在一些函数之前,在另一些函数之后)。3、一个C程序总是从main函数开始执行的,而不论main264、C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。C程序没有行号,也不像FORTRAN或COBOL那样严格规定书写格式(语句必须从某一列开始书写)。4、C程序书写格式自由,一行内可以写几个语句,一个语句可以275、每个语句和数据定义的最后必须有一个分号。分号是C语句的必要组成部分。例如:c=a+b;分号不可少。即使是程序中最后一个语句也应包含分号。5、每个语句和数据定义的最后必须有一个分号。分号是C语句的必286、C语言本身没有输入输出语句。输入和输出的操作是由库函数scanf和printf等函数来完成的。C对输入输出实行“函数化”。由于输入输出操作牵涉到具体的计算机设备,把输入输出操作放在函数中处理,就可以使C语言本身的规模较小,编译程序简单,很容易在各种机器上实现,程序具有可移植性。6、C语言本身没有输入输出语句。输入和输出的操作是由库函数s297、可以用/*……*/对C程序中的任何部分作注释。一个好的、有使用价值的源程序都应当加上必要的注释,以增加程序的可读性。7、可以用/*……*/对C程序中的任何部分作注释。一个好的、30标准库函数用户自定义函数用预处理命令:#include“头文件名”声明后便可使用需用户自己定义函数后才能使用函
数若在函数库中找不到所需函数时,需要自己定义函数比如:例1.3中的max函数延伸知识:许多程序设计语言中,可以将一段经常需要使用的代码封装起来,在需要使用时可以直接调用,这就是程序中的函数。
标准库函数用户自定义函数用预处理命令:需用户自己定义函数31编译系统的库文件提供的库函数例1.4计算正弦值#include“math.h”main(){floatx;/*说明x为实型变量*/x=sin(0.19199);/*调用sin函数*/printf(“%f
\n”,x);}运行结果:0.190813%f为格式字符
,此处用“”后对应的变量值代替。%f实型、%d十进制整数、%c字符、%s字符串、%o八进制整数math.h为数学库函数头文件。用库函数前应用预处理命令声明(末尾不带;号)说明部分执行部分/*与*/之间为注释,不编译不执行库函数头文件:数学:math.h字符:ctype.h字符串:string.h输入输出:stdio.h动态分配:malloc.hmain调用sin和printf函数1补充举例2说明编译系统的库文件提供的库函数例1.4计算正弦值#inclu32C程序的上机步骤我们已经看到了一些用C语言编写的程序。为了使计算机能按照人们的意志进行工作,必须根据问题的要求,编写出相应的程序。所谓程序,就是一组计算机能识别和执行的指令。每一条指令使计算机执行特定的操作。程序可以用高级语言(例如QBASIC,FORTRAN,PASCAL,C等)编写。用高级语言编写的程序称为“源程序”(source
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论