出版时间:2009-8 出版社:西安电子科技大学出版社 作者:杨俊清 编 页数:199
前言
本书是按照高等学校基础教育改革的要求,由西安航空技术高等专科学校计算机工程系组织编写的。 程序设计技术是信息技术人员的基本功。随着计算机技术的进步和高校教学改革的不断深入,C语言由原来计算机专业高年级学生学习的专业课程,逐渐变成了低年级学生学习程序设计的入门课程、基础课程。教学目的和教学对象的变化,要求必须对这门课程的教学内容和教学方法进行改革。我系近年来在这方面进行了有益的尝试,对改革的成果进行了总结和提炼,编写了这本教材。 本书以《程序设计基础》命名,是为了突出这门课程作为入门性课程的特点。在这门课程中,核心是程序设计的基本思想和方法。但思想和方法又不能凭空存在,必须以某种方式表达出来,C语言是表达这种思想和方法的一种非常优秀的工具。本书以C语言的语法为线索,逐渐地融入程序设计的基础知识,使学生在学习C语言的过程中,潜移默化地接受、理解和掌握程序设计的基本思想和方法。当然,作为入门性的课程,也不能期望在这门课程中解决所有的问题。因此,在本书中,我们只介绍最基本的、学生能够理解和掌握的程序设计思想和方法,而程序设计中一些经典的思想和方法,留到其他课程中去解决。 本书还有一个特点,就是把c语言中应用最灵活、学生学习时感觉难度最大的指针进行了分解。在书中,我们把指针的相关知识,按照它的作用分解到各个章节中。这样不但分散了难点,而且使学生知道什么时候必须使用指针,该如何使用指针。解决了指针这个难点,C语言的教学就成功了一半。 本书由杨俊清教授任主编,负责全书的组织和统稿工作,并编写了第1章。石锋担任副主编,并编写了第7章。参加编写的人员还有:程传旭,编写了第2、3章;陈庆荣,编写了第4章;张少应,编写了第5章;彭寒,编写了第6章;王建,编写了第8、9章;曹国震,编写了第10章。 由于作者水平有限,书中疏漏之处在所难免,恳请读者批评指正。
内容概要
《程序设计基础(C语言)》是为了适应高职高专教学改革的需要而编写的,全书主要内容包括C程序的结构,算法及算法的描述,c语言基础,流程控制语句,函数,数组,结构体、共用体和枚举类型,文件等,较全面地反映了c语言的全貌。《程序设计基础(C语言)》在内容的组织上打破了同类教材的传统结构,突出了重点,分散了难点。主要表现在:一是将编译预处理和位运算并入c语言基础,降低了教学要求;二是将指针的相关知识以应用为原则,分散到相关章节中,便于学生学习和掌握。同时,《程序设计基础(C语言)》内容完全覆盖了“全国计算机等级考试(二级C)考试大纲”中C语言部分的知识点,并且在习题中选入部分历年考试的原题,为学习者参加全国计算机等级考试提供帮助。 《程序设计基础(C语言)》可以作为高职高专类学校计算机专业的教材,也适合有关人员自学使用。
书籍目录
第1章 程序设计概述1.1 程序工作原理1.1.1 冯·诺伊曼原理1.1.2 计算机的构成原理1.2 程序设计语言1.2.1 程序设计语言的发展1.2.2 典型高级语言1.2.3 程序设计语言发展趋势1.3 算法概述1.4 c语言程序设计1.4.1 C语言的发展历史1.4.2 C语言的特点1.4.3 c语言程序基本结构1.4.4 C语言程序的开发环境习题第2章 C语言基础2.1 标识符与关键字2.2 简单数据类型2.2.1 常量与变量2.2.2 整型2.2.3 实型2.2.4 字符型2.2.5 不同类型数据的混合运算2.3 简单计算2.3.1 算术运算与算术表达式2.3.2 赋值运算符与赋值表达式2.3.3 自加、自减和逗号运算习题第3章 顺序结构程序设计3.1 c语句概述3.1.1 C程序基本结构3.1.2 C语句分类3.1.3 c结构化程序设计3.2 数据的输入与输出3.2.1 printf函数3.2.2 scanf函数3.2.3 其他输入腧出函数3.3 编译预处理命令3.3.1 宏定义3.3.2 文件包含3.3.3 条件编译3.4 函数简介3.4.1 函数定义和调用的一般方法3.4.2 库函数的调用3.5 顺序结构程序设计举例习题第4章 选择程序设计4.1 关系运算和逻辑运算4.1.1 关系运算符和关系表达式4.1.2 逻辑运算符和逻辑表达式4.2 分支流程控制语句4.2.1 if语句4.2.2 switch语句4.2.3 条件运算符4.3 选择语句的嵌套4.4 选择结构程序设计举例习题第5章 循环结构程序设计5.1 循环流程控制语句5.1.1 while语句5.1.2 do-while语句5.1.3 for语句5.2 循环嵌套5.3 break语句和continue语句5.3.1 break语句5.3.2 continue语句5.4 循环结构程序设计举例5.4.1 穷举5.4.2 迭代习题第6章 函数6.1 函数的定义和调用6.1.1 函数概述6.1.2 函数的定义6.1.3 函数的调用6.2 函数问地址的传递6.2.1 指针的概念6.2.2 指针变量6.2.3 指针变量的对象6.2.4 函数间传递地址6.3 函数间函数的传递6.3.1 函数的地址6.3.2 指向函数的指针变量6.3.3 在函数之间传递函数6.4 函数的递归调用6.5 变量的作用域6.5.1 内部变量6.5.2 外部变量6.5.3 内部函数和外部函数6.6 变量的存储属性6.6.1 变量及其存储属性6.6.2 动态内部变量和静态内部变量习题第7章 数组7.1 一维数组7.1.1 数组概述7.1.2 一维数组的定义和初始化7.1.3 一维数组元素的引用7.1.4 简单排序算法7.2 函数问一维数组的传递7.2.1 一维数组元素地址的表示7.2.2 利用指针变量访问一维数组7.2.3 在函数间传递一维数组7.3 二维数组7.3.1 二维数组的定义和初始化7.3.2 二维数组元素的引用7.4 函数问二维数组的传递7.4.1 二维数组元素的地址表示法7.4.2 利用行指针变量访问二维数组元素7.4.3 函数之问二维数组的传递习题第8章 字符串8.1 字符串8.1.1 字符串常量8.1.2 字符串的存储8.1.3 字符串的表示8.2 函数间字符串的传递8.2.1 单个字符串的传递8.2.2 多个字符串的传递8.2.3 main函数的参数8.2.4 字符串处理函数习题第9章 结构体、共用体和枚举类型9.1 结构体9.1.1 结构体的类型定义9.1.2 结构体数据的定义和引用9.2 单链表9.2.1 动态存储分配9.2.2 单链表概述9.2.3 单链表的基本操作9.3 共用体和枚举类型9.3.1 共用体9.3.2 枚举类型9.4 typedef定义类型习题第10章 文件10.1 文件概述10.1.1 文件和文件指针10.1.2 文件操作的一般过程10.1.3 文件的打开与关闭10.2 文件的读写10.2.1 fprintf和fscanf函数10.2.2 fputc和fgetc函数10.2.3 fputs和fgets函数10.2.4 fwrite和fread函数10.3 文件定位10.3.1 rewind函数10.3.2 fseek函数习题附录A 常用字符ASCII代码表附录B 运算符的优先级和结合性附录C 标准库函数
章节摘录
(3)健壮性:正确的输入能得到正确的输出,这是算法必须具有的特性之一。但当遇到非法输入时,算法应能做出反应或处理(如提示信息等),而不会产生不需要的或不正确的结果。 例如,在算法中总是采用较简单的方法以及模块化函数以增强算法的易读性;采用步骤较少的求解方法以提高算法的时间效率;对可能发生的各种现象及输入形式给出应对措施以提高算法的健壮性。 要确定一个算法是适合的、“好”的算法,就需要进行算法分析。算法分析的两个主要方面是分析算法的时间效率和空间效率,目的是以求改进算法或对不同的算法进行比较。鉴于目前情况下运算空间较为充足,我们把算法的时间效率分析作为主要内容。 算法运行的时间分析和程序运行的时间分析是有区别的。同一算法由不同的程序员所编写的程序有优劣之分,程序运行的时间也就有所不同;程序在不同的机器上运行的速度又和机器本身的速度有关。而我们感兴趣的是对解决问题的算法作时间上的度量分析,或对解决同一问题的两种或两种以上的算法运行时问加以比较。
图书封面
评论、评分、阅读与下载