《C语言程序设计教学.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计教学.ppt(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C语言程序设计语言程序设计信息学院信息学院谢群英谢群英1C语言程序设计语言程序设计n教学要求教学要求掌握程序设计语言的基本知识掌握程序设计语言的基本知识常用算法常用算法初步的程序设计能力初步的程序设计能力n学习方法学习方法自主学习自主学习重视上机实践重视上机实践2如何尽快学会用如何尽快学会用C语言进行程序设计语言进行程序设计n了解程序设计语言了解程序设计语言(C语言语言)n模仿、改写、编写模仿、改写、编写n通过不断的编程实践,逐步领会和掌握程通过不断的编程实践,逐步领会和掌握程序设计的基本思想和方法。序设计的基本思想和方法。3教材和参考书教材和参考书nC语言程序设计,何钦铭、颜晖主编,高等教育
2、出语言程序设计,何钦铭、颜晖主编,高等教育出版社,版社,2008nC语言编程(第语言编程(第3版),版),美美Stephen,G.Kochan,张小潘译,电子工业出版社,张小潘译,电子工业出版社,2006nC语言教程(第语言教程(第4版),版),美美AlKelley,IraPohl,徐波译,机械工业出版社,徐波译,机械工业出版社,2007n标准标准C语言基础教程(第语言基础教程(第4版),版),美美GaryJ.Bronson,单先余等译,电子工业出版社,单先余等译,电子工业出版社,2006nC程序设计语言,程序设计语言,美美BrianW.Kernighan,DennisM.Ritchie,徐宝
3、文等译,机械工业出版,徐宝文等译,机械工业出版社,社,20064Chap1引引言言n一个一个C语言程序语言程序n程序与程序设计语言程序与程序设计语言nC语言的发展历史与特点语言的发展历史与特点n实现问题求解的过程实现问题求解的过程5本章要点本章要点n什么是程序?程序设计语言包含哪些功能?什么是程序?程序设计语言包含哪些功能?n程序设计语言在语法上包含哪些内容?程序设计语言在语法上包含哪些内容?n结构化程序设计有哪些基本的控制结构?结构化程序设计有哪些基本的控制结构?nC语言有哪些特点?语言有哪些特点?nC语言程序的基本框架如何?语言程序的基本框架如何?n形成一个可运行的形成一个可运行的C语言程
4、序需要经过哪些语言程序需要经过哪些步骤?步骤?n如何用流程图描述简单的算法?如何用流程图描述简单的算法?61.1一个一个C语言程序语言程序例例1-1求阶乘问题。输入一个正整数求阶乘问题。输入一个正整数n,输出,输出n!。#include/*编译预处理命令编译预处理命令*/intmain(void)/*主函数主函数*/intn;/*变量定义变量定义*/intfactorial(intn);/*函数声明函数声明*/scanf(%d,&n);/*输入一个整数输入一个整数*/printf(“%dn”,factorial(n);/*调用函数计算阶乘调用函数计算阶乘*/return0;intfactori
5、al(intn)/*定义计算定义计算n!的函数的函数*/inti,fact=1;for(i=1;i(大于)(大于)合法的合法的标识符和变量名:标识符和变量名:sum,average,_total,Class,S_name,lotus_1,BASIC 不合法的不合法的标识符和变量名:标识符和变量名:M.D.john,¥124,#333,3d65,ab判断下列符号中,哪些是合法的变量名?判断下列符号中,哪些是合法的变量名?a3B 3aB +a -b *x$_b5_ next_ day e_2 OK?Intger MAXNUMBER i*j25程序设计语言的语法程序设计语言的语法nC语言的主要语法单
6、位语言的主要语法单位(1)表达式)表达式:运算符与运算对象组合就形成了表运算符与运算对象组合就形成了表达式。如,达式。如,2+3*4(2)变量定义)变量定义C语言中语言中,变量须先定义变量须先定义,后使用后使用 如如:int student;student=30;则若写成则若写成student=30,则未定义则未定义,编译时指出其错。编译时指出其错。如如:a%b 表示表示a与与b整除求余整除求余,则则a,b必须为整型量。必须为整型量。一旦变量被定义一旦变量被定义,则:则:类型确定,可为其分配相应数量的存储单元。类型确定,可为其分配相应数量的存储单元。可检查其运算的合法性。可检查其运算的合法性。
7、26程序设计语言的语法程序设计语言的语法其中,其中,(3)语句:语句:语句是程序最基本的执行单位,程序的功能就是通语句是程序最基本的执行单位,程序的功能就是通过对一系列语句的执行来实现的。过对一系列语句的执行来实现的。表达式语句表达式语句:表达式加分号:表达式加分号“;”分支语句分支语句:实现分支控制过程:实现分支控制过程if(ab)x=a;elsex=b;循环语句循环语句:实现循环控制的过程:实现循环控制的过程sum=0;/*初始化初始化sum和和i*/i=1;while(i=100)/*while循环语句循环语句*/sum=sum+i;i=i+1;复合语句复合语句:用一对:用一对“”,将若
8、干语句顺序组合在一起就形,将若干语句顺序组合在一起就形成了一个复合语句。成了一个复合语句。27程序设计语言的语法程序设计语言的语法(4)函数定义与调用)函数定义与调用函数是完成特定任务的独立模块,函数的使用最主函数是完成特定任务的独立模块,函数的使用最主要涉及到函数的定义与调用。要涉及到函数的定义与调用。(5)输入输出:)输入输出:C语言没有输入输出语句,用库函数语言没有输入输出语句,用库函数printf、scanf等实现。等实现。28程序的编译与编程环境程序的编译与编程环境n程序的编译程序的编译编译器编译器程序程序计算机直接能理解的指令序列计算机直接能理解的指令序列编译器:对源程序进行词法、
9、语法与语义分析,生成可执行的代码。编译器:对源程序进行词法、语法与语义分析,生成可执行的代码。n编程环境编程环境包括编辑程序(包括编辑程序(Edit)、编译()、编译(Compile)、调试()、调试(Debug)等。)等。n掌握程序设计语言:根据语言的语法,用语言表达数据、掌握程序设计语言:根据语言的语法,用语言表达数据、实现程序的控制,并会使用编程环境。实现程序的控制,并会使用编程环境。29C语言上机过程语言上机过程源程序源程序test.cpptest.obj可执行代码可执行代码test.exe编译编译连接连接 运行运行301.3C语言的发展历史与特点语言的发展历史与特点n历史历史1972
10、年:贝尔实验室的年:贝尔实验室的DennisRitchie在在B语语言的基础上设计并实现了言的基础上设计并实现了C语言。语言。1978年:和年:和D.Ritchie(简称(简称K&R)合著的)合著的TheCProgrammingLanguage是各种是各种C语言版本的基础,称之为旧标准语言版本的基础,称之为旧标准C语言。语言。1983年:美国国家标准化协会(年:美国国家标准化协会(ANSI)制定了)制定了新的新的C语言标准,称语言标准,称ANSIC。31 1.3 C1.3 C语言的特点语言的特点 只有通过学习,方可理解只有通过学习,方可理解C C之特点,先简叙之:之特点,先简叙之:1.1.简洁
11、、紧凑、方便、灵活简洁、紧凑、方便、灵活 3232个关键字,个关键字,9 9种控制语句,程序书写形式自由,种控制语句,程序书写形式自由,主要用小写字母,压缩一切不必要成分。主要用小写字母,压缩一切不必要成分。2.2.运算符丰富运算符丰富 除了最基本的、除了最基本的、%等运算外,等运算外,还将括号、赋值、类型强制转换等均作为运算还将括号、赋值、类型强制转换等均作为运算 符,共有符,共有3434种运算符。种运算符。323.3.数据结构丰富数据结构丰富 有整型、实型、字符型、数组类型、指针类型、有整型、实型、字符型、数组类型、指针类型、结构体类型、共同体类型等。结构体类型、共同体类型等。4.4.具有
12、结构化的控制语句具有结构化的控制语句 C C语言是结构化语言。提供了大量程序设计功语言是结构化语言。提供了大量程序设计功能,支持若干循环结构。如能,支持若干循环结构。如if elseif else语句,语句,dowhiledowhile语句,语句,switchswitch语句,语句,forfor语句。语句。5.5.语法严格,但有灵活性语法严格,但有灵活性 如:对数组下标越界不作检查;数据类型可如:对数组下标越界不作检查;数据类型可相互通用:整型、字符型通用。相互通用:整型、字符型通用。336.C6.C语言是中级语言(高级语言中的低级语言)语言是中级语言(高级语言中的低级语言)低级语言:可直接对
13、硬件进行操作(内存地址的操作、低级语言:可直接对硬件进行操作(内存地址的操作、位操作等)。依赖于计算机硬件,可读性位操作等)。依赖于计算机硬件,可读性 和可移植性较差。和可移植性较差。高级语言:可读性、可移植性较好。但难以实现汇编高级语言:可读性、可移植性较好。但难以实现汇编 语言的某些功能(直接对硬件操作)。语言的某些功能(直接对硬件操作)。7.7.生成目标代码质量高,执行效率高。生成目标代码质量高,执行效率高。8.8.可移植性优于汇编语言。可移植性优于汇编语言。C C语言将与硬件有关的因素从语言主体中分离出来,通过语言将与硬件有关的因素从语言主体中分离出来,通过库函数或其他实用程序实现它们
14、。库函数或其他实用程序实现它们。341.4实现问题求解的过程实现问题求解的过程问题:求问题:求1100间所有偶数的和。间所有偶数的和。1问题分析与算法设计问题分析与算法设计求在一定范围内(求在一定范围内(1100)、满足一定条件)、满足一定条件(偶数偶数)的若干整数的和,求的若干整数的和,求累加和累加和。思路思路:设置一个变量:设置一个变量(sum),其初值为,其初值为0,然后在,然后在1100的的数数(i)中寻找偶数,将它们一个一个累加到中寻找偶数,将它们一个一个累加到sum中。中。n一步累加:一步累加:sum=sum+i;n重复累加,用循环语句实现,在循环过程中:重复累加,用循环语句实现,
15、在循环过程中:(1)判别判别i是不是偶数:用分支控制语句来实现。是不是偶数:用分支控制语句来实现。(2)对循环次数进行控制:通过对循环次数进行控制:通过i值的变化值的变化35问题分析与算法设计问题分析与算法设计思路思路确定算法确定算法算法:一组明确的解决问题的步骤,它产生结算法:一组明确的解决问题的步骤,它产生结果并可在有限的时间内终止。果并可在有限的时间内终止。算法的描述:算法的描述:n自然语言自然语言n伪代码伪代码n流程图:算法的图形表示法流程图:算法的图形表示法36sum=0i=1i=100i是偶数?是偶数?sum=sum+ii=i+1输出输出sum真真真真假假假假37实现问题求解的过程
16、实现问题求解的过程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;38 C语言允许定义变量时赋予初值。语言允许定义变量时赋予初值。如如:int i=6;float x=8.35;char c=6;*也可对某个变量赋初值:也可对某个变量赋初值:int a,b,c=6;39对三个变量赋初值时写成对三个变量赋初值时写成:int a=6,b=6,c=6;不能不能:i
17、nt a=b=c=6;定义变量时赋初值实际上是在定义变量时赋初值实际上是在运行时执行一个赋初值语句运行时执行一个赋初值语句:int a=6;相当于相当于:int a;a=6;int i,sum=0;相当于相当于:int i;int sum=0;或或:int i;int sum;sum=0;40实现问题求解的过程实现问题求解的过程3程序编译连接程序编译连接编辑程序后,用该语言的编译程序对其进行编译,编辑程序后,用该语言的编译程序对其进行编译,以生成二进制代码表示的目标程序以生成二进制代码表示的目标程序(.obj),与,与编程环境提供的库函数进行连接(编程环境提供的库函数进行连接(Link)形成)
18、形成可执行的程序可执行的程序(.exe)。编译程序指出编译程序指出语法错误语法错误语法错误语法错误VS逻辑错误逻辑错误41实现问题求解的过程实现问题求解的过程4运行与调试运行与调试经过编辑、编译、连接,生成执行文件后,就可以在编经过编辑、编译、连接,生成执行文件后,就可以在编程环境或操作系统环境中运行该程序。程环境或操作系统环境中运行该程序。如果程序运行所产生的结果不是你想要的结果,这是程如果程序运行所产生的结果不是你想要的结果,这是程序的序的语义错误(逻辑错误)语义错误(逻辑错误)。调试:在程序中查找错误并修改错误的过程。调试:在程序中查找错误并修改错误的过程。调试的方法调试的方法n设置断点设置断点n单步跟踪单步跟踪调试是一个需要耐心和经验的工作,也是程序设计最基调试是一个需要耐心和经验的工作,也是程序设计最基本的技能之一。本的技能之一。42开始开始结果结果语法语法错误错误源程序源程序.c/.c/.cpp.cpp目标程序目标程序.obj.obj可执行程序可执行程序.exe.exe编辑编辑编译编译连接连接运行运行连接连接错误错误运行运行错误错误C C语言程序的调试、运行步骤语言程序的调试、运行步骤43