第1章c语言概述_第1页
第1章c语言概述_第2页
第1章c语言概述_第3页
第1章c语言概述_第4页
第1章c语言概述_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章C语言概述1.1什么是计算机程序1.2什么是计算机语言1.3C语言的发展及其特点1.4最简单的C语言程序1.5运行C程序的步骤与方法1.6程序设计的任务1.1什么是计算机程序程序:一组计算机能识别和执行的指令。每一条指令使计算机执行特定的操作。只要让计算机执行这个程序,计算机就会自动地执行各条指令、有条不紊地进行工作。一个特定的指令序列,用来完成一定的功能。为了使计算机系统能实现各种功能,需成千上万个程序。这些程序大多数是计算机软件设计人员根据需要设计好的,作为计算机的软件系统的一部分提供给用户使用。1.1什么是计算机程序用户可以根据自己的实际需要设计一些应用程序,例如学时成绩统计程序、财务管理程序、工程中的计算机程序等。计算机的一切操作都是由程序控制的,离开程序,计算机将一事无成。计算机的本质是程序的机器程序和指令是计算机系统中最基本的概念1.2什么是计算机语言计算机语言:人和计算机交流信息,计算机和人都能识别的语言计算机语言发展阶段:机器语言(machinelanguage):用0和1组成的指令符号语言(symboliclanguage):用英文字母和数字表示的指令,又称为符号汇编语言或汇编语言(assemblerlanguage)注:不同型号的计算机的机器语言和汇编语言是互不通用的,二者是完全依赖于具体机器特性的,是面向机器的语言,称为计算机的低级语言1.2什么是计算机语言高级语言:接近于人的自然语言和数学语言。程序中用的语句和指令是用英文单词表示的,程序中所用的运算符和运算表达式和人们日常所用的数学式子差不多。计算机不能直接识别高级语言程序的,要进行“翻译”,用一种称为编译程序的软件把用高级语言写的程序(称为源程序,sourceprogram)转换为机器指令的程序(称为目标程序,objectprogram),然后让计算机执行机器指令程序,最后得到结果。高级语言的一个语句往往对应多条机器指令。1.2什么是计算机语言非结构化的语言。编程风格比较随便,只要符合语法规则即可,没有严格的规范要求,程序中的流程可以随意跳转,程序较难以阅读和维护。如早期的BASIC,FORTRAN结构化语言。规定程序必须具有良好特性的基本结构构成,程序中的流程不允许随意跳转,程序总是由上而下顺序执行各个基本结构。其结构清晰、易于编写、阅读和维护。如QBASIC,FORTRAN77和C语言。1.2什么是计算机语言以上两种语言基于过程的语言,在编写程序时需要具体指定每一个过程的细节。面向对象的语言。如C++,VisualBasic等语言是支持面向对象程序设计方法的语言。1.3C语言的发展及其特点C语言是国际上广泛流行的计算机高级语言。C语言的发展:1.3C语言的发展及其特点开发C语言的目的在于尽可能降低用它所写的软件对硬件平台的依赖程序,使之具有可移植性。最初的C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的。1983年,美国国家标准协会(ANSI)成立了一个委员会,根据C语言问世以来各种版本对C语言的发展和扩充,制定了第一个C语言标准草案(’83ANSIC)。1989年,ANSI公布了一个完整的C语言标准—ANSIX3.159-1989(常称ANSIC,或C89)。1.3C语言的发展及其特点1990年,国际标准化组织ISO(InternationalStandardOrganization)接受C89作为国际标准ISO/IEC9899:1990,它和ANSI的C89基本上是相同的。1995年,ISO对C90作了一些修订,1999年,ISO又对C语言标准进行修订,在基本保留原来的C语言特征的基础上,针对应用的需要,增加了一些功能,尤其是C++中的一些功能,命名为ISO/IEC9899:1999。1.3C语言的发展及其特点2001、2004年先后进行了两次技术修正(TC1和TC2)。

