新書推薦:
《
失败:1891—1900 清王朝的变革、战争与排外
》
售價:HK$
85.8
《
万千心理·我的精神分析之道:复杂的俄狄浦斯及其他议题
》
售價:HK$
104.5
《
荷马:伊利亚特(英文)-西方人文经典影印21
》
售價:HK$
107.8
《
我的心理医生是只猫
》
售價:HK$
49.5
《
股权控制战略:如何实现公司控制和有效激励(第2版)
》
售價:HK$
98.8
《
成吉思汗传:看历代帝王将相谋略 修炼安身成事之根本
》
售價:HK$
61.6
《
爱丁堡古罗马史-罗马城的起源和共和国的崛起
》
售價:HK$
76.8
《
人生解忧:佛学入门四十讲
》
售價:HK$
107.8
|
編輯推薦: |
内容全面,由浅入深:本书涵盖了C语言课程中的所有知识点,从零基础语法开始讲解,从易到难,内容翔实,即适合没有任何C语言基础的初学者,又适用于一定基础但想精通C语言的人员。
视频教学,快速提高:本书配有同步教学视频录像,与书中内容紧密结合并相互补充,让读者更加直观体验实际应用环境,快速掌握编程技巧。
实例讲解,易于上手:本书全面打破传统教材按部就班讲解知识点的模式,重难知识点均配有典型例题,并给出实例的完整代码、运行结果及对实例深入分析,使读者可以轻松理解,易于上手。
结构精巧,贴心提示:本书每章章前均设有章前导读,读者在开始本章知识学习之前,可大致了解本章知识结构。另外,在各章节使用了很多说明、注意等小栏目,帮助读者更加清楚地理解基本概念,掌握应用技巧。
应用实践,学以致用:本书每章结束提供的实战练习是根据每章知识点精心设计的,读者可以自我实践,检查知识掌握情况,举一反三,学以致用。
|
內容簡介: |
《C语言从入门到精通》从初学者的角度出发,以通俗易懂的语言,丰富多彩的实例,详细介绍了使用C语言进行程序开发应该掌握的各方面知识。全书共分17章,包括概述、C语言程序的组成、C语言的基本构成元素和数据类型、运算符和表达式、用户与计算机交互输入输出、分支结构程序设计、循环结构与转移语句、数组、函数、指针、结构体和共用体、位操作、编译与预处理、文件、内存管理、网络编程以及通信录管理系统。
本书适合任何想学习C语言的读者,无论您是否从事计算机相关行业,是否接触过C语言,均可通过学习快速掌握C语言的开发方法和技巧。
|
關於作者: |
未来教育教学与研究中心是一家专门从事计算机教育类产品研发的机构,作者团队中不仅拥有丰富教学经验的高校教师,还有具有实战经验的一线研发人员。多年来,本中心一直致力于图书质量和品牌的建设,努力打造精品图书,努力建设一流团队,全面提升综合竞争力,为广大读者提供高质量的教育教学产品。
|
目錄:
|
第1章概述
1.1C语言的起源
1.1.1程序语言的简述
1.1.2C语言的发展史
1.2C语言的特点
1.3C语言的第一个例子
Hello C''s World
1.4认识常用开发环境
1.4.1C语言程序编写与
运行流程
1.4.2C语言常用开发环境
1.4.3Visual C 6.0
1.5实战练习
第2章C语言程序的组成
2.1进一步认识C语言程序
2.2声明区
2.2.1头文件
2.2.2函数声明
2.2.3变量声明
2.3主函数
2.4函数定义区
2.5注释
2.6代码的规范
2.7实战练习
第3章C语言的基本构成元素和
数据类型
3.1关键字
3.2标识符
3.3数据类型
3.4常量
3.4.1整型常量
3.4.2实型常量
3.4.3字符型常量
3.4.4转义字符
3.4.5符号常量
3.5变量
3.5.1整型变量
3.5.2实型变量
3.5.3字符型变量
3.6变量的存储类别
3.6.1静态存储与动态存储
3.6.2auto变量
3.6.3static变量
3.6.4register变量
3.6.5extern变量
3.7综合运用
3.8实战练习
第4章运算符和表达式
4.1表达式
4.2赋值运算符与赋值表达式
4.2.1变量赋初值
4.2.2自动类型转换
4.2.3强制类型转换
4.3算术运算符与算术表达式
4.3.1算术运算符
4.3.2算术表达式
4.3.3优先级与结合性
4.3.4自增自减运算符
4.4关系运算符与关系表达式
4.4.1关系运算符
4.4.2关系表达式
4.4.3优先级与结合性
4.5逻辑运算符与逻辑表达式
4.5.1逻辑运算符
4.5.2逻辑表达式
4.5.3优先级与结合性
4.6位逻辑运算符与
位逻辑表达式
4.6.1位逻辑运算符
4.6.2位逻辑表达式
4.7逗号运算符与逗号表达式
4.8复合赋值运算符
4.9综合运用
4.10实战练习
第5章用户与计算机交互
输入输出
5.1程序语句
5.2字符数据输入输出
5.2.1字符数据输出
5.2.2字符数据输入
5.3字符串输入输出
5.3.1字符串输出函数
5.3.2字符串输入函数
5.4格式输出函数printf()
5.5格式输入函数scanf()
5.6综合运用
5.7实战练习
第6章分支结构程序设计
6.1if语句
6.1.1单分支选择结构
if语句
6.1.2双分支选择结构
ifelse语句
6.1.3多分支选择结构
else if语句
6.1.4多分支选择结构
if语句的嵌套形式
6.2条件运算符
6.3多重选择switch语句
6.3.1switch语句的基本形式
6.3.2多路开关模式的
switch语句
6.4多分支语句的比较
6.5综合运用
6.6实战练习
第7章循环结构与转移语句
7.1循环结构
7.2当型循环语句
while语句
7.3直到型循环语句
do-while语句
7.4for语句
7.4.1for语句的使用
7.4.2for语句的变体
7.4.3for语句中的逗号应用
7.5循环语句的比较
7.6循环的嵌套
7.7转移语句
7.7.1goto语句
7.7.2break语句
7.7.3continue语句
7.8综合运用
7.9实战练习
第8章数组
8.1一维数组
8.1.1一维数组的定义和引用
8.1.2一维数组的初始化
8.1.3一维数组的应用举例
8.2二维数组
8.2.1二维数组的定义和引用
8.2.2二维数组的初始化
8.2.3二维数组的应用举例
8.3多维数组
8.4字符数组
8.4.1字符数组的定义和引用
8.4.2字符数组的初始化
8.4.3字符数组的结束标志
''\0''
8.4.4字符数组的输入和输出
8.4.5字符数组的应用举例
8.5数组的排序算法
8.5.1选择法排序
8.5.2冒泡法排序
8.5.3交换法排序
8.5.4插入法排序
8.5.5折半法排序
8.5.6排序算法的比较
8.6字符串处理函数
8.6.1字符串复制
8.6.2字符串连接
8.6.3字符串比较
8.6.4字符串大小写转换
8.6.5获取字符串长度
8.7实战练习
第9章函数
9.1函数的概述
9.2函数的定义
9.2.1函数定义的形式
9.2.2函数的定义与声明
9.3函数的返回语句
9.3.1从函数体内返回
9.3.2函数的返回值
9.4函数的参数
9.4.1形式参数与实际参数
9.4.2函数参数的特殊情况
数组
9.4.3main()函数的参数
9.5函数的调用
9.5.1函数调用的一般方式
9.5.2函数的嵌套调用
9.5.3函数的递归调用
9.6内部函数和外部函数
9.6.1内部函数
9.6.2外部函数
9.7局部变量和全局变量
9.7.1局部变量
9.7.2全局变量
9.8C语言库函数
9.9实战练习
第10章指针
10.1指针概述
10.1.1地址与指针
10.1.2变量与指针
10.1.3指针变量
10.1.4指针自加自减运算
10.2数组与指针
10.2.1一维数组与指针
10.2.2二维数组与指针
10.2.3字符串与指针
10.2.4字符串数组
10.3指向指针的指针
10.4指针变量作函数参数
10.5返回指针的函数和指向函数的
指针
10.6实战练习
第11章结构体和共用体
11.1结构体
11.1.1结构体类型的概念
11.1.2结构体变量的定义
11.1.3结构体变量的引用
11.1.4结构体变量的初始化
11.2结构体数组
11.2.1定义结构体数组
11.2.2初始化结构体数组
11.3结构体指针
11.3.1指向结构体变量的
指针
11.3.2指向结构体数组的
指针
11.3.3结构体作为函数参数
11.4结构体的嵌套
11.5链表
11.5.1链表概述
11.5.2创建动态链表
11.5.3输出链表
11.6链表相关操作
11.6.1链表的插入操作
11.6.2链表的删除操作
11.7共用体
11.7.1共用体的概念
11.7.2共用体变量的引用
11.7.3共用体变量的初始化
11.7.4共用体类型的
数据特点
11.8枚举类型
11.9实战练习
第12章位操作
12.1位与字节
12.2位运算操作符
12.2.1与运算符
12.2.2或运算符
12.2.3取反运算符
12.2.4异或运算符
12.2.5左移运算符
12.2.6右移运算符
12.3循环移位
12.4位段
12.4.1位段的概念与定义
12.4.2位段相关说明
12.5实战练习
第13章编译与预处理
13.1宏定义
13.1.1不带参数的宏定义
13.1.2带参数的宏定义
13.2#include指令
13.3条件编译
13.3.1#if命令
13.3.2#ifdef及#ifndef命令
13.3.3#undef命令
13.3.4#line命令
13.3.5#pragma命令
13.4实战练习
第14章文件
14.1文件概述
14.2文件基本操作
14.2.1文件指针
14.2.2文件的打开
14.2.3文件的关闭
14.3文件的读和写
14.3.1fputc()函数
14.3.2fgetc()函数
14.3.3fputs()函数
14.3.4fgets()函数
14.3.5fprintf()函数
14.3.6fscanf()函数
14.3.7fread()函数和
fwrite()函数
14.4文件的定位
14.4.1fseek()函数
14.4.2rewind()函数
14.4.3ftell()函数
14.5实战练习
第15章内存管理
15.1内存组织形式
15.2内存管理函数
15.2.1malloc()函数
15.2.2calloc()函数
15.2.3realloc()函数
15.2.4free()函数
15.3内存丢失
15.4实战练习
第16章网络编程
16.1计算机网络基础
16.1.1OSI七层参考模型
16.1.2IP地址
16.1.3网络地址解析
16.1.4域名系统
16.1.5TCPIP协议
16.1.6网络字节顺序
16.2套接字概述
16.2.1有关套接字的概念
16.2.2TCP的套接字的
socket编程
16.2.3UDP的套接字的
socket编程
16.3套接字函数
16.3.1套接字函数介绍
16.3.2基于TCP的网络聊天
程序
16.4实战练习
第17章通信录管理系统
17.1需求及功能分析
17.2功能实现
17.2.1系统运行界面
17.2.2添加新的联系人
17.2.3显示联系人信息
17.2.4删除联系人信息
17.2.5查找联系人信息
17.2.6修改联系人信息
17.3本章小结
附录
|
內容試閱:
|
1.1.1程序语言的简述
程序是指可以被计算机连续执行的指令语句的集合。通常为了解决一个实际问题,人们预先将处理问题的步骤、方法等一系列的过程编写成程序,然后输入计算机,计算机只需要执行程序中的指令。所以,程序设计是用计算机解决一个实际应用问题的整个处理过程。
按照计算机语言的发展史来划分,计算机语言可以分为三个发展阶段:机器语言、汇编语言和高级语言。
1.机器语言
机器语言是低级语言,是用二进制代码表示的计算机能直接识别和执行的一种机器指令集合,每一条指令都是由0、1构成。机器语言的优点是计算机可以直接识别,不需要进行任何翻译,执行效率高;缺点是程序员需要熟记全部指令代码和代码含义,非常繁琐和困难。
2.汇编语言
汇编语言是在机器语言的基础上发展而来的,是面向机器设计的程序语言,属于符号标记语言。汇编语言相较于机器语言,便于阅读和理解,但是增加了稍许翻译的代价。
3.高级语言
由于汇编语言依赖于硬件体系,并且该语言中的助记符号数量较多,所以运用起来不够方便。为了使程序语言更贴近人类的自然语言,同时又不依赖于计算机硬件,便产生了高级语言。目前传统的高级语言有:Fortran、ALGOL、Basic、Pascal、C、C 、Java等。
1.1.2C语言的发展史
作为一种程序设计语言,C语言既具有汇编语言的特点,又具有高级语言的特点,可以作为系统设计语言来编写与硬件系统相关的应用程序,也可以作为应用程序设计语言来编写不依赖计算机硬件的应用程序,应用非常广泛。C语言的发展历程如图1.1所示。
A语言
CPL语言
BCPL语言
B语言
C语言
图1.1C语言的发展历程
1.A语言
C语言的发展非常有趣,它的原型是ALGOL 60语言,也称为A语言。ALGOL 60是一种面向问题的高级语言,不适合编写系统程序,其特点是具有局部性、动态性、递归性和严谨性。ALGOL 60是程序设计语言发展史上的一个里程碑,它标志着程序设计语言成为一门独立的科学学科。
2. CPL语言(Combined Programming Language)
1963年,剑桥大学将A语言发展成为CPL语言,CPL语言在ALGOL 60的基础上与硬件接近了一些,但规模仍然比较宏大,难以实现。
3.BCPL语言(Basic Combined Programming Language)
1967年,剑桥大学马丁理查斯(Martin Richards)对CPL进行了简化,推出了BCPL语言。BCPL是一种结构化程序设计语言,它能够直接处理与机器本身数据类型相近的数据,具有与内存地址对应的指针。
4.B语言
在20世纪70年代初期,时任美国贝尔实验室的肯汤普逊对BCPL进行了修改,设计出了B语言。B语言类似早期版本的C语言,它只有一种数据类型计算机字,大部分操作都将其作为整数对待,还包括许多库函数,其作用类似于C语言中的标准输入输出函数库。
5.C语言
B语言过于简单,功能有限,美国贝尔实验室的丹尼斯里奇在B语言的基础上设计了一种新语言C语言。1972年,丹尼斯里奇完成了C语言的设计,并成功使用C语言编写了操作系统,降低了作业系统的修改难度。
1983年,美国国家标准学会(ANSI)对C语言进行了标准化,当年颁布了第一个C语言标准草案(83 ANSI C);1987年又颁布了另一个C语言标准草案(87 ANSI C);1994年,国际标准化组织ISO修订了C语言的标准;1999年又颁布了C语言标准草案,并在2000年3月被ANSI采用,即C99,正式名称为ISOIEC9899:1999;2011年12月8日,ISO和国际电工委员会IEC再次颁布了C语言的新标准,简称C11标准,是目前为止C语言的最新标准。
1.2C语言的特点
C语言是一种通用的程序设计语言,主要有以下特点。
1.高效性
从C语言的发展历程可以看到,它继承了低级语言的优点,能产生非常高效的代码。一般情况下,C语言生成目标代码的执行效率只比汇编程序低10%~20%。
2.可读性
C语言本身属于高级语言,具有友好的编写性和可读性,它的语法形式和人们所使用的语言相似,书写自由,结构规范。C语言集合了低级语言和高级语言的优点。
3.灵活性
C语言有丰富的运算符,使得C语言的运算类型极其丰富,表达式类型多样化,可以灵活使用各种运算符实现其他高级语言难以实现的运算,给程序员更多的想象和发挥空间。
4.功能丰富
除了丰富的运算符,C语言还有丰富的数据结构,可以用来实现各种复杂数据结构的运算,指针的引入,让程序执行效率更高。
5.移植性好
C语言具有良好的移植性,使得C语言在不同的操作系统之间,简单的修改或不用修改就可以进行跨平台的程序开发。
可见,C语言的上述特点,使得它在程序员选择语言时倍受青睐,这也是C语言发展快速,目前仍处于不败地位的原因。
1.3C语言的第一个例子Hello Cs world
在步入C语言世界之前,不要对它产生恐惧,觉得编程是一件很高大上的事情,只属于科研学者的专利。当你真正接触并学习C语言后,就会感觉它没有那么可怕,C语言是人类共有的财富,它跟数学、化学一样,只要努力学习就可以掌握。首先,我们通过一个简单的程序,来看看C语言程序的组成部分,在整体上有个认识。
【例1.1】一个简单的C语言程序。
1#include stdio.h23int main4{5printf"Hello Cs world!\n"; 输出要显示的信息6return 0;7}在Visual C 6.0编译器上运行例1.1的程序,运行结果如图1.2所示(Visual C 6.0我们后面会详细介绍)。
图1.2简单的C程序的运行结果现在,来分析一下这个实例程序,当然,读者可能很多地方看不懂。不要紧,这里只是简单认识一下,随着后面的学习,再来熟悉这段代码,会觉得这真是一个很简单的程序。这段程序共有7行,第一印象就是其中包含着若干符号、空格、空行以及认识或不认识的英文单词。逐行来分析这段程序。
1.#include指令
例1.1中的第1行:#include stdio.h
include在C语言中是文件包含命令,它的功能是进行有关预处理操作,以#开头,后面尖括号的内容是一个文件名,称为头部文件。这条语句的意思是在程序的预处理阶段,将文件stdio.h的内容包含到第一行的位置。
2.空行
例1.1中的第2行:空行
空行体现了C语言的灵活性。程序中的空格、空行、跳格并不影响程序的编译和运行,所以可以通过添加或删除空格、空行来改变程序的格式。如果在程序中不使用空格、空行等,程序就会显得特别拥挤,凌乱;相反,适当的空格、空行和制表符可以编写出更加美观、规范的程序,就像我们平常写作文一样,适当的标点和换行,可以让作文段落有序。整洁、规范的代码可以提高代码的可读性,便于代码后期维护。
不是所有的空格都没有作用。比如C语言的条件控制语句else if之间就必须有空格,如果将空格去掉,程序编译就通不过。
3.main函数
例1.1中的第3行:int main()
这一行代码的意思是main函数是有整型返回值的函数。其中int是C语言的关键字,代表整数类型,关于整数类型和函数的内容后面会详细介绍。
这一部分称为函数的头部分。C语言的每个程序都会有一个main函数,代表程序的入口,也就是说,程序都是从main函数开始,然后执行main的函数体。
4.函数体
例1.1中的第4~7行:
{
printf"Hello Cs world!\n"; 输出要显示的信息
return 0;
}
C语言中函数分为两部分:一个是函数头,一个是函数体。在第3点中介绍了函数的头部分,简称函数头;程序中的第4~7行构成函数体,函数体也称为函数的语句块,必须由大括号括起来。例题中的函数体由两条语句构成,也是函数要执行的内容。
5.输出语句
例1.1中的第5行:
printf"Hello Cs world!"; 输出要显示的信息
这条语句是函数的执行语句之一。其中printf也是函数,它的作用是向控制台输出小括号内的内容,括号内的内容也称为函数的参数,这里是指Hello Cs world!\n。在这个字符串中,我们可以看到最后是\n符号,在C语言中,称为转义字符,它的作用是换行。函数、字符串、转义字符在后面会详细介绍。
|
|