编辑推荐
版面新颖,内容详实、专业、实用性强;图表丰富、直观,解释详尽;习题难度各异,题型丰富;以VC为编译环境,同时兼顾BC和TC;站在内存的角度来介绍C语言数据类型;从正反两方面来介绍C语言语法;配备大量经典的实例程序,具有很强的代表性。
内容简介
《C语言程序设计教程(第2版)》讲述了C语言是目前流行的通用程序设计语言之一,是许多计算机专业人员和计算机爱好者学习程序设计语言的选。《C语言程序设计教程(第2版)》共12章,内容包括C语言程序设计预备知识,C语言程序设计基础,基本数据类型、运算符与表达式,基本输入输出和顺序程序设计,选择结构程序设计,循环结构程序设计,数组,函数,指针,预处理命令,复杂数据类型,文件等。《C语言程序设计教程(第2版)》注重教材的可读性和实用性,每章开头都给出了学习意义、学习目标及难点提示,对关键知识点进行了详细的说明,并附有大量的图表方便读者正确、直观地对问题进行理解,样例程序由浅入深,强化了知识点、算法、编程方法与技巧,并给出了详细的解释。为了帮助初学者正确地掌握C语言的语法特点,每章还列举出了初学者在编程过程中常见的错误。另外,《C语言程序设计教程(第2版)》还配套提供题型丰富的《C语言程序设计教程(第二版)习题解答与实验指导》教材,为任课教师免费提供电子课件,其中包括全部例题和习题源程序文件。
作者长期在高校从事计算机软件教学,有丰富的教学经验和科研开发能力。《C语言程序设计教程(第2版)》文字流畅、通俗易懂、概念清楚、深入浅出、例题丰富。
《C语言程序设计教程(第2版)》为普通高等教育“十一五”国家级规划教材,适合计算机专业的本专科生及研究生使用,也可以作为大学各专业公共教材和全国计算机等级考试参考书。
目录
第1章 C语言程序设计预备知识
1.1 计算机系统组成及工作原理简介
1.2 进位计数制及其转换
1.2.1 十进制数的表示
1.2.2 二进制数、八进制数和十六进制数的表示
1.2.3 二进制数和十进制数的转换
1.2.4 二进制数、八进制数和十六进制数的转换
1.3 机器数的表示形式及其表示范围
1.3.1 真值与机器数
1.3.2 数的原码表示
1.3.3 数的反码表示
1.3.4 数的补码表示
1.3.5 补码的加、减运算
1.3.6 无符号整数
1.3.7 字符表示法
1.4 二进制数的位运算
1.5 本章小结
习题1
第2章 C语言程序设计基础
2.1 程序设计语言的发展及其特点
2.2 C语言的发展及其特点和应用
2.3 C语言与C++、Java和C#之间的关系
2.4 C语言程序的基本结构
2.5 编制C语言程序的基本步骤
2.6 本章小结
习题2
第3章 基本数据类型、运算符与表达式
3.1 C语言的数据类型
3.2 常量、变量和标识符
3.3 简单数据类型与表示范围
3.3.1 整型数据
3.3.2 实型数据
3.3.3 字符型数据和字符串常量
3.3.4 简单数据类型的表示范围
3.3.5 数据的简单输出
3.4 C 语言的运算符与表达式
3.4.1 赋值运算符、赋值表达式
3.4.2 强制类型转换符
3.4.3 算术运算符、算术表达式
3.4.4 自增自减运算符、负号运算符
3.4.5 算术运算中数据类型转换规则
3.4.6 位运算符、位运算表达式
3.4.7 逗号运算符、逗号表达式
3.4.8 sizeof运算符、复合赋值运算符
3.5 运算符的优先级和结合性
3.6 有符号数与无符号数之间运算问题
3.7 本章小结及常见错误列举
习题3
第4章 基本输入输出和顺序程序设计
4.1 格式化输出printf
4.1.1 整数的输出
4.1.2 实数的输出
4.1.3 字符和字符串的输出
4.1.4 格式化输出小结
4.2 格式化输入scanf
4.3 字符数据的非格式化输入输出
4.4 程序的控制结构
4.4.1 算法的基本概念
4.4.2 算法的描述方法
4.4.3 算法的基本结构
4.5 顺序程序设计举例
4.6 本章小结及常见错误列举
习题4
第5章 选择结构程序设计
5.1 C语言程序中语句的分类
5.2 关系运算符、逻辑运算符、条件运算符
5.2.1 关系运算符和关系表达式
5.2.2 逻辑运算符和逻辑表达式
5.2.3 条件运算符和条件表达式
5.3 选择结构的程序设计
5.3.1 if语句
5.3.2 switch语句
5.4 选择结构程序设计举例
5.5 本章小结及常见错误列举
习题5
第6章 循环结构程序设计
6.1 循环结构的程序设计
6.1.1 while语句
6.1.2 do-while语句
6.113 for语句
6.1.4 循环嵌套
6.1.5 break与continue语句
6.1.6 goto语句
6.1.7 exit()函数
6.2 循环结构类型的选择及转换
6.3 循环结构程序设计举例
6.4 本章小结及常见错误列举
习题6
第7章 数组
7.1 一维数组
7.1.1 一维数组的定义和引用
7.1.2 一维数组的赋值
7.1.3 一维数组的应用举例
7.2 二维数组
7.2.1 二维数组的定义和引用
7.2.2 二维数组的赋值
7.2.3 二维数组的应用举例
7.3 字符串与数组
7.3.1 字符串的本质
7.3.2 字符及字符串操作的常用函数
7.3.3 字符串数组
7.4 数组综合应用举例
7.5 本章小结及常见错误列举
习题7
第8章函数
8.1 函数概述
8.2 函数的定义与调用
8.2.1 无参数无返回值的函数
8.2.2 无参数有返回值的函数
8.2.3 带参数无返回值的函数
8.2.4 带参数有返回值的函数
8.3 函数参数的传递方式
8.4 变量的作用域和生存期
8.5 变量的存储类型
8.6 函数的嵌套和递归调用
8.6.1 函数的嵌套调用
8.6.2 函数的递归调用
8.7 函数的作用域
8.8 函数封装
8.9 函数应用综合举例
8.10 本章小结及常见错误列举
习题8
第9章 指针
9.1 指针与指针变量的概念
9.2 指针变量的定义和引用
9.3 指针和地址运算
9.4 指针与数组
9.4.1 数组的指针和指向数组的指针变量
9.4.2 指向多维数组的指针——数组指针
9.4.3 元素为指针的数组——指针数组
9.5 指针与字符串
9.6 指针与动态内存分配
9.7 多级指针
9.8 指针作为函数参数
9.9 指针作为函数的返回值——指针函数
9.10 指向函数的指针——函数指针
9.11 带参数的main函数
9.12 本章小结及常见错误列举
习题9
第10章 预处理命令
10.1 预处理命令简介
10.2 宏定义
10.2.1 不带参数的宏定义
10.2.2 带参数的宏定义
10.3 文件包含
10.4 条件编译
10.5 本章小结及常见错误列表
习题10
……
第11章 复杂数据类型
第12章 文件
精彩书摘
第2章 C语言程序设计基础
2.1 程序设计语言的发展及其特点
计算机是由硬件系统和软件系统两大部分构成的,硬件是物质基础,而软件可以说是计算机的灵魂,没有软件,计算机是一台“裸机”,是什么也不能干的,有了软件,才能灵动起来,成为一台真正的“电脑”。所有的软件,都是用计算机语言编写的。
计算机程序设计语言的发展,经历了从机器语言、汇编语言到高级语言的历程。
1.机器语言
机器语言是计算机能唯一识别的语言。机器语言程序是一串串由“0”和“1”组成的指令序列。使用机器语言是十分痛苦的,特别是在程序有错需要修改时,更是如此。而且,由于每台计算机的指令系统往往各不相同,因此,在一台计算机上执行的程序,要想在另一台计算机上执行,必须另编程序,从而造成重复工作。但由于使用的是针对特定型号计算机的语言,故而运算效率是所有语言中最高的。机器语言是第一代计算机程序设计语言。
2.汇编语言
为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进,即用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用“ADD”代表加法,“MOV”代表数据传递等,这样一来,人们很容易读懂并理解程序在干什么,纠错及维护都变得方便了,这种程序设计语言就称为汇编语言,即第二代计算机程序设计语言。然而计算机是不认识这些符号的,这就需要一个专门的程序,负责将这些符号翻译成二进制数的机器语言,这种翻译程序被称为汇编程序。
汇编语言同样十分依赖于机器硬件,移植性不好,但效率仍十分高,针对计算机特定硬件而编制的汇编语言程序,能准确发挥计算机硬件的功能和特长,程序精炼而质量高,所以至今仍是一种常用而强有力的软件开发工具。
前言/序言
一、编写初衷
随着计算机技术的深入发展,特别是微机的普及,越来越多的人都热衷学习计算机知识以提高自身素质,掌握一门实用技术。C语言作为一门长盛不衰的程序设计语言,深受广大软件爱好者的喜爱。随着C语言应用范围的不断扩大,无论是计算机专业人员,还是一般的软件爱好者都将“C语言程序设计”作为学习软件编程的首选语言。
但C语言规则较多,要灵活使用,对一般初学者来说,不易掌握,学习会有一定的困难;初学完后发现对C语言中许多细节问题仍存在疑惑,甚至连编写一个简单的程序也是错误百出。根据多年从事C语言教学的经验来看,要让学生真正领会和掌握C语言,除了教师必须具备丰富的教学经验和C语言开发项目的能力以外,选择一本好的C语言教材是非常重要的。我们对目前市场上主要流行的一些C语言教材进行认真的分析和对比,发现大部分教材在内容和形式上都相差无几。其共同的不足点主要表现在:
1.对各章节学习的意义不明确。我们做任何事情,只有知道其意义,我们才会去做,也才会做好。学C语言也是这样,不要以为学C语言是因为其应用广泛,程序员考试、等级考试、研究生入学考试等都需要它,这只是说明为什么要学C语言。但在学习c语言过程中很少有教材强调为什么要学习基本数据类型,为什么要学习顺序、分支、循环、结构、函数、指针、结构和文件等,致使学生都认为是因为要学C语言才学它,从而导致对C语言各章节的内容不易准确的把握,目的性不强。
2.只告其然,不告其所以然。目前大多数教材就像法律条文一样告诉你C语言的有关规则,缺乏对其作相应的解释。当然,C语言中的绝大多数语法规则我们只能死记硬背,但有些内容我们应知道为什么要这样规定,从而加深读者对C语言的理解。比方说,为什么C语言中整数类型的数据在计算机中用其补码表示?为什么数据类型有其表示范围的限制?为什么空指针不能赋值?等等。
3.对知识点的解释缺乏直观性。很多教材对C语言某个知识点只是以文字叙述的形式加以说明,缺乏相应的图示或者图示效果不太直观。
4.对问题的阐述较单一。C语言中的知识类型主要是概念和规则,讲解C语言的规则时应提供应用实例,并且应从多个方面或多种方法来加以阐述,包括正例和反例(即错误的用法)都应当提供。C语言学习的主要障碍之一是较难克服学习者头脑中错误的语言规则应用模式,提供C语言规则的应用反例,会帮助学习者能够事先鉴别出常见的错误应用模式。
C语言程序设计教程(第2版)/21世纪高等学校计算机基础实用规划教材 下载 mobi epub pdf txt 电子书 格式