ISO/IEC9899:1999(及其技术修正)被称为C99。C99是C89(及1995基准增补1)的扩充。目前不同软件公司提供的各C语言编译系统多数并未完全实现C99建议的功能。本书中程序基本上都可以在目前所用的编译系统(如VC++6.0,TurboC++3.0)上编译和运行。1.3C语言的发展及其特点C语言是一种用途广泛、功能强大、使用灵活的过程性(procedural)编程语言,既可用于编写应用软件,又能用于编写系统软件。因此C语言问世以后得到迅速推广。1.3C语言的发展及其特点C语言主要特点:语言简洁、紧凑,使用方便、灵活。只有37个关键字、9种控制语句程序书写形式自由,主要由小写字母表示,源程序短1.3C语言的发展及其特点运算符丰富。有34种运算符把括号、赋值、强制类型转换等都作为运算符处理表达式类型多样化1.3C语言的发展及其特点数据类型丰富。包括:整型、浮点型、字符型、数组类型、指针类型、结构体类型、共用体类型C99又扩充了复数浮点类型、超长整型(longlong)、布尔类型(bool)指针类型数据,能用来实现各种复杂的数据结构(如链表、树、栈等)的运算。1.3C语言的发展及其特点具有结构化的控制语句。如if…else语句、while语句、do…while语句、switch语句、for语句用函数作为程序的模块单位,便于实现程序的模块化C语言是完全模块化和结构化的语言1.3C语言的发展及其特点语法限制不太严格,程序设计自由度大。对数组下标越界不做检查。对变量的类型使用比较灵活,例如,整型量与字符型数据可以通用。C语言允许程序编写者有较大的自由度,因此放宽了语法检查。1.3C语言的发展及其特点允许直接访问物理地址,能进行位操作,可以直接对硬件进行操作。C语言具有高级语言的功能和低级语言的许多功能,可用来编写系统软件。这种双重性,使它既是成功的系统描述语言,又是通用的程序设计语言。1.3C语言的发展及其特点用C语言编写的程序可移植性好。C的编译系统简洁,很容易移植到新系统。在新系统上运行时,可直接编译“标准链接库”中的大部分功能,不需要修改源代码。几乎所有计算机系统都可以使用C语言。生成目标代码质量高,程序执行效率高。1.4最简单的C语言程序1.4.1最简单的C语言程序举例1.4.2C语言程序的结构1.4.1最简单的C语言程序举例先介绍几个简单的C程序,然后从中分析C程序的特性。例1.1要求在屏幕上输出以下一行信息。

ThisisaCprogram.解题思路:

在主函数中用printf函数原样输出以上文字。1.4.1最简单的C语言程序举例#include<stdio.h>//这是编译预处理指令intmain()//定义主函数{//函数开始的标志

printf(”ThisisaCprogram.\n”);/*函数所指定的一行信息*/return0;//函数执行完毕时返回函数值0}//函数结束的标志运行结果:1.4.1最简单的C语言程序举例其中main表示“主函数”。Main前面的int表示此函数的类型是int类型。在执行主函数后会得到一个值(即函数值),其值为整型。每一个C程序都必须有一个main函数。函数体由大括弧{}括起来。本例中主函数内只有一个输出语句,printf是C编译系统提供的函数库中的输出函数(详见第4章),双引号(双括号)内的字符串原样输出。“\n”是换行符,即在输出“Thisisacprogram.”后,显示屏上的光标位置移到下一行的开头。下一个输出的字符出现在此位置上。每个语句最后有一分号,表示语句的结束。1.4.1最简单的C语言程序举例

在使用函数库中的输入输出函数时,编译系统要求程序提供有关此函数的信息。程序第一行的作用就是用来提供这些信息的。Stdio.h是系统提供的一个文件名,stdio是“standardinput&output”的缩写。文件后缀.h的意思是头文件,因为这些文件都是放在程序各文件模块的开头的。输出输出函数的相关信息已事先放在stdio.h文件中,现在用#include指令把这些信息调入供使用。1.4.1最简单的C语言程序举例

