资源预览内容
第1页 / 共21页
第2页 / 共21页
第3页 / 共21页
第4页 / 共21页
第5页 / 共21页
第6页 / 共21页
第7页 / 共21页
第8页 / 共21页
第9页 / 共21页
第10页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第一章 程序逻辑与C语言概述,1.1 C语言概述 1.2 程序和程序逻辑,第一章 程序逻辑与C语言概述,1.1 C语言概述,【学习目标】 了解C语言工作机制 掌握C语言程序的的基本构成 了解C语言程序的编译过程 熟悉Dev-C+的运行环境,1.1 C语言概述,【实例1 简单的C语言应用程序】,输出一个表达式“1+1”的结果,然后再输出一个字符串“Hello World!”,输出一串汉字“北京欢迎您!”。程序的运行结果下图所 示。,1.1 C语言概述,【程序代码】,#include “stdio.h“ /*当引用一些输入输出函数时,要在程序开始引用此文件*/ main() /*C语言程序的主函数,程序从这里开始执行*/ int i; /*变量声明*/ i=1+1; /*执行语句*/ printf(“1+1=%dn“,i); /* 输出1+1的结果2,“n“表示输出时将插入点光标移到下一行起始位置*/ printf(“Hello World!n“); /*输出字符串:Hello World!*/ printf(“北京欢迎您!n“); /*输出一串汉字:北京欢迎您!*/ getch(); /*Win-TC环境下,输出时使用此语句显示输出框*/ ,1.1 C语言概述,【相关知识】,C语言程序的构成 C语言应用程序是由函数构成的,以main()函数作为入口开始执行应用程序。main()是C程序的入口函数,每个C程序必须有main()函数,且每个C程序只能有一个main()函数。 括起来的部分,称为函数体,是函数的执行部分。函数体中,每条以分号“;”结尾的元素,称为语句。 C语言的语句必须以分号结尾。语句可以一行写一条,可以一行写多条,一个单独的“;”可以自成为一条语句。 程序中的第一行语句:#include “stdio.h“或#include ,用于告诉编译器在本程序中包含标准输入/输出库的信息。函数体中printf函数是一个用于打印输出的库函数,后面小号中的内容为这个函数的参数。 函数体中,语句“int i;”是在进行变量i的定义。变量是内存中用于存放数据的元素,必须先定义,后引用。 程序中,“/*/”符号中所描述的内容,是属于某语句或某段程序的注释,为非执行语句,起到帮助读者理解程序之用。,1.1 C语言概述,【相关知识】,语言简洁,使用方便灵活。C语言关键字少,ANSI C标准总共只有32个关键字,9 种控制语句,压缩了一切不必要的成分。C 语言的书写形式比较自由,表示方法简洁。 可移植性好。相对于硬件依赖性很强的汇编语言而言,C语言通过编译来得到可执行代码。统计资料表明:C语言编译程序80%的代码是公共的,故可以稍加修改即可用于其它的计算机。 C语言表达能力强,表达方式灵活,可以进行结构化程序设计。另外一个重要的特点是它能直接操作计算机硬件。当今应用广泛的嵌入式技术和单片机技术,控制硬件的代码,很多都是由C语言开发的。 C语言生成的目标代码质量高,仅比汇编语言生成的代码效率低10%20%,是其它高级语言无法匹敌的。,C语言的特点,1.1 C语言概述,【实例2 用“*”输出字母A形】,用“*”作为边线,输出字母“A”的形状。程序运行结果下图所示。,1.1 C语言概述,【程序代码】,#include “stdio.h“ main() printf(“ *n“); printf(“ * *n“); printf(“ * *n“); printf(“ * * * *n“); printf(“ * *n“); printf(“* *n“); getch(); ,1.1 C语言概述,【相关知识】,Dev-C+简介 Dev-C+是一个C&C+的开发工具,它是一款自由的软件,遵守 GPL协议。它集合了GCC、MinGW32等众多自由软件,也是不断升级 的免费软件。它的开发环境包括多页面窗口、工程编辑器及调试器等, 在工程编辑器中集合了编辑器、编译器、连接程序和执行程序,为减少 编辑错误,提供了高亮度语法显示。它有完善的调试功能,能满足不同 层次的用户需求,但它难以胜任规模较大的软件项目。基于完善的调试 功能,本教材选用Dev-C+为开发工具。,1.1 C语言概述,【相关知识】,2.显示运行结果 在使用Turbo TC时,可能通过一步操作查看程序的运行结果,但在 Dev-C+编写程序后,你找不到运行结果窗口。如果要查看结果,需要在 程序中进行代码操作,分以下三种情况: 在主函数最后添加语句“getch();” ,它只适用于C程序。 在主函数最后添加语句“getchar();” ,它适用于C/C+程序。 在主函数最后添加语句“system(“pause“);” ,它适用于C/C+程序。,1.1 C语言概述,【相关知识】,3. 创建并运行C程序 打开Dev-C+,选择“文件/新建/源代码”或使用Ctrl + N,此时光标位 于窗口代码编辑区,如图所示。,1.2程序和程序逻辑,【学习目标】 了解算法的基本描述方法 掌握算法与程序的概念,【实例3 程序与算法梵塔推理】,任务:将1号柱大小不等的三个物体,移动到 3号柱上,顺序必须与1号 柱顺序一致。要求每次只移动一个物体,而且每根柱上小块物体必须置于 大块物体之上。其移动过程如图所示。,1.2程序和程序逻辑,【实例3 程序与算法梵塔推理】,1.2程序和程序逻辑,【实例3 程序与算法梵塔推理】,1.2程序和程序逻辑,【相关知识】,1. 程序 程序包括两部分,一是对数据的描述,即数据结构;二是对操作的描述,即操作步骤,也称为算法,它指明了解决某一具体问题的方法和步骤。因此,计算机科学家 Nikiklaus Wirth 提出如下的公式: 数据结构+算法=程序 就算法而言,大致分为两大类。一类是数值运算算法,用于求解数值。另一类是非数值运算算法,用于分析推理和逻辑推理。如实例中梵塔定理,并非求解一定的数值,而只是完成一定的推理操作。 2. 算法的自然语言描述 实例为梵塔难题的解题步骤,也是人逻辑思维的基本方法。计算机的算法思想与此类似,只是表示方法不同而已。 用计算机解此题的难点,在于如何用数据结构表示每块物体的所在位置,及如何描述某一物体由1号柱移动到2号柱这一动作,这也是算法设计的关键所在。梵塔难题可以用自然语言表示如下: 将A由1号柱移到3号柱 mov( A: 1,3 ) 将B由1号柱移到2号柱 mov( B: 1,2 ) 将A由3号柱移到2号柱 mov( A: 3,2 ) 将C由1号柱移到3号柱 mov( C: 1,2 ) 将A由2号柱移到1号柱 mov( A: 2,1 ) 将B由2号柱移到3号柱 mov( B: 2,3 ) 将A由1号柱移到3号柱 mov( A: 1,3 ),1.2程序和程序逻辑,【实例4 算法图形描述求n! 】,任务:数学上,n!=123n。现要求输入n的值,求出n!的 值。程序的运行结果如下图所示。,1.2程序和程序逻辑,【程序代码】,1.2程序和程序逻辑,#include “stdio.h“ main() int n,sum,i; printf(“请输入n的值为:n“); scanf(“%d“, ,【相关知识】,1N-S图 流程图除用自然语言描述外,还可以使用图形来描述,常用的有传统流程图和N-S图。N-S图又称为结构化盒图,它是使用一种方框来描述程序的基本结构。以实例中求n!为例,描绘成如图1-12所示的N-S图。sum=1i=1sum=sum*ii=i+1输出sum的值i=n。,1.2程序和程序逻辑,图1-12 N-S图,【相关知识】,2.传统流程图 这种方法是通过指定的几何图形框和一些箭头线来描述各个环节的操作和执行的过程。这种描述方法比较直观,而且程序走向清晰,非常易于读者理解,易于编写C语言代码。但如果程序比较复杂,使用 传统流程图描述比较繁冗,不易理解。以实例程序为例,绘制成如图1-13所示的传统流程图。,1.2程序和程序逻辑,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号