第1章 程序员试题历年考试情况分析 1
1.1上午题历年试题及考点分析 1
1.2下午题历年试题及考点分析 2
1.2.1 2000年至2009年试题 2
1.2.2命题方向的变化及分析 7
1.3个人经验及应试建议 9
1.3.1作者辅导经验 9
1.3.2应试建议 10
1.3.3解题方法 10
第2章 计算机科学基础 14
2.1考纲要求与学习目标 14
2.1.1考纲要求 14
2.1.2学习目标 14
2.2数制及其转换 14
2.2.1数制的概念 14
2.2.2数制转换 15
2.3数据的表示 17
2.3.1原码、反码和补码 17
2.3.2数值数据的表示 19
2.3.3非数值数据的表示 22
2.3.4检错纠错码 24
2.4算术运算和逻辑运算 27
2.4.1算术运算 27
2.4.2逻辑运算 28
2.5数据结构与算法 29
2.5.1常用数据结构 29
2.5.2常用算法 30
2.6本章历年例题及自我测试 31
2.6.1历年例题分析 31
2.6.2自我测试 48
2.6.3测试解答 51
第3章 计算机系统基础知识 59
3.1考纲要求与学习目标 59
3.1.1考纲要求 59
3.1.2学习目标 59
3.2硬件基础知识 60
3.2.1计算机系统概述 60
3.2.2计算机类型 61
3.2.3中央处理器 62
3.2.4指令系统 62
3.2.5主存和辅存 63
3.2.6 I/O接口和I/O设备 68
3.3操作系统基础知识 73
3.3.1操作系统的定义和目标 73
3.3.2操作系统的类型和功能 74
3.3.3处理机管理 75
3.3.4存储管理 88
3.3.5文件管理 95
3.3.6设备管理 104
3.3.7作业管理 112
3.3.8汉字处理 117
3.4程序设计语言基础 119
3.4.1计算机语言概念 119
3.4.2程序设计语言基础知识 120
3.5网络基础知识 122
3.5.1计算机网络概述 122
3.5.2网络拓扑结构 123
3.5.3 ISO/OSI网络体系结构 125
3.5.4网络互联设备 127
3.5.5 Internet 131
3.6数据库基础知识 132
3.6.1数据库概述 132
3.6.2数据模型 133
3.6.3数据库系统 133
3.6.4关系数据库与关系运算 134
3.6.5关系数据库SQL语言简介 139
3.6.6数据库设计 143
3.7多媒体基础知识 148
3.7.1多媒体的基本概念 148
3.7.2音频技术 148
3.7.3图形和图像技术 150
3.7.4动画和视频技术 155
3.8本章历年例题及自我测试 161
3.8.1历年例题分析 161
3.8.2自我测试 232
3.8.3测试解答 237
第4章 软件工程和运行维护基础知识 250
4.1考纲要求与学习目标 250
4.1.1考纲要求 250
4.1.2学习目标 250
4.2软件工程基本概念 250
4.2.1软件工程与项目管理基础 250
4.2.2软件开发项目管理基础知识 251
4.2.3软件工具与软件开发环境 251
4.2.4软件过程能力评估 252
4.3面向对象技术基础 252
4.3.1面向对象的基本概念 252
4.3.2面向对象分析与设计基本概念 253
4.4系统分析与设计基础知识 254
4.4.1系统分析概述 254
4.4.2结构化分析方法 254
4.4.3系统分析报告 254
4.4.4系统设计 255
4.4.5结构化设计方法 255
4.4.6系统总体结构设计 256
4.4.7系统详细设计 257
4.5软件测试技术 257
4.5.1人工测试 257
4.5.2机器测试 258
4.5.3软件测试步骤 258
4.6系统运行和维护知识 259
4.6.1系统维护概述 259
4.6.2系统评价 260
4.6.3系统运行管理 261
4.7软件质量管理与质量保证 262
4.7.1软件质量特性 262
4.7.2软件质量保证 263
4.8本章历年例题及自我测试 263
4.8.1历年例题分析 263
4.8.2自我测试 277
4.8.3测试解答 292
第5章 计算机安全基本知识 294
5.1考纲要求与学习目标 294
5.1.1考纲要求 294
5.1.2学习目标 294
5.2计算机安全概述 294
5.2.1计算机安全的基本概念 294
5.3计算机病毒防范技术 298
5.3.1计算机病毒概述 298
5.3.2计算机病毒的危害及防范 301
5.3.3计算机犯罪 302
5.4网络安全技术 304
5.4.1网络安全基本知识 304
5.4.2防火墙技术 305
5.4.3入侵检测技术 307
5.4.4 VPN技术 310
5.5信息安全技术与PKI 311
5.5.1加密与解密技术基础知识 311
5.5.2常用加密算法 312
5.5.3 PKI 313
5.6本章历年例题及自我测试 314
5.6.1历年例题分析 314
5.6.2自我测试 320
5.6.3测试解答 321
第6章 标准化基础知识 322
6.1考纲要求与学习目标 322
6.1.1考纲要求 322
6.1.2学习目标 322
6.2标准化概述 322
6.3各种标准基础知识 324
6.3.1标准的分类 324
6.3.2标准的编号 324
6.4软件标准化基础知识 325
6.4.1软件工程标准化 325
6.4.2软件文档标准 328
6.5标准化机构 329
6.6本章历年例题及自我测试 332
6.6.1历年例题分析 332
6.6.2自我测试 337
6.6.3测试解答 337
第7章 信息化基本知识 339
7.1考纲要求与学习目标 339
7.1.1考纲要求 339
7.1.2学习目标 339
7.2信息化概述 339
7.2.1信息的定义及其特性 339
7.2.2信息化 340
7.2.3信息化对组织的意义 342
7.3电子商务 345
7.3.1电子商务 345
7.3.2企业信息化与电子商务 346
7.4电子政务 350
7.5信息资源的管理 353
7.6信息化有关的政策、法规和标准 354
7.7本章历年例题及自我测试 355
7.7.1历年例题分析 355
7.7.2自我测试 357
7.7.3测试解答 357
第8章 计算机专业英语 358
8.1考纲要求与学习目标 358
8.1.1考纲要求 358
8.1.2学习目标 358
8.2本章历年例题及自我测试 358
8.2.1历年例题分析 358
8.2.2自我测试 369
8.2.3测试解答 371
第9章 C语言 374
9.1考纲要求与学习目标 374
9.1.1考纲要求 374
9.1.2学习目标 374
9.2 C语言简介及常用的算法描述方法 374
9.2.1 C语言简介 374
9.2.2常用的算法描述方法 377
9.2.3结构化程序设计方法 382
9.2.4历年例题分析 383
9.2.5自我测试 390
9.2.6测试解答 395
9.3数据类型、运算符与表达式 400
9.3.1 C语言的数据类型 400
9.3.2常量与变量 400
9.3.3 C语言的运算符与表达式 400
9.3.4历年例题分析 402
9.3.5自我测试 404
9.3.6测试解答 405
9.4顺序结构程序设计 405
9.4.1 C语言的语句 406
9.4.2输入与输出 406
9.4.3历年例题分析 407
9.4.4自我测试 408
9.4.5测试解答 409
9.5选择结构程序设计 409
9.5.1关系运算符和关系表达式 409
9.5.2逻辑运算符和逻辑表达式 410
9.5.3 if语句 411
9.5.4 switch语句 412
9.5.5条件运算符 413
9.5.6历年例题分析 413
9.5.7自我测试 417
9.5.8测试解答 418
9.6循环结构程序设计 420
9.6.1 while语句 420
9.6.2 do-while语句 421
9.6.3 for语句 421
9.6.4循环嵌套及其比较 422
9.6.5 break和continue语句 422
9.6.6历年例题分析 423
9.6.7自我测试 427
9.6.8测试解答 428
9.7数组 432
9.7.1一维数组 432
9.7.2二维数组 432
9.7.3字符数组 433
9.7.4字符串处理函数 433
9.7.5历年例题分析 435
9.7.6自我测试 445
9.7.7测试解答 446
9.8函数 451
9.8.1函数的定义 451
9.8.2函数的划分 452
9.8.3函数的值和函数的参数 452
9.8.4函数调用 453
9.8.5数组作为函数参数 453
9.8.6局部变量和全局变量 454
9.8.7历年例题分析 454
9.8.8自我测试 464
9.8.9测试解答 465
9.9指针 468
9.9.1指针基本概念 468
9.9.2变量的指针和指向变量的指针变量 468
9.9.3数组的指针和指向数组的指针变量 469
9.9.4字符串指针及指向字符串的指针变量 470
9.9.5指针作为函数参数 470
9.9.6函数的指针和指向函数的指针变量 472
9.9.7返回指针的函数 473
9.9.8指针数组和指向指针的指针 473
9.9.9历年例题分析 474
9.9.10自我测试 480
9.9.11测试解答 481
9.10结构体与共用体 482
9.10.1结构体的定义 482
9.10.2结构体变量的定义、初始化及引用 483
9.10.3结构体数组 485
9.10.4指向结构体的指针 486
9.10.5链表 488
9.10.6历年例题分析 488
9.10.7自我测试 489
9.10.8测试解答 489
9.11位运算 490
9.11.1位运算概念 490
9.11.2历年例题分析 490
9.11.3自我测试 490
9.11.4测试解答 491
9.12文件 491
9.12.1文件操作基本步骤 491
9.12.2文件读写 493
9.12.3文件的定位 495
9.12.4历年例题分析 495
9.12.5自我测试 495
9.12.6测试解答 499
第10章 线性表 500
10.1考纲要求与学习目标 500
10.1.1考纲要求 500
10.1.2学习目标 500
10.2线性表的概念、存储结构及基本操作 500
10.2.1线性表的概念 500
10.2.2线性表的顺序存储结构 501
10.2.3线性表的基本操作 501
10.2.4历年例题分析 504
10.2.5自我测试 508
10.2.6测试解答 509
10.3单链表 511
10.3.1线性表的链式存储结构 511
10.3.2带头结点与不带头结点的区别 512
10.3.3单链表的基本操作 513
10.3.4历年例题分析 515
10.3.5自我测试 529
10.3.6测试解答 530
10.4循环链表 538
10.4.1循环链表的概念 538
10.4.2历年例题分析 539
10.4.3自我测试 540
10.4.4测试解答 540
10.5双向链表 541
10.5.1双向链表的定义 541
10.5.2双向链表的插入与删除操作 541
10.5.3双向链表的基本操作 542
10.5.4历年例题分析 545
10.5.5自我测试 545
10.5.6测试解答 545
10.6双向循环链表 545
10.6.1双向循环链表的概念 545
10.6.2历年例题分析 546
10.6.3自我测试 548
10.6.4测试解答 549
第11章 栈和队列 551
11.1考纲要求与学习目标 551
11.1.1考纲要求 551
11.1.2学习目标 551
11.2栈的概念及存储结构 551
11.21栈的定义及特点 551
11.2.2栈的存储结构 551
11.2.3历年例题分析 553
11.2.4自我测试 554
11.2.5测试解答 555
11.3栈的基本操作 555
11.3.1顺序栈的基本操作 555
11.3.2链式栈的基本操作 557
11.3.3历年例题分析 558
11.3.4自我测试 566
11.3.5测试解答 568
11.4队列的概念及存储结构 570
11.4.1队列的概念 570
11.4.2队列的存储结构 570
11.4.3历年例题分析 572
11.4.4自我测试 574
11.4.5测试解答 575
11.5队列的基本操作 575
11.5.1循环队列的基本操作 575
11.5.2链式队列的基本操作 576
11.5.3历年例题分析 578
11.5.4自我测试 583
11.5.5测试解答 583
第12章 数组 587
12.1考纲要求与学习目标 587
12.1.1考纲要求 587
12.1.2学习目标 587
12.2数组及多维数组的概念 587
12.2.1数组的概念 587
12.2.2历年例题分析 588
12.2.3自我测试 599
12.2.4测试解答 601
12.3矩阵 602
12.3.1矩阵定义及地址计算 602
12.3.2矩阵的常见操作 602
12.3.3几种特殊的矩阵 603
12.3.4历年例题分析 604
12.3.5自我测试 607
12.3.6测试解答 608
第13章 串 612
13.1考纲要求与学习目标 612
13.1.1考纲要求 612
13.1.2学习目标 612
13.2串的概念及顺序存储结构 612
13.2.1串的概念 612
13.2.2串的顺序存储结构 613
13.2.3顺序串的基本操作 613
13.2.4历年例题分析 615
13.2.5自我测试 622
13.2.6测试解答 623
13.3串的链式存储结构 627
13.4模式匹配算法 627
13.4.1模式匹配的概念 627
13.4.2匹配的简单算法及实现程序 627
13.4.3改进的算法 628
第14章 树和二叉树 629
14.1考纲要求与学习目标 629
14.1.1考纲要求 629
14.1.2学习目标 629
14.2树的概念、性质和存储结构 629
14.2.1树的概念 629
14.2.2树的性质 630
14.2.3历年例题分析 630
14.3二叉树的概念及基本操作 632
14.3.1二叉树的概念 632
14.3.2二叉树的性质 633
14.3.3二叉树的存储结构 633
14.3.4二叉树的遍历 636
14.3.5二叉树的基本运算 636
14.3.6森林和树的转换 638
14.3.7历年例题分析 639
14.3.8自我测试 645
14.3.9测试解答 646
14.4二叉树的遍历 648
14.4.1遍历的方法 648
14.4.2遍历的递归算法 648
14.4.3遍历的非递归算法 649
14.4.4二叉树层次遍历 652
14.4.5历年例题分析 653
14.4.6自我测试 658
14.4.7测试解答 660
14.5二叉查找树 664
14.5.1二叉查找树的概念 664
14.5.2二叉排序树的查找 665
14.5.3二叉排序树的结点插入 665
14.5.4二叉排序树的结点及删除 667
14.5.5历年例题分析 668
14.5.6自我测试 673
14.5.7测试解答 675
第15章 排序和查找 679
15.1考纲要求与学习目标 679
15.1.1考纲要求 679
15.1.2学习目标 679
15.2插入排序和冒泡排序 679
15.2.1冒泡排序 679
15.2.2插入排序 680
15.2.3历年例题分析 681
15.3快速排序、希尔排序 686
15.3.1快速排序 686
15.3.2希尔排序 687
15.3.3历年例题分析 688
15.4归并排序、选择排序 689
15.4.1归并排序 689
15.4.2选择排序 690
15.4.3历年例题分析 691
15.5顺序查找、二分查找 692
15.5.1顺序查找 692
15.5.2二分查找 692
15.5.3历年例题分析 693
15.6二叉排序树的查找 694
第16章 常用算法及解题思路 695
16.1考纲要求与学习目标 695
16.1.1考纲要求 695
16.1.2学习目标 695
16.2数值计算方法 695
16.2.1迭代法 696
16.2.2历年例题分析 697
16.3递归算法 698
16.3.1递归调用 698
16.3.2历年例题分析 703
16.3.3自我测试 713
16.3.4测试解答 714
16.4递推算法 717
16.4.1递推算法 717
16.5回溯算法 717
16.5.1回溯算法 717
16.6其他算法 720
16.6.1最小生成树 720
16.6.2拓扑排序 723
16.6.3单源点最短路径求解算法 725
16.7压缩算法 727
16.7.1压缩算法 727
16.7.2历年例题分析 729
第17章 Java程序设计 733
17.1考纲要求与学习目标 733
17.1.1考纲要求 733
17.1.2学习目标 733
17.2 Java开发环境 733
17.2.1 Java语言开发环境 733
17.2.2 Java程序的编写和运行 735
17.3基础语法 736
17.3.1标识符 736
17.3.2关键字 736
17.3.3分隔符 736
17.3.4数据类型 737
17.3.5运算符与表达式 737
17.3.6流程控制 741
17.4类的定义及应用 746
17.4.1面向对象的基础知识 746
17.4.2类及其相关内容的定义 748
17.5封装与继承 755
17.5.1封装 755
17.5.2继承 756
17.5.3多态性 758
17.5.4其他关键字 759
17.6抽象类和接口 762
17.7异常 766
17.7.1 Java异常处理的基础知识 766
17.7.2异常类的产生、捕获与处理 766
17.7.3异常的分类 769
17.7.4抛出异常 770
17.8例题分析 774
参考文献 781