北京大学ACM程序设计教程

需积分: 19 0 下载量 150 浏览量 更新于2024-09-23 收藏 1.71MB PDF 举报
"程序设计导引及在线实践" 是一本由北京大学信息科学技术学院的李文新、郭炜、余华山编写的教材,主要针对ACM竞赛和程序设计初学者,旨在引导读者理解和掌握C/C++语言的基础知识,并提供在线实践的指导。 该书涵盖了程序设计的多个核心概念,包括: 1. **C/C++语言概述**:介绍了C/C++语言的基本框架,让读者了解程序的基本结构。 2. **变量**:详细讲解了变量的定义、赋值和引用,是理解程序中数据存储的关键。 3. **数据类型**:涵盖C/C++中的基本数据类型,如整型、浮点型、字符型等。 4. **常量**:介绍了不同类型的常量,包括数值常量、字符常量和字符串常量。 5. **运算符和表达式**:包括算术运算符、赋值运算符、关系运算符、逻辑运算符和位运算符,这些是构建程序逻辑的基础。 6. **注释**:讲解如何在代码中添加注释,提高代码可读性。 7. **分支语句**:讲解了if语句和switch语句,用于实现条件控制。 8. **循环语句**:包括for、while和do-while循环,以及break和continue语句,用于重复执行代码块。 9. **函数**:介绍了函数的定义、调用、参数传递和返回值,以及库函数和头文件的使用。 10. **标准输入输出**:讲解了printf和scanf函数,用于程序的输入输出操作。 11. **全局变量和局部变量**:区分两种变量的作用域和生命周期。 12. **数组**:涉及一维和二维数组,以及数组的初始化和越界问题。 13. **字符串**:包含字符串常量的使用和字符数组表示的字符串,以及与指针的交互。 14. **指针**:深入解析指针的概念、运算、空指针、多级指针、指针和数组、字符串和指针、void指针以及函数指针的应用。 15. **动态内存分配**:介绍使用malloc和free进行内存的动态分配和释放,以及指针在此过程中的作用。 16. **结构**:讲解了结构体的定义、访问成员变量、初始化、结构数组、结构指针以及动态分配结构变量和数组。 17. **文件读写**:介绍了文件操作的基础,如fopen、fclose、fread、fwrite等函数,用于数据的持久化存储。 通过这本书,读者不仅可以学习到C/C++语言的基础知识,还能了解到程序设计的基本思想和方法,同时结合在线实践,能够提升编程能力和解决问题的能力。对于想要参加ACM竞赛或学习程序设计的人来说,这是一份非常实用的学习资料。