第1章 程序设计和C语言_第1页
第1章 程序设计和C语言_第2页
第1章 程序设计和C语言_第3页
第1章 程序设计和C语言_第4页
第1章 程序设计和C语言_第5页
已阅读5页,还剩106页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、宿州学院宿州学院张亚杰张亚杰经济管理学院电子商务经济管理学院电子商务E-mail: 作业:作业:school_C语言程序设计语言程序设计计算机的诞生计算机的诞生 开辟了一个新时代开辟了一个新时代信息时代;信息时代; 形成了一个新产业形成了一个新产业信息产业;信息产业; 产生了一门新学科产生了一门新学科计算机科学与技术;计算机科学与技术; 开创了一种新的科研方法开创了一种新的科研方法科学计算;科学计算; 孕育了一种新的文化孕育了一种新的文化计算机文化。计算机文化。 改革开放第一个十年销售模式-行商时代。改革开放第一个十年,1982年-1992年,七山二水一分田的温州人率先走出来,走街串巷做生意。

2、率先带领了行商时代。改革开放第二个十年销售模式-商城时代。改革开放第二个十年,1992年-2002年,2000多根竹搭建的义乌小商品市场,改变了义乌人的一生,也改变了中国销售模式的格局。改革开放第三个十年销售模式-网商时代。改革开放第三个十年,2002年-2012年,淘宝颠覆了计算机逻辑奠基人图灵计算机逻辑奠基人图灵图灵(图灵(1912.6.231954.6.7),英国数学家、逻辑学家,被称,英国数学家、逻辑学家,被称为计算机科学之父、人工智能之为计算机科学之父、人工智能之父。父。 1931年进入剑桥大学国王年进入剑桥大学国王学院,毕业后到美国普林斯顿大学院,毕业后到美国普林斯顿大学攻读博士学

3、位。二战中曾协助学攻读博士学位。二战中曾协助军方破解德国的著名密码系统军方破解德国的著名密码系统Enigma,帮助盟军取得了二战,帮助盟军取得了二战的胜利。的胜利。提出提出的有限状态自动机的有限状态自动机也就是也就是“图灵机图灵机”的概念,对于的概念,对于人工智能,他提出了重要的衡量人工智能,他提出了重要的衡量标准标准“图灵测试图灵测试”。计算机界的。计算机界的最高奖定名为最高奖定名为“图灵奖图灵奖”。“计算机之父计算机之父”冯冯诺依诺依曼曼 诺依曼诺依曼 ( 19031957),美籍),美籍匈牙利人,从小聪颖过人,读书匈牙利人,从小聪颖过人,读书过目不忘,掌握了七种语言。过目不忘,掌握了七种

4、语言。1926年获得了布达佩斯大学数学年获得了布达佩斯大学数学博士学位。博士学位。1931年他成为美国普年他成为美国普林斯顿大学的第一批终身教授。林斯顿大学的第一批终身教授。他的精髓贡献是两点:二进制思他的精髓贡献是两点:二进制思想与程序内存思想。著名的想与程序内存思想。著名的“冯冯诺依曼机诺依曼机”包括:运算器、逻辑包括:运算器、逻辑控制装置、存储器、输入和输出控制装置、存储器、输入和输出设备五大部分,该结构一直沿用设备五大部分,该结构一直沿用到今。对第一台计算机的研制工到今。对第一台计算机的研制工作做出了重要贡献。作做出了重要贡献。世界上第一台计算机世界上第一台计算机-ENIAC ENIA

5、C(Electronic Numerical Integrator And Computer )1946年年2月月15日在美国宣告诞日在美国宣告诞生。长生。长30.48米,宽米,宽1米,米,占地面积约占地面积约63平方米,平方米,30个操作台,约相当于个操作台,约相当于10间间普通房间的大小,重达普通房间的大小,重达30吨,耗电量吨,耗电量150千瓦,造千瓦,造价价48万美元。研制和开发万美元。研制和开发的目的是帮助计算新型大的目的是帮助计算新型大炮和导弹的弹道。炮和导弹的弹道。Intel创始人之一戈登创始人之一戈登摩尔摩尔 1929年出生在美国加州的旧年出生在美国加州的旧金山。曾获得加州大学

