《第1讲 c语言概述.ppt》由会员分享,可在线阅读,更多相关《第1讲 c语言概述.ppt(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C程序设计信息学院计算机系2012年2月与我联系n主讲:铁治欣vE-mail:vMobile:13968148091vAdd:3-N318教学资源教学资源n教学网站:v课程实验网站:http:/vC语言梦工厂:http:/ H.Cheng,Professor of UCDAVIS,listed ten good reasons to learn the C programming language v1.C is one of foundations for modern information technology and computer science.v2.C is the most
2、commonly used programming languages in industry.v3.C is a standardized programming language with international standards.v4.Writing computer programs is essential to solving complex science and engineering problems.v5.Computer programming is becoming a necessary skill for many professions.v6.Compute
3、r programming can develop students critical thinking capabilities.v7.C is one of the most commonly used programming languages in colleges and universities.v8.C is the language of choice for hardware interfaces.v9.C excels as a model programming language.v10.Once you have learned C,you can pick up ot
4、her languages without much difficulty by yourself because all other modern languages borrowed heavily from C.From:http:/iel.ucdavis.edu/publication/WhyC.htmlProgrammingLanguagePopularityFrom:http:/ int main()printf(Hello World!n);return 0;C语言的预处理命令;表示在该程序中包含“stdio.h”文件,表示在程序中要用到系统提供的标准函数库中的输入输出函数。ma
5、in是函数的名字,表示主函数;int表示该函数的函数值为“整型数”。每个C语言程序都必须有一个main函数,函数体用花括号 括起来。调用系统提供的标准函数库中的输出函数printf;输出的内容用一对“”括起来,输出内容中的n表示在Hello World!后面输出回车换行符。Printf函数的定义为:int printf(const char*fmt,.);注意C语言程序的每一条语句都由“;”结尾。实验1_1简单的C语言程序介绍n例2计算两个数之和#include int main()int a,b,s;/*定义变量*/scanf(%d,%d,&a,&b);/*输入变量a,b的值*/s=a+b;
6、printf(a+b=%dn,s);/*输出计算结果*/return0;程序的声明部分。定义了变量a、b和s为整形变量。C程序中的所有用到的变量都必须声明。/*/是语句的注释部分。注释可以用汉字或英文表示,对程序编译和运行不起作用。调用系统提供的标准函数库中的输出函数scanf,输入变量a和b的值。注意,&a,&b表示将数值输入到变量a和b的地址所标志的单元中;不能写成scanf(“%d,%d”,a,b);。scanf函数中的“%d,%d”表示输入的格式是用逗号隔开的两个十进制整数。Scanf函数的定义为:int scanf(const char*fmt,.);赋值语句。表示将变量a和b相加的
7、结果赋给变量s。在使用printf函数输出时,格式a+b=%dn表示原样输出字符“a+b=”之后再输出一个十进制整数,%d将由s的值取代之。实验1_2简单的C语言程序介绍n例3寻找2个数中的较大数#include void main()int a,b,c;scanf(%d,%d,&a,&b);c=mymax(a,b);printf(max=%dn,c);return0;int mymax(int x,int y)int z;if(x=y)z=x;else z=y;return(z);本程序包含两个函数:主函数main和被调用的函数max。max函数的作用是将x和y中较大者的值赋给变量z,ret
8、urn语句将z值返回给主调函数main。返回值是通过函数名max带回到main函数中调用max函数的位置。调用mymax函数,在调用时将实际参数a,b的值分别传给mymax函数中的形式参数x和y。经过执行mymax函数得到一个返回值z赋给变量c。定义了一个max函数,其中第一个int表示函数值为整型,括号内的两个int分别声明了形式参数x,y为整型。内为函数体。对x和y的值进行比较,如果x大就将x的值赋给z,否则将y的值赋给z。将z的值作为函数值返回到主调函数的调用处。实验1_3输入 4,6输出 max=6求三个数中的最大者求三个数中的最大者d=mymax(a,b);e=mymax(d,c);
9、简单的C语言程序介绍n例4求阶乘问题。输入一个正整数n,输出n!输入 4输出 24#include/*编译预处理命令*/intmain()/*主函数*/intn;/*变量定义*/intfactorial(intn);/*函数声明*/scanf(%d,&n);/*输入一个整数*/printf(%dn,factorial(n);/*调用函数计算阶乘*/return0;intfactorial(intn)/*定义计算n!的函数*/inti,fact=1;for(i=1;i=n;i+)/*循环*/fact=fact*i;returnfact;C语言程序小结nC程序是由函数构成的。一个C程序至少且仅包含
10、一个main函数,也可以包含一个main函数和若干个其他函数。被调用的函数可以是系统提供的库函数,也可以是用户自定义的函数。程序的全部工作由函数完成。n一个函数由函数的首部和函数体组成。函数的首部即函数的第一行,对函数的类型、函数名称、函数属性、函数参数和参数类型等进行定义。函数体是由一对花括号和内部的语句组成,内部语句又分为声明部分和执行部分。C语言程序小结n一个C程序总是从main函数开始执行,而不论main函数在程序的位置。nC程序书写格式自由,一行可以写几个语句,一个语句也可以写在几行上,C程序没有行号。n每个语句和数据声明的最后必须有一个分号。分号是C语句的必要组成部分。nC语言没有
11、输入输出语句。C对输入输出实现“函数化”。n可以用/*/对C程序的任何部分做注释。C语言特点n简洁紧凑、灵活方便n运算符丰富n数据结构丰富n结构化和模块化语言nC语法限制不太严格、程序设计自由度大n允许直接访问物理地址n生成代码质量高,程序执行效率高n适用范围大,可移植性好简洁紧凑、灵活方便nC语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotifintlongregisterreturnshortsignedsizeofstati
12、cstructswitchtypedefunionunsignedvoidvolatilewhile简洁紧凑、灵活方便n9种控制语句vif语句vwhile语句vdo语句vfor语句vswitch语句vbreak语句vcontinue语句vreturn语句vgoto语句运算符丰富nC的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。数据结构丰富nC的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等,能用来实现各种复杂的
13、数据结构。尤其是指针类型数据,使用十分灵活和多样化。n另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。结构化和模块化语言n具有结构化的控制语句。n以函数作为程序的模块单位,便于实现程序的模块化。语法限制不太严格、程序设计自由度大n“限制”和“灵活”是一对矛盾,C对语法的检查比较宽,程序员有较大的自由度,不能过分以来C语言的编译程序,对程序员的要求更高。n例:对数组下标越界不做检查;对变量使用类型不做检查允许直接访问物理地址nC语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。nC语言既具有高级语言的功能,又
14、具有低级语言的许多功能,可以用来编写系统软件。nC语言又被称为“高级语言中的低级语言”或“中级语言”。生成的代码执行效率高nC语言通过编译、连接得到可执行的目标程序。nC语言一般只比汇编程序生成的目标代码效率低1020%。适用范围大,可移植性好n基本上不用修改,就适合于多种操作系统,如DOS、UNIX,也适用于多种机型。n下列常见的单片机系统均可采用C语言编程:MSP430、DSP、ARM、51系列、AVR系列、程序与程序设计语言n程序v人们为解决某种问题用计算机可以识别的代码编排的一系列加工步骤。v程序的执行过程实际上是对程序所表达的数据进行处理的过程。n程序设计语言v提供了一种表达数据与处
15、理数据的功能v要求程序员按照语言的规范编程C语言的程序开发系统nC语言是抽象的,而C语言的环境是具体的。nC语言标准提供的是语言的基本定义,而各个C程序设计环境可能有许多自己的扩充。nC语言本身反映的是一般性的程序设计实践,而具体程序设计环境又在此之上填加了许多与具体系统有关的东西、基本程序设计之外的东西。n常用的C/C+集成开发环境有MicrosoftVisualC+,BorlandC+,WatcomC+,BorlandC+Builder,GNUDJGPPC+,Lccwin32CCompiler3.1,MicrosoftC,HighC,CFree,Ch,TurboC.1.4实现问题求解的过程
16、问题:求1100间所有偶数的和。1问题分析与算法设计求在一定范围内(1100)、满足一定条件(偶数)的若干整数的和,求累加和。思路:设置一个变量(sum),其初值为0,然后在1100的数中(i)寻找偶数,将它们一个一个累加到sum中。n一步累加:sum=sum+i;n重复累加,用循环语句实现,在循环过程中:(1)判别i是不是偶数:用分支控制语句来实现。(2)对循环次数进行控制:通过i值的变化问题分析与算法设计v思路确定算法v算法:一组明确的解决问题的步骤,它产生结果并可在有限的时间内终止。v算法的描述:n自然语言n伪代码n流程图:算法的图形表示法sum=0i=1i=100i 是偶数?是偶数?s
17、um=sum+ii=i+1输出输出sum真真真真假假假假实现问题求解的过程2编辑程序生成程序的源文件,C语言源文件的后缀为.c/.cpp#includeintmain(void)inti,sum=0;for(i=1;i=100;i+)if(i%2=0)sum=sum+i;printf(%d,sum);return0;实现问题求解的过程3程序编译连接编辑程序后,用该语言的编译程序对其进行编译,以生成二进制代码表示的目标程序(.obj),与编程环境提供的库函数进行连接(Link)形成可执行的程序(.exe)。编译程序指出语法错误语法错误VS逻辑错误实现问题求解的过程4运行与调试经过编辑、编译、连接
18、,生成执行文件后,就可以在编程环境或操作系统环境中运行该程序。如果程序运行所产生的结果不是你想要的结果,这是程序的语义错误(逻辑错误)。调试:在程序中查找错误并修改错误的过程。调试的方法n设置断点n单步跟踪调试是一个需要耐心和经验的工作,也是程序设计最基本的技能之一。开始开始结果结果语法语法错误错误源程序源程序.c/.cpp目标程序目标程序.obj可执行程序可执行程序.exe编辑编辑编译编译连接连接运行运行连接连接错误错误运行运行错误错误C语言程序的调试、运行步骤Ch平台简介n加州大学陈辉教授主持开发加州大学陈辉教授主持开发n内含内含C语言解释器,非常适合初学者使用语言解释器,非常适合初学者使用nCh是一个集编辑、编译、调试为一体的是一个集编辑、编译、调试为一体的集成开发平台集成开发平台nn详情请参见:http:/C语言上机过程源程序test.ctest.obj可执行代码test.exe编译连接 运行实验内容n教学网站中的实验一nC语言梦工厂中的第10011003