C语言程序设计97871132952400000(1-1)_第1页
C语言程序设计97871132952400000(1-1)_第2页
C语言程序设计97871132952400000(1-1)_第3页
C语言程序设计97871132952400000(1-1)_第4页
C语言程序设计97871132952400000(1-1)_第5页
已阅读5页,还剩308页未读 继续免费阅读

付费阅读全文

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

文档简介

普通高等院校计算机基础教育“十四五”规划教材

大连海洋大学与大连海蓝达科技有限公司校企合作研发

C语言程序设计

主编◎张菁王颖刘威

副主编◎许吉庆张鑫周磊张思佳刘明剑

内 容 简 介

C语言作为计算机程序设计入门语言,可以为学生思维能力的培养打下坚实的基础。

本书以培养学生程序设计能力为目标,以程序设计为主线,以C语言的相关知识为

基础,以应用为驱动,通过案例和问题引入内容,重点讲解程序设计的思想和方法。全

书共11章,包括初识C语言,数据类型、运算符与输入/输出,选择结构程序设计,循

环结构程序设计,数组,函数,编译预处理,指针,结构体和共用体,位运算以及文件

等内容。

本书内容全面,知识点详尽,适合作为高等学校相关专业“C语言程序设计”课程

的教材,也可作为企业培训适用教材,还可作为对C语言学习感兴趣的读者的参考用书。

图书在版编目(CIP)数据

C语言程序设计/张菁,王颖,刘威主编.—北京:中国

铁道出版社有限公司,2022.8

普通高等院校计算机基础教育“十四五”规划教材

ISBN978-7-113-29524-0

Ⅰ.①C…Ⅱ.①张…②王…③刘…Ⅲ.①C语言-程序

设计-高等学校-教材Ⅳ.①TP312.8

中国版本图书馆CIP数据核字(2022)第143527号

书名:C语言程序设计

作者:张菁王颖刘威

策划:李志国编辑部电话:(010)83527746

责任编辑:张松涛包宁

封面设计:曾 程 刘 颖

责任校对:孙玫

责任印制:樊启鹏

出版发行:中国铁道出版社有限公司(100054,北京市西城区右安门西街8号)

网  址:/51eds/

印  刷:三河市宏盛印务有限公司

版  次:2022年8月第1版 2022年8月第1次印刷

开  本:787 mm×1 092 mm1/16印张:19.5字数:546千

书  号:ISBN978-7-113-29524-0

定  价:49.70元

版权所有 侵权必究

凡购买铁道版图书,如有印制质量问题,请与本社教材图书营销部联系调换。电话:(010)63550836

打击盗版举报电话:(010)63549461

文前.indd22022/9/116:19:29

前言

C语言程序设计是我国高等学校重要的计算机基础课程之一,其目标是让学生掌握

C程序设计语言的基础知识,并在实践中逐步掌握C程序设计的思想和方法,培养学生

灵活的思维方式,培养学生分析问题和解决问题的能力,以及提高学生计算机应用能力。

C语言从产生到现在,已经成为最重要和最流行的编程语言之一。学习和掌握C语言,

既可以培养学生程序设计素质和创新素质,又能为进一步学习其他高级语言打下坚实的

基础。

我国高等学校《大学计算机基础课程基本要求》指出,将计算思维培养建立在知识

理解和应用能力培养基础上。本书就是依据知识理解和应用能力培养的要求,结合学习

特点,组织教师精心安排章节内容、编写思路、设计例题习题。编写过程中,力求先易

后难、逐步深入,以保证能够让学生逐步理解,掌握相关章节要求,学习、理解并初步

掌握基本的程序设计方法。

全书共分11章。第1章初识C语言,介绍了C语言的基础知识和C语言的运行环境;

第2章数据类型、运算符与输入/输出,介绍了数据类型、运算符和表达式、基本输入/

输出操作;第3章选择结构程序设计,介绍了算法的基本知识和选择结构语句;第4章

循环结构程序设计,介绍了循环控制的基础和使用;第5章数组,介绍了数组的概念和

使用方法;第6章函数,介绍了函数的使用、变量的存储类型;第7章编译预处理,介

绍了宏定义、文件包含和条件编译;第8章指针,介绍了指针的概念和使用;第9章结