6、伯克金山。曾获得加州大学伯克利分校的化学学士学位,并利分校的化学学士学位,并且在加州理工大学(且在加州理工大学(CIT)获)获得物理和化学两个博士学位得物理和化学两个博士学位。1965年提出年提出“摩尔定律摩尔定律”, 1968年创办年创办Intel公司,公司,1987年将年将CEO的位置交给格的位置交给格鲁夫。鲁夫。1990年被布什总统授年被布什总统授予予“国家技术奖国家技术奖”, 2000年年创办拥有创办拥有50亿美元资产的基亿美元资产的基金会。金会。2001年退休,退出年退休,退出Intel的董事会。的董事会。 Microsoft创始人比尔盖茨创始人比尔盖茨1955年年10月月28日是一

7、名美国企业日是一名美国企业家、软件工程师、慈善家以及微软家、软件工程师、慈善家以及微软公司的董事长、首席软件架构师。公司的董事长、首席软件架构师。13岁时开始了计算机编程。岁时开始了计算机编程。 1973年,盖茨考进了哈佛大学。在大学年,盖茨考进了哈佛大学。在大学三年级的时候,盖茨离开了哈佛,三年级的时候,盖茨离开了哈佛,并把全部精力投入到他与孩提时代并把全部精力投入到他与孩提时代的好友的好友Paul Allen在在1975年创建的年创建的微软公司中。鲍尔默评价他为微软公司中。鲍尔默评价他为“他他是一个比较内向的小伙子,不太爱是一个比较内向的小伙子,不太爱说话,但浑身充满了活力,尤其是说话,但

8、浑身充满了活力,尤其是一到晚上就活跃起来。当时的情况一到晚上就活跃起来。当时的情况是,经常在我早上醒来时,他才准是,经常在我早上醒来时,他才准备睡觉。备睡觉。” 微软的金山上放光芒,比尔盖茨微软的金山上放光芒,比尔盖茨就是我们心中的太阳,多么温暖就是我们心中的太阳,多么温暖多么慈祥将我们程序员的心儿照多么慈祥将我们程序员的心儿照亮。我们迈步走在程序员幸福的亮。我们迈步走在程序员幸福的大道上大道上.“汉字激光照排之父汉字激光照排之父”王王选选1937.22006.2中国上海中国上海,曾任中曾任中国科学院院士,中国工程院院士,国科学院院士,中国工程院院士,第三世界科学院院士。是汉字激光第三世界科学

9、院院士。是汉字激光照排系统的创始人,他所领导的科照排系统的创始人,他所领导的科研集体研制出的汉字激光照排系统研集体研制出的汉字激光照排系统为新闻、出版全过程的计算机化奠为新闻、出版全过程的计算机化奠定了基础,被誉为定了基础,被誉为“汉字印刷术的汉字印刷术的第二次发明第二次发明”。王选语录:当人们对一个新的构思王选语录:当人们对一个新的构思说说“Cant do”(做不成做不成)时,最好时,最好的回答是的回答是“Do it yourself”(自己自己动手做动手做)。 QQ之父,企鹅帝王之父,企鹅帝王 马化腾马化腾1971年年10月月 ,广东潮阳,广东潮阳 人。人。1989年年-1993年,就读于

10、深圳年,就读于深圳大学计算机专业。大学计算机专业。 1993年深大毕业,从专注于寻年深大毕业,从专注于寻呼软件开发的软件工程师一直呼软件开发的软件工程师一直做到开发部主管。做到开发部主管。 1998年,创办腾讯计算机系统年,创办腾讯计算机系统有限公司。有限公司。 2010年,福布斯富豪排行榜第年,福布斯富豪排行榜第249位,大陆富豪第位,大陆富豪第6位。位。 2010年年5月月14日,日,“2010新财新财富富500富人榜富人榜”,以,以336.2亿元亿元资产排名第资产排名第5位。位。阿里巴巴创始人阿里巴巴创始人 马云马云1964年年10月,浙江省杭州市。月,浙江省杭州市。阿里巴巴集团主要创始

