第1章 程序设计和C语言
1.1什么是计算机程序
程序,就是一组计算机能识别和执行的指令。每一条指令使计算机执行特定的操作。只要让计算机执行这个程序,计算机就会“自动地”执行各条指令,有条不紊地进行工作。
1.2什么是计算机语言
计算机语言——计算机和人都能识别的语言
计算机语言的发展阶段:
机器语言 计算机工作基于二进制,从根本上说,计算机智能识别和接受由0和1组成的指令。在计算机发展的初期,一般计算机的指令长度为156,即以16个二进制数(0或1)组成一条指令,16个0和1可以组成各种排列组合。
这种计算机能直接识别和接受的二进制代码称为机器指令(machine instruction)。机器指令的集合就是该计算机的机器语言(machine language)。
显然,机器语言与人们习惯用的语言差别太大,难学、难记、难检查、难修改、难以推广使用、难写。因此初期只有极少数的计算机专业人员会编写计算机程序。
符号语言 为了克服机器语言的上述缺点,人们创造出符号语言(symbolic language),它用一些英文字母和数字表示一个指令,例如用ADD表示“加”,SUB代表“减”,LD代表“传送”等。
显然,计算机并不能直接识别和执行符号语言的指令,需要用一种称为汇编程序的软件,把符号语言的指令转换为机器指令。一般,一条符号语言的指令对应转换为一条机器指令。转换的过程称为:“代真”或“汇编”,因此,符号语言又称为符号汇编语言(symbolic assembler language)或汇编语言(assembler language)。
虽然汇编语言比机器语言简单好记一些,但仍然难以普及,只在专业人员中使用。
不同型号的计算机的机器语言和汇编语言是互不相通的。如,用甲机器的机器语言编写的程序在乙机器上不能使用。机器语言和汇编语言是完全依赖于具体机器特性的,是面向机器的语言。由于它“贴近”计算机,或者说离计算机“很近”,称为计算机低级语言(low level language).
高级语言 为了克服低级语言的缺点。创造出了高级语言。第一个高级语言为Fortran语言。
这种语言功能很强,且不依赖于具体机器,用它写出的程序对任何型号的计算机都是用(或只须作很少的修改),它与具体机器距离较远,故称为计算机高级语言(high level language)。
当然,计算机也是不能够直接识别高级语言程序的,也要进行“翻译”。用一种称为编译程序的软件把用高级语言写的程序(称为源程序,source program)转换为机器指令的程序(称为目标程序,object program),然后当计算机执行机器指令程序,最后得到记过。高级语言的一个语句往往对应多条机器指令。
高级语言也经历了不同的发展阶段:
(1) 非结构化语言。早期的BASIC、FORTRAN、ALGOL等都术语非结构化语言。
(2) 结构化语言。QBASIC、FORTRAN77和C语言等。
(3) 面向对象语言。C++、C#、visual、Basic、和java等
关于怎么快速学C/C++,可以加下小编的C/C++学习企鹅群:【870+963+251】不管你是小白还是大牛,小编我都欢迎,不定期分享干货,欢迎初学和进阶中的小伙伴。每天晚上20:00都会开直播给大家分享C/C++游戏编程学习知识和路线方法,群里会不定期更新最新的教程和学习方法,最后祝所有程序员都能够走上人生峰,让代码将梦想照进现实
1.3 C语言的发展及其特点
C语言主要由以下一些主要特点;
1).语言简洁、紧凑,使用方便、灵活。
2).运算符丰富
3).数据类型丰富
4).具有结构化的控制语句
5).语法限制不太严格,程序设计自由度大
6).C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作
7).用C语言编写的程序可移植性好
8).生成目标代码质量高,程序执行效率高
1.4 最简单的C语言程序
1.4.1 最简单的C语言程序举例
例,要求在屏幕上输入以下一行信息
Hello world
编写程序:
Hello.c
/*程序分析:
#include <stdio.h>
#include 编译预处理指令,把括号<>中的信息调入供使用
stdio.h 是系统提供的一个文件名
stdio是”standard Input & output“的缩写
文件后缀.h的意思是头文件(header file),因为这些文件都是放在程序个文件模块的开头
*/
说明:C语言允许两种注释方式:
1).以//开始的单行注释。可以嵌套使用 //xxxx//yyy
2).以/*开始,以*/结束的块式注释。不可以嵌套使用/*xxxxx/*yyyy*/zzzzz*/这是错误的,最后的*/会没有匹配的/*。
1.4.2 C语言程序的结构
(1) 一个程序有一个或多个源程序文件组成。
在一个源程序文件中可以包括以下3部分:
①预处理文件
②全局声明
③函数定义
(2) 函数是C语言的主要组成部分。
函数是C语言的基本单位。编写C语言的工作主要就是编写一个个函数,C语言的这种特点容易实现程序的模块化。
(3) 一个函数包括两个部分
①函数首部
int max (int x , int y)
函数类型 函数名 函数参数类型 函数参数名 函数参数类型 函数参数名
②函数体
函数体一般包括以下两部分
·声明部分
·执行部分
(4) 程序总是从main开始执行的
(5) 程序中对计算机的操作都是由函数中的C语言完成的。
(6) 在每个数据声明和语句的最后必须有一个分号
(7) C语言本身不提供输入输出语句
(8) 程序应当包含注释
1.5 运行C程序的步骤与方法
在编号一个C源程序后,怎样上机进行编译和运行呢?一般要经过以下几个步骤:
(1) 上机输入和编译源程序
(2) 对源程序进行编译,先用C编译系统提供的“预处理器”(又称“预处理程序”或“预编译器”)对程序中的预处理指令进行编译预处理。
编译的作用:首先是对源程序进行检查,判定它有无语法方面的错误;若有,则发出“出错信息error”。反复进行,直到没有无法错误为止。
At(Attention):语法错误能够被检查出来,不可以检查出逻辑错误。
在用编译系统对源程序进行编译时,自动包括了预编译和正式编译两个阶段。用户不必分别发出二次指令。
(3) 进行连接处理
必须把所有的编译后得到的目标模块连接装配起来,再与函数库相连接成一个整体,生成一个可供计算机执行的目标程序,称为可执行程序(executive program)。
在Visual C++中其后缀为.exe,如f.exe
(4) 运行可执行程序,得到运行结果。
1.6程序设计的任务
从确定问题到最后完成任务,一般经历以下几个工作阶段:
(1) 问题分析
(2) 设计算法
(3) 编写程序
(4) 对源程序进行编辑、编译和连接,得到可执行程序
(5) 运行程序,分析结果
(6) 编写程序文档

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
python自动化办公:玩转word之页眉页脚秘笈
节将就python操作word的页眉页脚技巧做深入介绍。 使用页眉和页脚 python操作word的页眉页脚技巧做深入介绍 Word支持页眉和页脚。页眉是出现在每个页面的上边距区域中的文本,与文本主体分开,并且通常传达上下文信息,例如文档标题,作者,创建日期或页码。文档中的页眉在页面之间是相同的,内容上只有很小的差异,例如更改部分标题或页码。页眉也称为运行头。 一个页面页脚中的每个日日夜夜,只不过它出现在页面底部的页头类似。它不应与脚注混淆,脚注在页面之间不一致。为了简洁起见,这里经常使用术语标题来指代可以是页眉或页脚对象的内容,信任读者以理解它对两种对象类型的适用性。 访问节的标题 页眉和页脚与一个部分相关联; 这允许每个部分具有不同的页眉和/或页脚。例如,横向部分可能具有比纵向部分更宽的标题。 每个section对象都有一个.header属性,提供对该节的对象的访问: >>>document = Document() >>>section = document.sections[0] >>>header = section.he...
- 下一篇
Python 爬取吴亦凡的 10 万转发数据,扒一扒流量的真假!
由于时间点也挺凑巧,刚好赶在蔡徐坤发律师函给哔哩哔哩之后,不禁让大家对他们进行一番对比。同为我们印象中的流量明星,吴亦凡跟蔡徐坤之间有什么不一样吗?大伙儿是怎么看待他们的?又是怎么看待《大碗宽面》这首歌的呢? 我们通过微博移动端随机抓取了吴亦凡发布新歌《大碗宽面》的微博转发数据10万条(时间节点2019年4月20日01时)。该微博于2019年4月19日10时发布,到4月20日01时已被转发超过36万。 吴亦凡该微博的转发是否存在假流量? 当然,关注我的朋友们估计最关心的问题是,吴亦凡的微博转发是否像蔡徐坤一样,有很多都是假流量? 我们先从粉丝性别比例入手。我们统计了102118条转发数据中,有77279条是女性转发的,占75.7%,其余24839条是男性转发的,占24.3%。这是一个比较合理的比例。 我们随机抽取了男性的转发,发现这里的男粉丝几乎都是有简介、微博粉丝数、关注数都大于50的真粉丝。 咦,不是说吴亦凡是流量明星吗?难道很多假流量都存在于女性的转发里?我们又随机抽取了女性转发的数据,发现,这里面的女性粉丝几乎也都是有简介、微博粉丝数、关注数都大于50的真粉丝。 我们就更奇怪了...
相关文章
文章评论
共有0条评论来说两句吧...