构体和共用体,介绍了结构体的使用以及共用体、链表、枚举类型的概念;第10章位运算,

介绍了位运算基础知识;第11章文件,介绍了文件的基本概念和文件的读写等常用操作。

另外,编者还编写了与本书配套的《C语言程序设计实验与习题选解》,主要是编

程思维能力训练及部分实验内容的拓展。

本书由大连海洋大学张菁、王颖、刘威任主编,许吉庆(大连海蓝达科技有限公司)、

张鑫、周磊、张思佳、刘明剑任副主编,具体编写分工如下:第1章由王颖编写,第2

章由周磊编写,第3章由张思佳编写,第4章由许吉庆编写,第5章由刘威编写,第6

章由张鑫编写,第7章由刘威编写,第8章由张菁编写,第9章由刘明剑编写,第10章

和第11章由王颖编写,附录由张鑫和刘威编写。全书由张菁负责组织编写并统稿。本书

由大连海洋大学与大连海蓝达科技有限公司校企合作研发,适合作为高等学校相关专业

本科生“C语言程序设计”课程的教材,也可作为企业培训适用教材。

由于编者水平有限,不足之处在所难免,殷切希望广大读者给予批评指正。

编者

2022年4月

文前.indd32022/8/3114:17:35

目录

第1章初识C语言������������������������������12.3.5逗号运算....................................43

2.3.6关系运算....................................44

1.1程序设计基础.....................................1

2.3.7逻辑运算....................................45

1.1.1程序、程序设计和程序设计

2.3.8条件运算....................................47

语言..............................................1

2.4数据的输入与输出...........................47

1.1.2程序设计过程..............................1

2.4.1数据输入/输出概述...................47

1.1.3程序设计方法..............................2

2.4.2格式化输出函数........................48

1.2C语言概述...........................................2

2.4.3格式化输入函数........................51

1.2.1C语言的发展...............................2

2.4.4字符输入/输出函数...................55

1.2.2初识C程序...................................3

小结............................................................58

1.2.3C语言的特点...............................8

习题二........................................................58

1.3C程序的上机执行过程及运行环境...10

程序的上机执行过程

1.3.1C.............10第3章选择结构程序设计������������������60

1.3.2VisualC++2010集成开发环境....11

3.1算法...................................................60

小结........................................................25

算法的定义

习题一....................................................263.1.1................................60

3.1.2算法的特征................................60

第2章数据类型、运算符与输入/输出���273.1.3算法的表示方法........................61

算法设计的基本方法

2.1字符集、关键字与标识符...............273.1.4................63

3.1.5算法的评价标准........................63

2.1.1字符集........................................27

3.2C语句的分类.....................................63

2.1.2关键字........................................27

2.1.3标识符........................................273.3if语句.................................................65

2.2数据类型与常量、变量...................283.3.1if语句的三种形式.....................65

语句的嵌套

2.2.1数据类型与基本数据类型........283.3.2if.............................71

2.2.2常量............................................303.4switch语句.........................................73

2.2.3变量............................................323.5程序举例...........................................77

2.3运算符与表达式...............................36小结............................................................81

2.3.1算术运算....................................38习题三........................................................81

2.3.2赋值运算....................................40

第4章循环结构程序设计������������������88

2.3.3求字节运算................................42

2.3.4强制类型转换运算....................424.1概述...................................................88

I

C语言程序设计

4.2goto语句及其构成的循环................89第6章函数����������������������������������126

4.3while语句..........................................90

6.1概述.................................................126

4.4do…while语句...............................93

6.2函数的定义.....................................127

4.5for语句...............................................96

6.2.1无参函数的定义格式..............127

4.6循环嵌套构成的多重循环...............996.2.2有参函数定义的一般格式......127

4.7break和continue语句.......................1026.3函数的调用过程.............................128

4.7.1break语句.................................1026.3.1无参函数的调用过程..............128

4.7.2continue语句...........................1036.3.2有参函数的调用过程..............129

4.8程序举例.........................................1036.3.3函数调用的方式......................130

小结..........................................................1066.4函数的参数和函数的返回值.........131

习题四......................................................1066.4.1形参和实参..............................131

