为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

C语言第一讲

2010-12-24 47页 ppt 550KB 63阅读

用户头像

is_688145

暂无简介

举报
C语言第一讲nullC语言电子教案C语言电子教案答疑时间: 答疑地点:10-510C语言电子教案(一)C语言电子教案(一)第一讲 第一章 C语言概述 第二章 算法 第一章 C语言概述第一章 C语言概述主要内容: C语言的发展简史 C语言的特点 简单的C程序介绍 教学方法、要求、学习方法 C语言环境简介§1.1 C 语言的发展简史§1.1 C 语言的发展简史时间 名称 发明者 特点 1960 ALGOL 60 离硬件远,不宜编程 1963 CPL 英国剑桥...
C语言第一讲
nullC语言电子教案C语言电子教案答疑时间: 答疑地点:10-510C语言电子教案(一)C语言电子教案(一)第一讲 第一章 C语言概述 第二章 算法 第一章 C语言概述第一章 C语言概述主要: C语言的发展简史 C语言的特点 简单的C程序介绍 教学方法、要求、学习方法 C语言环境简介§1.1 C 语言的发展简史§1.1 C 语言的发展简史时间 名称 发明者 特点 1960 ALGOL 60 离硬件远,不宜编程 1963 CPL 英国剑桥大学 接近一些硬件,规模大 1967 BCPL 英国剑桥大学 较CPL简化一些 1970 B 美国贝尔实验室 过于简单,功能有限 72~73 C 美国贝尔实验室 精炼,接近硬件,功能强 §1.2 C 语言的特点§1.2 C 语言的特点 1.语言简洁、紧凑,使用方便、灵活 2.运算符丰富 3.数据结构丰富 4.具有结构化的控制语句 5.语法限制不严 6.允许直接访问物理地址,能进行位操作 7.生成目标代码质量高,程序执行效率高 8.用C语言写的程序可移植性好§1.3 简单的 C 程序介绍§1.3 简单的 C 程序介绍C 程序的构成: 1. 一个 C 程序由若干个函数组成,其中要有而且只能有一个 main 函 数, main后面必须跟一对圆括号。 2. 每个函数由二个部分组成 如:求两个整数之和的C程序: main ( ) { int a,b,sum; a=123;b=248; sum=a+b; printf("sum=%d\n",sum); } /* 函数的说明部分 */ /* 变量定义 */ 执行语句 函数体注释部分说明部分:用来对函数进行说明函数体变量定义执行部分,由语句组成C 程序的一些规定C 程序的一些规定1. 函数名后必须跟有括号,即使空括也不能省。 2. 程序必须从 main 函数开始执行,不管main函数位置如何。 3. 一行可以写多个语句,一个语句也可以分写在多行,但一对双引号不能分行。 4. 语句最后的 ";" 是语句的一个部分,不能省略。 5. 可以用 /*..........*/ 对程序加以注释,注释中的内容计算机并不执行。C 程序的上机步骤C 程序的上机步骤进入 TC环境: 从"开始/程序/MS-DOS方式"进入DOS方式 转到E盘(E:<回车>) 键入TC<回车> 开始一个新程序:File/New 输入并修改源程序: 程序存盘:File/Save(或F2) 运行程序:Run/Run(或Ctrl+F9) 查看结果:Run/User Screen(或Alt+F5) 退出TC:File/Quit(Alt+X) 返回Windows桌面:Exit<回车> 说明: 程序也可以先运行后存盘,但先存盘是一个好习惯。 如果运行时程序有错误,修改后重新运行。教学方法教学方法使用计算机、网络、多媒体和数字化技术,使得教学中各个环节用数字化方法实现。包括:数字化教学、数字化课件、数字化答疑、数字化作业、数字化考试。 在多媒体数字化教室上课,采用数字化教学方式,使用数字化课件(网上下载课件、网上交作业、网上答疑)。 答疑采用上机、现场答疑和网上数字化答疑相结合。我的电子邮件信箱:xhzh@mail.haust.edu.cn 教学网站网址:210.43.7.8 欢迎同学光临教学网站,提交作业和实验报告、提出问题、建议、批评等.学习要求学习要求每次上课要带教材和实验指导书。 每次上机要带教材、实验指导书和实验报告。 每次上机前预习实验报告,对上机目的和要求要做到胸中有数。有编程的内容要事先编写好程序。 上机过程中,按实验指导书的要求填写实验报告,每次实验结束时上交实验报告。 独立完成作业,不可照抄作业。 考试方法考试方法上机考试 ——试卷在机器上 ——在机器上实现给定之命题 ——考试采用倒计时,交卷或考试时间到 后由计算机自动判卷。 考试时间 考试安排在期末,具体时间由教务处安排。但每部分学完之后,会有不定期的阶段测验。阶段测验成绩作为平时成绩的一部分。第二章 算法第二章 算法主要内容: 计算机的基本原理及软硬件组成 计算机语言简介 程序的过程 鸡兔同笼问题分析(顺序程序设计) 下棋问题分析(选择结构程序设计) 100个数求和问题分析(循环结构程序设计) 数列求和问题分析 C语言环境简介微型计算机硬件组成微型计算机硬件组成微机硬件由运算器、控制器、存储器、输入设备、输出设备五部分组成: 主机 外设 中央处理器 (CPU) 内存储器 外存储器:软盘、硬盘、光盘 输入设备:键盘、鼠标 输出设备:显示器、打印机 运算器 控制器微机硬件计算机软件系统的组成计算机软件系统的组成计算机软件是各种程序及文档资料的总称 系统软件 应用软件 操作系统 高级语言编译和解释系统 工具软件 字处理系统 工资、档案管理系统 CAD、CAM、CAI软件 软件各种软件的功能各种软件的功能操作系统(简称为OS):对计算机的全部硬、软件资源进行管理、统一调度和统一分配的软件系统。是人机间界面,是计算机系统的核心,如Windows 98。语言编译软件:将c=a+b;这样的高级语言的程序语句翻译成机器语言的软件,例如 tc.exe。字处理软件:具有对文字进行各种各样的编辑、排版功能的软件,例如Word。为什么要学习程序设计语言为什么要学习程序设计语言掌握了程序设计语言,才能够对计算机的工作过程有较深刻的理解。 掌握了程序设计语言,才能够进行系统软件或应用软件的开发,才能成为一个计算机的高级使用者和主动使用者。 掌握了程序设计语言,你可以使计算机能够做前人未能做过的工作。程序设计语言程序设计语言语言就是一种约定,是对话和交流的工具。程序设计语言是人与计算机之间进行对话和交流的一种约定。 程序设计语言有:机器语言、汇编语言和高级语言。 机器指令和机器语言机器指令和机器语言★ 机器指令:能被计算机识别的二进制代码。 ★ 机器语言:机器指令的集合。因机器而异,不同机型,机器语言不同,可移植性差。 ★ 机器语言程序:用机器语言写出的程序,由 0 和 1 组成。其优点是计算机能直接识别和运行,效率高,但不易阅读和修改。汇编语言汇编语言机器语言难学难用,而且易错难改,十分枯燥无味,为了便于记忆,计算机专家们又创造了汇编语言。 汇编语言是用特定的助记符号代数字代码,帮助人们记忆,它和机器指令基本上是一一对应的。 例:计算 56+43的汇编程序例:计算 56+43的汇编程序 汇编语言程序 功能及说明 START:LD A, 38H 将38H送入累加器A中 LD B, 2BH 将2BH送入累加器B中 ADD A, B 将累加器A和B的值相加后送入A中 LD (48H),A 将累加器A中的数值送入编号为48H 的存储单元中 NOP 空语句 HALT 停止语句说明: 38H表示38是十六进制数,即为十进制的56 2BH表示2B是十六进制数,即为十进制的43 (48H)表示地址而不是常量高级语言高级语言高级语言是用英语和人们熟悉的数学公式来表达的,因此具有较好的通用性。 例:计算32+65的C程序: main( ) { int a,b,c; a=32; b=65; c=a+b; printf("a+b=%d\n",c); } 编译程序编译程序事实上,高级语言程序(通常称为源程序)输入计算机之后,先要被翻译成机器语言程序(通常称为目标程序),然后再执行。这个翻译工作是由一个系统软件“ 编译程序” 完成的。不同的高级语言有不同的编译程序,如果没有C编译程序,计算机是不能运行C源程序的。对于Turbo C来讲,这个“翻译”就是编译程序 TC.EXE。编译程序功能示意图编译程序功能示意图输入编译常用高级语言常用高级语言 语言名称 适用范围 BASIC 教学和小型应用程序的开发 FORTRAN 科学与工程计算程序的开发 PASCAL 专业教学与应用程序的开发 PROLOG 人工智能程序的开发 COBOL 商业与管理应用程序的开发 FoxPro 数据库管理程序的开发 C 中小型系统程序的开发 C++ 面向对象程序的开发 VC、VB 可视化、面向对象编程语言程序程序程序 ( Program) - 是为解决某个问题用计算机语言或命令 设计、 编写的一系列指令的有序集合。 - 是人的思维活动的代码化描述。 程序的顺序执行 一个程序通常分为若干个具有一定独立性的程序段,这些程序段是按逻辑步骤编排执行的,只有当当前程序段执行完成后,才将控制权转交到下一个程序段并执行下一个程序段。程序设计的基本过程程序设计的基本过程对于初学者,往往把程序设计理解为简单的编制一个程序。实际上,程序设计包括多方面的内容,而编制程序只是其中一个方面。 程序设计可用如下公式描述: 程序设计=算法+数据结构+方法+工具 程序设计的过程: ★ 问题的分析 ★ 算法的设计 ★ 流程的描述 ★ 编写程序 ★ 调试与运行计算机求解问题步骤计算机求解问题步骤 实际 问题分析抽象 (数学)模型求解 (算法)命令编程 ()调试程序(源程序) 问题 模型 求解 算法 编制 程序 问题 实现简单程序执行举例简单程序执行举例设有一个程序有三个程序段,分别执行 I(输入,Input)、C(计算,Calcate)和 P(输出,Print)操作。 执行顺序为: I C P 只有“输入”了数据 ,才能“计算”这些数据,也只有“计算”产生了结果,才能“输出”它们。这些顺序关系是绝不能随意改变的。流程图流程图流程图:用图形描述问题的处理过程的工具即用一些约定的几何图形来描述算法。流程图的符号及意义 圆边框 工作的开始或停止 平行四边框 输入或输出 判断框 逻辑判断或检查 矩形框 各种处理功能 箭头线 流程的路线 圆圈 连接点鸡兔同笼问题算法分析鸡兔同笼问题算法分析问题:鸡兔同笼,共头6只,共脚16只,问鸡兔各几?数学分析:设鸡cock只,兔rabbit只,头数量h,脚数 量f,则有下列方程:cock+rabbit=h 2*cock+4*rabbit=f模型求解:计算机不会解方程,而需要对模型进行求 解。应分别求出鸡兔的数量与头、脚数量 之关系,即抽象出下列方程: cock=(4*h-f)/2 rabbit=(f-2*h)/2算法分析:先定义2个变量cock和rabbit分别存放鸡、兔的数量,定义2个变量h和f分别存放和头脚数量;然后输入原始数据,即为h和f赋值;再按照模型的求解结果计算鸡兔的数量;最后输出计算结果。鸡兔同笼问题流程图鸡兔同笼问题流程图开始输出cock,rabbit的值定义变量cock,rabbit,h,f6→h,16 →f计算cock=(4*f-h)/2计算rabbit=(f-2*h)/2 结束鸡兔同笼问题程序鸡兔同笼问题程序所编写的程序如下: main( ) { int cock,rabbit,h,f; h=6; f=16; cock=(4*h-f)/2; rabbit=(4*h-f)/2; printf("h=%d,f=%d,cock=%d,rabbit=%d\n",h,f,cock,rabbit); } /*每个C程序都要以main()开头, 将程序语句写在一对花括号之间 */ /* 定义4个变量*/ /* 为变量h和f赋初值,即输入原始数据 */ /* 计算鸡的数量并赋给变量cock */ /* 计算鸡的数量并赋给变量cock */ /* 输出原始数据和计算结果 */下棋问题下棋问题     下棋问题流程图下棋问题流程图开始举例:求100个数据之和举例:求100个数据之和 商店结帐,要求将当天100笔收入累加 打印出总和。可以写出下面的算法: (1)将第一笔收入输入给计算机; (2)将第二笔收入输入给计算机; (3)将以上两笔收入相加; (4)将第三笔收入输入给计算机; (5)将它和前二笔收入的和相加; …… (198) 将第100笔收入输入给计算机; (199)将它和前99笔收入之和相加; (200)打印出100笔收入的总和。求100个数据之和算法分析求100个数据之和算法分析以上算法计算机重复执行了一些操作,引入了“循环” 结构,算法可改写为: (1) 定义“ 计数变量” n,使n的初值为零, 即 n=0; (2) 定义“累加变量” sum,初值为零(sum=0); (3) 若n<100,则转到(7)继续执行,否则执行(4); (4) 输入一个数给“ 收入变量” x; (5) 将x和sum的值相加,和放在变量sum中, 即x+sumsum; (6) 使n的值加1,即n+1  n(n的值表示已累加的 数据的个数); (7) 打印出总和sum的值。求100个数据之和算法流程图求100个数据之和算法流程图开始求100个数据之和的程序求100个数据之和的程序 main( ) { int x,sum,n; n=0; sum=0; while(n<100) { scanf("%d",&x); /* 从键盘为x输入一个值 */ sum=sum+x; n=n+1; } printf("sum=%d\n",sum); } null如果收入不是100笔而是1000笔,只需将条件(即步骤(3))中的n<100改为n<1000即可。 算法中变量sum的值是不断改变的,在每次循环中以一个新的值(x+sum的原值)代替它的原值,然后再以sum的新值作为下一次运算的基础,再求出sum的下一次的值,如此一次次地求下去直到达到要求为止,这种方法称为“ 迭代”,即 x+sum sum 。sum称为迭代变量。 计算机算法的最大特点就是“ 迭代”。利用计算机高速运算的特点,执行多次循环,通过“迭代”实现各种运算。求100个数据之和算法null(1)使 s=0(s作为累加变量); (2)使 n=1(n代表分母); (3)s+1/n  s (执行迭代,s为迭代变量); (4)n+1  n; (5)若n≤100,转去执行(3)以及其后的操作; 否则执行(6); (6)打印s的值(即所求之总和)。举例:级数求和算法分析可以抽象出下面的算法:级数求和流程图级数求和流程图开始NY级数求和程序级数求和程序 main( ) { float s,n; n=1.0; s=0; do { s=s+1/n; n=n+1; } while(n<=100); printf("s=%f\n",s); } 举例:求y/x之值的算法分析举例:求y/x之值的算法分析 例如:描述计算并输出z=y/x的流程,可以用自然语言描述如下: (1)输入x,y的值。 (2)判断x是否为0: 若x=0,则输出错误信息; 否则将 y/x  z 后输出z。求y/x之值的算法流程图求y/x之值的算法流程图开始YN求y/x之值的程序求y/x之值的程序 main( ) { float x,y,z; scanf("%f%f ",&x,&y); if(x==0) printf("Data error!\n"); else { z=y/x; printf("z=%f\n",z);} } /*注意先输入后计算*/null用某种程序设计语言编写的程序本质上也是问题处理方案的描述,并且是最终的描述。 在一般的程序设计过程中,不提倡一开始就编写程序,特别是对于大型的程序。 程序是程序设计的最终产品,需要经过每一步的细致加工才能得到,如果企图一开始就编写出程序,往往会适得其反,达不到预想的结果。 编程null★编写的程序还需要进行测试和调试,只有经过调试后的程序才能正式运行。 ★测试:是指通过一些典型例子,尽可能多发现程序中的错误。 ★调试:是指找出程序中错误的具体位置,并改正错误。 ★结论:测试与调试往往是交替进行的,通过测试发现程序中的错误,通过调试进一步找出错误的位置并改正错误。调试与运行
/
本文档为【C语言第一讲】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索