高等院校“十二五”核心课程辅导丛书:C语言答疑解惑与典型题解
定 价:35 元
- 作者:吴婷 ,等 著
- 出版时间:2010/5/1
- ISBN:9787563522897
- 出 版 社:北京邮电大学出版社
- 中图法分类:TP312C
- 页码:277
- 纸张:胶版纸
- 版次:1
- 开本:16开
《C语言答疑解惑与典型题解》深入浅出、系统地全面地介绍了C语言的核心内容。全书共分16章,内容包括C语言基础、算法和结构化程序设计、数据类型、运算符与表达式、顺序结构、选择结构、循环结构、数组、字符串、函数、指针、结构体和共同体、预处理命令、位运算和文件操作等。
《C语言答疑解惑与典型题解》以“答疑解惑+典型题解”为主线组织编写,每一章都列举了大量的题目(其中也包括各大高校的考研真题),并对其进行了详细分析评注,以便于帮助读者掌握本章的重点及迅速回忆本章的内容。《C语言答疑解惑与典型题解》结构清晰、易教易学、实例丰富、学以致用、注重能力,对易混淆和历年考题中较为关注的内容进行了重点提示和讲解。
《C语言答疑解惑与典型题解》既可以作为学习C语言的辅导书,可也以作为复习考研、计算机等级考试的参考书,更可以作为各类培训班的培训教程。此外,《C语言答疑解惑与典型题解》也非常适于教师的C语言教学以及各种编程自学人员阅读参考。
《C语言答疑解惑与典型题解》特点 (1)结构清晰、模式合理,《C语言答疑解惑与典型题解》基本按照正规教学课本(主流教材)的顺序安排,不是对所有知识点详细铺陈,而是对核心知识点和常考题型做重点讲解。每章设计了两个板块,分别是:答疑解惑与典型题解。 各内容安排为: 答疑解惑:突出核心知识,对重点、难点、易混淆的知识点进行剖析与解释,让学生掌握问题的本质。包括对重要定理、定义和公式的剖析。 典型题解:精选出常考题型与考研真题进行解析,增强学生的解题能力、《C语言答疑解惑与典型题解》每一章都列举了大量的题目,并对其进行了详细分析评注,以便于帮助读者掌握本章的重点及迅速回忆本章的内容。(题目来源:一是主流教材课后难题,二是课程考试试题,三是经典好题,四是考研真题。) (2)针对性强,实用性强。《C语言答疑解惑与典型题解》不是按照传统辅导书那种“内容简介-例题分析-习题”的模式编写,而是在听取大量一线教师和学生们建议的基础上,以突出针对性与实用性来安排内容的。学生们最需要的是解决他们学习过程中的“疑惑”以及掌握解题方法。《C语言答疑解惑与典型题解》正是以“答疑解惑与典型题解”为中心,因而具有很强的针对性与实用性。 (3)《C语言答疑解惑与典型题解》重点定位在疑难解惑与解题方法上,开拓解题思路,提高分析问题的能力,不仅授人以“鱼”,更在于授人以“渔”。 (4)《C语言答疑解惑与典型题解》聘请执教多年且有较高学术造诣的名师编写,质量高,内容清晰。
本书是为读者学习C语言而编写的教学辅导书,可帮助读者复习课程的基本内容,检验各种算法的掌握程度,培养和提高用C语言解决实际问题的能力,力争使读者在学完本书之后,在编程和解决实际问题方面都达到一个新的高度。
1.本书阅读指南
本书对c语言知识点的常见问题进行了讲解,同时分析了近几年的考研题目,并给出了详实的参考答案,读者可以充分地了解各个学校考研题目的难度,查缺补漏,有针对性地提高自己的水平。本书共分16章。
第1章主要讲解C语言的基本概念和入门。
第2章主要讲解C语言的算法和结构化程序设计。
第3章主要讲解C语言的数据类型。
第4章主要讲解C语言的运算符和表达式。
第5章主要讲解C语言顺序结构方面的知识。
第6章主要讲解C语言选择结构方面的知识。
第7章主要讲解C语言循环结构方面的知识。
第8章主要讲解C语言数组方面的知识。
第9章主要讲解C语言字符串方面的知识。
第10章主要讲解C语言的函数,函数是C语言的核心所在,本章对函数的定义用法等进行了详细讲解。
第11章主要讲解C语言指针方面的知识。
第12章主要讲解C语言的结构体和共同体。
第13章主要讲解C语言的预处理命令。
第14章主要讲解C语言位运算方面的知识。
第15章主要讲解C语言的文件操作。
第16章提供了一套测试题和一套考研真题,为读者提供一个自我分析解决问题的过程。
2.本书的特色与优点
(1)结构清晰,知识完整。本书系统性强,依据高校教学大纲组织内容,同时覆盖最新版本的所有知识点,并将实际经验融人基本理论之中。
(2)内容详实,解答完整。本书涵盖近几年各大高校的大量题目,示例众多,步骤明确,讲解细致,读者不但可以利用题海战术完善自己的弱项,更可以有针对性地了解某些重点院校的近年考研题目及解题思路。
(3)学以致用,注重能力。一些例题后面有与其相联系的知识点详解,使读者在解答问题的同时,对基础理论得到更深刻的理解。
(4)重点突出,实用性强。突出核心知识,对重点、难点、易混淆知识点进行剖析与解释,通过对试题的分析提高读者解决实际问题的能力。
第1章 C语育基础
1.1 答疑解惑
1.1.1 C语言是如何构成的?
1.1.2 C程序是如何执行的?
1.1.3 C程序是如何编译连接的?
1.1.4 C程序中如何使用注释?
1.2 典型题解
题型1C程序构成
题型2C程序编译连接
题型3注释
第2章 算法和结构化程序设计
2.1 答疑解惑
2.1.1 什么是程序?
2.1.2 什么是算法?
2.1.3 如何评价、选择算法?
2.1.4 如何设计算法?
2.1.5 什么是结构化程序设计?
2.1.6 如何用图形描述算法?
2.2 典型题解
题型1算法的特征
题型2结构化程序设计
题型3算法的图形化描述
第3章 数据类型
3.1 答疑解惑
3.1.1 C语言中有哪些数据类型?
3.1.2 什么是常量?什么是变量?
3.1.3 什么是标识符?C语言中有哪些标识符?
3.1.4 如何定义自己的标识符?
3.1.5 如何命名出“见名识意”的标识符?
3.1.6 整型数据可以表示哪些数?
3.1.7 数489L.和489有何不同?
3.1.8 数123、0123和0X123有何不同?
3.1.9 实型数据可以表示哪些数?
3.1.10 数123.4 、12.3 4E1和O.1 234e3有何不同?
3.1.11 为什么下面程序中y的值没有增加?
3.1.12 为什么下面程序的输出不是678997
3.1.13 字符型变量中存放了什么?
3.1.14 字符型数据与整型数据有什么联系?
3.1.15 ‘a’和“a”有何不同?
3.2 典型题解
题型1标识符定义
题型2数据类型基本概念
题型3变量和常量基本概念
题型4整型数据
题型5整型数据的各进制表示及
转换
题型6实型数据
题型7字符型数据
第4章 运算符与表达式
4.1 答疑解惑
4.1.1 C语言中有哪些运算符?
4.1.2 1/2和1/2.0的计算结果一样吗?
4.1.3 -10%3和10%-3的计算结果一样吗?可以4.5%2吗?
4.1.4 表达式x=x中,两个x的含义是否相同?
4.1.5 x+一2和x=x+2意义相同吗?
4.1.6 z一(x一16)*(y一4)如何执行?
4.1.7 b-a++与b一++a有何不同?
4.1.8 为什么2++,(a+b)一一都是不合法的?
4.1.9 b——a++如何执行?
4.1.1 0若inta-10,执行b-(3*5,a+4)后,a、b的值分别为多少?
4.1.1 15+3.1 4-5.1 23456*‘a’-‘b’的计算结果是什么类型的数据?
4.1.1 2为什么下面程序的运行结果是1而非0?
4.1.1 3a+++b如何计算?
4.2 典型题解
题型1算术运算
题型2赋值运算
题型3左值的概念
题型4自增、自减运算
题型5逗号运算
题型6类型转换
题型7运算符优先级和结合性
第5章 颇序结构
5.1 答疑解惑
5.1.1 c=‘a’和c-‘a’;有什么区别?
5.1.2 inta;是语句吗?
5.1.3 空语句什么也不做,为什么还要使用?
5.1.4 为什么下面程序的输出是1而不是127
5.1.5 能否按照自己的要求输出数据?
5.1.6 为什么下面的程序无法执行?
5.1.7 按照下面的程序能否输入“2a”?
5.2 典型题解
题型1语句基本概念
题型2字符输入/输出
题型3格式化输入
题型4格式化输出
题型5综合应用
第6章 选择结构
6.1 答疑解惑
6.1.1 什么是“真”,什么是“假”?
6.1.2 为什么下列程序输出的是“一一”而不是“!一”?
6.1.3 浮点数之间的比较可靠吗?
6.1.4 C语言中有哪些逻辑运算符?运算规则是什么?
6.1.5 表达式ab)?a,b后max的值是多少?
6.1.8 if与else如何配对?
6.1.9 if语句和switch语句该如何选择?
6.1.1 0为什么下面程序的输出不是3?
6.1.1 1switch语句中一定要使用default语句吗?
6.2 典型题解
题型1关系运算
题型2逻辑运算
题型3条件运算
题型4if语句
题型5SWItch语句
第7章 循环结构
7.1 答疑解惑
7.1.1 下面的程序为什么错误?
7.1.2 为什么下面两个程序的执行结果不同?
7.1.3 为什么下列程序的运行结果不是67
7.1.4 for语句中的表达式能否省略?
7.1.5 该选择while循环还是for循环?
7.1.6 循环中能否包含循环?
7.1.7 break语句和continue语句的区别是什么?
7.2 典型题解
题型1for循环语句
题型2dowhile、while循环语句
题型3break、continue语句
题型4综合应用
第8章 数组
8.1 答疑解惑
8.1.1 什么是数组?数组在内存中如何存储?
8.1.2 inta[10];a++;是否正确?
8.1.3 以下对数组的声明是否正确?
8.1.4 下面的程序在编译时是否会报错?
8.1.5 以下对二维数组的声明是否正确?
8.2 典型题解
题型1一维数组的定义和初始化
题型2一维数组的引用
题型3一维数组元素的移动
题型4一维数组的排序
题型5数组元素的查找和删除
题型6多维数组的定义和初始化
题型7多维数组的引用
题型8二维数组的排序
题型9将二维数组转化为一维数组
第9章 字符串
9.1 答疑解惑
9.1.1 C语言中如何存储字符串?
9.1.2 定义char’s[]-"well"-chart口={‘w’,‘e’,‘l’,‘l’};中,s与t相同吗?
9.1.3 如何从键盘输入“。HelloWorld"并赋值给字符数组.应调用什么函数?
9.1.4 strlen与sizeof有什么区别?
9.1.5 如何使用strcpy函数?
9.1.6 如何比较两个字符串?if(strl==str2)的写法是否正确?
9.1.7 如何使用strcat函数?
9.2 典型题解
题型1字符串的初始化
题型2字符串的长度
题型3字符串的输入
题型4特定字符的大小写转换
题型5字符串与整数的转换
题型6指定字符的查找和删除
题型7字符串的比较
题型8字符串的排序
题型9字符子串查找
题型10字符子串的移动
题型11字符串的复制
题型12字符串的连接
第10章 函数
10.1 答疑解惑
10.1.1 为什么需要函数?
10.1.2 如何定义和使用函数?
10.1.3 为什么要进行函数的声明?
10.1.4 函数调用时,数据如何传递?
10.1.5 return语句和exit()函数调用有什么区别?
10.1.6 函数的嵌套调用是如何进行的?
10.1.7 什么时候使用递归?
10.1.8 函数的递归调用是如何进行的?
10.1.9 什么是全局变量和局部变量?
10.1.1 0C语言中的局部变量有哪些存储类别?
10.1.1 1不同类型的变量存储方式是否相同?
10.1.1 2C语言中的函数有哪些存储类别?
10.2 典型题解
题型1函数的基本概念
题型2形参和实参
题型3函数返回值
题型4函数的基本调用
题型5数组作为函数参数
题型6函数的嵌套调用
题型7函数的递归调用
题型8全局变量和局部变量
题型9变量的存储类别及生命周期
第11章 指针
11.1 答疑解惑
11.1.1 什么是内存单元地址?什么是内存单元内容?
11.1.2 指针的地址和指针中存放的地址有什么区别?
11.1.3 指针可以指向指针吗?
11.1.4 指向不同类型的指针,在内存中所占空间相同吗?
11.1.5 指针一定要初始化吗?
11.1.6 如何对指针进行初始化?
11.1.7 指针可以做运算吗?
11.1.8 为什么要动态分配内存空间?如何分配?
11.1.9 如何通过指针引用一维数组元素?
11.1.1 0指针和字符数组都可以操作字符串,两者有什么区别?
11.1.1 1如何通过指针引用二维数组元素?
11.1.1 2函数指针和指针函数有什么区别?
11.1.1 3指针数组和数组指针有什么区别?
11.2 典型题解
题型1指针的基本概念
题型2指针的运算
题型3指针作为函数参数
题型4指向函数的指针
题型5指向一维数组的指针
题型6字符串与指针
题型7指向二维数组的指针
题型8指针数组
题型9命令行参数
题型10指向指针的指针
题型11指向结构体、共同体变量
的指针
题型12综合应用
第12章 结构体和共同体
12.1 答疑解惑
12.1.1 为什么要使用typedef?它定义了新类型吗?
12.1.2 typedef与define有什么区别?
12.1.3 为什么要使用结构体?
12.1.4 为什么下面的程序在编译时会报错?
12.1.5 如何引用结构体的成员?
12.1.6 如何用结构体生成链表?
12.1.7 如何用在链表中插入节点?
12.1.8 如何用在链表中删除节点?
12.1.9 为什么要使用共同体?它有
什么特点?
12.2 典型题解
题型1用户自定义类型
题型2结构体的定义和元素引用
题型3结构体数组
题型4链表基本概念
题型5链表的插入
题型6链表中的数据查找和修改
题型7链表的删除
题型8链表的排序
题型9共同体
题型10结构体与共同体综合运用
第13章 预处理命令
13.1 答疑解惑
13.1.1 什么是预处理?
13.1.2 什么是宏定义?
13.1.3 宏定义有哪些特点?
13.1.4 下面程序的输出是什么?
13.1.5 带参数的宏和函数有什么区别?
13.1.6 为什么要使用头文件,如何写自己的头文件?
13.1.7 如何包含文件?
13.1.8 可以包含多个文件吗?
13.1.9 如何避免文件的重复包含?
13.2 典型题解
题型1预处理基本概念
题型2宏替换基本概念
题型3带参数的宏替换
题型4文件包含
题型5条件编译
第14章 位运算
14.1 答疑解惑
14.1.1 位(bit)、字节(byte)和字(word)有什么区别?
14.1.2 数在计算机中是如何存储的?
14.1.3 C语言中有哪些位运算符?
14.1.4 六种位运算符的运算规则分别是什么?
14.1.5 运算符&和运算符&&有什么区别?
14.1.6 如何实现将字符a的“高4位清0,低4位保留”?
14.1.7 如何实现将字符a的“高4位置1,低4位保留”?
14.1.8 如何实现将字符a的“高4位翻转,低4位保留”?
14.1.9 如何交换两个数,但不使用临时变量?
14.1.1 0左移右移运算与乘除运算有什么关系?
14.1.1 1位运算符的优先级和结合性是怎样的?
14.1.1 2两个长度不同的数如何进行位运算?
14.2 典型题解
题型1按逻辑运算
题型2按位移动运算
第15章 文件操作
15.1 答疑解惑
15.1 I1数据在文件中如何存储?
15.1.2 什么是文件指针?什么是文件位置指针?
15.1.3 stdin、stout、stderr是什么?
15.1.4 如何访问文件?
15.1.5 使用文件的一般操作步骤是怎样的?
15.1.6 如何打开文件?
15.1.7 为什么下面的操作无法打开文件?
15.1.8 文件使用完毕后为什么必须关闭文件?
15.1.9 如何将单个字符存人文件中?
15.1.1 0如何将字符串存入文件中?
15.1.1 1如何将结构体存人文件中?
15.1.1 2scanf和fscanf、printf和fprointf有何区别?
15.1.1 3为什么要进行文件定位?如何进行文件定位?
15.1.1 4标识符EOF能否作为二进制文件的结束标志?
15.2 典型题解
题型1文件基本概念
题型2文件的打开和关闭
题型3文件检测
题型4文件字符输入/输出
题型5文件字符串输入/输出
题型6文件格式化输入/输出
题型7文件的数据块输入/输出
题型8文件的定位操作
题型9综合应用
第16章 课程测试与考研真题
16.1 课程测试
16.2 考研真题
16.3 课程测试解析
16.4 考研真题解析
10.1.10C语言中的局部变量有哪些存储类别?
按照生命周期的不同,局部变量可以分为4种:自动型(auto),静态型(static),寄存器型(register),外部型(extern)。
(1)自动型(auto)
由关键字auto声明的变量称为自动变量。在定义局部变量时,如果没有指定存储类,系统将默认为auto类。它在定义时被分配内存,当函数调用结束时,系统回收变量所占内存。所以,auto型变量的作用域是从定义的位置起,到函数体结束处止。
(2)静态型(static)
用关键字static声明的变量称为静态变量,它的生存期是从程序开始执行到程序运行结束。如果函数中的局部变量被声明为static类,函数调用结束后变量将保留原值,而不是消失(因为占用的内存单元并未被释放),在下一次函数调用时该变量的值仍为存储单元中的值。如果没有被显式地赋初值,系统将自动在编译时为static变量赋O值。
(3)寄存器型(register)
用关键字register声明的变量称为寄存器变量,此类变量的值将被存放在CPU寄存器中,而不是内存中。程序运行时,访问寄存器的速度要远远高于访问内存的速度。因此,当程序运行效率要求较高时,可以将频繁使用的变量声明为寄存器类型。
注意,只有局部atuo变量和函数的形参可以被声明为寄存器变量。并且无论寄存器变量是否真的放在寄存器中,都不能对其进行求地址运算。
(4)外部型(extern)
上文提到,全局变量的作用域是从变量定义到程序结束。因此,当全局变量定义在后,函数引用在前时,需要在函数中用extern对该变量进行声明,这样才能够引用该变量。因此,extern声明实质上是扩展了全局变量的作用域。