6.4.2函数的返回值.........................132

第5章数组���������������������������������108

6.5被调用函数的声明.......................133

5.1概述.................................................1086.5.1被调用函数是库函数..............133

5.2一维数组.........................................1096.5.2被调用函数是用户自定义

5.2.1一维数组的定义......................109函数..........................................133

5.2.2一维数组的引用......................1106.6函数的嵌套调用和递归调用.........135

5.2.3一维数组的初始化...................1116.6.1函数的嵌套调用......................135

5.2.4一维数组程序举例..................1126.6.2函数的递归调用......................136

5.3二维数组.........................................1146.7数组作函数参数.............................138

5.3.1二维数组的定义......................1156.7.1数组元素作函数实参..............138

5.3.2二维数组的引用......................1156.7.2一维数组作函数的参数..........139

5.3.3二维数组的初始化..................1166.8局部变量和全局变量.....................141

5.3.4二维数组程序举例..................1176.8.1局部变量...............................141

5.4字符数组与字符串.........................1196.8.2全局变量..................................142

5.4.1字符串的概念..........................1196.9变量的存储类别.............................144

5.4.2字符数组的定义......................1196.9.1动态存储方式与静态存储

5.4.3字符数组的初始化..................120方式..........................................144

5.4.4字符数组的引用......................1206.9.2auto变量...................................144

5.4.5字符数组的输入和输出..........1216.9.3用static声明局部变量.............145

5.4.6字符串处理函数......................1216.9.4register变量..............................146

5.4.7字符数组程序举例..................1226.9.5用extern声明外部变量............147

小结..........................................................1236.9.6用static声明外部变量..........148

习题五......................................................1246.9.7函数的存储类别......................148

II

目录

小结..........................................................1498.5.2字符数组和字符指针变量的

习题六......................................................150区别..........................................181

8.6函数的指针和指向函数的指针

第7章编译预处理������������������������154变量.................................................183

7.1概述.................................................1548.6.1指针变量作函数参数..............183

7.2宏定义.............................................1548.6.2一维数组名作函数参数..........187

7.2.1不带参数的宏定义..................1548.6.3字符串指针作函数参数..........191

7.2.2带参数的宏定义......................1568.6.4函数指针..................................193

7.2.3函数与宏比较..........................1588.6.5返回指针值的函数..................195

7.3文件包含.........................................1588.7指针数组和指向指针的指针.........195

7.4条件编译.........................................1598.7.1指针数组的概念......................195

小结..........................................................1608.7.2指向指针的指针......................197

习题七......................................................161小结..........................................................198

习题八......................................................199

第8章指针����������������������������������162

第9章 结构体和共用体�������������������202

8.1地址和指针.....................................162

8.1.1内存单元的“地址”..............1629.1结构体.............................................202

8.1.2数据在内存中的存储..............1629.1.1结构体类型的定义..................202

8.1.3内存单元中数据的访问方式....1639.1.2结构体变量的说明..................203

8.1.4指针和指针变量......................1639.1.3结构变量成员的表示方法......205

8.2指针变量的使用和运算.................1649.1.4结构变量的初始化..................207

结构数组的定义

8.2.1如何定义指针变量..................1649.1.5......................210

结构数组的初始化

8.2.2如何初始化指针变量..............1649.1.6..................212

结构指针变量的说明和使用

8.2.3两个重要运算符&和*.............1659.1.7....213

8.2.4指针变量的赋值......................1679.2共用体(联合).............................217

8.2.5允许指针变量进行的运算......1689.2.1联合(共用体)的定义..........218

8.3指针与一维数组.............................1699.2.2联合变量的说明......................219

联合(共用体)变量的引用

8.3.1指向数组元素的指针..............1699.2.3....220

联合变量的赋值

8.3.2数组元素的引用......................1719.2.4......................223

联合(共用体)的五点注意

8.4指针与二维数组.............................1769.2.5

事项..........................................224

8.4.1二维数组及其元素的地址......176

9.3链表.................................................226

8.4.2指向多维数组的指针变量......178

链表的概念

8.5字符串的指针和指向字符串的9.3.1..............................226

9.3.2建立简单的链表......................227

指针变量.........................................179

