莆田学院现代教育技术中心 2004年2月.ppt_第1页
莆田学院现代教育技术中心 2004年2月.ppt_第2页
莆田学院现代教育技术中心 2004年2月.ppt_第3页
莆田学院现代教育技术中心 2004年2月.ppt_第4页
莆田学院现代教育技术中心 2004年2月.ppt_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、C语言程序设计,绍兴文理学院自动化教研室沈红卫,2010年7月修改,CLanguageProgramming,我听过就忘了我看见就记住了我做了就理解了,课程教学安排,理论讲授第一讲C语言概述(教材第1、9章)第二讲数据类型、运算符与表达式(教材第3、4章)第三讲算法基础与程序控制结构(教材第2、5、6章)第1次集中性例题讲练与C51基础第五讲模块化程序设计(函数)(教材第8章)第六讲数组(教材第7章)第2次集中性例题讲练第七讲指针(教材第12章)第3次集中性例题讲练结构体与共用体自学(教材第11章)第八讲位运算(教材第10章)第4次集中性例题讲练期末考试课程设计(穿插在课程中进行),第一讲C语

2、言概述,一、C语言及其学习特点,1为什么从C语言开始开发能力最强,应用最广泛操作系统开发、应用程序开发、单片机程序开发、网络程序设计专业水平的试金石各种专业考试首选程序设计语言:研究生入学考试、程序员考试、等级考试后续主干课程的重要基础单片机原理及应用、计算机控制、课程设计、毕业设计,如何学习C语言编程?,编程似写作先学“字词句”和“语法”,目标是“写作”。学习数据类型、控制结构、语法规则等学语基掌握程序分析、算法与编程写文章仅仅读书是不够的程序是编出来的,程序是调出来在编程实践中消化知识。没有天生的程序员初学者:有点难。没有学不会的,只有学不精的除非自己放弃。出于蓝胜于蓝:超过你的老师完全可

