资源描述
*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,C语言程序设计,2008,版,C语言程序设计,教学要求,掌握程序设计语言的基本知识,常用算法,初步的程序设计能力,学习方法,自主学习,重视上机实践,如何尽快学会用,C,语言进行程序设计,了解程序设计语言(C语言),模仿、改写、编写,通过不断的编程实践,逐步领会和掌握程序设计的基本思想和方法。,教材和参考书,C,语言程序设计,何钦铭、颜晖主编,高等教育出版社,200,8,C,语言编程(第,3,版),,美,Stephen,G.Kochan,,张小潘译,电子工业出版社,,2006,C,语言教程(第,4,版),,美,Al Kelley,Ira Pohl,,徐波译,机械工业出版社,,2007,标准,C,语言基础教程(第,4,版),,美,Gary J.Bronson,,单先余等译,电子工业出版社,,2006,C,程序设计语言,,美,Brian W.Kernighan,Dennis M.Ritchie,,徐宝文等译,机械工业出版社,,2006,Chap 1 引 言,一个C语言程序,程序与程序设计语言,C语言的发展历史与特点,实现问题求解的过程,本章要点,什么是程序?程序设计语言包含哪些功能?,程序设计语言在语法上包含哪些内容?,结构化程序设计有哪些基本的控制结构?,C语言有哪些特点?,C语言程序的基本框架如何?,形成一个可运行的C语言程序需要经过哪些步骤?,如何用流程图描述简单的算法?,1.1 一个C语言程序,例1-1求阶乘问题。输入一个正整数,n,,输出,n!。,#include /*,编译预处理命令*/,int,main,(void)/*,主函数,*/,int n;/*,变量定义*/,int,factorial,(int n);/*,函数声明*/,scanf,(%d,/*,输入一个整数*/,printf,(“%dn”,factorial(n);/*,调用函数计算阶乘*/,return 0;,int,factorial,(int n)/*,定义计算,n!,的函数*/,int i,fact=1;,for(i=1;i(大于),程序设计语言的语法,C,语言的主要语法单位,(1)表达式:运算符与运算对象组合就形成了表达试。如,2+3*4,(2)变量定义:变量也有数据类型,所以在定义变量时要说明相应变量的类型。如:,int i;,(3),语句:语句是程序最基本的执行单位,程序的功能就是通过对一系列语句的执行来实现的。,(4)函数定义与调用,程序设计语言的语法,其中,(3)语句:,表达式语句,:表达式加分号“,;,”,分支语句,:实现分支控制过程,if(a b)x=a;,else x=b;,循环语句,:实现循环控制的过程,sum=0;/*,初始化,sum,和,i*/,i=1;,while(i=100)/*while,循环语句*/,sum=sum+i;,i=i+1;,复合语句,:,用一对“,”,将若干语句顺序组合在一起就形成了一个程序段。,程序设计语言的语法,其中,(4)函数定义与调用,函数是完成特定任务的独立模块,函数的使用最主要涉及到函数的定义与调用。,输入输出:,C,语言没有输入输出语句,用库函数,printf,、,scanf,等实现。,程序的编译与编程环境,程序的编译,编译器,程序 计算机直接能理解的指令序列,编译器:对源程序进行词法分析、语法与语义分析,生成可执行的代码。,直接指出程序中的语法错误,编程环境,包括编辑程序(,Edit)、,编译(,Compile)、,调试(,Debug),等过程。,掌握程序设计语言:根据语言的语法,用语言表达数据、实现程序的控制,并会使用编程环境。,C 语言上机过程,源程序,test.cpp test.obj,可执行代码,test.exe,编译,连接,运行,1.3 C语言的发展历史与特点,历史,1972年:贝尔实验室的,Dennis Ritchie,在,B,语言的基础上设计并实现了,C,语言。,1978年:和,D.Ritchie(,简称,K&R),合著的,The C Programming Language,是各种,C,语言版本的基础,称之为旧标准,C,语言。,1983年:美国国家标准化协会(,ANSI),制定了新的,C,语言标准,称,ANSI C。,C语言的特点,1,C,语言是一种结构化语言,2,C,语言语句简洁、紧凑,使用方便、灵活,32个关键字,,9,种控制语句,程序书写形式自由。,3,C,语言程序易于移植,C,语言将与硬件有关的因素从语言主体中分离出来,通过库函数或其他实用程序实现它们。,4,C,语言有强大的处理能力,5生成的目标代码质量高,运行效率高,C语言的特点,6数据类型检查不严格,表达式出现二义性,不具备数据越界自动检查功能,运算符的优先级与结合性对初学者难于掌握。,C,语言中,大小写字母,代表,不同含义,1.4 实现问题求解的过程,问题:求1100间所有偶数的和。,1问题分析与算法设计,求在一定范围内(1100)、满足一定条件(偶数)的若干整数的和,求,累加和,。,思路,:设置一个变量(,sum),,其初值为0,然后在1100的数中(,i),寻找偶数,,,将它们一个一个累加到,sum,中。,一步累加:,sum=sum+i;,重复累加,用循环语句实现,在循环过程中:,(1)判别,i,是不是偶数:用分支控制语句来实现。,(2)对循环次数进行控制:通过,i,值的变化,问题分析与算法设计,思路 确定算法,算法,:,一组明确的解决问题的步骤,它产生结果并可在有限的时间内终止。,算法的描述:,自然语言,伪代码,流程图:算法的图形表示法,sum=0,i=1,i=100,i,是偶数?,sum=sum+i,i=i+1,输出,sum,真,真,假,假,实现问题求解的过程,2编辑程序,生成程序的源文件,,C,语言源文件的后缀为,.,c,/,.cpp,#include,int main(void),int i,sum=0;,for(i=1;i=100;i+),if(i%2=0),sum=sum+i;,printf(%d,sum);,return 0;,实现问题求解的过程,3,程序编译连接,编辑程序后,用该语言的编译程序对其进行编译,以生成二进制代码表示的目标程序(.,obj),,与编程环境提供的库函数进行连接(,Link),形成可执行的程序(.,exe)。,编译程序指出,语法错误,语法错误,VS,逻辑错误,实现问题求解的过程,4运行与调试,经过编辑、编译、连接,生成执行文件后,就可以在编程环境或操作系统环境中运行该程序。,如果程序运行所产生的结果不是你想要的结果,这是程序的,语义错误(逻辑错误),。,调试:在程序中查找错误并修改错误的过程。,调试的方法,设置断点,单步跟踪,调试是一个需要耐心和经验的工作,也是程序设计最基本的技能之一。,开始,结果,语法,错误,源程序,.c/.cpp,目标程序,.obj,可执行程序,.exe,编辑,编译,连接,运行,连接,错误,运行,错误,C语言程序的调试、运行步骤,
展开阅读全文