11、人之一。阿里巴巴集团主要创始人之一。现任阿里巴巴集团主席和首席执现任阿里巴巴集团主席和首席执行官,他是福布斯杂志创办行官,他是福布斯杂志创办50多年来成为封面人物的首位大多年来成为封面人物的首位大陆企业家,曾获选为未来全球领陆企业家,曾获选为未来全球领袖。袖。 1988年在杭州师范学院(现杭州年在杭州师范学院(现杭州师范大学)英语专业毕业师范大学)英语专业毕业 。1999年至今创立阿里巴巴集团,年至今创立阿里巴巴集团,并迅速成为全球最大电子商务平并迅速成为全球最大电子商务平台,目前已成亚洲最大个人拍卖台,目前已成亚洲最大个人拍卖网站;网站;计算机课程-如何学习 一、转变学习观念 学习计算机必须

12、树立自主学习的观念,坚决克服依赖于学习计算机必须树立自主学习的观念,坚决克服依赖于教师,依赖于课堂学习的思想。大学学习的时空大部分由学教师,依赖于课堂学习的思想。大学学习的时空大部分由学生自己来决定。学生自己决定自己的学习时间、地点。生自己来决定。学生自己决定自己的学习时间、地点。 积极利用各种资源,比如:学校图书馆,网络电子资源积极利用各种资源,比如:学校图书馆,网络电子资源、各种网络论坛等。、各种网络论坛等。 二、拟定学习目标 学习需要专心致志,制定学习计划是个好办法。所谓学学习需要专心致志,制定学习计划是个好办法。所谓学习计划就是将一天中的早晨、中午、晚上或其它可以用来学习计划就是将一天

13、中的早晨、中午、晚上或其它可以用来学习的时间找出来,把自己需要学习的内容、需要训练提高的习的时间找出来,把自己需要学习的内容、需要训练提高的素质、需要完成的作业安排进去,使自己的学习活动在时间素质、需要完成的作业安排进去,使自己的学习活动在时间和内容等方面能够有计划的进行。和内容等方面能够有计划的进行。如何学习-学习方法 三、选择学习方法 大学学生是学习活动的主体,学生是学习活动的决定大学学生是学习活动的主体,学生是学习活动的决定者和主宰者,学生学习的表现形式是以自主学习为主的学习者和主宰者,学生学习的表现形式是以自主学习为主的学习形式,取代课堂学习为主的学习形式。学生在学习计划不变形式,取代

14、课堂学习为主的学习形式。学生在学习计划不变的条件下,选择学习方法至为重要。选择学习方法应当因人的条件下,选择学习方法至为重要。选择学习方法应当因人而宜。而宜。 这里给大家几点建议,仅供参考。希望大家在四年这里给大家几点建议,仅供参考。希望大家在四年的学习中,探索适合自己的学习方法。的学习中,探索适合自己的学习方法。 1、自学也需要看书。自学也需要看书。一本书,即使不是什么经典之著,它一本书,即使不是什么经典之著,它也可以向你提供一个大体完整的框架,成为你自学过程中的也可以向你提供一个大体完整的框架,成为你自学过程中的向导。向导。 如何学习-学习方法(续) 2、学编程更需要实践学编程更需要实践

15、。编程最怕的就是编程最怕的就是纸上谈兵纸上谈兵。我的。我的建议是,无论你涉及编程的时间是多么地短,无论你目建议是,无论你涉及编程的时间是多么地短,无论你目前学到的知识多么地少,你都应该前学到的知识多么地少,你都应该不断地尽自己所能不断地尽自己所能去去编写一些小程序,即使是把书上的编写一些小程序,即使是把书上的“Hello, World!”亲亲手输入进去运行一遍。上机实践对于我们计算机本科班手输入进去运行一遍。上机实践对于我们计算机本科班的同学来说尤为重要,技能其实都是从电脑上泡出来的。的同学来说尤为重要,技能其实都是从电脑上泡出来的。 3、编程是创造,不是默写编程是创造,不是默写 。编程是一个

16、创造的过程。编编程是一个创造的过程。编程的意义在于:通过程序的形式,教计算机如何去完成程的意义在于:通过程序的形式,教计算机如何去完成一项任务。在自己编写程序的过程中,借鉴他人程序中一项任务。在自己编写程序的过程中,借鉴他人程序中的思想方法,而不是整天处于复制粘贴的状态中。的思想方法,而不是整天处于复制粘贴的状态中。 如何学习-学习方法(续) 4、好习惯要从开始做起好习惯要从开始做起 。写程序要注意缩进、为变量和写程序要注意缩进、为变量和函数起有意义的名字、大小写的使用、行末分号的注意函数起有意义的名字、大小写的使用、行末分号的注意等等,要从一开始做起。很多人对这些善意的提醒不屑等等,要从一开

