- C语言从入门到精通(微视频精编版)
- 明日科技
- 11754字
- 2021-04-04 10:04:47
第1章 初识C语言
(视频讲解:36分钟)
在学习C语言之前,先要了解C语言的发展历程,这是每一个初次学习C语言的人都应该了解的,并且还要了解为什么要选择C语言,它有哪些特性。只有了解到C语言的历史和特性,才会更为深刻地理解C语言,并且增加对学习C语言的信心。随着计算机科学的不断发展,C语言的学习环境也在不断变化,刚开始学习C语言时会选择一些相对简单的编译器,如Turbo C 2.0。不过更多人还是选择了由Microsoft公司推出的Visual C++ 6.0编译器。
本章致力于使读者了解Visual C++ 6.0的开发环境,掌握Visual C++ 6.0集成开发环境中各个部分的使用,并能编写一个简单的应用程序做开发环境的使用练习。
学习摘要:
了解C语言的发展历史
了解C语言的特点
了解C语言的组织结构
掌握如何使用Visual C++ 6.0开发C程序
掌握如何使用Visual Studio 2017开发C程序
1.1 C语言发展史
视频讲解
1.1.1 程序语言简述
在看C语言的发展历程之前,先来对程序语言进行一下大概的了解。
1.机器语言
机器语言是低级语言,也称为二进制代码语言。计算机是使用由“0”和“1”构成的二进制数所组成的一串指令来表达计算机的语言。机器语言的特点是:计算机可以直接识别,不需要进行任何的翻译。
2.汇编语言
汇编语言是面向机器的程序设计语言。为了减轻使用机器语言编程的痛苦,用英文字母或者符号串来替代机器语言的二进制码,这样就把不易理解和使用的机器语言变成汇编语言。这样一来,使用汇编语言就比机器语言方便阅读和理解程序。
3.高级语言
由于汇编语言依赖于硬件体系,并且汇编语言中的助记符号数量比较多。为了使程序语言能更贴近人类的自然语言,同时又不依赖于计算机硬件,于是产生了高级语言。这种语言,其语法形式类似于英文,并且因为远离对硬件的直接操作,使得它易于普通人的理解与使用。其中影响较大且使用普遍的有Fortran、Algol、Basic、Cobol、Lisp、Pascal、Prolog、C、C++、VC、VB、Delphi、Java等。
1.1.2 C语言历史
从程序语言的发展过程可以看到,以前的操作系统等系统软件主要是用汇编语言编写的。但是由于汇编语言依赖于计算机硬件,程序的可读性和可移植性都不是很好。所以为了提高可读性和可移植性,人们开始寻找一种语言,这种语言应该既具有高级语言的特性,又不失低级语言的好处。于是,在这种需求下产生了C语言。
C语言是由UNIX的研制者丹尼斯·里奇(Dennis Ritchie)和肯·汤普逊(Ken Thompson)于1970年研制出的BCPL语言(简称B语言)的基础上发展和完善起来的。19世纪70年代初期,AT&T Bell实验室的程序员丹尼斯·里奇第一次把B语言改编为C语言。
最初,C语言运行于AT&T的多用户、多任务的UNIX操作系统上。后来,丹尼斯·里奇用C语言改写了UNIX C的编译程序,UNIX操作系统的开发者肯·汤普逊又用C语言成功地改写了UNIX,从此开创了编程史上的新篇章。UNIX成为第一个不是用汇编编写的主流操作系统。
1983年,美国国家标准委员会(ANSI)对C语言进行了标准化,于1983年颁布了第一个C语言草案(83ANSI C),后来于1987年又颁布了另一个C语言标准草案(87ANSI C),最新的C语言标准C99于1999年颁布,并在2000年3月被ANSI采用。但是由于未得到主流编译器厂家的支持,C99也并未广泛使用。
尽管C语言已广泛应用于大型商业机构和学术界的研究实验室,但是当开发者们为第一台个人计算机提供C编译系统之后,C语言才得以广泛传播,为大多数程序员所接受。对MS-DOS操作系统来说,系统软件和实用程序都是用C语言编写的。Windows操作系统大部分也是用C语言编写的。
C语言是一种面向过程的语言,同时具有高级语言和汇编语言的优点。C语言可以广泛应用于不同的操作系统,如UNIX、MS-DOS、Microsoft Windows及Linux等。
在C语言的基础上发展起来的有支持多种程序设计风格的C++语言、网络上广泛使用的Java和JavaScript、微软的C#语言等。也就是说,学好C语言之后,再学习其他语言时就会在短时间内轻松地掌握。
说明
目前最流行的C语言有以下几种:
Microsoft C或称MS C
Borland Turbo C或称Turbo C
AT&T C
1.2 C语言的特点
视频讲解
C语言是一种通用的程序设计语言,主要用来进行系统程序设计,具有如下特点。
高效性
谈到高效性,不得不说C语言是“鱼与熊掌”兼得。从C语言的发展历史也可以看到,它继承了低级语言的优点,产生了高效的代码,并具有友好的可读性和编写性。一般情况下,C语言生成的目标代码要比汇编程序低10%~20%。
灵活性高
C语言中的语法不居于一格,在原有语法基础上进行创造、复合,给程序员更多的想象和发挥的空间。
功能丰富
除了在C语言中目前具有的类型,用户还可以使用丰富的运算符和自定义的结构类型,来表达任何复杂的数据类型,很好完成所需要的功能。
表达力强
C语言的表达力强体现在于,它的语法形式与人们所使用的语言形式相似,书写形式自由、结构规范,并且用简单的控制语句可以轻松控制程序流程,完成复杂烦琐的程序要求。
移植性好
因为C语言具有良好的移植性,这样使得C程序在不同的操作系统下,只需要简单的修改或者不用修改就可以进行跨平台的程序开发操作。
拥有这些优秀的特点,C语言在程序员选择语言时备受青睐。
1.3 一个简单的C程序
视频讲解
在通往C语言程序世界之前,首先不要对C语言产生恐惧感,觉得这种语言都应该是学者或研究人员的专利。C语言是人类共有的财富,是一个普通人只要通过努力学习就可以掌握的一门科学技术。下面先来通过一个简单的程序,看一看C语言程序是什么样子。
【例1.1】 一个简单C程序。(实例位置:资源包\源码\01\1.01)
本实例程序实现的功能只是显示一条信息“Hello, world! I'm coming!”,用这个程序使读者初窥C程序样貌。虽然这个简单的小程序只有7行,但是却充分地说明了C程序是由什么位置开始的,什么位置结束的。
运行程序,显示效果如图1.1所示。
现在来分析一下上面的实例程序。
图1.1 一个简单C程序
1.#include指令
实例代码中的第1行:
#include<stdio.h>
这个语句的功能是进行有关的预处理操作。include称为文件包含命令;后面尖括号中的内容,称为头部文件或者首文件。有关预处理的内容,本书会在第14章中进行详细的讲解。在此,读者只需要先对此概念有所了解就可以。
2.空行
实例代码中的第2行:
C语言是一个灵活性较强的语言,所以格式并不是固定不变、拘于一格的。也就是说空格、空行、跳格并不会影响程序。那这个时候有读者就会问“为什么要有这些多余的空格和空行。”其实这就像在生活中用纸写字一样,虽然拿一张白纸就可以在上面写字,但是还会在纸上面用一行一行的方格或段落,隔开每一段文字,就是为了美观和规范。合理、恰当地使用这些空格、空行,可以使编写出来的程序更加规范,对日后的阅读和整理有着重要的作用。所以在此也提醒读者,在写程序的时候最好将程序写得规范、干净,否则乱乱糟糟一堆,就是再好的程序也会变得很难理解。
注意
不是所有的空格都是没有用的,例如,在两个关键字之间有空格隔开(else if),这种情况下如果将空格去掉的话,程序是不能通过编译的。在这里先进行一下说明,在以后章节的学习过程中就会慢慢领悟。
3.main函数声明
实例代码中的第3行:
int main()
这一行代码代表的意思是声明main函数是一个返回值为整型的函数。其中的int叫作关键字,这个关键字代表的类型是整型。关于数据类型会在本书的第2章进行讲解,而函数的内容在本书的第9章会进行详细的介绍。
在函数中这一部分叫作函数头部分。在每一个程序中都会有一个main函数。那么main函数是什么作用呢?main函数就是一个程序的入口部分。也就是说,程序都是从main函数头开始执行的,然后进入到main函数中,执行main函数中的内容。
4.函数体
实例代码中的第4~7行:
在上面介绍main函数时,提到了一个名词叫作“函数头”,大家可以通过这个词进行一下联想,既然有函数头,那也应该有函数的“身体”吧?没错,一个函数分为两个部分,一个部分是函数头,一个部分是函数体。
程序代码中的第4行和第7行这两个大括号就构成了函数体的部分,函数体也可以称作为函数的语句块。在函数体中,也就是第5行和第6行这一部分就是函数体中要执行的内容。
5.执行语句
在函数体中,第5行代码:
执行语句就是函数体中要执行的动作内容。这一行代码是这个简单的例子中最复杂的一句。这一句虽然看似复杂,其实也不难理解,printf是产生格式化输出的函数,可以简单地理解为是向控制台进行输出文字或符号。在括号中的内容称为函数的参数,括号内可以看到输出的字符串"Hello,world!I'm coming"。其中可以看到“\n”这样一个符号,这个反斜杠加上n称之为转义字符。转义字符的内容会在本书的第2章中有所介绍。
6.return语句
在函数体中,第6行代码:
return 0;
这行语句告诉main函数终止运行,并向操作系统返回一个0,整型常量。还记得在前面介绍main函数时,说过返回一个整型返回值。此时0就是要返回的整型。在此处可以将return理解成main函数的结束标志。
7.代码的注释
在程序的第5行和第6行后面都可以看到有一段关于这行代码的文字描述:
这段对代码的解释描述称为代码的注释。代码注释的作用,相信读者现在已经知道了,就是用来对代码进行解释说明,为日后的阅读或者他人阅读源程序时,方便理解程序代码含义和设计思想所用。它的语法格式就是:
/*其中为注释内容*/
说明
虽然没有强行规定程序中一定要写注释,但是为程序代码写注释是一个良好的习惯,这会为以后查看代码带来非常大的方便。并且如果程序交给别人看,他人便可以通过注释快速掌握程序思想与代码作用。所以养成编写规范的代码格式和添加详细的注释习惯,是一个优秀程序员应该具备的素质。
1.4 一个完整的C程序
视频讲解
动图演示
1.3节为大家展现了一个最简单的程序,通过7行代码的使用,实现一个显示一行字符串功能的程序。相信通过1.3节的介绍,已经使读者不再对学习C语言还有畏惧的心理。那么在本节中,根据一小节的实例,对其进行内容扩充,使读者对C程序有一个更完整的认识。
说明
在这里要再次提示一下这个程序的用意。例1.2包括上面的例1.1并不是要将具体的知识点进行详细的讲解,只是将C语言程序的概貌展示给读者,让读者对C语言程序有一个简单的印象。还记得小时候学习加减法的情况吗?老师只是教给学生们“1+1=2”,却没有教给学生们“1+1为什么等于2”或者“如何证明1+1=2”这样的问题。通过这些生活中的提示,可以看出小时候学习加减法是这样过程,那么学习C语言编写程序也应该是这样的过程。在不断地接触中变得熟悉,在不断地思考中变得深入。
【例1.2】 一个完整的C程序。(实例位置:资源包\源码\01\1.02)
本实例要实现这样的功能,有一个长方体,它的高已经给出,然后输入这个长方体的长和宽,通过输入的长、宽还有给定的高度,计算出这个长方体的体积。
程序代码如下:
运行程序,显示效果如图1.2所示。
在具体讲解这个程序的执行过程之前,先展现这个程序的过程图,这样可以对程序有一个更为清晰的认识,如图1.3所示。通过这个程序的过程图,可以观察出整个程序运作的过程。前面已经介绍过关于程序中一些相同的内容,在这里就不进行有关的说明。下面介绍关于程序中新出现的一些内容。
1.定义常量
实例代码中的第2行:
这一行代码中,使用#define定义一个符号,#define在这里的功能是设定这个符号为Height,并且指定这个符号Height代表的值为10。这样在程序中,只要是使用Height这个标识符的地方,就代表使用的是10这个数值。
图1.2 完整的C程序
图1.3 程序流程分析
2.函数声明
实例代码中的第4行:
此处代码的作用是对一个函数进行声明,前面介绍过函数,但是什么是函数声明呢?举一个例子,两个公司进行合作,其中的A公司要派一个经理到B公司进行洽谈业务。那么A公司就会发送一个通知给B公司,告诉B公司会排一个经理过去,在机场接一下这位洽谈业务的经理。可是B公司并不知道这位经理的名字和相貌,A公司就需要将这位经理的名字和体貌特征都告诉B公司的迎接人员。这样当这位经理下飞机之后,B公司就可以将他名字写在纸上举起来,然后找到这位经理。
函数声明的作用就像A公司告诉B公司有关这位经理信息的过程,为接下来要使用的函数做准备。也就是说此处声明calculate函数,那么在程序代码的后面会有calculate函数的具体定义内容,这样程序中如果出现使用calculate函数,程序就会知道根据calculate函数的定义执行有关的操作。至于有关的具体内容将会在第9章进行介绍。
3.定义变量
实例代码中的第7~9行:
这3行语句都是定义变量的语句。在C语言中,要使用变量必须在使用变量之前进行定义,之后编译器会根据变量的类型为变量分配内存空间。变量的作用就是存储数值,用变量进行计算。这就像在二元一次方程中,X和Y就是变量,当为其赋值后,例如X赋值为5,Y为10,这样X+Y的结果就等于10。
4.输入语句
实例代码中的第15行:
在上一个实例中,曾经介绍过显示输出函数printf,那么既然有显示输出就一定会有输入。在C语言中,scanf函数就是用来进行接受键盘输入的内容,并将输入的结构保存在相应的变量中。可以看到scanf函数的参数中,m_Long就是之前定义的整型变量,它的作用就是用来存储输入的信息内容。其中的&符号是取地址运算符,在本书的后面将会进行介绍。
5.数学运算语句
实例代码中的第26行:
这行代码在calculate函数体内的,其功能是将变量Long乘以Width乘以Height得到结果保存在result变量中。其中的“*”号代表乘法运算符。
以上内容已经将其中的要点知识全部提取出来,关于C语言程序相信读者此时已经有一定的了解,再将上面的程序执行过程进行一下总结。
(1)先预处理要进行包含程序所需要的头文件。
(2)定义一个常量Height,其值代表为10。
(3)对calculate函数进行声明。
(4)进入main函数,程序开始执行。
(5)在main函数中,首先定义3个整型变量,3个变量分别代表长方体的长度、宽度和长方体的体积。
(6)显示提示文字,然后根据显示的文字输入有关的数据。
(7)当将长方体的长度和宽度都输入进去之后会调用calculate函数,计算长方体的体积。
(8)定义calculate函数的位置在main函数的下面,在calculate函数体内将计算长方体体积的结果进行返回。
(9)在main函数中,result变量得到了calculate函数返回的结果。
(10)通过输出语句将其中长方体的体积显示出来。
(11)程序结束。
1.5 C语言程序的格式
视频讲解
通过上面的两个实例的介绍可以看到C语言编写有一定的格式特点。
主函数main
一个C程序都是从main函数开始执行的。main函数不论放在哪个文件的位置都没有关系。
C程序整体是由函数构成的
程序中main就是它的主函数,当然在程序中可以定义其他函数。在这些定义函数中进行特殊的操作,使得函数完成特定的功能。如果将所有的执行代码全部放入main函数,虽然程序也是可行的,但是将其分成一块一块,每一块使用一个函数进行表示,那么整个程序看起来就具有结构性,并且易于观察和修改。
函数体的内容在“{}”中
每一个函数都要执行特定的功能,那么怎么能看出一个函数的具体操作的范围呢?答案就是找寻“{”和“}”这两个大括号。C语言使用一对大括号来表示程序的结构层次,需要注意的就是左右大括号要对应使用。
技巧
在编写程序时,为了防止对应大括号的遗落,在每一次都先将两个对应的大括号写出来,然后再向括号中添加代码。
每一个执行语句都以“;”结尾
如果注意观察前面的两个实例就会发现,在每一个执行语句后面都会有一个“;”分号作为语句结束的标志。
英文字符大小通用
在程序中,可以使用英文的大写字母,也可以使用英文的小写字母。一般情况下使用小写字母多一些,因为小写字母易于观察。但是在定义常量时常常使用大写字母,而在定义函数时有时也会将第一个字母大写。
空格、空行的使用
在前面关于讲解空行时已经对其进行阐述,它们的作用就是为了增加程序的可读性,使程序代码位置安排得合理、美观。例如下面这个例子中的代码就非常不利于观察:
但是如果将其中的执行语句在函数中缩进,使得函数体内代码开头与函数头的代码不在一列,这样就会有层次感,例如:
1.6 开发环境
视频讲解
欲善其事,先利其器。
俗话说磨刀不误砍柴工,要将一件事做好,先要了解制作工具。本节将向读者详细地介绍两样常用学习C语言程序开发的工具:一个是Visual C++ 6.0,另一个是Visual Studio 2017。下面将对这两种开发工具进行具体的介绍。
1.6.1 Visual C++ 6.0
1.Visual C++ 6.0的下载
微软公司已经停止了对Visual C++ 6.0的技术支持,并且也不提供下载,本书中使用的Visual C++ 6.0的中文版,读者可以在网上搜索,下载合适的安装包。
2.Visual C++ 6.0的安装
Visual C++ 6.0的具体安装步骤如下:
(1)双击打开Visual C++ 6.0安装文件夹中的SETUP.EXE文件,如图1.4所示。打开的界面如图1.5所示,单击“运行程序”按钮,继续安装。
图1.4 双击安装文件开始安装Visual C++ 6.0
图1.5 单击“运行程序”按钮
(2)进入“安装向导”界面,如图1.6所示,单击“下一步”按钮。进入“最终用户许可协议”界面,如图1.7所示,首先选中“接受协议”单选按钮,然后单击“下一步”按钮。
(3)进入“产品号和用户ID”界面,如图1.8所示。在安装包内找到CDKEY.txt文件,填写产品ID。姓名和公司名称根据情况填写,可以采用默认设置,不对其修改,单击“下一步”按钮。
图1.6 安装向导界面
图1.7 “最终用户许可协议”界面
(4)进入“Visual C++ 6.0中文企业版”界面,如图1.9所示。在该界面选中“安装Visual C++ 6.0中文企业版”单选按钮,然后单击“下一步”按钮。
图1.8 “产品号和用户ID”界面
图1.9 “Visual C++ 6.0中文企业版”界面
(5)进入“选择公用安装文件夹”界面,如图1.10所示。公用文件默认存储在C盘中,单击“浏览”按钮,选择安装路径,这里建议安装在磁盘空间剩余比较多的磁盘中,单击“下一步”按钮。
(6)进入到安装程序的欢迎界面中,如图1.11所示,单击“继续”按钮。
(7)进入到产品ID确认界面,如图1.12所示,在此界面中,显示要安装的Visual C++ 6.0软件的产品ID,在向Microsoft请求技术支持时,需要提供此产品ID,单击“确定”按钮。
(8)如果读者电脑中安装过Visual C++ 6.0,尽管已经卸载了,但是在重新安装时还是会显示如图1.13所示的信息。安装软件检测到系统之前安装过Visual C++ 6.0,如果想要覆盖安装的话,单击“是”按钮;如果要将Visual C++ 6.0安装在其他位置的话,单击“否”按钮。这里单击“是”按钮,继续安装。
图1.10 “选择公用安装文件夹”界面
图1.11 安装程序的欢迎界面
图1.12 产品ID确认界面
图1.13 覆盖以前的安装
(9)进入到选择安装类型界面,如图1.14所示。在此界面中,Typical为传统安装,Custom为自定义安装。这里选择Typical安装类型。
(10)进入到注册环境变量界面,如图1.15所示,在此界面中选中Register Environment Variables复选框,注册环境变量,单击OK按钮。
图1.14 选择安装类型界面
图1.15 注册环境变量界面
(11)前面的安装选项都设置好后,下面就开始安装Visual C++ 6.0了,如图1.16所示,显示安装进度,当进度条达到100%时,则安装成功,如图1.17所示。
(12)Visual C++ 6.0安装成功后,进入到MSDN安装界面,如图1.18所示。取消选中“安装MSDN”复选框,不安装MSDN,单击“下一步”按钮。在其他客户工具和服务器安装界面不进行选择,直接单击“下一步”按钮,则可完成Visual C++ 6.0的全部安装。
图1.16 安装进度条
图1.17 安装成功界面
图1.18 MSDN安装界面
3.Visual C++ 6.0创建C程序
安装完之后就可以使用Visual C++ 6.0了,下面就是创建C程序的方法,步骤如下:
(1)安装Visual C++ 6.0之后,选择“开始”→“Visual C++ 6.0(完整绿色版)”命令,操作如图1.19所示。
(2)打开Visual C++ 6.0开发环境,进入到Visual C++ 6.0的界面,如图1.20所示。
(3)在编写程序前,首先要创建一个新的文件,具体方法为:在Visual C++ 6.0界面选择“文件”→“新建”命令,或者按Ctrl+N快捷键,这样就可以创建一个新的文件,如图1.21所示。
图1.19 打开Visual C++ 6.0开发环境
图1.20 Visual C++ 6.0界面
图1.21 创建一个新文件
(4)此时会出现一个“新建”对话框,如图1.22所示,在此可以选择要创建的文件类型和存储位置。
要创建一个C源文件,首先选择“文件”选项卡,这时在列表框中会显示可以创建的不同文件类型。选择其中的选项,在右边的“文件名”文本框中输入要创建的文件名称。
注意
因为要创建的是C源文件,所以在文本框中要将C源文件的扩展名一起输入。例如创建名称为hello的C源文件,那么应该在文本框中输入“hello.c”。
“文件名”文本框的下面还有一个“位置”文本框,该文本框中是源文件的保存地址,可以通过单击右边的按钮修改源文件的存储位置。
(5)当指定好C源文件的保存地址和文件的名称后,单击“确定”按钮,创建完成。此时可以看到在开发环境中新创建的C源文件,如图1.23所示。
图1.22 创建C源文件
图1.23 新创建的文件
(6)C源文件此时已经创建完成了,现在将一个简单的程序代码输入其中。为了有对比的效果,这里使用例1.1中的程序。将例1.1中的程序输入后显示效果如图1.24所示。
(7)此时程序已经编写完成,可以对写好的程序进行编译。选择“组建”→“编译”命令,如图1.25所示。
图1.24 输入程序代码
图1.25 选择“编译”命令
(8)此时出现如图1.26所示的对话框,询问是否创建一个默认项目工作环境。
(9)单击“是”按钮,此时会询问是否要改动源文件的保存地址,如图1.27所示。
图1.26 询问是否创建工作环境
图1.27 询问是否要改动源文件的保存地址
(10)单击“是”按钮后,编译程序。如果程序没有错误,即可被成功编译。虽然此时代码已经被编译,但是还没有链接生成.exe可执行文件,因此如果此时要执行程序,会出现如图1.28所示的提示对话框,询问是否要创建.exe可执行文件。如果单击“是”按钮,则会链接生成.exe文件,即可执行程序并观察程序的显示结果。
(11)当然也有直接创建.exe文件的操作选项。可以选择“组建”→“组建”命令,执行创建.exe文件操作,如图1.29所示。
图1.28 询问是否要创建.exe文件
图1.29 选择“组建”命令
注意
在编译程序时可以直接选择“组建”命令进行编译、链接,这样就不用进行上面第(7)步的“编译”操作,而可以直接将编译和链接操作一起执行。
(12)只有执行程序才可以看到有关程序执行的结果显示,可以选择“组建”→“执行”命令进行执行程序操作,即可观察到程序的运行结果,如图1.30所示。
上面通过一个小程序的创建、编辑、编译和显示程序运行结果的操作,介绍了有关使用Visual C++ 6.0的简单操作。
下面将对Visual C++ 6.0集成开发环境的使用进行补充。
(1)工具栏按钮的使用
Visual C++ 6.0集成开发环境提供了许多有用的工具栏按钮。
:代表Compile(编译)操作。
:Build(组建)操作。
:代表Execute(执行)操作。
关于上述操作的功能及作用已经在上面的具体讲解中有所介绍,此处不再赘述。
(2)常用的快捷键
在编写程序时,使用快捷键会加快程序的编写进度。在此建议读者,对于常用的操作最好使用快捷键进行。
Ctrl+N:创建一个新文件。
Ctrl+]:检测程序中的括号是否匹配。
F7:代表Build(组建)操作。
Ctrl+F5:Execute(执行)操作。
Alt+F8:整理多段不整齐的源代码。
F5:进行调试。
为了更便于读者阅读本书,将程序运行结果的显示底色和文字颜色都进行修改。修改过程如下:
(1)按Ctrl+F5快捷键执行一个程序,在程序的标题栏上单击鼠标右键,在弹出的快捷菜单中选择“属性”命令,如图1.31所示。
(2)此时弹出“属性”对话框,在“颜色”选项卡中对“屏幕文字”和“屏幕背景”进行修改,如图1.32所示。在此读者可以根据自己的喜好设定颜色并显示。
图1.30 程序运行结果显示
图1.31 选择“属性”命令
图1.32 “颜色”选项卡
1.6.2 Visual Studio 2017
1.Visual Studio 2017怎样下载
本书中使用的是Visual Studio 2017社区版,因为Visual Studio 2017社区版是免费的,其下载地址为https://www.visualstudio.com/zh-hans/download/,读者需要在这个地址下载Visual Studio 2017社区版安装包。
2.Visual Studio 2017的安装
笔者下载的安装文件名为vs_community_1804545442.1516244730.exe,Visual Studio 2017的具体安装步骤如下:
(1)双击打开Visual Studio 2017的vs_community_1804545442.1516244730.exe安装文件,如图1.33所示。就会出现如图1.34的安装程序界面,在该界面单击“继续”即可。
(2)弹出如图1.35所示的界面,不需要做任何动作,等待即可。
(3)等待程序加载完成后,自动跳转到选择功能界面,如图1.36所示,在该界面将“使用C++的桌面开发”复选框选中,其他的复选框读者可以根据开发需要确定是否选择安装,选择完要安装的功能后,在下面的“位置”处选择要安装的路径,建议不要安装在C盘上,可以选择其他磁盘安装,例如图中的F盘,设置完之后,单击“安装”按钮。
图1.33 双击安装文件开始安装Visual Studio 2017
图1.34 visual studio 2017安装界面
图1.35 安装提示
图1.36 选择功能和路径界面
注意
安装Visual Studio 2017开发环境时,一定要确保计算机处于连接网络状态,否则无法正常安装。
(4)单击“安装”之后,就会跳转到如图1.37所示的安装进度界面,该界面显示当前的安装进度(等待的时间会比较长)。
图1.37 “安装进度”界面
(5)安装完成后,也就是进度条为100%时,就会出现如图1.38所示的界面。单击“重启”按钮,完成Visual Studio 2017的安装。
(6)重启计算机之后,在Windows的“开始”菜单中找到Visual Studio 2017的开发环境,如图1.39所示,双击Visual Studio 2017,如果是第一次打开Visual Studio 2017,会出现如图1.40所示的界面,直接单击“以后再说”按钮。
图1.38 重启界面
图1.39 打开visual studio 2017
图1.40 欢迎界面
(7)进入到Visual Studio 2017环境的开发设置界面,如图1.41所示,开发设置的下拉列表选择Visual C++,可以选择自己喜欢的颜色,笔者选了蓝色,最后单击“启动Visual Studio”按钮。
(8)进入到Visual Studio 2017环境启动界面,如图1.42所示。
图1.41 选择开发设置界面
图1.42 Visual Studio 2017准备界面
(9)等待几秒钟后,进入到Visual Studio 2017环境的欢迎界面,如图1.43所示。
图1.43 启动之后界面
至此,Visual Studio 2017就安装成功了,并且已经启动了。
3.Visual Studio 2017创建C程序
前面已经介绍了Visual Studio 2017是如何安装的,下面就使用Visual Studio 2017创建一个C程序,步骤如下:
(1)安装完Visual Studio 2017之后,选择“开始”→Visual Studio 2017命令,操作如图1.44所示。
(2)打开Visual Studio 2017环境后出现欢迎界面,如图1.45所示。
图1.44 打开Visual Studio 2017环境
图1.45 Visual Studio 2017欢迎界面
(3)在编写程序之前,首先要创建一个新程序文件,具体方法是:在Visual Studio 2017欢迎界面中选择“文件”→“新建”→“项目”命令(见图1.46),或者按Shift+Ctrl+N组合键,进入新建项目文件。
图1.46 创建一个新文件
(4)在“新建项目”对话框中选择要创建的文件夹类型。选择创建文件操作的示意图如图1.47所示。
首先选择“Windows桌面”选项,这时在右侧列表框中显示可以创建不同类型文件夹。这里选择选项,在下侧的“名称”文本框中输入要创建的文件夹名称,例如Dome。在“位置”文本框设置文件夹的保存地址,可以通过单击右边的按钮修改源文件的存储位置。
图1.47 创建C源文件
(5)指定好文件夹的保存地址和名称后,单击“确定”按钮,会跳出如图1.48所示的窗口,选中“空项目”复选框,然后单击“确定”按钮。
(6)自动跳转到如图1.49所示的界面。
图1.48 创建应用程序向导
图1.49 创建项目界面
(7)选择“解决方案资源管理器”中的“源文件”,右击“源文件”按钮,在弹出的快捷菜单中选择“添加”→“新建项”命令,如图1.50所示,或者使用组合键Shift+Ctrl+A,进入添加项目界面。
(8)完成步骤(7)就会出现自动跳转到如图1.51所示的窗口。
添加项目时首先选择Visual C++选项,这时在右侧列表框中显示可以创建的不同文件。因为要创建C文件,因此这里选择选项,在下侧的“名称”文本框中输入要创建的C文件名称,例如Dome.c。“位置”文本框是文件夹的保存地址,这里默认是在步骤(4)创建的文件夹位置,不做更改。
图1.50 添加项目界面
图1.51 添加项目界面
注意
因为要创建的是C源文件,所以在文本框中要将默认的扩展名.cpp改为.c。例如创建名称为Dome的C源文件,那么应该在文本框中显示Dome.c。
(9)单击“添加”按钮,这样就添加了一个C文件,如图1.52所示。
(10)完成添加C文件,现在将一段简单的程序代码输入,如图1.53所示。
图1.52 完成添加C文件
图1.53 输入程序代码
(11)程序编写完成,接下来就要运行这个程序,选择“调试”→“开始执行(不调试)”命令,如图1.54所示,或者按Ctrl+F5快捷键运行程序,就会跳出如图1.55所示的界面,单击“是”按钮。
(12)执行步骤(11)的操作,就可观察到程序的运行结果,如图1.56所示。
图1.54 执行程序
图1.55 是否生成
图1.56 程序运行结果显示
注意
在编写程序时,可能觉得Visual Studio 2017默认代码的字体太小,改变字体步骤如下:
(1)选择“工具”→“选项”命令,如图1.57所示。
(2)出现如图1.58所示的对话框,首先将“环境”选项打开(单击“环境”前的小三角),然后选择“字体和颜色”选项,在右侧的“字体”下拉列表框中更改字体,在“大小”下拉列表框中更改字体的大小,单击“确定”按钮,代码的字体和大小就会改变。
图1.57 选择“选项”命令
图1.58 更改字体大小
1.7 实战
视频讲解
1.7.1 使用Visual C++ 6.0打开C程序
以打开本章例1.1的代码为例,讲解如何使用Visual C++ 6.0打开C程序,实现步骤如下:
(1)将资源包中的“源码”文件夹复制到本地磁盘中,如E盘,如图1.59所示。
(2)打开“源码\01\1.01”文件目录,双击01.dsw文件,即可使用Visual C++ 6.0打开例1.1的程序代码,如图1.60所示。
说明
双击以.dsw为后缀的文件,即可通过Visual C++ 6.0打开C程序。
1.7.2 使用Visual Studio 2017打开C程序
以打开本章例1.2的代码为例,讲解如何使用Visual Studio 2017打开C程序,实现步骤如下:
图1.59 将资源包中的“源码”文件夹复制到E盘中
图1.60 打开01.dsw文件
(1)将资源包中的“源码(VS2017)”文件夹复制到本地磁盘中,如E盘,如图1.61所示。
(2)打开“源码\01\1.02”文件目录,双击02.sln文件,即可使用Visual Studio 2017打开例1.2的程序代码,如图1.62所示。
图1.61 将资源包中的“源码(VS2017)”文件夹复制到E盘中
图1.62 双击02.sln文件
说明
双击以.sln为后缀的文件,即可通过Visual Studio 2017打开C程序。
(3)运行程序。选择“调试”→“开始执行(不调试)”命令,如图1.54所示,或者按Ctrl+F5快捷键运行程序。
1.7.3 求和程序
这里设计一个简单的求和程序,求123和789的两数之和。程序运行效果如图1.63所示。(实例位置:资源包\源码\01\实战\03)
图1.63 求和程序
1.7.4 求10!
编写代码实现求10!。
思路:求一个数n的阶乘也就是用n*(n-1)*(n-2)*…*2*1,那么反过来从1一直乘到n求依然成立。当n为0和1时单独考虑,此时它们的阶乘均为1。程序运行效果如图1.64所示。(实例位置:资源包\源码\01\实战\04)
图1.64 求10!
1.7.5 猴子吃桃
猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。编写程序求第一天共摘了多少桃子。程序运行效果如图1.65所示。(实例位置:资源包\源码\01\实战\05)
图1.65 猴子吃桃