自学C语言-1

第1章 C语言程序设计概述

学习目标
(1)掌握C语言的相关背景知识。
(2)掌握HellWorld程序的开发过程。
(3)掌握C语言中基本的输入输出手段。
(4)掌握C程序的基本结构。

1.1 C语言相关知识概述

1.1.1 C语言的历史沿革
C语言于20世纪70年代初问世。它源于UNIX操作系统,最初只是用于改写汇编语言编写的UNIX操作系统。为了将UNIX操作系统更大范围地进行推广,1977年Dennis M.Ritchie发表了不依赖于具体机器系统的C语言编译文本—《可移植的C语言编译程序》,这标志着C语言的正式诞生。
1978年Brian W.Kernighan和Dennis M.Ritchie出版了经典的C语言教材《The C Programming Language》,有人称之为《K&R》标准,从而使C语言逐渐成为目前世界上流行最广泛的高级程序设计语言。后来美国国家标准学会(American National Standards Institute, ANSI)在此基础上制定了一个C语言标准,于1983年发表,通常称之为ANSI C或标准C。
1988年,随着微型计算机的日益普及,出现了许多C语言版本。由于没有统一标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,ANSI C语言制定了一套ANSI标准,并于1989年通过,1990年正式颁布,称为C89或C90标准。
1999年,新的C语言标准颁布,称为C99标准。它是对C89/C90标准的进一步完善和发展,但到目前为止,很多C语言编译器并不完全支持C99标准的全部特性。
2007年,C语言标准委员会又重新开始修订C语言,到了2011年正式发布了ISO/IEC9899:2011,简称为C11标准。
2018年6月,C语言的最新标准C18正式发布,它是在C11的基础上做了一些技术修正,并没有引入新的语言特性。
目前用得最广泛的C语言标准还是C90和C99标准,而绝大多数的编译器对C11和C18的支持程度还有待进一步完善。
1.1.2 C语言的重要性
从诞生到现在,四十多年过去了,但C语言的影响却越来越深远。例如,当前处于统治地位的三大操作系统----windows、Linux和UNIX的绝大多数代码都是用C/C++开发的; C语言的应用领域极广,从上层应用程序到底层操作系统-,再到各种嵌入式应用等,几乎无处不在;以C语言为基础,相继诞生了C++、Java和C#语言,这三种语言都逐渐成为应用最多的前几种语言之一。这种趋势还在不断地演化中,从在业界影响较大的TIOBE编程语言排行榜中就可以窥见一斑。TIOBE编程语言排行榜是根据互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎(如Google、Bing、Yahoo、百度等)以及Wikipedia、Amazon、YouTube统计排名数据。虽不能完全据此说明某一种编程语言的好坏,但也能从相当程度上反映某种编程语言的热门程度。该排行榜每月更新一次,列出了每月各种编程语言的受欢迎程度。
在这里插入图片描述
在这里插入图片描述1.1.3 C语言的特点
C语言具有如下特点。
(1)语言简洁、灵活。
(2)运算符类别丰富。
(3)数据类型丰富,能够支持各种复杂的数据结构。
(4)具有结构化的流程控制语句,支持模块化的分析设计,适合编写各种不同层次的程序系统,如各种应用程序、各种操作系统、数据库管理系统等。
(5)语法限制不太严格,程序书写灵活方便。
(6)允许直接访问物理地址,能进行位操作,可直接对硬件进行操作,从而实现汇编语言的大部分功能,兼有高级和低级语言的特点。
(7)目标代码质量高,程序执行效率高。经过编译器优化后生成的代码效率接近汇编语言代码。
(8)与汇编语言相比,程序可移植性好。

1.2 C语言程序设计入门三要素