在以上程序各行的右侧,如果有//,则表示从此到本行结束是“注释”,用来对程序有关部分进行必要的说明。注释是给人看的,而计算机不执行。说明:C语言允许用两种注释方式://:单行注释可单独占一行可出现在一行中其他内容的右侧/*……*/:块式注释可包含多行1.4.1最简单的C语言程序举例例1.2求两个整数之和。解题思路:设置3个变量a和b用来存放两个整数sum用来存放和数用赋值运算符“=”把结果传送给sum1.4.1最简单的C语言程序举例#include<stdio.h>//这是编译预处理指令intmain()//定义主函数{//函数开始

int

a,b,sum;//程序的声明部分,定义a,b,sum为整型变量

a=123;b=456;//对变量a、b赋值

sum=a+b;//进行a+b运算,把结果存放在变量sum中

printf(”sumis%d\n”,sum);//输出结果

return0;//使函数返回值为0}//函数结束运行结果:1.4.1最简单的C语言程序举例其中,第3行是声明部分,定义变量a和b,指定a和b为整型(int)变量。第4行是两个赋值语句,使a和b的值分别为123和456。第5行使sum的值为a+b,第6行中“%d”是输入输出的“格式字符串”,用来指定输入输出时的数据类型和格式(详见第4章),“%d”表示“以十进制整数形式输出”。在执行输出时,此位置上代以一个十进制整数值。printf函数中括弧内最右端sum是要输出的变量,现在它的值为579(即123+456之值)。因此输出一行信息为sumis5791.4.1最简单的C语言程序举例例1.3求两个整数中的较大者。解题思路:用一个函数实现求两个整数中的较大者在主函数中调用此函数并输出结果1.4.1最简单的C语言程序举例#include<stdio.h>//主函数intmain()//定义主函数{//主函数体开始

int

max(int

x,inty);//对被调用函数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的值

return0;}1.4.1最简单的C语言程序举例//求两个整数中的较大者的max函数int

max(int

x,inty)/*定义max函数,函数值为整型,形式参数x和为整型y*/{

intz;/*max函数中的声明部分,定义本函数中用到的变量z为整型*/if(x>y)z=x;//若x>y成立,将x的值赋给zelsez=y;//若x>y不成立,将y的值赋给z

return(z);/*将z的值返回,通过max带回调用处*/}运行结果:1.4.1最简单的C语言程序举例本程序包括两个函数:主函数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。&a和&b前面的“%d,%d”的含义与前相同,只是现在用于“输入”。它指定输入的两个数据按十进制整数形式输入。1.4.1最简单的C语言程序举例

main函数中第6行为调用max函数,在调用时将实际参数a和b的值分别传送给max函数中的形式参数x和y。经过执行max函数得到一个返回值(即max函数中变量z的值),把这个值赋给变量c。然后输出c的值。printf函数中双引号内的“max=%d”,在输出时,其中“%d”将由c的值取代之,“max=”原样输出。1.4.2C语言程序的结构C语言程序的结构特点1.一个程序由一个或多个源程序文件组成小程序往往只包括一个源程序文件例1.1,例1.2只有一个函数例1.3有两个函数,属于同一个源程序文件1.4.2C语言程序的结构一个源程序文件中可以包括三个部分:预处理指令

#include<stdio.h>等全局声明

在函数之外进行的数据声明函数定义

每个函数用来实现一定的功能1.4.2C语言程序的结构2.函数是C程序的主要组成部分一个C程序是由一个或多个函数组成的必须包含一个main函数(只能有一个)每个函数都用来实现一个或几个特定功能被调用的函数可以是库函数,也可以是自己编制设计的函数1.4.2C语言程序的结构3.一个函数包括两个部分:函数首部函数的第一行一个函数名后必须跟一对圆括号。若函数无参,在括弧中写void或空括弧。intmain(void)或

intmain()1.4.2C语言程序的结构函数体。即函数首部下面的花括号内的部分。若在一个函数中有多层花括号,则最外层的一对花括号是函数体的范围。声明部分定义在本函数中所用到的变量对本函数所调用函数进行声明执行部分:由若干个语句组成,指定在函数中所进行的操作函数体可以是空函数

如:voiddump(){}1.4.2C语言程序的结构4.程序总是从main函数开始执行5.C程序对计算机的操作由C语句完成C程序书写格式是比较自由的一行内可以写几个语句一个语句可以分写在多行上为清晰起见,习惯上每行只写一个语句1.4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论