《传智播客C语言入门课件.ppt》由会员分享,可在线阅读,更多相关《传智播客C语言入门课件.ppt(40页珍藏版)》请在三一办公上搜索。
1、传智播客C语言入门教程(2),讲师:尹成QQ:77025077博客:http:/,C语言,C+语言,传智播客http:/,高薪就业,2.安装VisualStudio2010,3.VisualStudio开发环境概述,4.跟我一起实现Hello World,5.C语言编译,链接,生成的过程,传智播客C语言入门教程(2)大纲,1.C语言开发环境概述,C语言课程概述,6.初学者的疑难解答,2.1.1VC+,C+,C,TC:跳出这团浆糊认识开发环境和语言的区别,VC+,一般是指微软公司的Visual Studio开发套件中的Visual C+开发环境。所谓开发环境,是集成了源代码编辑,编译,链接,调试
2、等功能的一个综合程序。,VisualC+,C+,是另外一门有些类似C语言语法的面向对象的高级语言。虽然C语言不加修改就可以被C+编译器编译,但C和C+是完全不同思想的两门语言,不应将C+看作是C的超集。,.,C+,C就是指C语言了。,C,TC是Borland公司开发的C编程环境,是Trobe C 的简称。一般学习C语言,都使用该编程环境,只是这已经算是老古董了,对于现在的操作系统,使用TC2来编写程序,已经很不合时宜了,TurboC/C+,2.1.2IDE-VisualStudio2010简介,2.2.1VS2010下载,百度 网盘下载地址:http:/,下载该文件:,把文件下载好以后打开,选
3、择用360压缩打开,安装之前请关闭杀毒软件,360安全卫士,避免安装失败,2.2.2 VS 2010打开,选中setup.exe选择解压缩打开,2.2.3初始化开始安装,点击安装Microsoft Visual Studio 2010,2.2.4VS2010等待加载,等待它漫长的加载,2.2.5加载完成下一步,点击下一步,2.2.6同意相关条款,选择同意条款,点击“下一步”按钮,2.2.7定制安装选项,硬盘够大的同学选择完全,不够的同学选择自定义,同时可以定制软件安装路径,2.2.8定制安装的功能,在这里可以定制安装哪些,不安装哪些,必须勾选Visual C+,2.2.9 开始安装,开始安装,
4、忍耐,等待,2.2.10处理重启,如果提示重启,则重启,2.2.11继续安装,继续安装,2.2.12安装完成,大功告成,可以继续安装文档,可装可不装,点击安装文档选择相关文档安装即可,2.2.13VS2010启动画面,2.3VisualStudo2010开发环境,2.3.1VS2010新建项目,2.3.2VS2010项目窗口,2.4HelloWorld案例的代码,项目名称不能包含任何非字母数字字符(包括“.”和“.”),并且它们的长度不能超过 256 个字符,#include /*包含该头文件的目的是使用了函数printf*/*空行,主要是为了分隔,编译器忽略。*/void main(void
5、)/*主函数,入口点*/*函数开始*/printf(nHello World!);/*打印字符串*/,2.4.1HelloWorld代码概貌,很短,简单几行文字,就创建了一个可以运行的程序,非常神奇。代码虽小,但五脏俱全,综观整个代码,可以总结如下特点:(1)由单词,符号,空白组成。单词以英语单词为主,有的单词就是纯正的英语单词,如main、void、include;有的不是,如getchar、pringf。单词一般都小写。代码中的标点符号并不是随意输入的。每个符号在C中都有自己的含义。中出现的符号,有“#”、“”、“()”、“”、“/*”、“*/”、“”、“;”、“”。单词与单词之间用空白分
6、隔,空白可以是空格,也可以是Tab制表符。空白的个数没有限制。(2)如同阅读小说一样,C源代码也是从上往下阅读。也就是C源代码的先后顺序是有讲究的。行与行之间也可以有空白行。空白行数也是没有限制的。有的行顶格书写,有的行却又后退了几个空格,这种后退,称为“缩进”。如何缩进,这些也都是有讲究的。(3)并没有专门的标志表示文件从哪里起始,也没有标志表示文件到哪里结束。从第一个字符开始,文件就开始了,到最后一个字符结束,文件就结束了。,2.4.2HelloWorld代码解析,先看下面的代码段,这段代码是从中截取过来的,为了学习方便,去掉了注释部分:void main(void)printf(nHel
7、lo World!);getchar();void main(void) 这一段是在定义C程序的主函数。函数是可以完成一定功能的子程序。Main函数是C语言程序的起始执行点。每一个C程序必须有且仅有一个main函数,它是由程序员提供的。,2.4.3注释-程序员的解释,出现最多的是“/*”和“*/”包裹起来的中文语句,这些是注释。注释是帮助程序员阅读源代码和理解源代码的。编译器在编译源代码的时候,在目标代码生成以前,会把注释剔除掉然后再进行编译,当然编译器是不会修改源文件的,这一切是在内存中完成。由于对于注释部分忽略不处理,就如同没有这些字符一样,所以注释不会增加编译后的程序的可执行代码长度,对
8、程序运行不起任何作用。注释分为两种/,/*/,2.4.4屏幕上显示文字-函数调用,Main函数体中:printf(nHello World!);这行是调用了C语言提供的打印数输出函数,该函数的名字是“printf”,小括号内双引号括起来的文字是printf函数的参数。该函数的功能是把小括号里的文字原样打印在屏幕上。也就是说双引号里的内容变化,则打印在屏幕上的文字也会变化。请读者自己试验修改双引号里的文字。说明:“n”在这里有特殊的含义,读者可以发现“n”并没有在屏幕中打印出来。“n”中的“”是转义字符,表示其后面紧跟的字符有专门的意思。“n”表示将光标移到第二行第一格。也就是回车换行的意思。,
9、2.4.5#include有什么用,源代码最终是需要被编译器处理的。编译器编译的过程比较复杂,但一般需要经历好几步。第一步是预处理。所谓预处理,就是编译前,先进行些预先处理,如代替源代码中需要代替的部分。#include就是这么一个预处理指示指令。为了弄清楚#include的作用,现在请读者思考一个问题:编译器如何知道有printf这个函数?,2.4.6怎么找到函数,试验,修改printf为其他单词,如printfitcast,则在编译的时候,编译器会返回错误: 出现一个错误,调用了一个没有定义的函数 printfitcast。 Bug的英文意思是臭虫,被引入到计算机领域,需要追溯到第一代计算
10、机时代。当时的计算机是由许多真空管构成,需要利用大量的电力使真空管发光。某天,一只虫子爬进了其中的某只真空管中,计算机于是停止工作了。研究人员耗费很长时间,找来找去,一处地方一处地方排查,最后终于发现了这个虫子,取出虫子后,计算机就恢复了正常。于是bug这个词语就在计算机领域中代表了隐藏的错误、缺陷、漏洞或者问题。把排除错误的过程称为debug。 断点是为了方便程序员在调试过程中观察程序内部各状态而专门设置的一种调试手段。也就是在调试模式下运行程序过程中,当程序语句运行到设置的断点后,暂停程序运行,但是程序当时的内存、寄存器、上下文环境等数据都被保持,并且在源代码编辑器中指示出当前停留在代码的
11、哪一行。然后程序员就可以不慌不忙利用调试器查看程序内部状态。,2.4.7#include是用于做啥,做一个试验:将中的第一行代码删除掉。就是去掉了“#include ”,再编译看出现什么现象。是不是编译器又提示缺少函数原型:#include的作用#include是C语言预处理器指示符。#和include之间可以有多个空格。#也不一定要顶格,但是一定是第一个非空白字符。#include的作用,是告诉编译器在编译前,要做些预先处理:将后面中的文件内容包含到当前文件内。所谓包含,是指将中列出的文件的内容复制到当前文件里。注意:#一定要是第一个非空白字符。否则编译器会提示错误,并且错误信息和出错原因完
12、全不匹配。因为getchar和printf两个函数的声明位于stdio.h文件中,所以简单的用#include把stdio.h文件包含进来,自然就把getchar和printf两个函数的声明包含进来了。说明:函数声明只是向编译器登记有这么一个函数,声明了函数不调用这个函数,是被容许的。这就是为什么包含了整个stdio.h文件,里面声明了很多其他函数,但实际没有使用这些函数而编译器又不提示的原因。,预处理指令 例如包含头文件全局声明 在函数之外进行的数据声明函数定义 函数用来实现功能,必须包含一个main函数(只能有一个)每个函数都用来实现若干特定功能被调用的函数可以是库函数,也可以是自己编制设
13、计的函数程序总是从main函数开始执行,C程序书写格式是比较自由的,一行可以几个语句,便于阅读只写一行 数据声明和语句最后必须有分号 C语言本身不提供输入输出语句 程序应当包含注释,增加可读性,一个程序由一个或多个源程序文件组成,函数是C程序的主要组成部分,C程序对计算机的操作由C语句完成,01,02,03,2.4.8 C程序结构,问题分析,解决什么问题,怎么解决,编写程序,分析结果,结果错了,程序肯定错结果对了,程序未必对,设计算法,对源程序进行编辑、编译和连接,2.5C语言的编程流程,2.5.1数据结构与算法,对数据的描述,对操作的描述,算法 + 数据结构 = 程序,在程序中要指定用到哪些
14、数据以及这些数据的类型和数据的组织形式这就是数据结构(data structure),即要求计算机进行操作的步骤也就是算法(algorithm),语言只是程序工具,程序,程序设计方法,语言工具,数据结构,算法,1,2,3,4,C语言 C+语言,面向过程 面向对象,二叉树队列栈红黑树 链表等等,快速排序算法冒泡排序算法选择排序算法等等,算法、数据结构、程序设计方法和语言工具是一个程序设计人员应具备的知识.,2.5.2一个程序设计人员应具备的知识,2.5.3算法示例,笨办法,聪明的办法,1+2+3+4一直加到100,一个一个的相加,1+2=3, 3+3=6,6+4=10,最后等于5050,1+10
15、0=2+99=3+98=10150*101=5050,无论什么方法都是解决问题,问题,有穷性。一个算法应包含有限的操作步骤,而不能是无限的,确定性。算法中的每一个步骤都应当是确定的,而不应当是含糊的、模棱两可的。,有零个或多个输入。所谓输入是指在执行算法时需要从外界取得必要的信息。,有一个或多个输出。算法的目的是为了求解,“解” 就是输出。没有输出的算法是没有意义的。,有效性。算法中的每一个步骤都应当能有效地执行,并得到确定的结果,Description of the contents,一个有效算法应该具有以下特点.,2.5.4算法的特点,面向过程的编程语言,程序设计方法,结构化编码,模块化设
16、计,自顶向下,逐步细化,2.5.5C语言是面向过程的编程语言,2.5.6C语言编程步骤,从.obj链接成.exe,如果调试出现问题,就返回源码编辑,编辑源代码,编译源文件,链接生成应用程序,代码在.c与.h头文件中写好了以后,从.c,.h文件编译成.obj,代码被编译为二进制文件.obj以后,打包一些调用的库,链接成.exe可执行文件,C语言的编程步骤需要三个步骤,.CPP,.C文件,C语言与C+语言,.CPP是C+的源文件,C+语言兼容C语言,编写C语言代码可以用C+的源文件.CPP。,C+语言兼容C语言,C语言是面向过程,C+语言既能面向过程也可以面向对象。,.C是纯粹的C语言文件,不可以
17、有C+语言的代码,默认自带一些库文件。,2.5.7 .C与.CPP文件的差别,2.6初学者疑惑,集成开发环境,例如VisualStudio2010就是一个IDE.,IDE,所有的代码字符必须在英文状态下输入,否则会因为全角半角问题报错,例如输出中文“传智播客”,代码-字符,学习C+之前,必须先学C语言,不懂C语言的精髓,难以用好C+.,可以直接学C+?,学会编写代码,用代码解决问题,是最快的学习途径.,C/C+的学习秘诀,1.,2.,3.,新建一个工程,以.CPP文件作为源文件,打印出Hello China,新建一个工程,以.C文件作为源文件,打印出自己的姓名,年龄,性别,身高,体重,爱好,籍贯,新建一个工程,以.C文件作为源文件,打印出 Hello,传智播客,2.6.1练习作业,传智播客创始人张孝祥老师的理念就是帮助每一位学员都成功。帮助每一位学员都少走弯路。,C语言,C+语言,高薪就业,谢谢!,传智播客http:/,