C编程从入门到实践

978-7-115-50068-7
作者: 王长青
译者:
编辑: 张涛
分类: C语言

图书目录:

详情

本书用C11标准最新版本写作,由浅入深地详细讲解了C语言的开发技术,并通过具体实例的实现过程演练了各个知识点的具体使用流程。即包括新版本的技术,也包括典型的案例,如易上手的游戏开发和结合实际的网络开发、ERP管理,以及许多工控人员使用的单片机开发等内容。本书内容循序渐进,以“技术解惑”和“范例演练”贯穿全书,引领读者全面掌握C语言。

图书摘要

版权信息

书名:C编程从入门到实践

ISBN:978-7-115-50068-7

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。

编  著 王长青

责任编辑 张 涛

人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

读者服务热线:(010)81055410

反盗版热线:(010)81055315


本书循序渐进、由浅入深地讲解了C语言开发的技术。全书共25章。本书不仅介绍了C语言的基础和核心知识(如开发工具、语法、运算符、表达式、输入/输出、流程控制、数组、字符串、函数),还讲解了C语言中的重点和难点(如指针、结构体、共用体和枚举、链表、位运算、预编译、文件操作、调试、内存管理、高级编程技术、算法、数据结构、网络编程技术等)。此外,本书还通过4个综合实例,介绍了C语言在综合项目中的应用。全书内容以“技术解惑”和“范例演练”贯穿全书,引领读者全面掌握C语言。

本书不但适用C语言的初学者,也适合有一定C语言基础的读者学习,还可以作为大专院校相关专业的师生用书和培训学校的教材。


你从开始学习编程的那一刻起,就注定了以后要走的路。从编程初学者开始,依次经历实习生、程序员、软件工程师、架构师、CTO等职位。当你站在职位顶峰蓦然回首时,你会发现自己的成功并不是偶然,在程序员的成长之路上会有不断修改代码,寻找并解决Bug,不停测试程序和修改项目的经历。不可否认,只要你在自己的开发生涯中稳扎稳打,并且善于总结和学习,最终就会得到可喜的成绩。

对于一名想从事程序开发的初学者来说,究竟如何学习才能提高自己的编程技术呢?其中一个答案就是买合适的程序开发书籍进行学习。但是,市面上许多面向初学者的编程书籍都重点讲解基础知识,多偏向于理论。读者读了以后在面对实战项目时还是无从下手。如何从理论平滑地过渡到项目实战,是初学者迫切需要解决的问题,为此,作者特意编写了本书。

本书融合了入门类、范例类和项目实战类图书的内容。另外,对于实战知识,不是点到为止地讲解,而是深入地探讨。用“纸质书+配套资料(视频和源程序)+网络答疑”的方式,提供了“入门+范例+项目实战”的一站式服务,帮助读者从入门平滑过渡到顺利完成项目。

本书循序渐进、由浅入深地讲解了C语言开发技术,并通过具体实例的实现过程演示了各个知识点的具体应用。本书共25章:第1~3章讲解了C语言开发的基础知识,包括C语言之定位、C语言开发工具详解、程序员基本素质的培养;第4~9章讲解了C语言语法、运算符和表达式、输入和输出、流程控制、数组和字符串、函数,这些内容都是C语言技术的核心知识;第10~21章讲解了指针、结构体、共用体和枚举、链表、位运算、预编译处理、文件操作、错误和程序调试、内存管理、C语言高级编程技术、算法、数据结构、网络编程技术,这些内容是C语言开发技术的重点和难点;第22~25章通过4个综合实例的实现过程,介绍了应用C语言开发综合项目的过程。本书内容以“技术解惑”和“范例演练”贯穿全书,引领读者全面掌握C语言。

本书的最大特色是实现了入门知识、实例演示、范例演练、技术解惑、综合实战5大部分的融合。其中各章内容由如下模块构成。

① 入门知识:循序渐进地讲解了C语言开发的基本知识点。

② 实例演示:遵循理论加实践的教学模式,用实例演示了各个入门知识点的用法。

③ 范例演练:为了加深对知识点的理解,为每个实例提供了两个演练范例,多角度演示了各个入门知识点的用法和技巧。

④ 技术解惑:把读者容易混淆的知识点单独用一个板块进行讲解和剖析,进一步解疑释惑。

十分感谢家人在本书的编写过程中给予的巨大支持。由于作者水平有限,书中纰漏之处在所难免,诚请读者提出意见或建议,以便修订并使之更臻完善。

最后感谢您购买本书,希望本书能成为您编程道路上的挚友,祝您阅读快乐!

作者