程序设计入门三要素:
(1)安装软件并开发HelloWorld程序。
(2)掌握基本的输入输出方法。
(3)理解该C语言中程序的基本结构。
1.2.1 安装软件并开发HelloWorld程序
学习任何程序设计语言,入门的第一要素就是安装软件,开发出简单的HelloWorld程序。
下面是C语言版本的HelloWorld程序。
[例1-1]第一个简单的C程序。
在这里插入图片描述对于初学者来说,现在无须深入理解上面的代码,只要利用相应的开发工具软件将该程序输入到计算机中并调试运行出来即可。
学习程序设计时最有效的方法不是对什么都刨根问底,把遇到的每一点都弄明白,而是应该先不求其解,努力实践,把它做出来,然后琢磨为什么这么做。这样的迭代过程可能充满疑惑,甚至可以说是跌跌撞撞的,但这非常重要!正是在跌跌撞撞的过程中,你才能体会更深,发现更多疑问,激发你主动分析问题和解决问题的热情,从而能主动地自主学习,收获更多、更大。学习应该讲究水到渠成,而不要做崂山道士,费力不讨好,因为崂山道士式的学习会打击你学习的兴趣和积极性,导致你坚持不了多久,最终以失败收场。严格来说,程序设计并不完全是科学,它更应该是工程。工程最大的特点就是重复性,只要你积累足够的实践经验,就能掌握并且可以达到熟能生巧的境界。所以,学习程序设计一定要大量地实践。记住,程序设计“无他,惟手熟尔”!
万事开头难,初学者如何安装和配置好相应的开发环境,是学习程序设计的首要问题。本教材中选用了开源的Dev-C++作为开发环境。它对C99标准的支持较为全面,同时支持中英文界面的选择,支持图形化菜单方式的开发调试;另外,它还可以外挂各种工具程序,便于命令行编译、链接和运行。
Dev-C++的安装、配置非常简单,具体步骤如下。
(1)首先在Dev-C++官网下载Dev-C++安装文件。Dev-C++非常短小精悍,只有大约10-50MB(不同版本)。
(2)直接双击Dev-C++安装文件,开始安装,然后逐步往下即可,直至安装完毕。
(3)将Dev-C++的安装目录下的bin目录加入到环境变量path中,这样在命令行窗口的任何目录下都可以执行gcc编译链接命令。
C:\Dev-Cpp\bin; path原来的字符串
(4)配置简单的外挂程序。为了在后面的学习开发中便于使用命令行的编译、运行命令,此处在“工具”菜单中添加了一个名为“DOS窗口” 的外挂工具选项。配置步骤如下:
1)启动Dev-C++,选择“工具”-“配置工具”命令,如图1-4所示。
2)在弹出的“工具配置”对话框中单击“添加”按钮,如图1-5所示。
3)按照图1-6所示输入如下内容:
标题:直接输入“DOS窗口”。
程序:单击右侧的“浏览”按钮,在弹出的对话框中选择C:\Windows\system32目录下的cmd.exe文件,单击“确定”按钮;也可在文本框中直接输入C:\Windows\system32\cmd.exe。

工作路径:首先将光标定位在“工作路径”文本框中(如果有内容则先直接清除),然后在左下角的“可用的宏”列表框中选择选项,单击“插入宏”按钮即可;也可直接输入“"。
提示:工作路径配置为,可以保证DOS命令行窗口在启动时自行进入到源程序文件所在的目录。
4)单击”确定“按钮,即可完成配置,如图1-6所示。
以后如果需要用到DOS命令行,直接在Dev-C++窗口中选择”工具“-”DOS窗口“命令即可。
有了相应的开发环境后,就可以进入正式的程序开发阶段。一般来说,程序编写好后,需要执行以下几步才能得到输出结果。
(1)输入源程序,保存为.c的源程序文件。
(2)编译。
(3)链接。
提示:步骤(2)和(3)在集成环境开发环境下通常自动合成一步完成。
(4)运行程序。
具体操作步骤如下:
1)启动Dev-C++,选择”文件“-”新建“-”工程“命令,如图1-7所示。

2)在弹出的”新工程“对话框中选中"C工程”单选按钮,工程类型选择为Console Application(控制台应用程序,即命令行字符界面程序),并输入工程名称firstp(工程名称一般为小写,可以自动命名,也可以为汉字),然后单击“确定”按钮,如图1-8所示。
3)弹出Create new project对话框,从中选择适当的保存位置(对于初学者,一般推荐保存在桌面上,这样容易查找),然后单击“保存”按钮,如图1-9所示。
4)此时在Dev-C++窗口中可以看到,系统自动生成了一个名为firstp的工程。单击工程名firstp前面的“+”图标,在展开的工程文件中双击main.c,即可在右边的代码窗口中输入程序源码(Dev-C++自动帮助用户生成了程序源码框架,可以在此基础上改写代码,也可以将它们全部删除后再从零写起),如图1-10所示。
5)输入完程序代码后,选择“运行”-“编译”命令,如图1-11所示。
6)由于源程序文件main.c未保存,所以弹出“保存文件”对话框,在该对话框中将文件名改为HellWorld.c,然后单击“保存”按钮,如图1-12所示。
7)编译成功后,单击“关闭”按钮返回,如图1-13所示。如果输入的代码有误,则会提示相应的出错信息。此时应该返回重新修改代码,然后再次编译,直到编译无误时为止。

8)选择“运行”-“运行”命令,如图1-14所示。
9)此时开始运行程序,输出结果并暂停,等待看清结果后按任意键返回,如图1-15所示。
至此,利用Dev-C++开发第一个C语言程序HelloWorld完成。
对于初学者来说,学习任何一门程序设计语言都必须首先掌握如何利用特定的开发环境(如Dev-C++。通常,这样的开发环境可以有多个,初学者可以选择学习最简单、最容易入门的,等学到一定程度后再去掌握比较复杂、高级的开发环境和工具)来开发该语言的HelloWorld程序,这是学习任何程序设计语言的入门三要素的第一要素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

manyoftenvictory

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值