【教学课件】第一章程序设计概述.ppt
,05021-1,2,3 05022-1,2,C Programming Language 主讲:胡文静 博士(228405520),C 语言与程序设计,所有的学习都是一个自学的过程。学生学习 知识时主要是靠自己勤奋刻苦。老师最大的任务 就是教他们怎样去学。-Orison S.Marden(美),C语言与程序设计是计算机专业和非计算机专业的一门技术基础课程,是程序员教学体系中的核心基础课。通过本课程的学习,能更好地了解和应用计算机,培养学生应用计算机独立解决问题的能力,让学生真正掌握一门使用计算机的语言工具,为学生今后无论是从事计算机或非计算机工作都奠定了良好的、扎实的计算机语言基础。,你应该知道,本课程的性质、目的与任务,你应该知道,本课程的基本要求,你应该知道,C语言程序设计是计算机专业与非计算机专业进行程序设计的启蒙语言课程,程序员教学体系中的核心语言基础课,是后续课程的必要先修课程,提高学生掌握应用计算机能力的一门技术基础课程。其主要内容包括算法、C语言的数据类型、基本语句及利用该语句进行程序设计的方法和技巧等。,本 课 程 主 要 讲 授 内容,你应该知道,本 课 程 使 用教材与参考教材,参考教材:C语言程序设计高等教育出版社,你应该知道,本课程总学时,目 录,第1章 程序设计的基本概念,1.1 程序与程序设计,1.2 算法与算法的描述,第2章 C语言程序设计基础,2.1 C语言程序结构,2.2 常用的数据类型,2.3 运算符及表达式,目 录,第3章 简单的C程序设计,3.1 C语言的基本语句,3.2 赋值语句,3.3 基本输入与输出语句,第4章 选择结构的C程序设计,4.1 if 语句,4.2 switch 语句,目 录,第5章 循环结构的C程序设计,5.1 if/goto 语句,5.2 while 语句,5.3 do-while 语句,5.4 for 语句,5.5 嵌套循环,5.6 break 与 continue 语句,目 录,第6章 数组,6.1 数组和数组元素的概念,6.2 一维数组,6.3 二维数组,6.4 字符串与字符数组,目 录,第7章 函数,7.1 函数的概念,7.2 函数的定义,7.3 函数的返回,7.4 函数的调用,7.5 函数形参与实参传递,7.6 函数的递归调用,7.7 变量的使用范围及存储类型,目 录,第8章 指针,8.1 指针与指针变量的概念,8.2 指针变量的定义与引用,8.3 指向指针的指针变量,8.4 指针与函数,9.1 结构体类型的基本操作,9.2 结构体数组,目 录,9.3 指向结构体类型数据的指针,9.4 链表,第9章 结构体与共用体,第1章 程序设计的基本概念,计算机是按程序所规定的内容和步骤进行工作的。所以对每一个学习计算机知识的人来说,首先都应建立起“程序”的概念,并且学习程序设计的有关知识。,1.1 程序与程序设计,一、程序(Program),为使计算机完成一个预定的任务而设计的一系列语句或指令,main()int a,b,c;a=100;b=200;c=a+b;printf(“sum=%dn”,c);,stud.c,一个程序应包括 两方面的内容,数据类型(Data types)数据结构(Data structure),数据结构+算法=程序,算法(algorithm),main()int a,b,c;a=100;b=200;c=a+b;printf(“sum=%dn”,c);,对数据的描述,对操作的描述,二、程序设计(Programming),设计、书写及检查调试程序的过程。,数据结构,确定算法,编写代码,调试运行,整理结果并攥写文档,程序=数据结构+算法+程序设计方法+文档,EXAMPLE1-1:,0021班 学生成绩表单,请计算下列给出的成绩表单中“春风”的总成绩,英语和高数成绩均用整型数据表示:,int score1,score2,sum;,数据结构,确定算法,sum=score1+score2,score1=88 score2=67,编写代码,main()int score1,score2,sum=0;score1=88;score2=67;sum=score1+score2;printf(“sum=%dn”,sum);,main()int score1,score2,sum=0;score1=88;score2=67;sum=score1+score2;printf(“sum=%dn”,sum);,调试运行,整理结果并攥写文档,程序名称:sum.c程序员:李晓程序功能:计算学生成绩代码编写日期:2005年10月25日该程序算法用下列程序流程图描述:,155,三、源程序与目标程序(Object),source program,complier,object program,other object files/libraries,linker,executable file,FIGURE 1-1 The compliation process,1.2 算法与算法的描述,一、算法,所谓“算法”,是指为解决一个问题所采取的方法和步骤。,1001+2+3+100,即 n n=1,1+2+3+4+5+100,100+(99+1)+(98+2)+(51+49)+50=100+50+49X100=5050,(1+3+5+99)+(2+4+6+100)=5050,1+2+3+4+5+100=5050,完成一项工作,设计算法,实现算法,二、算法的描述工具,描述工具,X1,起止端点,输入/输出,一般处理,预定义处理,条件判断,循环上界,循环下界,流程线,1、程序流程图,Begin,sum=0,score1=88Score2=67,sum=score1+score2,输出sum,End,请用程序流程图描述求解下列问题的算法,EXAMPLE1-2:,用程序流程图表示的三种基本结构,A,B,C,顺序结构,A,exp,选择结构,A,B,exp,选择结构,A,exp,T,F,循环结构,exp,T,A,F,设:a=100 b=200 现将a与b中的值互换。请用 程序流程图描述其互换过程,EXAMPLE1-3:,100,200,100,200,100,Begin,a=100b=200,t=a,a=b,b=t,输出a,b,End,现代社会是竞争时代,可以说是机遇与危机 并存,只要我们思路开阔,头脑灵活,就能够在 生活中把握机遇,铸造辉煌的人生。-Og Mandino(美),健康、青春和自由可以说是人生的三大财宝,但当我们拥有它时,却毫无所觉,一旦丧失后,才 意识到它们的可贵。-Arthur Schopenhauer(德),输入a与b两个值,若ab则 输出a。请用程序流程图描 述其执行过程。,EXAMPLE1-4:,Begin,T,F,输入a,b,ab,输出a,End,输入a与b两个值,若ab则 输出a,否则输出b。请用程序流程图描述其执行 过程。,EXAMPLE1-5:,Begin,输入a,b,ab,T,m=a,F,m=b,输入a,b,End,Begin,End,输入a,b,c 三个值,请 输出三个值中最大的一个。请用程序流程图描述其执 行过程。,输出 m,输入a,b,c,ab,T,m=a,m=b,F,mc,m=c,F,T,EXERCISES1-1:,输入a,b,c 三个值,请按 其值从大到小排序并输出。要求用程序流程图描述其排 序过程。,EXERCISES1-2:,Begin,End,输出a,b,c,输入a,b,c,ab,T,t=a a=bb=t,F,ac,F,T,t=a a=cc=t,bc,F,t=b b=cc=t,T,Begin,sum=0 i=1,sum=sum+i,输出sum,End,请用程序流程图描述:sum=1+2+3+4+100的计算步骤。,设:i 计数器:i=i+1,sum 为累加器:sum=sum+i,i=i+1,T,i100,F,EXAMPLE1-6:,从键盘输入30名学生的高数成绩 并输出高数成绩小于60分的值,并统 计出小于60的有多少人。要求用程序流程图描述其解决该 问题的算法。,设:i 总人数计数器:i=i+1(i=30),g 为输入的成绩,num 记录不及格人数:num=num+1,EXERCISES1-3:,End,输出 num,Y,i=30,N,Begin,i=0,num=0,g60,F,输入 g,输出 g,T,num=num+1,i=i+1,1,1,2,2,顺序结构,1973 年由美国学者 I.Nassi、B.Shneiderman,A,B,选择结构,循环结构,2、N-S 图,描述计算:sum=1+2+3+4+100,sum=0,i=1,i 100,sum=sum+i,i=i+1,输出 sum,EXAMPLE1-7:,1.3 C语言概述(C Programming Language),一、计算机语言,汇编、编译、链接,1.3 C语言概述(C Programming Language),二、发展过程,1.3 C语言概述(C Programming Language),三、C语言特点,语言简洁,表达能力强,易于理解只有32个关键字,9种控制语句数据构造能力强运算符丰富程序书写格式自由可直接访问物理地址,实现对硬件和低层系统软件的访问语言生成的代码质量高可移植性好,增加学习难度,本章完下一章:C程序设计基础,