9.3.3输出链表..................................228

8.5.1字符串的表示形式..................179

9.3.4删除一个结点..........................228

III

C语言程序设计

9.3.5插入结点..................................22911.1.3缓冲文件系统........................252

9.4枚举类型.........................................23411.1.4文件类型指针和文件读/写

9.4.1枚举类型的定义和枚举位置指针................................253

变量的说明..............................23411.2文件的打开与关闭.......................255

9.4.2枚举类型变量的值和使用......23611.2.1文件打开函数........................255

9.5类型定义符typedef.........................23911.2.2文件关闭函数........................258

小结..........................................................24111.3文件的读写操作...........................259

习题九......................................................24211.3.1文本文件的读写....................259

11.3.2二进制文件的读写................271

第10章 位运算�����������������������������24411.4文件读/写位置指针的定位..........275

10.1位运算的预备知识.......................24411.4.1将读/写位置指针定位于

10.2位运算符及其运算规则...............245文件头....................................275

10.2.1~——按位取反运算.............24511.4.2读/写位置指针的随机定位....277

10.2.2&——按位与运算.................24611.4.3测试读/写位置指针当前

10.2.3|——按位或运算...................246位置........................................278

10.2.4^——按位异或运算..............24711.5文件的检测...................................279

10.2.5<<——按位左移运算..........24811.5.1文件末尾检测函数feof().......279

10.2.6>>——按位右移运算..........24811.5.2读写出错检测函数ferror()....280

小结..........................................................24911.5.3清除文件末尾和出错标志

函数

习题十......................................................249clearerr().........................281

小结..........................................................282

第11章 文件���������������������������������251习题十一..................................................283

11.1概述...............................................251附录A 常用字符与ASCII码对照表����289

11.1.1文件的定义............................251附录B 常用库函数介绍�������������������290

11.1.2文件的分类............................251参考文献���������������������������������������302

IV

第1章

初识C语言

1.1程序设计基础

1.1.1程序、程序设计和程序设计语言

计算机光有硬件是“玩不转”的,还需要有软件让它工作起来。软件包括系统软件和应用软

件,主要由程序和文档组成,其核心是程序。人们想让计算机工作,必须事先设计好计算机处理

问题的步骤,然后把这些步骤用计算机能够识别的指令编写出来,输入计算机,变成计算机能够

执行的指令代码,计算机才能完成人们指定的工作。一般将为解决某一特定问题而编写的指令代

码序列称为程序,把编写程序的过程称为程序设计。世界上第一台计算机ENIAC的主要任务是弹

道计算,计算过程就是程序。生活中做菜也是程序:择菜、洗菜、切菜、炒菜、装盘。人们平时

使用的Windows操作系统、播放音频视频的播放器、Word办公软件等从本质上说都是程序。

计算机只能识别二进制语言,“听”不懂人类的语言,所以人类要想与计算机沟通和交流,

就需要有一种人类与计算机都能理解的语言作为交流媒介,这种特殊的语言就是程序设计语言,

它用来编写程序指令代码。

按照发展过程,程序设计语言主要经历了机器语言、汇编语言和高级语言三个阶段。

用计算机能唯一识别和执行的二进制进行编程的程序设计语言就是机器语言,每条指令对应

一个简单的执行动作,计算机能够理解并能直接执行,对人类来说,机器语言中的代码都是0和

1,不易识别和记忆,非常难懂,所以人们采用指令助记符(如用助记符ADD表示加法指令)来

表示机器指令,这就是汇编语言。在汇编语言中,每条汇编指令基本上与一条机器指令相对应。

用汇编语言编写的程序经过简单的翻译就可以被机器执行。无论是机器语言还是汇编语言,有一

个共同特征,就是都是面向机器的语言,即编程前首先要了解机器的硬件结构及其指令系统(不

同型号的计算机指令系统不尽相同),因此学习的入门门槛比较高,不适合初学者,特别是非计算

机人员。故机器语言和汇编语言又统称为低级语言。

为了不受计算机硬件的牵绊,程序设计语言进入高级语言阶段。高级语言更接近人类的自然

语言,其语法规则简单清晰,由英语单词和数学符号组成,用其编写程序时不用再考虑计算机内