17、始做起。很多人对这些善意的提醒不屑一顾,觉得多此一举,浪费时间。其实,如果真的能严一顾,觉得多此一举,浪费时间。其实,如果真的能严格地去做,它们反而可以帮你节省许多时间。格地去做,它们反而可以帮你节省许多时间。 5、不必太刨根问底不必太刨根问底 。编程的相关知识都是盘根错节交织编程的相关知识都是盘根错节交织在一起的,大多数问题深挖下去会越说越复杂,对于知在一起的,大多数问题深挖下去会越说越复杂,对于知识掌握不多的初学者来说,只能是越来越糊涂。很多东识掌握不多的初学者来说,只能是越来越糊涂。很多东西,时间长了,随着知识了解得深入,自然而然会明白。西,时间长了,随着知识了解得深入,自然而然会明白。

18、作为初学者,最重要的是尽快地能全面地了解整个知识作为初学者,最重要的是尽快地能全面地了解整个知识的全貌,在单独的知识点上,暂时不需要太深入。可以的全貌,在单独的知识点上,暂时不需要太深入。可以等知识经验丰富之后,再回头来研究。等知识经验丰富之后,再回头来研究。 如何学习-补记 推荐读物推荐读物 李开复给中国大学生的信李开复给中国大学生的信 林锐林锐 大学十年大学十年 互联网络上的一些相关的文章、互联网络上的一些相关的文章、blog 、论坛等等,比如:论坛等等,比如:http:/ 养成好习惯养成好习惯 著名心理学家威廉詹姆士说:著名心理学家威廉詹姆士说:播下一个行播下一个行动,收获一种习惯;播下

19、一个习惯,收获动,收获一种习惯;播下一个习惯,收获一种性格;播下一种性格,收获一种命运。一种性格;播下一种性格,收获一种命运。可见,习惯在我们的生活中如此重要。可见,习惯在我们的生活中如此重要。 自我抑制力自我抑制力 正确定位自己正确定位自己 “你知道吗?你知道吗?”美国老师美国老师20062006年研究成果年研究成果Did you know 的几个要点 美国前教育部长美国前教育部长Richard Richard 认为:认为:20102010年最迫切需要的十种工作在年最迫切需要的十种工作在20042004年时根本不存在。年时根本不存在。 我们必须教导现在的学生,毕业后我们必须教导现在的学生,毕

20、业后投入目前还不存在的工作投入目前还不存在的工作使用根本还没发明的科技使用根本还没发明的科技解决我们从未想象过的问题。解决我们从未想象过的问题。Did you know 的几个要点 我们生活在一个十倍速爆炸成长的时代。我们生活在一个十倍速爆炸成长的时代。每个月每个月GoogleGoogle必须处理必须处理2727亿次搜寻亿次搜寻但在但在GoogleGoogle诞生之前的年代,人们向谁问这些问诞生之前的年代,人们向谁问这些问题题我们每天传输的手机简讯数量已经超过了全世界我们每天传输的手机简讯数量已经超过了全世界的人口总数。的人口总数。今天,英文词汇数量大约有今天,英文词汇数量大约有5454亿个,

21、是莎士比亚亿个,是莎士比亚诞生时的五倍。诞生时的五倍。纽约时报纽约时报一周所包含的信息量比十八世纪一一周所包含的信息量比十八世纪一个人一生可能接触到的信息量还要多。个人一生可能接触到的信息量还要多。Did you know 的几个要点对正要就读大学的学生来说对正要就读大学的学生来说他们前两年所学的知识,他们前两年所学的知识,在三年级就有部分过时了。在三年级就有部分过时了。Did you know 的几个要点 这代表了什么?这代表了什么?转变,正在发生。竞争将愈演愈烈!转变,正在发生。竞争将愈演愈烈!既然你已经知道了既然你已经知道了学习什么?n发现自己的错误、不足、欠缺、需求和必须发现自己的错误