3、能。循序渐进很重要阅读/分析程序摹仿编程掌握常见程序模块简单程序复杂编程仅是起点,而非终点从此编程与你相伴而行真正的程序员从此起步。,听课要求:切实掌握各章主要内容(预习/听课/消化/归纳)在预习基础上,听课为主,笔记为辅,课后弄懂课件和教材中的程序(会分析,会流利写出)考核方式:平时作业(书面/上机)、课程设计(大作业)、期未考讲义下载:,二、C语言编程步骤,从商业化的角度看,C编程步骤如下:编写程序(写在纸上或输入到电脑上的源程序)调试程序(修正错误,实现功能)出售程序(生成的可执行文件),常用开发工具:面向过程常用TurboC(PC机版,简称TC)面向对象常用C+/VisualC+(可视

4、化,简称VC)最新:为Windows和Web应用程序提供动态开发环境的VisualC+.NET(C#),C语言程序加工流程,C语言是一种通过编译程序处理的高级程序设计语言。所以其上机的处理流程可用以下示意图表示:例一:最简单的hello.c程序用记事本编写/用TC直接编写,源程序(.c)目标程序(.obj)可执行程序(.exe)(你编写的)编译(中间产品)连接(你出售的)compilelink,具体上机步骤如下:,在你的机上如何安装TC?,软件下载与解压目录(directory)设置Includedirectories(头文件所在目录)Librarydirectories(库文件所在目录)Ou

5、tputdirectories(输出文件所在目录)TurboCdirectories(TC文件所在目录)还有一个好东东:C语言学习系统,/*给定半径,求圆的面积*/#definePI3.14159/*编译预处理宏替换*/#include/*编译预处理文件包含*/#include/*编译预处理文件包含*/main()/*主函数*/floatr,s;/*定义变量r、s类型为单精度实型*/r=1.0;/*变量r赋初值*/s=PI*pow(r,2);/*计算圆面积s*/printf(半径R=%f时,面积S=%fn,r,s);/*输出结果*/,三、C程序的基本结构,例一求圆面积程序area.c,/*给定

6、半径,求圆的面积*/#definePI3.14159/*编译预处理宏替换*/#include/*编译预处理文件包含*/#include/*编译预处理文件包含*/main()/*主函数*/floatr,s;/*定义变量r、s类型为单精度实型*/r=1.0;/*变量r赋初值*/s=PI*pow(r,2);/*计算圆面积s*/printf(半径R=%f时,面积S=%fn,r,s);/*输出结果*/,例一(求圆面积程序area.c)分析,注释部份P4这部分内容不会被编译,也不被执行,编译预处理程序编译、执行前系统自动进行的特殊处理特点:以#开头结束处无分号,关于编译预处理(宏定义)P204,#defi

7、nePI3.14159#define宏定义命令PI符号常量(宏名,最好用大写,以区别一般变量)3.14159宏体(可以是一个表达式,如3+4)作用:用简单符号代表宏体部份内容(编译时会先自动替换)意义:直观/多次使用/便于修改注意:#define可出现在程序的任一位置(作用范围:由此行到程序末尾)宏定义不是C语句,不必在行未加分号,否则会连分号一起置换。,关于编译预处理(文件包含)P211,#includestdio.h“头文件”(标准前导文件)C语言是一种“装配式”语言,许多常规的工作如输入、输出、数学函数等,往往事先由人做成各种“程序模块”(库函数),存放在各种所谓“头文件”(.h)中。使

8、用时只需进行以下处理#include“头文件名”或#include在程序的执行部分调用该库函数:函数名(参数)文件包含的作用,就是根据需要把相应的某个“头文件”的内容在编译时先整体嵌入所编的程序中。用户也可以将自己设计的程序模块等做成“头文件”,供其他程序“包含”。,文件包含示意图,#include#include源程序area.c(用户编写),头文件stdio.h(系统提供),头文件math.h(系统提供),area.exe(可执行程序),stdio.hmath.h,编译/连接,例一中,area.c文件本身只有12行,stdio.h有187行,math.h有107行,实际上stdio.h本身

9、还包括一个24行的头文件stdarg.h。“文件包含”是在编译后连接时“包含”进可执行程序的。比较:area.c1kb;area.obj1kb;area.exe26kb,stdarg.h,stdio.hstdarg.hmath.h,使用“文件包含”功能的优点,提高程序设计效率和程序可靠性减少程序员重复劳动量TurboC提供了三百多个标准库函数,存放在若干个头文件中(常用库函数见P381-387)本章中:stdio.h标准输入/输出函数math.h数学函数stdlib.h常用函数一个优秀的程序员不应是事无巨细都要从头做起的“工匠”,而应是一个“策划师”+“组装师”。所以,逐步熟悉并掌握常用函数等

10、现有功能模块,是学习C程序设计的一个重要内容。,/*给定半径,求圆的面积*/#definePI3.14159/*编译预处理宏定义*/#include/*编译预处理文件包含*/#include/*编译预处理文件包含*/main()/*主函数*/floatr,s;/*定义变量r、s类型为单精度实型*/r=1.0;/*变量r赋初值*/s=PI*pow(r,2);/*计算圆面积s*/printf(半径R=%f时,面积S=%fn,r,s);/*输出结果*/,例一(求圆面积程序area.c)分析(续,主函数),主函数的基本形式main()(函数体),主函数,关于主函数main(),C语言是一种函数式语言,

11、它的一个函数实际上就是一个功能模块C程序的基本组成是函数。一个C程序是由一个固定名称为main的主函数和若干个其他函数(可没有)组成。一个C程序必须有一个、也只能有一个主函数。主函数在程序中的位置可以任意,但程序执行时总是从主函数开始,在主函数内结束。主函数可以调用其他各种函数(包括用户自己编写的),但其他函数不能调用主函数。,主函数的一般形式:,main()说明部分程序段(定义数据类型)执行部分程序段(给出操作指令),函数体,说明部分(简单程序可能没有此部分,如P4例1.1):floatr,s;/*定义变量r、s类型为单精度实型*/inta,b;/*定义变量a、b类型为整型*/执行部份:输入

12、、赋值、计算、控制、输出等:r=1.0;/*变量r赋初值*/s=PI*pow(r,2);/*计算圆面积s*/printf(半径R=%f时,面积S=%fn,r,s);/*输出结果*/,其他函数,标准库函数只能调用。使用方法:先“包含”,即将该函数所在头文件包含在程序中。后调用。调用方式:函数名(参数),例:#include#includemain()s=PI*pow(r,2);printf(“半径R=%f时,面积S=%fn”,r,s);说明:pow(x,y)求xy(math.h中的标准数学函数)P371printf();(stdio.h中的标准输出函数)P376,其他函数,自编(定义)函数:(详

13、见教材第8章)先定义(规定函数类型、函数名和函数功能)后调用(使用所定义的函数实现其功能)定义函数:函数类型函数名(形式参数)函数体调用函数:函数名(参数)【示例】求三个数的平均值,自定义函数示例,floataverage(floatx,floaty,floatz)/*定义函数average()*/floataver;aver=(x+y+z)/3;return(aver);main()/*主函数*/floata,b,c,ave;a=3.5;b=4.6;c=7.9;ave=average(a,b,c);/*调用自定义函数average()*/printf(average=%f,ave);,自定义

