《C语言程序设计百问百例》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:匡松主编
  • 出 版 社:北京:中国铁道出版社
  • 出版年份:2008
  • ISBN:9787113089726
  • 页数:332 页
图书介绍:本书共16章,以问题解答(百问)和案例分析(百例)的独特形式,介绍了C语言的基本语法、程序结构和设计方法。

第1章 C语言概述 1

问1 C语言是谁发明的?是怎样发展起来的 1

问2 C语言有何特点 2

问3 编译型语言和解释型语言有何区别 2

问4 Turbo C是一个什么样的产品 3

例1 编写第一个简单的C语言程序 4

问5 C语言程序的基本结构如何 4

问6 C语言源程序的书写格式有何特点 5

问7 C语言程序中的main函数有什么作用 5

问8 什么是函数库 5

问9 C语言程序的输入到执行需要一个怎样的过程 5

问10 源程序的编译及连接是怎样一个过程 6

例2 经典的Hello World!程序 6

问11 什么是头文件 7

例3 程序代码的编译、连接与运行 8

第2章 数据类型、运算符与表达式 10

问12 什么是常量 10

问13 如何定义符号常量 10

问14 符号常量只能用大写字母表示吗 11

问15 什么是变量?如何定义变量 11

例4 常量和变量的简单使用 12

问16 C语言中有哪些基本数据类型 13

问17 编写C程序时,如何确定使用哪种整数类型 13

问18 C语言是强类型的语言,这是什么意思 13

问19 C语言如何表示不同进位计数制的整型常量 14

例5 整型常量的表示 14

问20 什么是整型变量?整型变量有哪些类型 15

例6 整型变量的定义和使用 15

问21 什么是实型变量?实型数据有哪些类型 16

例7 实型变量的定义和使用 17

问22 C语言中如何表示字符型常量 17

问23 字符在内存中存储的是字符本身吗 17

例8 字符常量的表示与输出 18

例9 输出字符的ASCII码值 18

问24 不同数值类型的数据混合运算时如何进行类型转换 19

问25 C语言中为什么要使用转义字符 19

问26 C语言中转义字符是如何表示的 20

例10 转义字符的使用 20

例11 输出特殊的字符 21

问27 什么是字符串常量 21

问28 字符串常量与字符常量有何不同 22

例12 输出字符与字符串 22

例13 字符数组的定义和使用 23

问29 什么是表达式 24

问30 如何正确理解和使用赋值运算符 24

问31 如何正确理解和使用条件运算符 25

问32 为什么表达式1/2的值为0 26

例14 从键盘输入数据并进行计算处理 26

问33 如何指定输出数据的域宽、小数位数和对齐方式 27

问34 如何理解自增运算符与自减运算符 27

问35 自增运算符“++”和自减运算符“--”运算可对常量执行吗 28

例15 正确理解和使用自增运算符和自减运算符 28

例16 进一步理解自增运算符与自减运算符 29

例17 利用自增运算符“++”实现累加 30

例18 正确理解算术运算符的优先级 30

问36 如何计算表达式(x++)+(++x)+(x++) 31

例19 以下程序的运行结果为什么与问36的解释不一致 32

问37 字符型数据与整型数据、浮点型数据为什么可以直接运算 32

例20 转换字母的大小写 33

问38 如何理解表达式x=y=1 33

例21 理解赋值运算符、赋值表达式及运算符优先级 34

问39 如何理解逗号运算符和逗号表达式 34

问40 逗号表达式是如何运算的 35

例22 理解逗号运算符 35

问41 如何理解复合赋值运算符 36

例23 理解复合赋值运算符 36

问42 int x=32767;x++;为什么x的值为-32768 37

例24 整型数据的溢出问题 37

问43 对于浮点型数据执行相等比较为什么有时会出现问题 38

第3章 最简单的C语言程序设计 40

问44 什么是程序的顺序结构 40

问45 C语言的基本语句包含哪些类型 40

问46 什么是程序的选择结构 41

问47 在C语言中如何实现数据的输入/输出 41

问48 C语言中有哪几种语句 42

问49 C语言中没有输入/输出语句是什么意思 43

问50 没有初始化的变量的初始值是什么 43

问51 C语言中,必须在程序退出之前释放所有的资源吗 43

问52 为什么调用库函数printf时可以不添加包含stdio.h头文件的语句 44

问53 如何使用scanf函数控制输入格式 44

问54 如何使用printf函数控制输出格式 44

例25 printf格式控制输出 45

例26 利用printf函数实现实型数据的输出 46