22、、不足、欠缺、需求和必须充实的东西充实的东西; ;n发现自己的能与不能发现自己的能与不能; ;n发现别人的智慧、才华、错误、缺点及其对发现别人的智慧、才华、错误、缺点及其对自己的启示自己的启示; ;n科学地规划自己的职业人生科学地规划自己的职业人生; ;n等等这些都是学习过程的重要领悟等等这些都是学习过程的重要领悟. .n综合地说就是综合地说就是: :学做人、学做事、学知识学做人、学做事、学知识。1.1 什么是计算机程序1.2 什么是计算机程序设计1.3 算法1.4 结构化程序设计1.5 最简单的C语言程序1.6 运行C程序的步骤与方法1.7 程序设计的任务1.1 什么是计算机程序 程序:指计

23、算机完成某个特定任务而编写的若干条指令的有序集合 程序是一组计算机能识别和执行的指令 只要让计算机执行这个程序,计算机就会自动地、有条不紊地进行工作 计算机的一切操作都是由程序控制的,离开程序,计算机将一事无成1.2 计算机程序设计 程序设计是设计和编制程序的过程,是将实际问题用计算机方法解决的一个转化过程。 计算机程序设计的基本步骤:1).问题分析2).设计算法3).编写程序4).对源程序进行编辑、编译和连接5).运行程序,分析结果6).编写程序文档 一个程序主要包括以下两方面的信息:(1) 对数据的描述。在程序中要指定用到哪些数据以及这些数据的类型和数据的组织形式这就是数据结构(data

24、structure)(2) 对操作的描述。即要求计算机进行操作的步骤也就是算法(algorithm) 数据是操作的对象 操作的目的是对数据进行加工处理,以得到期望的结果 著名计算机科学家沃思(Nikiklaus Wirth)提出一个公式: 算法 + 数据结构 = 程序 一个程序除了算法和数据结构这主要要素外,还应当采用结构化程序设计方法进行程序设计,并且用某一种计算机语言表示 算法、数据结构、程序设计方法和语言工具是一个程序设计人员应具备的知识 算法是解决“做什么”和“怎么做”的问题 程序中的操作语句,是算法的体现 不了解算法就谈不上程序设计 广义地说,为解决一个问题而采取的方法和步骤,就称为

25、“算法” 对同一个问题,可以有不同的解题方法和步骤 为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法 一个有效算法应该具有以下特点:(1) 有穷性。一个算法应包含有限的操作步骤,而不能是无限的。(2) 确定性。算法中的每一个步骤都应当是确定的,而不应当是含糊的、模棱两可的。 一个有效算法应该具有以下特点:(3) 有零个或多个输入。所谓输入是指在执行算法时需要从外界取得必要的信息。(4) 有一个或多个输出。算法的目的是为了求解,“解” 就是输出。没有输出的算法是没有意义的。(5) 有效性。算法中的每一个步骤都应当能有效地执行,并得到确定的结果。 对于一般最终用户来说:

26、他们并不需要在处理每一个问题时都要自己设计算法和编写程序可以使用别人已设计好的现成算法和程序只需根据已知算法的要求给予必要的输入,就能得到输出的结果输入输入3个数个数黑箱子黑箱子3个数中最大数个数中最大数求求3个数的个数的最大数最大数 常用的方法有:自然语言传统流程图结构化流程图N-S图伪代码计算机语言 用自然语言表示通俗易懂,但文字冗长,容易出现歧义性 用自然语言描述包含分支和循环的算法,不很方便 除了很简单的问题外,一般不用自然语言例1.1 求12345 可以用最原始的方法进行:步骤1:先求1*2,得到结果2。步骤2:将步骤1得到的乘积2再乘以3,得到结果6。步骤3:将6再乘以4,得24。

27、步骤4:将24再乘以5,得120。这就是最后的结果。例1.1 求12345 1000太繁琐太繁琐 改进的算法:设变量p为被乘数变量i为乘数用循环算法求结果 S1:使p=1,或写成1p S2:使i=2,或写成2i S3:使p与i相乘,乘积仍放在变量p中,可表示为:p*ip S4:使i的值加1,即i+1 i S5:如果i不大于5,返回重新执行S3;否则,算法结束 最后得到p的值就是 5!的值若是若是1000,求什么?,求什么? 流程图是用一些图框来表示各种操作 用图形表示算法,直观形象,易于理解起止框起止框输入输出框输入输出框处理框处理框判断框判断框流程线流程线连接点连接点注释框注释框x0YN一个