本书由异步社区出品,社区(https://www.epubit.com/)为您提供相关资源和后续服务。

本书配套资源包括书中示例的源代码。

要获得以上配套资源,请在异步社区本书页面中单击,跳转到下载界面,按提示进行操作即可。注意,为保证购书读者的权益,该操作会给出相关提示,要求输入提取码进行验证。

如果您是教师,希望获得教学配套资源,请在社区本书页面中直接联系本书的责任编辑。

作者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。

当您发现错误时,请登录异步社区,按书名搜索,进入本书页面,单击“提交勘误”,输入勘误信息,单击“提交”按钮即可。本书的作者和编辑会对您提交的勘误进行审核,确认并接受后,您将获赠异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。

我们的联系邮箱是contact@epubit.com.cn。

如果您对本书有任何疑问或建议,请您发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。

如果您有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们;有意出版图书的作者也可以到异步社区在线提交投稿(直接访问www.epubit.com/selfpublish/submission即可)。

如果您是学校、培训机构或企业,想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。

如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接发邮件给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。

“异步社区”是人民邮电出版社旗下IT专业图书社区,致力于出版精品IT技术图书和相关学习产品,为作译者提供优质出版服务。异步社区创办于2015年8月,提供大量精品IT技术图书和电子书,以及高品质技术文章和视频课程。更多详情请访问异步社区官网https://www.epubit.com。

“异步图书”是由异步社区编辑团队策划出版的精品IT专业图书的品牌,依托于人民邮电出版社近30年的计算机图书出版积累和专业编辑团队,相关图书在封面上印有异步图书的LOGO。异步图书的出版领域包括软件开发、大数据、AI、测试、前端、网络技术等。

异步社区

微信服务号


C语言是当前所有开发技术中使用较为广泛的一门语言,从它诞生之日起就深受程序员的喜爱。随着C语言的普及,后来的开发语言都或多或少地借鉴或遵循了它的一些模式。另外,C语言是计算机编程领域中使用最早的高级语言之一,它的出现推动了软件行业的迅猛发展。本章将简要介绍C语言的基本知识,为读者学习后面的内容打下基础。

知识点讲解:视频\第1章\计算机应用基础.mp4

计算机(computer)是一种能接收和存储信息,并按照内部存储的程序对输入的信息进行加工、处理,然后把处理结果进行输出的高度自动化的电子设备。本节介绍计算机应用的基础知识,为读者学习后面的知识打下基础。

中央处理器就是我们平常说的CPU(Central Processing Unit),是一块超大规模的集成电路,是计算机的运算核心和控制核心。它主要包括算术和逻辑单元(Arithmetic and Logic Unit,ALU)和控制单元(Control Unit,CU)两大部件。此外,它还包括若干个寄存器和存储器及彼此之间的数据、控制与状态总线。它与内部存储器和输入/输出设备合称为电子计算机的三大核心部件。其功能主要是解释计算机指令以及处理计算机软件中的数据。计算机的性能在很大程度上由CPU的性能所决定,而CPU的性能主要体现在运行程序的速度上。

1.位

位(bit)又称为比特,bit是Binary System的缩写。在现实应用中,位有如下两个含义。

(1)它是计算机专业术语,是信息量单位。二进制数的一位所包含的信息就是一位,如二进制数0100就有4位。在计算机应用中,二进制数“0”和“1”是构成信息的最小单位,称作“位”或“比特”。

(2)二进制数字中的位是信息量的度量单位,为信息量的最小单位。数字化音响用电脉冲表达音频信号,“1”代表有脉冲,“0”代表脉冲间隔。如果波形中每个点的信息用4位一组的编码来表示,则每组编码有4位。位数越多,表达的模拟信号就越精确,对音频信号的还原能力越强。

2.字节

字节(Byte),是计算机信息技术中用于存储容量的一种计量单位,有时在一些计算机编程语言中也表示数据类型和语言字符。

在计算机应用中,由若干位组成1字节。字节由多少位组成取决于计算机的结构。通常来说,微型计算机的CPU多由8位组成1字节,并用此表示一个字符的代码。构成1字节的8位被看作一个整体,字节是存储信息的基本单位。在大多数情况下,计算机存储单位的换算关系如下:

1B=8bit
1KB=1024B
1MB=1024KB
1GB=1024MB

在上述关系中各个单位的具体说明如下:

二进制是计算机技术中广泛采用的一种数制,是使用0和1两个数码来表示的数。二进制的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,这是由18世纪德国数理哲学大师莱布尼兹发现的。当前的计算机系统使用的基本上都是二进制系统,数据在计算机中主要是以补码的形式进行存储的。计算机中的二进制是一个非常微小的开关,用“开”来表示1,用“关”来表示0。因为它只使用0、1两个数字符号,所以非常简单方便,易于用电子方式来实现。

下面介绍如何将十进制数转换成二进制数。

(1)把正整数转换成二进制。

转换原则是除以2取余,然后倒序排列,高位补零。也就是说,将正的十进制数除以2,得到的商再除以2,依次类推,一直到商为0或1,然后在旁边标出各步的余数,最后倒着写出来,高位补零即可。例如,将十进制数字42转换为二进制的步骤为:42除以2得到的余数连在一起为010101,然后将得到的余数倒着排一下就会得到数字42,所对应的二进制数是101010。但是因为在计算机内部表示数的字节单位是定长的(如8位、16位或32位),所以当位数不够时,需要在高位补零。十进制数42转换成二进制数的结果是101010,它的前面缺少两位,因此将十进制数42转换成二进制数的最终结果是:00101010。

(2)把负整数转换成二进制。

转换原则是先将对应的正整数转换成二进制,最后对二进制数取反,最后将结果加1。以十进制负整数−42为例,将42的二进制形式(00101010)取反得到的结果是11010101,然后再加1的结果是11010110。所以负整数−42转成二进制数的最终结果是:11010110。

(3)把二进制整数转换成十进制。

转换原则是先将二进制数补齐位数。如果首位是0则代表它是正整数;如果首位是1则代表它是负整数。先看首位是0的正整数,补齐位数以后,得到n×2m的计算结果。其中,上标m表示二进制数字的位数,n表示二进制的某个位数。对于二进制数中的各位分别计算n×2m,然后将计算结果相加得到值的就为十进制数。比如将二进制数1010转换为十进制数的过程如下。


二进制                1   0   1   0 

补齐位数   0   0   0   0   1   0   1   0 

计算n×2m  0×27  0×26  0×25  0×24  1×23  0×22   1×21  0×20 

计算结果   0   0   0   0   8   0   2   0 

各位求和结果           10   


所以将二进制数1010转换为十进制数的结果是10。

如果要转换的二进制数补足位数后首位为1,那么表示这个二进制数是负整数。此时,就需要先取反,然后再进行换算:例如二进制数11101011的首位为1,这时应先取反得到00010100,然后按照上面的计算过程得出10100对应的十进制数20,所以二进制数11101011对应的十进制数为−20。

1.ASCII码

ASCII(American Standard Code for Information Interchange,美国信息交换标准代码),是基于拉丁字母的一套计算机编码系统,主要用于表示现代英语和其他西欧语言。ASCII码是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。

一个英文字母(不分大小写)占1字节空间,一个中文汉字占2字节空间。一个二进制数字序列在计算机中为一个数字单元,一般为8位二进制数。它的最小值为0,最大值为255。例如,一个ASCII码就是1字节。

2.Unicode编码

Unicode(又称为统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode编码是为了解决传统字符编码方案的局限性而产生的,它为每种语言中的每个字符都设定了统一并且唯一的二进制编码,以满足跨语言和跨平台进行文本转换、处理的要求。

最初Unicode编码的长度是固定的16位,也就是2字节代表一个字符,这样可以表示65536个字符。显然,若要表示各种语言中的所有字符,这是远远不够的。Unicode 4.0规范考虑到了这种情况,定义了一组附加字符编码。附加字符编码采用两个16位来表示,这样最多可以定义1 048 576个附加字符。目前,Unicode 4.0规范只定义了45 960个附加字符。

Unicode只是一个编码规范。目前实际实现的Unicode编码只要有3种:UTF-8、UCS-2和UTF-16。3种Unicode字符集之间可以按照相关规范进行转换。

3.UTF-8编码

UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度的字符编码,又称为万国码。UTF-8由Ken Thompson于1992年创建,现在已经将它标准化为RFC 3629。UTF-8用1~6字节编码Unicode字符。在网页上它可以统一页面显示中文简体/繁体及其他语言(如英文、日文、韩文)。一个UTF-8编码的英文字符占用1字节;一个UTF-8编码的中文(含繁体)字符少数情况下占用3字节,多数情况下占用4字节;一个UTF-8编码的数字占用1字节。

知识点讲解:视频\第1章\C语言的辉煌诞生.mp4

C语言是目前世界上最流行、使用最广泛的程序设计语言之一。由于C语言绘图能力强,可移植性好,并具备很强的数据处理能力,因此它适合编写系统软件、二维和三维图形及动画程序,是一门可进行数值计算的高级语言。C语言的原型是ALGOL 60语言,它也称为A语言。

接下来,我们看一看C语言的发展历程。

知识点讲解:视频\第1章\第一印象的建立.mp4

为了快速迈入C语言的世界,本节将通过一个实例来介绍C语言的特性。

实例1-1 通过一段简单的C代码来认识C语言

源码路径 daima\1\FIRST.c

实例文件FIRST.c的具体代码如下。


拓展范例及视频二维码! 

范例1-1-01:求反余弦 源码路径:演练范例\1-1-01\ 

范例1-1-02:求反正弦 源码路径:演练范例\1-1-02\ 


#include                 //引用头文件 
int m;                            //定义全局变量
int min(int x,int y);
int main(void)
{ 
    int a,b;                      //定义变量
    printf("\nEnter two Number:");//调用库函数中的输出函数
      scanf("%d,%d",&a,&b);//调用库函数中的输入函数
      m=min(a,b);          //调用用户定义的函数
    printf("Minimum:%d\n",m);
}
int min(int x,int y) {            //定义函数
    int t=0;                      //声明变量
      if(xx小,则输出x
      else t=y;                   //如果x大,则输出y
    return(t);
}

上述代码的功能是对用户输入的数据xy比较大小,并输出较小的数。从整个程序的实现过程可以看出,通过简短的代码即可实现用户需要的功能。

总体来说,我们对C语言的初步印象很不错,它简单、易于理解。具体来说,C语言的主要特点如下所示。

(1)简洁紧凑、灵活方便。

C语言只有32个关键字、9种控制语句,程序书写自由,它主要用小写字母来表示。C语言把高级语言的基本结构和语句与低级语言的实用性相结合起来,可以像汇编语言一样对位、字节和地址进行操作,这三者是计算机中最基本的工作单元。

(2)运算符丰富。

C语言共有34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符来处理,从而使它的运算类型极其丰富,表达式类型多样化,灵活使用各种运算符可以实现在其他高级语言中难以实现的运算。

(3)数据结构丰富。

C语言的数据类型有整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等,这些数据类型可以实现各种复杂数据类型的运算。C语言引入了指针这一概念,这使程序效率更高。另外,C语言具有强大的图形功能,它支持多种显示器和驱动器,且计算功能、逻辑判断功能强大。

(4)语法限制不太严格,程序设计自由度大。

一般高级语言的语法检查比较严格,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。

(5)允许直接访问物理地址,可以直接对硬件进行操作。

C语言既具有高级语言的功能,又具有低级语言的许多功能。它能够像汇编语言一样对位、字节和地址进行操作,它们可以用来编写系统软件。

(6)生成的代码质量高,程序执行效率高。

C语言比汇编程序生成的目标代码效率高10%~20%。

(7)适用范围大,可移植性好。

C语言不但可以广泛用于计算机项目的程序开发,而且可以独立开发硬件程序。

当然,C语言也有自身的不足,例如语法限制不太严格,对变量类型的约束不严格,影响程序的安全性。另外,从应用开发的角度看,C语言比其他高级语言较难掌握。

知识点讲解:视频\第1章\理解编译系统.mp4

C语言是一门DOS环境下的开发语言,在执行前需要先将其编译,才能正确执行。要真正理解编译系统的原理,重要的是要理解什么是“编译”。编译是一个过程,通过这个过程可以把高级语言变成计算机可以识别的二进制语言。计算机只认识以1和0格式组织的二进制数据,编译程序可以把人们熟悉的语言换成二进制形式。

要通过编译把一个源程序翻译成目标程序,所需的流程如图1-1所示。

图1-1 编译系统的结构流程

在上述过程中,两个主要的阶段是词法分析和语法分析,这又称为源程序分析。如果在分析过程中发现了语法错误,则它会给出对应的提示信息。

接下来开始讲解上述5个阶段的具体过程。

另外,还涉及下面两个程序。

了解了“编译”过程后,整个编译系统的概念便一目了然了。编译系统就是按照编译原理集合而成的一种机制,这种机制能够对程序语言实现上述处理。

系统编译与发布是在系统编码之后执行的一项基本操作。编译生成可执行代码。发布是将编译之后的可运行版本发布到服务器,供用户使用。在编译过程中,编译器将代码翻译成中间语言。运行时会将中间语言翻译成CPU的指令,以便计算机的处理器运行应用程序。编译后的应用程序可以提高代码的运行速度,增加代码的安全性和稳定性。

C语言博大精深,能够应用于多个领域,因此,它一直深受广大程序员的喜爱。作为一名初学者,你肯定会在学习中遇到许多疑问和困惑。为此,在本节中,作者将描述自己的心得体会,以帮助读者解决困惑。

当今各种新技术、新思想、新名词层出不穷,令人眼花缭乱。新与旧混杂在一起,让人有目不暇接之感。

无论是初学者还是高级程序员,他们都在心底藏着一个问题:C语言会不会只是人们学习程序设计的基石,而没有实际的使用价值?答案当然是否定的,作者在此建议读者要牢记:越是基础的语言,能实现的功能就越强大。比如,现在许多的语言都是由C语言开发出来的。在真正高深的编程领域,许多好的软件、系统都是由汇编语言和C语言等语言编写出来的。所以,C语言不仅是软件开发的基石,而且还会有强大的生命力。

C语言比较贴近操作系统,纯C语言在Windows平台上主要用于系统底层驱动的开发(一般会辅以汇编)。特别是在Linux或UNIX系统上,C语言一直到现在都还是主流,以C语言编写的程序可以很方便地与其他程序在shell中配合。C脚本和shell构建了一整套UNIX/Linux开发基础,在此可以简单地总结为如下3点。

(1)C语言语法简单,是学习其他语言的基础。

(2)C语言符合UNIX/Linux系统的开发流程,适合和其他程序以进程方式来构建大型应用。

(3)相对于Windows系统,Linux系统中的进程开销相对较小。

由此可见,C语言现在依旧是当前程序开发中的热门语言,特别活跃于底层驱动开发、Linux系统开发、UNIX系统开发中。当前异常火爆的Android系统的底层源码,便是基于Linux系统使用C语言实现的。而另外异常火爆的苹果手机系统(iOS)和苹果商店中的软件,是用C语言的变种Objective-C来开发的。

关于怎样学好C语言,仁者见仁、智者见智,但是最起码要遵循如下两个原则。

(1)多看代码。

在有一定基础以后,一定要多看别人编写的代码。注意代码中的算法和数据结构。学习C语言的关键是算法和数据结构,而在数据结构中,指针是重要的一环。绝大多数的数据结构都是建立在指针之上的,例如链表、队列、树、图等。由此可见,只有学好指针,才能真正学好C语言。别的方面也要关注一下,诸如变量的命名、库函数的用法等。

(2)多动手实践。

程序开发比较注重实践和演练,光说不练不行。初学者可以多做一些练习,对于不明白的地方,可以亲自编一个小程序实验一下,这样做可以留下一个深刻的印象。在自己动手的过程中,要不断纠正不好的编程习惯和认识错误。在有了一定的基础之后,可以尝试编一些小游戏应用程序。在基础变得扎实以后,可以编一些数据结构方面的应用,例如最经典的学生成绩管理系统。

(1)学习要深入,基础要扎实。

基础的作用不必多说,在大学课堂上老师曾经讲过了很多次,在此重点说明“深入”。职场不是学校,企业要求你高效地完成相关项目,但是现实中的项目种类繁多,我们需要掌握C语言技术的精髓。走马观花式的学习已经被社会所淘汰,入门水平不会被公司所接受,它们需要的是高手。

(2)要有恒心,不断演练,并举一反三。

学习编程的过程是枯燥的,我们要将学习C语言当成乐趣,只有做到持之以恒,才有机学好。另外,编程最注重实践,最怕闭门造车。每一个语法、每一个知识点,都要反复用实例来演练,这样才能加深对知识的理解。只有做到举一反三,才能对知识有深入的理解。

1.将《大学计算机基础》一书通读一遍,要确保完全理解里面的内容。

2.在百度中搜索“在线进制转换器”,尝试使用它实现不同进制间的转换。

3.在百度中搜索“二进制算术在线计算器”,尝试使用它实现不同二进制数据中的四则运算功能。


古人云:工欲善其事,必先利其器。由第1章的内容我们了解到,C语言开发需要使用专门的开发工具,这样才能起到事半功倍的效果。本章将简要介绍常用的几种C语言开发工具,详细介绍它们的安装和使用方法,为读者学习本书后面的知识打下基础。

知识点讲解:视频\第2章\用DOS开发C程序.mp4

由于C语言程序是在DOS下进行编译的程序,所以,需要在DOS环境下开发、编译和调试。但是DOS却是一个十分落后的系统,已经远离当今主流,操作十分不便。正因如此,市面中主流的C语言开发工具都是在Windows、Linux或MacOS操作系统中使用的。本节将介绍一款古老的DOS开发工具Turbo C/C++ 3.0,相信很多读者肯定会问既然Turbo C/C++ 3.0已经落伍了,那么为什么还介绍它呢?这是因为某种原因,国内很多高校和计算机等级考试教程中还在使用Turbo C/C++ 3.0工具,所以本节将用很少的篇幅介绍这款工具的用法。

安装Turbo C 3.0的步骤如下。

(1)在百度中搜索“Turbo C 3.0”(在Win7、8、10系统中可用),然后下载压缩包。

(2)下载后解压缩进行自动安装,安装成功后程序会创建桌面快捷方式,单击桌面快捷方式即可启动Turbo C/C++ 3.0。Turbo C 3.0的主界面,如图2-1所示。

图2-1 Turbo C 3.0主界面

使用Turbo C 3.0实现实例的过程如下所示。

(1)打开Turbo C 3.0,进入编辑界面,编写对应的代码,如图2-2所示。

图2-2 编辑界面

(2)按F9键,进行编译并链接,操作成功后弹出成功提示,如图2-3所示。

图2-3 成功提示

(3)按快捷键Ctrl+F9运行此程序,输出指定的界面,如图2-4所示。

图2-4 运行界面

(4)随便输入两个数字,中间用逗号隔开,然后按Enter键。按快捷键Alt+F5后,输出效果如图2-5所示。

图2-5 输出结果

知识点讲解:视频\第2章\使用Visual Studio 2017.mp4

Microsoft Visual Studio 2017是微软推出的全新的专用开发工具,它是一个集成的开发环境工具。Microsoft Visual Studio 2017是一款功能齐全且可扩展的免费IDE,适用于个人开发、开放源代码项目、学术研究、教育和小型专业团队。它能够创建适用于Windows、Android和iOS的应用程序,以及网络应用程序和云服务。本节将详细讲解使用Microsoft Visual Studio 2017开发C语言程序的基本知识,为读者学习后面的知识打下坚实的基础。

安装Visual Studio 2017的步骤如下。

(1)登录Microsoft Visual Studio官网,如图2-6所示。

图2-6 Microsoft Visual Studio官网

(2)单击“下载Visual Studio”中的“Enterprise 2017”链接开始下载,如图2-7所示。下载后得到一个exe格式的安装文件“vs_enterprise__2050403917.1499848758.exe”,如图2-8所示。

图2-7 “Enterprise 2017”链接

图2-8 安装文件

(3)右击下载文件“vs_enterprise__2050403917.1499848758.exe”,使用管理员模式进行安装。在弹出的界面中单击“继续”按钮,这表示同意了许可条款,如图2-9所示。

图2-9 单击“继续”按钮

(4)在弹出的“正在安装”界面中选择你要安装的模块,本书需要安装如下模块:

上述各模块的具体说明在本界面中也进行了详细介绍,如图2-10所示。在界面的左下角可以设置安装路径,单击“安装”按钮后开始进行安装。

图2-10 “正在安装”界面

(5)单击“安装”按钮后会弹出安装进度界面,这个过程比较耗费时间,读者需要耐心等待,如图2-11所示。

图2-11 安装进度对话框

(6)安装成功后的界面如图2-12所示。

图2-12 安装成功的界面

(7)单击计算机“开始”菜单,从“所有应用”中选择“Visual Studio 2017”就可打开刚安装的Visual Studio 2017,如图2-13所示。

图2-13 从“开始”菜单打开Visual Studio 2017

(8)首次打开Microsoft Visual Studio 2017后,将会弹出“以熟悉的环境启动”界面。因为本书讲解的是C语言开发,所以选择“Visual C#++”开发设置选项,如图2-14所示。然后单击“启动Visual Studio”按钮后开始配置,如图2-15所示。

图2-14 选择“Visual C++开发设置”选项

图2-15 “以熟悉的环境启动”界面

(9)配置完成后将来到Microsoft Visual Studio 2017的集成开发界面,如图2-16所示。

图2-16 Microsoft Visual Studio 2017默认的集成开发界面

要使用Visual Studio 2017开发C语言程序,步骤如下。

实例2-1 使用Visual Studio 2017开发一个C程序

源码路径 \daima\2\2-1

(1)打开Visual Studio 2017,依次单击顶部菜单中的“文件”→“新建”→“项目”,如图2-17所示。

图2-17 新建一个项目

(2)在弹出的“新建项目”对话框中,单击左侧“模板”中的“Visual C++”选项,在右侧选中“Win32控制台应用程序”,在下方的“名称”中设置项目名称为“C++1”,如图2-18所示。


 

注意:

因为C语言和C++语言一直不分家,所以Visual Studio 2017并没有专门为C语言提供模板,而是对C语言和C++语言同时提供了同一个模板“Visual C++”。所以在使用Visual Studio 2017创建C语言项目时,只能在左侧“模板”中选择“Visual C++”选项。 


(3)单击“确定”按钮后进入到“欢迎使用Win32应用程序向导”界面,如图2-19所示。

图2-18 “新建项目”对话框

图2-19 “欢迎使用Win32应用程序向导”对话框

(4)单击“下一步”按钮后进入“应用程序设置”界面,在“应用程序类型”中勾选“控制台应用程序”复选框,在下方的“附加选项”中勾选“预编译头”复选框,如图2-20所示。

(5)单击“完成”按钮后系统会创建一个名为“2-1”的项目,并自动生成一个名为“2-1.cpp”的程序文件,如图2-21所示。

图2-20 “Win32应用程序向导”对话框

图2-21 自动生成文件2-1.cpp

(6)将实例1-1中的代码复制到文件2-1.cpp中,具体实现代码如下所示。


拓展范例及视频二维码! 

范例2-1-01:获取整型数据的大小 源码路径:光盘\演练范例\2-1-01\ 

范例2-1-02:获取浮点类型的信息 源码路径:光盘\演练范例\2-1-02\ 


#include "stdafx.h"                //必须使用这个头文件
int m;                            //定义全局变量
int min(int x, int y);
int main(void){
     int a, b;                    //定义变量
     printf("\nEnter two Number:"); //调用库函数中的输出函数
     scanf("%d,%d", &a, &b);//调用库函数中的输入函数
     m = min(a, b);        //调用由用户定义的函数
     printf("Minimum:%d\n", m);
}
int min(int x, int y) {     //定义函数
     int t = 0;            //声明变量
     if (x<y) t = x;       //如果x小,则输出x
     else t = y;           //如果x大,则输出y
     return(t);
}

和前面的实例1-1相比,上述代码只是文件名和引用头文件发生了变化。在Visual Studio 2017环境中是“.cpp”格式的文件,引用的头文件是“stdafx.h”。

(7)开始调试上面的C语言程序,依次单击Visual Studio 2017顶部菜单中的“调试”“开始执行(不调试)(H)”命令,如图2-22所示。

图2-22 开始调试

程序执行后会提示输入两个数字,如图2-23所示。注意,这里只能输入整数,因为程序中设置的变量x和y是整型(int)的,int在C语言中表示整数。输入两个数字,例如分别输入2和3,按下Enter键后会显示较小的值,执行效果如图2-24所示。

图2-23 输入两个数字

图2-24 显示比较小的数值

知识点讲解:视频\第2章\使用轻量级开发工具DEV C++.mp4

DEV C++是一款经典的轻量级C语言开发工具,其安装大小只有几十兆,并且具有图形视图界面,操作比较容易。在DEV C++编码界面中可以使用复制和粘贴等命令,这提高了开发效率。

要安装DEV C++,步骤如下。

(1)在百度中搜索DEV C++安装包,双击可执行的exe文件进行安装,首先弹出选择语言界面,在此选择默认选项“English”,如图2-25所示。

(2)单击“OK”按钮后进入同意协议界面,如图2-26所示,在此单击“I Agree”按钮。

图2-25 选择语言

图2-26 同意协议界面

(3)在弹出的选择组件界面中勾选要安装的组件,如图2-27所示。在此建议按照默认设置进行安装,然后单击“Next”按钮。

(4)在弹出的界面中选择安装路径,如图2-28所示。

图2-27 选择组件界面

图2-28 选择安装路径

(5)单击“Install”按钮开始安装,安装完成后打开DEV C++,开发界面如图2-29所示。

图2-29 DEV C++的开发界面

要使用DEV C++运行C程序,步骤如下。

(1)依次单击顶部菜单中的“文件”“打开项目或文件”命令,然后直接打开文件first.c,打开后的界面如图2-30所示。

(2)单击顶部菜单中的“运行”命令并弹出对应的界面,如图2-31所示。“编译”命令编译当前程序,“编译运行”命令可以对当前文件同时执行编译和运行操作。

图2-30 通过DEV C++打开C程序文件

图2-31 “运行”菜单

(3)使用DEV C++编译并运行文件first.c后,执行效果和在Vsiual Studio 2017中的完全一样。

知识点讲解:视频\第2章\使用Vsiual C++ 6.0开发C语言程序.mp4

在过去一段时间内Vsiual C++ 6.0是C和C++语言首选的开发工具,是微软推出的官方工具。但是随着时间的推移,Vsiual C++ 6.0和前面讲解的Turbo C 3.0一样,只支持32位内核操作系统。而现在很多系统都是64位的,它们不支持Turbo C 3.0和Vsiual C++ 6.0。后来微软推出了Vsiual Studio .NET来代替Vsiual C++ 6.0,并且不再对Vsiual C++ 6.0进行升级和支持,所以Vsiual C++ 6.0一直停留在多年前的版本。当然Vsiual C++ 6.0在市面中还是有一定市场的,例如我们下载的很多C或C++源码都是用Vsiual C++ 6.0开发的,并且大多数计算机考试和大中专院校教学还用Vsiual C++ 6.0。下面将简单讲解使用Vsiual C++ 6.0开发C语言的基本知识。

(1)打开Visual C++ 6.0,依次选择“File”→“New”命令,弹出“New”对话框,在此选择要创建的工程类型、工程文件的保存位置和工程名称,如图2-32所示。

图2-32 设置新建工程

(2)选择Win32 Console Application选项,然后在“Project name”中输入工程名称“first”,在“Location”中输入工程的保存位置。最后单击“OK”按钮,弹出图2-33所示对话框。

图2-33 选择控制台程序类型

在此设置控制台程序的类型,此时会有以下4个选项。

此处选择A “Hello World!” application项,单击“Finish”按钮,弹出图2-34所示对话框。

图2-34 工程摘要

(3)此窗口是摘要说明窗口,它说明了程序里面包含哪些文件。单击“OK”按钮后会成功创建一个简单的控制台程序。此时返回Visual C++ 6.0的主窗口,左侧的“File View”选项卡显示了文件结构,右侧是编写代码的地方,如图2-35所示。

图2-35 Visual C++主界面

(4)建立和编辑C++源程序文件,依次选择“Project”→“Add to Project”→“New”菜单,在“New”对话框的“File”页面中选择“C++ Source File”项,输入文件名“first cpp”,然后单击“OK”按钮,编辑源程序代码。最后将文件first.c的源代码复制到这个新建文件中。

(5)编译程序,生成可执行程序。执行“Build”“Build”命令,它可以建立可执行程序,若有语法错误编译器会在窗口下方的输出窗口中显示错误信息。

(6)单击顶部菜单中的“Bulid”“Execute”命令便可在伪DOS状态下运行程序,执行效果和在Vsiual Studio 2017中的完全一样。

知识点讲解:视频\第2章\使用手机开发C语言程序.mp4

GCC(GNU Compiler Collection,GNU编译器套件),是由GNU开发的编程语言编译器。它是利用GPL许可证发行的自由软件,也是GNU计划的关键部分。GNU包括C、C++、Objective-C、Fortran、Java、Ada和Go语言的前端,也包括了这些语言的库(如libstdc++、libgcj等)。GCC的设计初衷是为GNU专门编写的一款编译器,GNU是彻底的自由软件。在开发C语言方面,GCC和本章前面讲解的DEV C++差不多,所以接下来将不再讲解这款开发工具,而是重点讲解它的变种工具C4droid。C4droid是能够在Android手机上开发C和C++语言的工具,是基于GCC实现的。

(1)在网络中搜索关键字“C4droid”,该软件的各个版本的功能都差不多,到目前为止它都是“.apk”格式的,读者下载后可以直接进行安装。

(2)安装成功后,在第一次打开C4droid时系统会提示安装GCC和SDL,这两项是必须安装的。

(3)安装成功并打开C4droid后,会发现它和计算机中的开发工具类似,也具备编码、打开、编译、运行和保存等常见功能,如图2-36所示。

图2-36 C4droid界面

(4)将文件first.c在C4droid中打开后的效果如图2-37所示。

图2-37 C4droid编码界面

(5)依次单击图2-37右下角的编译和运行按钮后可以查看运行结果,它和在计算机中的运行结果完全一样,如图2-38所示。

图2-38 C4droid调试运行界面

Visual Studio 2017容量巨大,在安装过程中一定要有耐心。如果以前在机器上安装过,那么建议用卸载工具将原来安装的软件完全卸载后再安装,这样会避免很多不必要的麻烦。在安装过程中,系统会多次重新启动,此时读者不要惊慌,计算机重启后将会自动进入安装界面。

另外,因为系统需要安装很多组件(例如数据库和IIS等组件),所以,在安装过程中总会出现这样或那样的问题。比较常见的问题是,在安装Windows组件时不能安装IIS中的Front Page服务器扩展,即使已经插入安装光盘了,但却一直提示“将XP profession service pack 2 CD插入选定的驱动器”。这是因为Windows的系统文件保护不让它通过,解决方法是关闭文件保护功能,关闭方法如下所示。

(1)运行gpedit.msc打开组策略。

(2)依次展开“计算机配置→管理模板→系统→Windows文件保护”。

(3)找到“设置文件保护”双击并修改为“已禁用”,然后重新启动系统就可以了。

上面方法最可行,但是治标不治本,还有一种方法可以彻底修复Windows文件。插入系统安装光盘,运行sfc /scannow命令检测并修复可能损坏和更改的系统文件。这样就不会再出现提示信息了。当遇到上述问题时,建议读者先试第1个方法再试第2个方法。

在Windows 7系统中,安装Visual Studio 2017最常见的问题是弹出一个“无法打开数据文件C:\Users\Administrator\AppData\Local\Temp\SIT16781.tmp\deffactory.dat”的提示。很明显,这是文件Defactory.dat的问题。解决办法是将安装包解压缩,找到“setup”目录中的文件Defactory.dat,用记事本将其打开,删除此文件中的全部内容,然后将下面的内容复制到里面:

[Version]
Signature="$Windows NT$"
Provider="Microsoft Visual Studio Team System 2010 Team Suite - CHS"
Version=900.100.00
NullString=Null String
Lang=2052
[Scenario List]
vsscenario.dll
[Scenario Factory Information]
Default Scenario=11E4C8F3-425E-43b9-B689-8BFDF03342E2

然后保存并关闭这个文件,最后重新安装即可成功。

1.编写一个C程序,在运行时输入abc三个值,使程序输出其中最大值。

2.使用Visual Studio 2017创建一个项目,实现第1题中的功能。

3.编写一个C程序,用“*”输出一个长方形。

4.编写一个C程序,用“*”输出一个三角形。

5.尝试在手机上运行与调试前面4个练习中编写的代码。


相关图书

代码审计——C/C++实践
代码审计——C/C++实践
大规模C++软件开发 卷1:过程与架构
大规模C++软件开发 卷1:过程与架构
C/C++代码调试的艺术(第2版)
C/C++代码调试的艺术(第2版)
C/C++程序设计竞赛真题实战特训教程(图解版)
C/C++程序设计竞赛真题实战特训教程(图解版)
C程序设计教程(第9版)
C程序设计教程(第9版)
C/C++函数与算法速查宝典
C/C++函数与算法速查宝典

相关文章

相关课程