部结构和指令系统,而且高级语言有自己的数据结构、程序控制结构和用于数据处理的运算符等,

使其相对于低级语言易读、易理解、易掌握。C语言就是众多高级语言中应用范围较广的一种程

序设计语言。当然,用高级语言编写的程序计算机是不能直接执行的,需要用翻译软件翻译成计

算机能执行的机器指令。

1.1.2程序设计过程

程序设计是给出解决特定问题程序的过程。程序设计过程主要包括以下几步:

1

C语言程序设计

1.分析问题

程序设计前首先要了解用户需求,明确要解决什么问题,对问题进行可行性分析,如果可行

找到解决问题方法,确定解题步骤。在分析过程中,需要根据输入数据、处理过程和输出结果,

建立数学模型。当然,对一些简单、常规问题,无须特别建立数学模型。

2.设计数据结构与算法

瑞士计算机科学家尼克劳斯·威茨(NiklausWirth)提出了在计算机领域尽人皆知的公式“程

序=数据结构+算法”,说明数据结构和算法在程序设计中占有重要地位。

绝大多数程序都需要对数据做处理,所以首先要考虑如何组织、存储和存取要处理的数据,

即进行数据结构的设计。

组织好数据后,接下来要考虑如何对数据进行处理,即设计问题的解决方法和具体步骤——

算法。同一问题可能有不同的算法,算法的好坏直接决定了存储空间的利用率和运行的效率。

3.编写程序

选择一种具体的程序设计语言将算法的每一步操作都转换成指令代码,形成源程序。编写源

程序时应注意养成良好的编程习惯,提高程序的可读性、易维护性和可移植性。

4.运行调试程序

对源程序进行编译、连接、运行,得到运行结果。在编译、连接过程中可能遇到语法等错误;

即使编译连接都通过了,运行时也可能得不到预期结果,所以要对程序进行调试排错,使之运行

时得到正确结果。

5.编写程序文档

如果程序要给他人使用或规模较大,通常要编写程序说明书等文档,告诉用户程序的功能、

运行环境、如何安装和卸载、使用注意事项等信息,正如产品要有说明书一样。

1.1.3程序设计方法

程序设计要遵循一定的设计方法,目前主要有结构化程序设计方法和面向对象的程序设计方

法。C语言属于结构化程序设计语言,这里仅简单介绍一下结构化程序设计思想。

结构化程序设计中,不论程序简单还是复杂,无外乎就三种基本结构:顺序结构、选择结构和

循环结构。设计时采用“自顶向下、逐步求精”的方法,将一个复杂的问题分解成许多功能独立的

子问题,子问题还可做进一步分解,如此重复,直到每个子问题都得到解决为止,所有子问题解决后,

复杂问题迎刃而解。结构化程序设计最核心的思想就是模块化,把复杂系统自顶向下划分成若干较

小的、相对独立但又相互关联的功能模块。C语言主要以函数形式体现模块化设计思想。

1.2C语言概述

1.2.1C语言的发展

C语言是迄今为止使用最广泛的程序设计语言之一,在程序设计语言发展史上具有里程碑

的意义。有趣的是,C语言却是早期开发UNIX操作系统时的附属品。最初UNIX操作系统主要

采用汇编语言编写,但是可移植性非常差,迫切需要一种具有低级语言特点的高级语言来解决

UNIX操作系统的可移植性问题。

在高级语言发展的初始阶段,曾出现ALGOL60语言,但该语言离硬件较远,不适合编写系

统软件。

2

第1章初识C语言

1963年,在ALGOL60的基础上研发了接近硬件的CPL(CombinedProgrammingLanguage)

语言。但是CPL语言规模大,实现困难。

1967年,英国剑桥大学的MatinRichards对CPL语言进行简化得到BCPL(BasicCombined

ProgrammingLanguage)语言。

1970年,美国电话电报公司(AT&T)贝尔实验室的KenThompson(肯·汤普逊)和Dennis

Ritchie(丹尼斯·里奇)在用BCPL语言开发UNIX操作系统时,将BCPL语言整合成B语言(取

BCPL的第一个字母)。虽然B语言简单、更接近硬件,但却过于简单、功能有限且没有数据类型。