28、入口一个入口两个出口两个出口 流程图是用一些图框来表示各种操作 用图形表示算法,直观形象,易于理解起止框起止框输入输出框输入输出框处理框处理框判断框判断框流程线流程线连接点连接点注释框注释框位置不够位置不够防止交叉防止交叉 例1.2 将例1.1的算法用流程图表示。 求12345 如果需要将最后结果输出:1ti5开始开始2it*iti+1i结束结束NY 例1.2 将例1.1的算法用流程图表示。 求12345 如果需要将最后结果输出:1t输出输出ti5开始开始2it*iti+1i结束结束NY 通过以上几个例子可以看出流程图是表示算法的较好的工具 一个流程图包括以下几部分:(1) 表示相应操作的框(

29、2) 带箭头的流程线(3) 框内外必要的文字说明 流程线不要忘记画箭头,否则难以判定各框的执行次序1.传统流程图的弊端 传统的流程图用流程线指出各框的执行顺序,对流程线的使用没有严格限制 使用者可以毫不受限制地使流程随意地转来转去,使人难以理解算法的逻辑2.三种基本结构(1) 顺序结构AB2.三种基本结构(2) 选择结构ABYpNAYpN2.三种基本结构(3) 循环结构 当型循环结构AYp1NYx51t输出输出t2it*iti+1i 伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法 用伪代码写算法并无固定的、严格的语法规则,可以用英文,也可以中英文混用例1.4 求5!。begin

30、(算法开始) 1 t 2 i while i5 t*i t i+1 i print tend (算法结束) 要完成一项工作,包括设计算法和实现算法两个部分。 设计算法的目的是为了实现算法。 不仅要考虑如何设计一个算法,也要考虑如何实现一个算法。 例1.5 将求5!用C语言表示。#include int main( ) int i,t; t=1; i=2; while(i=5) t=t*i; i=i+1; printf(%dn,t); return 0;什么是计算机语言 计算机语言:人和计算机交流信息的、计算机和人都能识别的语言什么是计算机语言 计算机语言发展阶段:机器语言(由0和1组成的指令)

31、符号语言(用英文字母和数字表示指令)高级语言(接近于人的自然语言和数学语言)面向过程的语言 (非结构化的语言、结构化语言)面向对象的语言低级语言低级语言 结构化程序设计强调程序设计风格和程序结构的规范化,提倡清晰的结构。 结构化程序设计方法的基本思路是:把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。 采取以下方法保证得到结构化的程序:(1) 自顶向下;(2) 逐步细化;(3) 模块化设计;(4) 结构化编码。1.5 C语言的发展及其特点 C语言是国际上广泛流行的计算机高级语言。1.5.1 C语言出现的历史背景ALGOL 60CPLBCPLB 语言语言

32、C 语言语言1)出现于出现于1960 年,年,面向问题,面向问题,离硬件较远,不易用来编写离硬件较远,不易用来编写系统程序。系统程序。2)1963年英国剑桥大学推出了年英国剑桥大学推出了CPL(combined programming language),比,比ALGOL 60 接近硬件,但规模较大,难以接近硬件,但规模较大,难以实现。实现。3)1967年年, 英国剑桥大学的英国剑桥大学的Matin Richards 简化简化CPL后推出。后推出。4)1970年,美国贝尔实验室的年,美国贝尔实验室的Ken Thompson 对对BCPL进行进行了简化,设计出简单且接近硬件的了简化,设计出简单且

33、接近硬件的B 语言语言。但。但B语言过于语言过于简单,功能有限。简单,功能有限。5)19721973年间,贝尔实验室的年间,贝尔实验室的D.M.Ritchie 在在B 语言的语言的基础上设计出了基础上设计出了C 语言语言。C 语言既保持了语言既保持了BCPL 和和B 语言语言的优点(精练、接近硬件),又克服了它们的缺点(过于的优点(精练、接近硬件),又克服了它们的缺点(过于简单、数据无类型等)。简单、数据无类型等)。1.5.2 C语言的特点语言简洁、紧凑,使用方便、灵活。只有37个关键字、9种控制语句程序书写形式自由,源程序短1.5.2 C语言的特点 运算符丰富。有34种运算符把括号、赋值、强