14、函数一般形式函数类型函数名(形式参数)(函数体),/*给定半径,求圆的面积*/#definePI3.14159/*编译预处理宏替换*/#include/*编译预处理文件包含*/#include/*编译预处理文件包含*/main()/*主函数*/floatr,s;/*定义变量r、s类型为单精度实型*/r=1.0;/*变量r赋初值*/s=PI*pow(r,2);/*计算圆面积s*/printf(半径R=%f时,面积S=%fn,r,s);/*输出结果*/,求圆面积程序area.c分析(续,语句),关于语句特点:均以分号结束;一个程序行可以有多个语句。语句组成了函数体。强烈建议:按缩进格式书写语句。本

15、示例程序中使用了:数据类型定义语句赋值语句输出语句,关于语句:数据类型定义语句,语句形式变量类型关键字变量名;floatr,s;定义r、s为单精度实型变量intr,s;定义r、s为整型变量【注意】在C语言程序中,所有变量都要先定义后使用,否则就会出现编译错误提示,如:Error:UndefinedsymbolainfunctionmainLetstry,变量类型关键字字符型(描述文字性的数据)char数值型:整型(在机内是准确表示的)int实型(在机内一般是近似表示的)float(有效数字6位)double(有效数字16位),变量名C语言标识符(变量名、符号常量名、函数名等)命名:组成:字母、

16、数字、下划线开头:字母、下划线长度:32字符(TurboC)【注意】大小写为不同字符(变量名一般小写,符号常量名一般大写),还要注意不得与关键字同名。,关于语句:赋值语句,作用:使变量获得具体的运算值。语句形式变量名=表达式(常量、变量、函数、算式及其混合);r=1.0;/*变量r赋初值*/s=PI*pow(r,2);/*计算圆面积s*/注意:函数pow()在头文件math.h中定义。所以程序开头处必须加上一行所谓“文件包含”:#include变量赋初值亦可在数据类型定义时进行:floatr=1.0,s;把变量声明语句与赋值结合在一起的语句,术语上称为“初始化语句”。,关于语句:输出语句,作用

17、:将运算结果送到显示器屏幕显示出来语句形式printf();printf(半径R=%f时,面积S=%fn,r,s);printf(“Hello,everyone!”);【注意】C语言本身没有输入、输出语句,其功能要借用有关函数来实现。%f格式字符串(见后)n控制字符(转义字符)n表示回车换行按定义输出动作或特殊字符(见P48表3.3)引号中的其他部分照原样输出,关于格式字符串,表示该处将用printf语句引号外对应表达式的值替换后输出例:若r=1,s=3.14printf(“半径R=%f时,面积S=%fn”,r,s);输出结果:半径R=1时,面积S=3.140000常用格式字符串:字符型:%c