例27 putchar函数的使用 46

例28 puts函数的使用 47

问55 以下的程序为什么会出现编译错误 47

问56 getchar函数有何作用 48

例29 getchar函数的使用 48

例30 gets函数的使用 49

问57 在使用scanf函数读入数据时,应该采用哪种符号做分隔符 50

例31 用scanf函数读入两个字符,输出其ASCII码之差 50

例32 一个简单的加法计算器程序 51

例33 以下程序的结果为什么是错误的 51

例34 为什么输入数据与输出结果不一致 52

例35 从键盘输入圆的半径,计算其直径、周长和面积 53

例36 进位计数制转换 53

例37 交换两个变量的值 54

例38 计算圆周长和圆面积 55

例39 求树的高度 55

第4章 逻辑运算与判断选取控制 58

问58 关系运算符的优先级次序是什么样的 58

问59 关系表达式的值是如何表示的 58

问60 如何理解表达式x=y==1 59

问61 C语言中逻辑值1和0是如何判断的 59

例40 求解关系表达式的值 59

问62 C语言中有哪些逻辑运算符 59

例41 求解逻辑表达式的值 60

问63 求解逻辑表达式时“有解即停”是什么意思 61

例42 变量y的值为什么还是5 61

问64 为什么条件语句“if (! a)语句;”与“if (a==0)语句;”等价 61

例43 If语句的应用 62

例44 求三个变量的最大值 63

例45 任意输入两个整数,输出其中的大者 63

例46 任意输入一个整数,求该整数的绝对值并输出 64

问65 if语句之间相互嵌套时,if和else是如何匹配的 65

例47 if语句的嵌套 65

例48 任意输入三个整数,比较大小,输出其中最大值 66

例49 任意输入一个百分制分数,输出该分数对应的等级制级别 66

例50 计算奖金 67

例51 将四个变量的值降序排序 68

问66 在C语言程序中如何判断两个数是否能够整除 69

例52 平年/闰年问题 70

问67 switch语句是如何执行的 70

例53 计算指定年份和月份的天数 71

例54 用switch语句输出分数对应的等级制级别 72

例55 计算任意三角形的面积 73

问68 什么是复合语句?什么时候应该使用复合语句 74

例56 分段函数值的计算之一 75

例57 分段函数值的计算之二 76

例58 分段函数值的计算之三 77

例59 百分制转换成五级分制 78

问69 在switch语句中,case是不是作为条件判断语句存在 79

例60 switch...case语句的使用 79

例61 使用switch语句解决实际问题 80

例62 析取一个三位整数的各位数字 82

问70 什么是三目运算符?条件运算符?是否与if语句等价 82

例63 使用条件运算符求最大值 83

例64 编制程序实现能完成简单加、减、乘、除、求余的运算器 84

第5章 循环控制 85

问71 什么是程序的循环结构 85

问72 为什么结构化程序设计不提倡使用goto语句 85

问73 在C程序中使用goto语句是不是有百害而无一利 86

例65 使用goto语句构成循环 86

问74 什么是标号?标号具有什么作用 87

问75 break和continue语句有什么区别 87

问76 while循环结构是如何执行的 87

例66 使用while循环结构计算n! 88

例67 计算1+2+3+4+5+…+99+100的结果 89

问77 do...while循环结构是如何执行的 90

问78 while语句和do...while语句是等同的吗 90

例68 用do...while循环语句计算1+2+3+4+5+…+99+100的值 90

例69 输入一个小于等于20的整数,求从该整数累加到20的和 91

例70 猴子吃桃子 92

例71 统计各种字符的个数 93

例72 使用do...while循环结构计算n! 93

问79 for循环结构是如何执行的 94

问80 for循环条件中的表达式哪些可以省略 95

例73 使用for循环结构计算n! 95

问81 什么是死循环 96

问82 如何理解for循环结构的多种省略写法 96

例74 水仙花数 99

例75 求数列之和 99

例76 for循环的嵌套使用 100

例77 输出9×9乘法口诀表 101

例78 输出斐波纳契数列 102

问83 类似于while(1)循环是“死循环”吗 102

例79 计算表达式s=1!+2!+3!+……+n!的值 103

例80 计算表达式s=1!+(1!+2!)+……+(1!+2!+……+n!)的值 104

问84 程序中常见的while((ch=getchar())!='\n')循环是如何执行的 104

例81 键盘输入中析取数值 105

例82 析取任意整数的各位数字 106

问85 穷举法的基本思想是什么 107

例83 水仙花数问题解法之一 108