1972年,DennisRitchie又对B语言进行改进,最终设计出具有里程碑意义的C语言(取

BCPL的第二个字母)。因此,C语言是在B语言的基础上设计而成的,它增加了数据类型,克服

了B语言的缺点,是一种既具有高级语言特性、又具有低级语言特点的高级语言。

C语言诞生不久,KenThompson和DennisRitchie就用C语言改写了他们以前用汇编语言和

B语言写过的UNIX操作系统,新版本的UNIX操作系统可方便地移植到其他计算机系统上运行。

正因为移植性好,UNIX操作系统也很快流行起来。可以说,C语言是伴随着UNIX操作系统的

成长而逐步发展起来的。

C语言经过多次改进,人们逐渐开始关注和认可其编译软件不依赖于具体机器的优势,继而

开发了各种版本的C语言编译系统以适用于不同操作系统。

鉴于C语言编译系统版本多、标准不统一,1978年,BrianW.Kernighian和DennisRitchie合

著了TheCProgrammingLanguage,该书成为当时事实上的C语言标准,是目前为止最权威的C

语言教材之一,被翻译成多国语言广泛传播。

从1983年到1994年,美国国家标准协会ANSI(AmericanNationalStandardsInstitute)和国

际标准化组织ISO(InternationalOrganizationforStandardization)先后修订了C语言标准,主要有

以下三种标准:

(1)C89标准——由ANSI发布的第一个C语言标准,在1989年被正式采用,故称C89,又

称ANSIC。1990年时对该标准做了一些小改动,故该版本又称C90。

(2)C99标准——由ISO制定于1999年,又称C99。

(3)C11标准——由ISO制定于2011年,又称C11,是目前为止最新的C语言标准。

需要说明的是,ISO也采纳了C89标准,现在绝大多数C程序代码是在ANSIC基础上写的,

也就是说,C89是目前常采用的C语言标准。

继C语言之后,出现了大量的程序设计语言,甚至还出现了面向对象的程序设计语言,但

是C语言仍然是很多面向对象语言的根基,比如C++、VC++,要想学习这些面向对象的语言,

必须首先掌握C语言,夯实基础,才能继续深入。此外,C语言也在嵌入式软件开发领域(如

手机、通信设备软件等)及系统软件(操作系统等)开发领域占据着绝对主导地位。目前,在

世界编程语言排行榜上,C语言在100多种编程语言中常年位居前两位,市场占有率基本维持在

15%~20%,所以说C语言仍是国际上流行的程序设计语言,是初学者的首选编程语言。

1.2.2初识C程序

1.C程序入门

首先通过几个范例直观感受一下C程序的“外貌”,理解一些常用的功能语句,了解C程序

的结构特征和书写风格,能仿照写出一些简单的C程序。

提示:下面几个例题重在理解输出信息、定义变量、输入数据以及C程序结构,具体语法细

节将在后续章节逐步展开介绍。

【例1.1】在屏幕上显示"Helloeveryone!"。

3

C语言程序设计

本题重点了解如何在屏幕上显示信息。

【程序代码】

#include<stdio.h>

intmain()

{

printf("Helloeveryone!\n");

return0;

}

【运行结果】

例1.1运行结果如图1-1所示。

【程序分析】

(1)程序用系统事先定义好的库函数(经常使用、

事先编好,放在对应函数库中,可直接被调用的函数)

printf()函数实现在屏幕上输出信息。

图1-1例1.1运行结果

所谓函数,就是具有某种特定功能的程序代码。调

用函数的一般形式:

函数名()

printf()是格式输出函数,负责输出(即在屏幕上显示)要在屏幕上显示的内容,包括字符串、

数据等。除了输出英文字符串,还可以输出中文,只要把要输出的内容放在双引号中即可。

“\n”是换行符,表示输出“Helloeveryone!”后光标自动换行,若后面还有输出,则在下一行

输出。

函数调用结束后,要以分号结束语句。

注意:

①C语言用库函数进行输入/输出,而非输入/输出语句。

②C语言中,语句要以分号结束。

(2)printf()函数存放在头文件stdio.h中,要想使用printf()函数,需要将其所在的头文件包

含到本程序中来。#include是文件包含命令,功能是将<>中的头文件包含到当前程序中,这样该

