标题：程序设计基础实验教程（C语言）
图书信息
作者：钟梅、林雪明、张明、陆静 
图书详细信息：ISBN：9787302297376定价：25元印次：1-1装帧：平装印刷日期：2012-9-18
图书简介
本书以程序设计基础为中心，辅助学习程序设计的基本方法和基本原理。本书适用于那些拥有很少或没有编程经验的学习者，使初学编程的学生或爱好者能够循序渐进，逐步完成小型程序的编写，最终掌握程序设计方法并用C语言实现。本书共24个实验单元及1个综合项目演练单元。内容包含简单C程序、顺序程序设计、分支结构程序设计、循环结构、一维数组、二维数组、字符数组和字符串、函数、指针、结构体、链表、文件等章节，其中对于有一定难度的章节（如指针）有更细致的划分。本书强调标准化、软件工程思想、服务应用、程序通用方法，确立面向工程和应用的培养定位。本书适合作为本科和大专院校“程序设计基础”课程的C语言版实验教材，也适合程序设计自学者参考。
图书前言
【定位】“程序设计基础”是计算机专业、软件工程专业、电子信息类等专业的基础课程，目前C语言仍然是计算机领域的通用语言之一。本书是为大学本科阶段的“程序设计基础”课程编写的C语言版实验教材，配合“程序设计基础”理论教学，以程序设计基础为主，介绍程序设计的基本方法和基本理论，使初学编程的学生或爱好者能够循序渐进，最终掌握程序设计并用C语言实现的普遍方法。本书强调标准化、软件工程、服务应用、程序通用方法，不强调编程技巧，不追求大而全的知识面，确立面向工程和应用的培养定位。本书也非常适于作为其他一些课程的辅助用书。【内容提要】“程序设计基础”课程适用于那些拥有很少或没有编程经验的学生,本实验教程致力于使学生理解计算机在解决问题中的作用,并且帮助学生，不论其专业是什么，都能逐步建立信心以完成小型程序的编写。本书内容分为简单C程序、顺序程序设计、分支结构程序设计、循环结构、一维数组、二维数组、字符数组和字符串、函数、指针、结构体、链表、文件等章节，其中对于有一定难度的章节有更细致的划分，如指针等，具体请参考本书目录。【主要特色】(1) 简单易学的组织结构。强调循序渐进，针对有难度的主题，以螺旋式渐进方式组织主题，逐渐增加细节内容，并前后呼应。(2) 强调编程基础，弱化C语法特色。本课程主题在于程序设计的基本思想方法，虽然离不开C的语言特色，但不再致力于语法学习，摒弃常用的陷阱设计以及为了出题而出题的局限，努力致力于实用与实践。(3) 突出关键，择去旁枝。在实现同一种程序设计的方法较多时，不再追求大而全、面面俱到的学习方法，舍弃次要内容，选择最常用的一到两种，对比加强，用好用透即可。(4) 强调通用方法，弱化技巧。本教程试图采用通用规范的方法辅助学生学习并实践程序设计思想，而不是注重于技巧，并以范例的形式为学生解读个别经典的程序设计技巧。(5) 注重标准化，强调编写风格，强调软件工程思想。本教程注重以软件工程的思想进行程序设计，并逐步引导学生建立某种编程风格，坚持程序易读、可维护。(6) 选例适当，便于自学。每个实验通常有三个以上的典型例题，覆盖本实验的关键知识点。典型例题注解清晰，知识点明确易懂，风格良好，帮助学生掌握知识点。(7) Q&A解问答疑。每个实验中都有一个Q&A部分，汇集本实验相关的常见问题及其答案，对一些难以理解的问题予以进一步解释说明。
【培养目标及学习成果】本书介绍程序设计的基本方法和基本理论，及C语言实现，帮助学习者循序渐进地将程序设计方法运用于实践，使学习者逐步掌握运用软件工程的思想进行程序设计的能力，同时培养学生具备IT行业要求的职业素养，主动培养以下多方面的能力： 学习能力、问题描述能力、问题分析能力、选择合适的方法解决问题的能力、多种方案的比较能力、编码能力、测试能力、交流沟通能力、文档表达能力、模块复用能力等。1. 技能(1) 能够清楚软件工程思想解决问题的各个步骤，并行之有效地运用于程序设计。(2) 能够熟悉一些常用的算法，如辗转相除法、冒泡排序法、插入排序法、选择排序法、二分查找法等。(3) 具备一定的程序阅读与分析能力，以及对比分析能力。(4) 能够按照一定步骤进行程序设计。(5) 熟悉编译器，具备一定的程序调试能力。2. 分析问题的能力(1) 能够根据通用算法步骤合理划分子问题。(2) 能够对出现的问题予以讨论和分析，列出各种自行解决方案及结果，以便于分析并寻求解决方案。(3) 根据程序运行结果判别程序输出是否符合要求。3. 表达能力(1) 能够使用结构化程序设计思想，结合伪码、代码或者自然语言，正确描述一个简单的问题或小课题。(2) 能够使用自然语言描述问题。(3) 能够使用自然语言表达解决思路。(4) 能够用算法表述解决步骤。(5) 能够使用程序设计语言表达解决思路。4. 交流沟通能力(1) 能够向他人陈述问题和想法，并确认对方能够理解。(2) 能够耐心倾听他人的描述，理解其描述，并及时反馈。(3) 能够理解他人的问题，并陈述问题产生的原因和解决办法。5. 程序调试、测试能力(1) 编译器报错或警告时，能够理解出错或警告信息。(2) 能够根据编译器信息对源代码错误进行定位，修改后，再编译。(3) 能够单步调试程序。(4) 能够设计各种测试数据检验程序是否设计正确。【教学安排】本教程由24个实验单元和一个项目演练单元构成。但是实验单元序号并非线性排列，这是考虑到主题相同的知识单元，一次实验课未必能够掌握，比如循环结构，通常会对初学者构成一个关卡，于是我们根据教学经验和学生反馈拆分成为两个单元，即实验4?1和实验4?2，将双重循环等内容放在了实验4?2中。另如数组，也按照知识单元总章划分为实验5?1一维数组、实验5?2 二维数组，以及实验5?3字符数组和字符串。以后其他章节也如此安排，比如指针、结构体以及链表等。如果课程安排为5个学分，即实验课程为68个学时，抛去习题课和节假日冲突，则本教程基本对应于一课一练，即每次实验课一个实验单元。可一个学期使用，也可以拆分为两个学期使用。也可供其他学分安排的课程作为实验参考。项目演练可以作为学期综合大作业，也可以用于课程实践环节的内容，主旨是将所学的零散知识点有机组织起来，完成一个较具规模的综合应用型项目。本教程中有部分实验习题或实验单元有*号出现，意为选学或选做内容，学习者可以根据自己的学习能力和学习时间灵活安排。【学习策略】通过程序设计基础这门课程，希望培养学习者良好的学习习惯和职业素养。学习是一个循序渐进的过程，对初学者而言，内容均为新概念、新知识、新思维方式，若完全靠自己看书、阅读教材，可能比较艰苦，有一定的难度，有些内容甚至完全看不懂。学习没有捷径可走，学习者不要因为个别问题搞不懂，不能一下子掌握知识就望而生畏、停滞不前，有些内容需要有一个消化过程。学习者应充分利用各种资源，做好预习和复习工作，提高学习效率，再辅之以适当的独立学习时间，才能学好本课程，为后继专业学习打下坚实的基础。对平时学习内容结合实验教程反复思考，吃透每一知识点，深刻理解每一个基本概念、基本原理的要领。写程序从哪里开始？大多数新手看到问题或者题目后，立刻开始编码，然后调试程序，希望马上得到正确的结果。其实，这不是个好习惯。正确的方法是应用软件工程的思想分析和解决问题。有一个大致的算法分析或者解决步骤后，再进行编码，没有方案设计就进行编码，将增加无谓的调试时间。另外，需要注意合理分配学习时间，掌握学习节奏。一般地，在本课程学习活动中，每周应保持约10小时的学习时间，大致参考如下。理论课： 1.5小时上机实践： 1.5小时课后自习： 7小时【致谢】首先，要感谢清华大学出版社，感谢出版社对书稿改版的支持和理解，以及对书稿所做的文字编辑工作。本书的形成是教学过程逐渐累积的过程，感谢曾经一起工作的同事贺贯中、胡明庆，他们严谨的治学态度，以及针对学生特色对教材的定制和裁剪方法对本书产生了比较重要的影响。感谢一同工作在同一课程及后继课程的各位老师： 姚畅、应新洋、江左文、周国兵、刘慰、高巍、聂琰、孙霞、胡旭昶、蒋伟钢等，他们为本书贡献了大量有价值的反馈信息和修改建议，同时感谢袁一峰、徐丽宁和蔡丽雅等给予的热情支持。感谢学院主管部门领导赵一鸣、杨相生和张战等给予的支持和鼓励。感谢众多的学生，他们使用了早期的书稿，并提供了大量的反馈信息，帮助作者更好地调整知识结构和出题策略，感谢历年来参与辅助答疑的学生助教们。感谢陈晓、林榆竣、胡启渊、周亮等帮助编写并调试程序。此外，本教程受到2009年度宁波大学科学技术学院计算科学与技术省重点建设专业项目、2010年度宁波大学教材建设项目以及2010年度宁波大学科学技术学院软件工程重点专业建设项目资助。
编者
2012年6月
图书目录
实验1简单C程序
【知识点回顾】
【典型例题】
【Q&A】
【实验内容】
【课后练习】
实验2顺序结构
【知识点回顾】
【典型例题】
【Q&A】
【实验内容】
【课后练习】
实验3分支结构
【知识点回顾】
【典型例题】
【Q&A】
【实验内容】
【课后练习】
实验4?1循环结构
【知识点回顾】
【典型例题】
【Q&A】
【实验内容】
【课后练习】
实验4?2循环结构
【知识点回顾】
【典型例题】
【Q&A】
【实验内容】
【课后练习】
实验5?1一维数组
【知识点回顾】
【典型例题】
【Q&A】
【实验内容】
【课后练习】
实验5?2二维数组
【知识点回顾】
【典型例题】
【Q&A】
【实验内容】
【课后练习】
实验5?3字符数组和字符串
【知识点回顾】
【典型例题】
【Q&A】
【实验内容】
【课后练习】
实验6?1函数
【知识点回顾】
【典型例题】
【Q&A】
【实验内容】
【课后练习】
实验6?2函数
【知识点回顾】
【典型例题】
【Q&A】
【实验内容】
【课后练习】
实验6?3函数
【知识点回顾】
【典型例题】
【Q&A】
【实验内容】
【课后练习】
实验7?1指针基本概念
【知识点回顾】
【典型例题】
【Q&A】
【实验内容】
【课后练习】
实验7?2指针与一维数组
【知识点回顾】
【典型例题】
【Q&A】
【实验内容】
【课后练习】
实验7?3指针与二维数组
【知识点回顾】
【典型例题】
【Q&A】
【实验内容】
【课后练习】
实验7?4指针与字符数组
【知识点回顾】
【典型例题】
【Q&A】
【实验内容】
【课后练习】
实验7?5其他指针
【知识点回顾】
【典型例题】
【Q&A】
【实验内容】
【课后练习】
实验8?1结构体
【知识点回顾】
【典型例题】
【Q&A】
【实验内容】
【课后练习】
实验8?2结构体
【知识点回顾】
【典型例题】
【Q&A】
【实验内容】
【课后练习】
实验9?1链表初步
【知识点回顾】
【典型例题】
【Q&A】
【实验内容】
【课后练习】
实验9?2单链表
【知识点回顾】
【典型例题】
【Q&A】
【实验内容】
【课后练习】
实验9?3单链表
【知识点回顾】
【典型例题】
【Q&A】
【实验内容】
【课后练习】
实验9?4其他链表
【知识点回顾】
【典型例题】
【Q&A】
【实验内容】
【课后练习】
实验10文件
【知识点回顾】
【典型例题】
【Q&A】
【实验内容】
【课后练习】
实验11*预处理
【知识点回顾】
【典型例题】
【Q&A】
【课后练习】
实验12项目演练
【学生信息管理系统】
【图书借阅管理系统】
参考文献[1]