例84 水仙花数问题解法之二 109

例85 矿石判断 110

例86 五个球分给五个人,共有多少种分法 111

例87 一元钱的分解问题 111

例88 湖泊大小问题 112

例89 用二分法求方程2x3-4x2+3x-6=0在(-10,10)之间的根 113

例90 求任意10个非零整数中的正数之和 114

问86 什么是素数?如何判断一个数是否为素数 115

例91 素数问题 116

例92 最大公约数问题 116

例93 输入两个正整数m和n,求其最大公约数和最小公倍数 117

例94 记忆力测试游戏 117

例95 求1~100之间的全部素数 120

第6章 数组 121

问87 什么是构造数据类型 121

问88 如何定义一维数组 121

问89 数组在定义的同时赋初值,是否可以省略数组的大小 122

问90 运算符sizeof执行什么功能 122

问91 如何进行数组初始化 122

例96 数组元素的赋值与输出 123

例97 斐波纳契数列问题扩展 124

问92 如何定义二维数组 124

问93 如何进行二维数组初始化 125

例98 杨辉三角形问题 125

例99 魔方阵问题 127

问94 选择法排序的基本思想是什么 128

例100 选择法排序 129

问95 冒泡排序法的基本思想是什么 130

例101 冒泡排序法应用之一 130

例102 冒泡排序法应用之二 131

问96 顺序查找法的基本思想是什么 132

例103 顺序查找法 132

问97 二分查找法的基本思想是什么 133

例104 二分查找法 134

问98 如何定义和使用字符串数组 135

问99 字符数组与字符串有什么不同 135

例105 字符数组与字符串的区别 135

问100 字符数组与字符串是否等价 136

问101 如何输入含有空格的字符串 136

例106 计算一个字符串的长度 137

例107 输入两个字符串,统计和比较两个字符串的长度 138

例108 对比字符串的两种输出方式 139

例109 小写字母变成大写 140

例110 字符串排序 141

问102 C语言中有哪些字符串处理函数 142

例111 统计字符串中的单词个数 143

例112 统计字符串中的最长单词的长度 144

例113 判断一个字符串是否能够构成一个有效数值 145

例114 求一个N×N的矩阵对角线元素之和 145

例115 形成一个3行4列数组,将一个3行4列数组转置后输出 146

例116 寻找一个整型二维数组中的“鞍点” 148

例117 输出成绩最高的学生的情况 149

例118 将1~12月中每月对应的月份宝石名称输出 149

例119 三子棋游戏 150

例120 加密 152

第7章 函数 154

问103 函数有哪两种基本类型 154

问104 如何定义一个函数 155

问105 如何实现一个函数 155

问106 哪些函数不需要声明就可以使用 156

问107 函数的形参在函数定义时就有确定的存储空间和值吗 156

问108 函数的实参和形参之间是如何进行数据传递的 156

例121 从小到大输出三个整数 156

例122 计算组合数 157

例123 数组名作函数参数 158

问109 什么是“传值调用” 159

例124 以数组作函数参数 160

问110 什么是局部变量 161

问111 什么是全局变量 161

问112 如何使一个函数产生一个以上的结果值 162

例125 使用全局变量 163

问113 如何理解“静态存储类别static”的变量 163

例126 静态存储类别变量的使用 165

问114 函数可以嵌套定义和调用吗 165

问115 什么是函数的嵌套调用和递归调用 166

例127 函数的递归调用 166

例128 求n的阶乘 167

例129 计算圆的面积 168

问116 变量的定义和声明是一样的吗 169

例130 外部变量的使用 169

例131 奥赛罗游戏 171

第8章 编译预处理 179

问117 什么是宏 179

问118 宏是如何工作的 180

例132 宏定义、宏调用与宏展开 181

例133 定义交换两个变量值的宏 181

问119 什么是文件包含 183

问120 #include<文件名>和#include"文件名"有什么区别 183

问121 带参宏和函数能等价吗 183

问122 条件编译有什么作用 184

例134 使用条件编译 184

例135 使用带参宏,从三个整数中找出最大的一个 185

第9章 指针 187

问123 如何定义和引用指针变量 187

问124 指针变量的基类型具有什么作用 187

问125 表达式*p++是自增p还是p所指向的变量值 188

问126 什么是空指针? 189

问127 C语言中NULL代表什么 189

问128 表达式p++是表示将指针p往后移动一个字节吗 189

例136 使用指针变量作函数参数 189

例137 使用指针变量使函数返回多个结果值 190

问129 数组名和指针是否相同 191

问130 如何通过指针引用数组元素 191