头文件中的所有函数都可以在本程序中使用,所以#include<stdio.h>的功能就是将标准输入/输出

头文件stdio.h中的所有内容包含到本程序中。其中stdio是指standardinput&output(标准输入/

输出),h是单词head的首字母。

在本书的后续章节中,会陆续用到格式输入函数scanf()、字符输入/输出函数getchar()、

putchar()和字符串输入/输出函数gets()、puts(),这些库函数也是存放在stdio.h中的,所以要使

用这些函数,也要事先用文件包含命令#include<stdio.h>将这些函数包含到程序中。类似的,一

些常用的数学函数比如开平方函数sqrt()、求绝对值函数fabs()都在头文件math.h中,所以使用这

些数学函数时就要在程序开始的位置加上文件包含命令#include<math.h>。

注意:

①#include不是语句,后面不需要加分号。

实际上,#include是编译预处理命令,就是将代码翻译成二进制语言前预先做的处理工作(把

库文件包含到程序中),书写时,<>可以换成"",关于两种书写形式的区别等具体内容参见第7章。

②头文件的扩展名是.h。

(3)intmain()一行是函数首部,“{”和“}”括起的部分称为函数体,变量声明和要执行的

4

第1章初识C语言

语句都放在函数体中。

main()是主函数,任何C程序的执行都是从主函数的“{”开始,以主函数的“}”结束。

语句return0;表示程序正常退出。因为返回值0是整数,所以把整型关键字int写在函数名

main的前面,表示主函数结束后返回一个整型值。

注意:函数首部main()后不加分号。

(4)VisualC++2010中,C程序运行后在运行结果的最后会显示“请按任意键继续…”,根

据提示按任意键即可返回源程序界面,通常按【Enter】键即可。

【例1.2】求56与283的和。

本题重点了解变量的定义。

【程序代码】

#include<stdio.h>

intmain()

{

inta,b,sum;/*定义三个变量a、b、sum*/

a=56;/*给变量a赋值为56*/

b=283;/*给变量b赋值为283*/

sum=a+b;/*将a、b的和放入变量sum中*/

printf("%d+%d=%d\n",a,b,sum);/*输出结果*/

return0;

}

【运行结果】

例1.2运行结果如图1-2所示。

【程序分析】

(1)通常情况下,程序执行时CPU直接去内存取数

据,再把处理结果送回内存,所以首先要申请内存单元

以存放待处理的数据和处理后的结果。申请内存单元的图1-2例1.2运行结果

任务是通过定义变量(内存中的数据可以改变,所以称为变量)实现的。

本例要对两个整数做加法操作,所以定义三个整型变量,由用户命名,假设分别命名为a、

b、sum,其中,a、b存放待加数据,sum存放求和的结果。a、b、sum是标识符,标识符的命名

规则是由字母、数字、下划线组成,不能以数字开头。另外,命名时最好遵循“见名知意”的原则,

比如和用sum。

inta,b,sum;就是定义三个存放整型数据的变量,其中,int是标明数据类型为整型的关键字(所

谓关键字就是系统有特定含义的标识符,用户命名时不能使用)。常用的数据类型还有:float代表

实型,char代表字符型等。不同类型的数据占据内存空间的大小不一样,存放数据的范围也不同。

(2)a=56;表示把数据56放入变量a中。其中,等号代表赋值运算,表示把右边的数据放入

左边变量中。同理,sum=a+b;表示把a与b相加的结果放入变量sum中。

(3)printf()函数中的%d是格式说明符,表示以整型格式输出后边对应的数据。有几个数据

要输出,就要有几个格式说明符。输出函数双引号中除了格式说明符不输出,其余的字符都要原

样输出,所以“+”号与“=”号要原样输出到屏幕上。

(4)“/*”和“*/”之间的内容是注释,主要起解释、说明作用。

程序在编译、连接、运行的整个过程中,对注释都是忽略的,即注释对程序运行没有任何影响,

它是给人看的,既可提示编程人员当初设计思路,也有助于其他人员理解程序。利用注释不执行

的特点,调试时可以暂时把不想让计算机执行的语句注释掉。

温馨提示

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

评论

0/150

提交评论