18、单字符%s字符串数值型:%d整数(十进制)%f实数(小数形式,默认为6位小数),例一intx=5;floaty=3;printf(a=%d,b=%f,c=%s,x,y,abcdefg);,输出结果:a=5,b=3.000000,c=abcdefg,例二intx=5;floaty=3;printf(a=%d,b=%f,c=%s,x+2,y*3,123defg);,输出结果:a=7,b=9.000000,c=123defg,小结1、C语言程序的基本结构,一个C程序是由一个固定名称为main的主函数和若干个其他函数(可缺省)组成。其基本结构一般形式如右图所示。注:TC环境下C源程序的扩展名一般为.c

19、(如area.c),小结2、C语言程序的基本特点,C语言是一种函数式语言,其程序基本组成是函数每个C程序必须有一个、也只能有一个主函数main不管主函数在程序中的位置如何,程序执行总是从主函数开始所有变量必须先定义(规定数据类型)后使用每个语句必须用分号“;”结束(注意是“每个语句”而不“每行语句”)编译预处理命令不是语句(行末不能用分号结束)C语言本身没有输入/输出语句,其输入/输出功能须通过调用标准函数来实现使用系统提供的标准库函数或其他文件提供的现成函数时,必须使用“文件包含”(除了printf和scanf语句)。,四、示例程序的完善,左铡的示例程序(求圆面积)有四个不足:每次运行后屏幕

20、残留的显示内容和运行结果混在一起。如果要求多个半径r值时的面积s,每次都必须修改源程序并重新编译处理;如果半径r为负值,也会有正常的s值输出。输出结果的小数位数为6位,与习惯不符。为此,可将程序进行如下修改:,#definePI3.14159#include#include#includemain()floatr,s;clrscr();/*清屏*/printf(请输入半径R=);scanf(%f,#definePI3.14159#include#includemain()floatr,s;r=1.0;s=PI*pow(r,2);printf(R=%f,S=%fn,r,s);,示例程序area.

21、c:,/*改进后的求圆面积程序AREA.C*/#definePI3.14159#include#include#include#includemain()floatr,s;clrscr();/*清屏,在conio.h中定义*/printf(请输入半径R=);/*人机对话提示语*/scanf(%f,/*限制R,S小数位数*/,Letstry,改进程序有关语句分析,键盘输入函数scanf(“%f”,(结果将使r等于某个随机值)通常与printf()函数组合使用,实现“人机对话”功能。,Example:printf(“InputR=”);scanf(“%f”,改进程序有关语句分析(续),选择语句if

22、(条件表达式)语句或复合语句(用花括号括起);功能:如果条件表达式的值为真,就执行指定语句或复合语句。扩展形式:ifelse语句(详见P91)if(条件表达式)语句或复合语句;else语句或复合语句;注意:条件表达式必须用()括起,且不能跟分号。,Example:参见P5例1.3#include#includemain()inta,b,c;clrscr();/*清屏*/printf(Inputa、b=);scanf(%d,%d,intmax(intx,inty)intz;if(xy)z=x;elsez=y;returnz;,改进程序有关语句分析(续),停止函数exit(0)使程序正常停止,返回操作系统状态。括号中为整型数值,0正常结束其他数值出错类型(某些系统上在原程序结束后可将此值传给另一程序)输出格式P76r=%-m.nfm总位数(数值总长度小于m时左端补空格,-m则为右端补空格),n小数位数上例中r=%10.3f,s=%10.3f输出r=1.500,s=7.069r=%-10.3f,s=%-10.

温馨提示

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

评论

0/150

提交评论