例138 指向数组的指针 191

例139 用指针输出一维数组的全部元素 192

例140 利用指针交换两个数组的对应元素 193

例141 把一个一维数组中的元素按初始顺序的倒序排列 194

问131 两个指针可以执行加减运算吗 195

问132 二维数组的行指针和列指针有何区别 195

例142 用指针输出二维数组的全部元素 195

例143 输出二维数组b中各行各列元素的值 197

例144 输出数组中最大元素和最小元素的值 197

例145 通过指针操作字符串 198

例146 通过指针数组对二维数组的元素进行输入和输出 199

例147 按字符串从小到大的顺序排列输出5个字符串 200

问133 什么是函数指针和指针函数 201

例148 使用函数指针 202

例149 使用指针数组模拟字符串数组的处理 202

问134 C语言如何实现动态数组 203

问135 一个指针变量到底会分配多少内存空间 204

例150 动态分配内存 204

例151 找出成绩最低的学生记录 205

例152 通过函数调用分别求两数之和、差、积、商 206

例153 输出10个整数中最大数的值 207

例154 使用指针数组完成对10个字符串的排序 208

例155 求字符串长度 209

例156 利用指针函数求和 210

例157 利用指针实现混合运算计算器 212

第10章 结构体与共用体 215

问136 如何定义结构体和结构体变量 215

问137 如何引用结构体变量中的数据成员 216

例158 结构体变量的定义与使用 217

问138 结构体中可以包含指向自己的指针吗 218

问139 什么是共用体?共用体与结构体有何区别 218

例159 结构体与共用体的区别 219

问140 如何使用typedef命名数据类型 220

问141 链表是一种怎样的数据结构 220

例160 采用动态方式创建一个单向链表 221

例161 使用链表输入动态字符串并显示输入的字符串 222

问142 如何从链表中删除一个结点 224

例162 从链表中删除一个结点 224

问143 如何向链表中插入一个结点 225

例163 向链表中插入一个结点 225

例164 合并两个单向有序链表 226

问144 结构体和共用体的区别在哪里 228

例165 报数 228

问145 枚举元素的值是多少 229

例166 枚举元素的输出 229

问146 typedef可以创建新的数据类型吗 230

例167 编写一个程序,为一组数值生成相应的条状图 230

第11章 位运算 234

问147 C语言中有哪些位运算符?各完成什么运算 234

例168 使用位运算将一个正整数转换为相应的二进制数 234

例169 给定一个整数,请取出该整数从右端开始的4~7位 235

第12章 文件 236

问148 什么是文件类型指针 236

问149 文件的打开和关闭是什么意思 236

例170 文件的打开与关闭实例 237

问150 如何向ASCII文本文件中写入字符 238

问151 如何从ASCII文本文件中读取字符 238

例171 读取并显示文本文件的内容 239

例172 写磁盘文件操作 239

例173 复制文件 240

例174 复制文本文件 241

问152 如何判断一个文件是否存在 242

例175 复制文本文件的内容,增加判断功能 242

问153 在读/写二进制文件时如何判断文件是否结束 243

问154 如何从二进制数据文件中读/写一组数据 243

例176 向二进制文件写入一组数据 244

例177 从二进制文件中读出数据 245

问155 如何将数据写入到文本文件中 246

例178 向文本文件中写入格式化数据 246

问156 如何从文本文件中读取具有一定格式的数据 248

例179 从文本文件中读出格式化数据 248

问157 如何控制文件的读/写位置 249

例180 文件读/写指针演示 249

问158 如何进行文本文件的随机读/写 250

例181 文本文件中数据的随机读/写 250

问159 如何进行二进制文件的随机读/写 251

例182 二进制文件中数据的随机读/写 252

例183 电子通讯录的排序 253

第13章 常见错误与程序调试 256

问160 计算机程序通常有哪几种错误 256

例184 分析以下程序中的错误 256

问161 如何防护程序中可能出现的各种错误 257

例185 分析以下程序的运行结果 257

问162 如何设计调试用例 258

例186 分析以下程序的运行结果 258

第14章 常用数据结构和算法 260

问163 什么是数据结构 260

问164 什么是线性表 261

例187 两个顺序线性表的归并 261

问165 malloc函数是如何使用的 262

例188 malloc函数使用实例 263

例189 动态分配内存空间应用实例 264

问166 什么是链表 265

例190 单链表的动态创建 265

问167 链表结点是如何删除的 267

例191 链表结点的删除 268

问168 链表是如何遍历的 270

例192 链表的遍历实例 270