34、制类型转换等都作为运算符处理表达式类型多样化1.5.2 C语言的特点数据类型丰富。包括:整型、浮点型、字符型、数组类型、指针类型、结构体类型、共用体类型C99又扩充了复数浮点类型、超长整型(long long)、布尔类型(bool)指针类型数据,能用来实现各种复杂的数据结构(如链表、树、栈等)的运算。1.5.2 C语言的特点具有结构化的控制语句如ifelse语句、while语句、dowhile语句、switch语句、for语句用函数作为程序的模块单位,便于实现程序的模块化C语言是完全模块化和结构化的语言1.5.2 C语言的特点语法限制不太严格,程序设计自由度大。对数组下标越界不做检查对变量的类

35、型使用比较灵活,例如,整型量与字符型数据可以通用C语言允许程序编写者有较大的自由度,因此放宽了语法检查1.5 C语言的特点允许直接访问物理地址,能进行位操作,可以直接对硬件进行操作C语言具有高级语言的功能和低级语言的许多功能,可用来编写系统软件这种双重性,使它既是成功的系统描述语言,又是通用的程序设计语言1.5.2 C语言的特点用C语言编写的程序可移植性好。C的编译系统简洁,很容易移植到新系统在新系统上运行时,可直接编译“标准链接库”中的大部分功能,不需要修改源代码几乎所有计算机系统都可以使用C语言1.5.2 C语言的特点生成目标代码质量高,程序执行效率高。 1.6 最简单的C语言程序1.6.

36、1 最简单的C语言程序举例1.6.2 C语言程序的结构1.6.1 最简单的C语言程序举例例1.5 要求在屏幕上输出以下一行信息。 This is a C program.解题思路:解题思路: 在主函数中用在主函数中用printf函数原样输出以上函数原样输出以上文字。文字。1.6.1 最简单的C语言程序举例#include int main( ) printf (”This is a C program.n”); return 0; 函数的名字,表示函数的名字,表示主函数主函数C程序必须有一个程序必须有一个 main 函数函数1.6.1 最简单的C语言程序举例#include int main(

37、 ) printf (”This is a C program.n”); return 0; 主函数主函数类型类型1.6.1 最简单的C语言程序举例#include int main( ) printf (”This is a C program.n”); return 0; 函数体函数体1.6.1 最简单的C语言程序举例#include int main( ) printf (”This is a C program.n”); return 0; 输出函数输出函数输出语句输出语句1.6.1 最简单的C语言程序举例#include int main( ) printf (”This is a

38、C program.n”); return 0; 输出语句输出语句1.6.1 最简单的C语言程序举例#include int main( ) printf (”This is a C program.n”); return 0; 换行符换行符1.6.1 最简单的C语言程序举例#include int main( ) printf (”This is a C program.n”); return 0; 当当main函数执行结束前函数执行结束前将整数将整数0作为函数值作为函数值1.6.1 最简单的C语言程序举例#include int main( ) printf (”This is a C p

39、rogram.n”); return 0; 表示语句结束表示语句结束用到函数库中的输入输出函数用到函数库中的输入输出函数时时1.6.1 最简单的C语言程序举例C语言允许用两种注释方式: /:单行注释可单独占一行可出现在一行中其他内容的右侧 /*/:块式注释可包含多行程序操作的演示程序操作的演示例1.6 求两个整数之和。解题思路:解题思路:u设置设置3个变量个变量ua和和b用来存放两个整数用来存放两个整数usum用来存放和数用来存放和数u用赋值运算符用赋值运算符“=”把结果传送给把结果传送给sum#include int main( ) int a,b,sum; a = 123; b = 456

40、; sum = a + b; printf(”sum is %dn”,sum); return 0; 定义整型变量定义整型变量a,b,sum对变量对变量a,b赋值赋值将将a与与b的的和赋给和赋给sum#include int main( ) int a,b,sum; a = 123; b = 456; sum = a + b; printf(”sum is %dn”,sum); return 0; 用用sum的值的值替代替代希望输出的字符希望输出的字符main( ) int a,b,c; int max( ); printf(Input the value of a&b:); scanf(%d

41、,%d,&a,&b); c=max(a,b); printf(max=%d,c); 函数定义函数定义例例1.7 输入两个整数,输出大的数。输入两个整数,输出大的数。/* 变量定义变量定义 */* 函数说明函数说明 */* 输出提示信息输出提示信息*/* 输入变量输入变量 a 和和 b 的值的值 */* 函数调用函数调用 */* 输出变量输出变量 c 的值的值 */int max(int x , int y) int z; if(xy) z=x; else z=y; return(z); 1.6.2 C语言程序的结构C语言程序的结构特点:1.一个程序由一个或多个源程序文件组成小程序往往只包括一个

42、源程序文件例1.5,例1.6只有一个函数只包括一个源程序文件只包括一个源程序文件1.6.2 C语言程序的结构C语言程序的结构特点: 一个源程序文件中可以包括三个部分:预处理指令全局声明函数定义#include 等等在函数之外进行的数据声明在函数之外进行的数据声明每个函数用来实现一定的功能每个函数用来实现一定的功能1.6.2 C语言程序的结构C语言程序的结构特点:2.函数是C程序的主要组成部分一个C程序是由一个或多个函数组成的必须包含一个main函数(只能有一个)每个函数都用来实现一个或几个特定功能被调用的函数可以是库函数,也可以是自己编制设计的函数1.6.2 C语言程序的结构C语言程序的结构特

43、点:3.一个函数包括两个部分:函数首部int max ( int x, int y )函数的第函数的第1行行函数类型函数类型函数名函数名参数类型参数类型参数参数名名1.6.2 C语言程序的结构C语言程序的结构特点:3.一个函数包括两个部分:函数首部int max ( int x, int y )若函数无参,在括弧中写void或空括弧int main( void) 或或 int main()1.6.2 C语言程序的结构C语言程序的结构特点:3.一个函数包括两个部分:函数体声明部分定义在本函数中所用到的变量对本函数所调用函数进行声明执行部分:由若干个语句组成,指定在函数中所进行的操作可以没有声明部

44、分可以没有声明部分1.6.2 C语言程序的结构C语言程序的结构特点:3.一个函数包括两个部分:函数体void dump ( ) 可以是空函数可以是空函数1.6.2 C语言程序的结构C语言程序的结构特点:4. 程序总是从main函数开始执行5. C程序对计算机的操作由C语句完成C程序书写格式是比较自由的一行内可以写几个语句一个语句可以分写在多行上为清晰起见,习惯上每行只写一个语句1.6.2 C语言程序的结构C语言程序的结构特点:6. 数据声明和语句最后必须有分号7. C语言本身不提供输入输出语句8. 程序应当包含注释,增加可读性1.6.3 运行C程序的步骤与方法1.上机输入和编辑源程序(.c文件

45、)2.对源程序进行编译(.obj文件)3.进行连接处理(.exe文件)4.运行可执行程序,得到运行结果C语言上机步骤开始开始编辑编辑源程序源程序f.c编译编译目标程序目标程序f.obj有错?有错? 连接连接库函数库函数和其它目和其它目标程序标程序可执行可执行目标程序目标程序f.exe执行执行正确?正确?不正确不正确正确正确结束结束有有无无Turbo C 的上机步骤:的上机步骤: 调用调用TurboC程序:运行程序:运行 tc.exe 编辑源程序:在编辑(编辑源程序:在编辑(Edit)状态下输入或修改源程序。状态下输入或修改源程序。 编译源程序:用编译源程序:用 Compile 菜单命令菜单命令或或 F9 快捷键。快捷键。 执行程序:选用执行程序:选用 Run 菜单命令菜单命令或按或按 Ctrl+F9 键。键。 退出退出TurboC:在全屏幕状态下可用在全屏幕状态下可用Alt+X 组合键;在窗组合键;在窗口方式时用关闭按钮。(注:可用口方式时用关闭按钮。(注:可用Alt+Enter 键在全屏幕键在全屏幕与窗口方式之间切换。)与窗

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论