问169 链表结点是如何插入的 273

例193 链表结点插入实例 274

例194 多项式求和 277

例195 飞机实时售票系统 279

问170 怎样计算从确定地点出发到其他各地方的最短路径 285

例196 求单个源点出发的最短路径实例 287

第15章 等级考试应试指导20问 290

问171 什么是全国计算机等级考试 290

问172 一年中考试几次?分别在何时开考 290

问173 NCRE是否可以越级考试 290

问174 NCRE如何计算考试成绩 290

问175 如何认定通过NCRE考试 290

问176 NCRE证书的有效期是多久 291

问177 二级C语言程序设计考试采取何种考试形式 291

问178 二级C语言程序设计笔试试卷有几种题型?题量有多大 291

问179 二级C语言笔试试卷考点及分数分布情况如何 292

问180 如何进行考前复习?复习准备过程分为几个阶段 293

问181 如何进行针对性地复习?有何复习技巧 294

问182 进入考场参加笔试考试应注意哪些事项 296

问183 二级C语言上机考试环境如何 296

问184 上机考试的考题有几种题型?题量有多大 297

问185 上机题主要考核哪些内容 297

问186 上机考试题中可能会考查哪些主要算法 298

问187 上机考试有何应试技巧 298

问188 上机考试应注意些什么 299

问189 上机考试是一个怎样的流程 300

问190 上机考试过程分几个阶段?如何操作 300

第16章 经典C语言面试问题和案例 304

题1 基本编程能力 304

题2 long a=0x801010;a+5= 305

题3 int i=10, j=10, k=3; k*=i+j; k最后的值是 305

题4 写出float x与“零值”比较的if语句 305

题5 -1,2,7,28,?,126请问28和126中间那个数是什么 305

题6 回答下列预处理器(Preprocessor)相关问题 305

题7 判断表达式是否正确 306

题8 计算sizeof()的值 307

题9 考考你是否真的掌握了循环语法 307

题10 阅读GetMemory函数,回答程序结果 307

题11 编写strcat字符串函数 310

题12 回答下列操作系统相关问题 310

题13 Linux有内核级线程吗 311

题14 C和C++有哪些区别 311

题15 调用动态链接库有哪两种方式 312

题16 static有什么用途 312

题17 引用与指针有什么区别 312

题18 你是否知道全局变量和局部变量的区别 312

题19 系统级程序员常见面试题 313

题20 写一个最简单的病毒,让机器溢出 313

题21 你是不是明白运算优先级 313

题22 回答下面关于static用法的问题 314

题23 考查存储空间大小sizeof() 314

题24 你看得懂带有函数指针的代码吗 315

题25 指出字符串相关代码使用方法的错误 316

题26 队列和栈有什么区别?数组和链表有何区别 317

题27 用两个栈实现一个队列的功能?要求给出算法和思路 317

题28 请回答进程和线程的区别 317

题29 线程是否具有相同的堆栈?DLL是否有独立的堆栈 317

题30 用宏写swap(x,y) 318

题31 写出宏Max(a,b) 318

题32 写一个“标准”宏,这个宏输入两个参数并返回较小的一个 318

题33 写一条语句实现x是否为2的若干次幂的判断 318

题34 指针和const使用综合题 318

题35 以下代码中的两个sizeof用法有问题吗 319

题36 一个32位的机器,该机器的指针是多少位 320

题37 Visual C++中,指针占用的空间多大 320

题38 写出下面代码的输出结果 320

题39 请问以下代码有什么问题 321

题40 字符串和指针查错 321

题41 测试你的指针应用能力 321

题42 你理解了const的用法吗 322

题43 函数swap(a,b)的实现 322

题44 快速简单地回答下面关于C++的常识 323

题45 如何强行跳转程序 323

题46 已知一个数组table,用一个宏定义,求出数据的元素个数 323

题47 int向unsigned int的转换 324

题48 char aa[10],strlen(aa)为什么等于15 324

题49 函数代码编写改错 324

题50 位域计算 325

题51 看代码,计算返回值 325

题52 如何处理溢出 326

题53 位域分析 326

题54 下面的代码有错吗2如果有,请改错 328

题55 为什么这个程序会有错 328

题56 为什么struct结构相同,内存中占用空间大小不同 329

题57 位域,struct和sizeof() 329

题58 使用相同名字的static变量可以吗 330

题59 如何输出源文件的标题和目前执行行的行数 330

题60 如何定位全局数组的写越界 331

题61 ++i与i++的区别有哪些 331

题62 全英文面试题 332