C语言是在当今软件开发领域中应用十分广泛的一种语言。本书全面介绍C语的基本概念、数据类型、语句及结构特点,系统地讲述C语言程序设计的基本思想和方法。为配合C语言上机操作学习,书后附录中提供各章节的实验内容,并提供VC 2010编程环境的上机使用图例,同时还在出版社的网站上提供电子版教学资料。全书选材先进,内容丰富,讲述力求理论联系实际、深入浅出、循序渐进,注重培养读者的程序设计能力及良好的程序设计风格与习惯。
前 言<br/>C语言概念简洁,数据类型丰富,表达能力强,运算符多而灵活,程序结构性和可读性好,有利于培养良好的编程风格,易于体现结构化程序设计思想。C语言既具有高级语言程序设计的特点,又具有汇编语言的功能;既能有效地进行算法描述,又能对硬件直接进行操作;既适合于编写应用程序,又适合于开发系统软件,是当今世界上应用最广泛、最具影响力的程序设计语言之一。C语言本身还具有整个语言紧凑整齐、设计精巧、编辑方便、编译与目标代码运行效率高、操作简便、使用灵活等许多鲜明的特点,其扩充的图形、彩色、窗口等功能及高效的集成开发环境尤其赢得了广大用户的喜爱,得到了广泛应用。<br/>本书全面介绍C语言的概念、特性和结构化程序设计方法。全书共分13章。第1章介绍C语言程序设计的基本知识;第2章介绍C语言的基本数据类型、常量和变量;第3章介绍C语言的运算符与表达式;第4章、第5章、第6章介绍使用C语言进行结构化程序设计的基本方法,包括顺序结构、分支结构、循环结构及其设计方法;第7章、第8章介绍C语言中数组和函数的使用;第9章、第10章介绍编译预处理、指针;第11章详细介绍结构体、共用体;第12章介绍C语言的文件操作;第13章介绍位运算。附录A提供10个实验内容及VC 2010版C语言编程环境的使用方法(全国计算机等级考试使用该环境,方便考生参加计算机等级考试);附录B介绍全国计算机二级考试公共基础知识要点;附录C介绍C语言库函数;附录D介绍字符的ASCII码表。<br/>需要说明的是,由于C语言课程的学时较少,书中加星号的章节,请读者自学。<br/>本书是作者根据多年来从事C语言及计算机专业相关课程的教学实践,在多次编写讲义、教材的基础上编写而成的,内容充实,循序渐进,选材上注重系统性、先进性、实用性。全书精选大量例题,且都用汉字注释,所有例题均已上机通过,可直接引用;书中的例题提供了非常直观的操作和运行结果,为C语言上机操作提供方便。<br/>本书由吉林建筑大学电气与计算机学院郭秀娟、于全通担任主编,王抵修担任副主编。在本书的写作过程中,得到了多位一线授课教师的大力支持和帮助,在此表示衷心感谢。<br/>由于作者水平有限,加之时间仓促,书中错误和不当之处在所难免,敬请读者批评指正。<br/><br/><br/>编者 <br/>2019年3月 <br/>
郭秀娟,女,吉林建筑大学教授,本科毕业于长春地质学院应用地球物理系,博士毕业于吉林大学地球探测与信息技术学院,长期从事计算机专业的教学与研究工作。
目 录<br/>第1章 C语言概述1<br/>1.1 C语言的发展与特点1<br/>1.1.1 C语言的发展1<br/>1.1.2 C语言的特点2<br/>1.2 C语言的字符集与标识符3<br/>1.3 程序举例4<br/>1.4 本章小结7<br/>习题8<br/>第2章 C语言数据类型9<br/>2.1 数据类型9<br/>2.2 常量9<br/>2.2.1 整型常量9<br/>2.2.2 实型常量10<br/>2.2.3 字符常量11<br/>2.2.4 字符串常量12<br/>2.2.5 符号常量13<br/>2.3 变量13<br/>2.3.1 整型变量14<br/>2.3.2 实型变量17<br/>2.3.3 字符变量18<br/>2.3.4 变量赋初值20<br/>2.4 本章小结20<br/>习题21<br/>第3章 C语言的运算符与表达式22<br/>3.1 C运算符简介22<br/>3.1.1 C运算符的种类22<br/>3.1.2 C语言运算符的优先级及结合性23<br/>3.2 算术运算24<br/>3.2.1 算术运算符24<br/>3.2.2 自增、自减运算符25<br/>3.3 不同类型数据间的混合运算与类型转换27<br/>3.4 赋值运算符和赋值表达式29<br/>3.5 逗号运算符和逗号表达式31<br/>3.6 本章小结31<br/>习题32<br/>第4章 顺序结构程序设计33<br/>4.1 C程序中的语句33<br/>4.2 赋值语句35<br/>4.3 数据的输入/输出36<br/>4.3.1 字符数据的输入/输出36<br/>4.3.2 格式输出函数38<br/>4.3.3 格式输入函数41<br/>4.4 程序举例46<br/>4.5 本章小结48<br/>习题48<br/>第5章 分支结构程序设计50<br/>5.1 关系运算符和表达式50<br/>5.1.1 关系运算符及其优先次序50<br/>5.1.2 关系表达式50<br/>5.2 逻辑运算符和表达式51<br/>5.2.1 逻辑运算符及其优先次序51<br/>5.2.2 逻辑运算的值52<br/>5.2.3 逻辑表达式52<br/>5.3 if语句53<br/>5.3.1 if语句的三种基本形式53<br/>5.3.2 if语句的嵌套57<br/>5.3.3 条件运算符和条件表达式59<br/>5.4 switch语句60<br/>5.5 程序举例62<br/>5.6 本章小结64<br/>习题64<br/>第6章 循环结构程序设计66<br/>6.1 while语句66<br/>6.2 do-while语句68<br/>6.3 for语句70<br/>6.4 循环的嵌套72<br/>6.5 break和continue语句74<br/>6.5.1 break语句74<br/>6.5.2 continue语句74<br/>6.6 程序举例76<br/>6.7 本章小结78<br/>习题78<br/>第7章 数组82<br/>7.1 一维数组82<br/>7.1.1 一维数组的定义及初始化83<br/>7.1.2 一维数组元素的引用85<br/>7.1.3 一维数组程序举例86<br/>7.2 二维数组88<br/>7.2.1 二维数组的定义及初始化88<br/>7.2.2 二维数组元素的引用90<br/>7.2.3 二维数组程序举例90<br/>7.3 字符数组91<br/>7.3.1 字符数组的定义及初始化91<br/>7.3.2 字符数组的引用92<br/>7.3.3 字符串和字符串结束标志92<br/>7.3.4 字符数组的输入/输出93<br/>7.3.5 字符串处理函数94<br/>7.4 程序举例97<br/>7.5 本章小结102<br/>习题102<br/>第8章 函数104<br/>8.1 概述104<br/>8.2 函数定义的一般形式105<br/>8.3 函数参数与函数值107<br/>8.3.1 形参变量和实际参数107<br/>8.3.2 函数的返回值108<br/>8.4 函数的调用109<br/>8.4.1 函数调用的一般形式109<br/>8.4.2 函数调用的方式109<br/>8.4.3 函数调用的声明110<br/>8.4.4 函数的嵌套调用111<br/>8.4.5 函数的递归调用113<br/>8.5 数组作为函数参数*114<br/>8.6 变量的作用域119<br/>8.6.1 局部变量119<br/>8.6.2 全局变量121<br/>8.7 变量的存储类型*122<br/>8.7.1 变量的静态和动态存储方式122<br/>8.7.2 局部变量的存储类型123<br/>8.7.3 全局变量的存储类型124<br/>8.8 内部函数与外部函数*126<br/>8.9 本章小结126<br/>习题127<br/>第9章 预处理命令*129<br/>9.1 概述129<br/>9.2 宏定义129<br/>9.2.1 无参宏定义129<br/>9.2.2 带参宏定义132<br/>9.3 文件包含134<br/>9.4 条件编译135<br/>9.5 本章小结137<br/>习题137<br/>第10章 指针*140<br/>10.1 地址和指针的基本概念140<br/>10.1.1 指针变量的定义与初始化141<br/>10.1.2 指针运算143<br/>10.1.3 多级指针147<br/>10.2 指针与函数148<br/>10.2.1 指针作为函数参数148<br/>10.2.2 指针函数151<br/>10.2.3 指向函数的指针152<br/>10.3 指针与数组155<br/>10.3.1 指向一维数组的指针156<br/>10.3.2 二维数组与多维数组的指针表示法159<br/>10.4 指针与字符串164<br/>10.4.1 字符串的指针表示法164<br/>10.4.2 字符串数组167<br/>10.5 指针数组与命令行参数167<br/>10.5.1 指针数组167<br/>10.5.2 指针数组与命令行参数169<br/>10.6 程序举例171<br/>10.7 本章小结175<br/>习题176<br/>第11章 结构体与共用体*178<br/>11.1 定义一个结构的一般形式178<br/>11.2 结构类型变量的说明178<br/>11.3 结构变量成员的表示方法181<br/>11.4 结构变量的赋值181<br/>11.5 结构变量的初始化182<br/>11.6 结构数组的定义182<br/>11.7 结构指针变量的说明和使用185<br/>11.7.1 指向结构变量的指针185<br/>11.7.2 指向结构数组的指针187<br/>11.7.3 结构指针变量作为函数参数188<br/>11.8 动态存储分配189<br/>11.9 链表的概念191<br/>11.10 枚举类型193<br/>11.10.1 枚举类型的定义和枚举变量的说明193<br/>11.10.2 枚举类型变量的赋值和使用194<br/>11.11 类型定义符typedef195<br/>11.12 本章小结196<br/>习题197<br/>第12章 文件*199<br/>12.1 C文件概述199<br/>12.2 文件指针199<br/>12.3 文件的打开与关闭200<br/>12.3.1 文件的打开(fopen函数)200<br/>12.3.2 文件关闭函数(fclose函数)202<br/>12.4 文件的读写202<br/>12.4.1 字符读写函数fgetc和fputc202<br/>12.4.2 字符串读写函数fgets和fputs205<br/>12.4.3 数据块读写函数fread和fwtrite207<br/>12.4.4 格式化读写函数fscanf和fprintf208<br/>12.5 文件的随机读写209<br/>12.5.1 文件定位210<br/>12.5.2 文件的随机读写210<br/>12.6 文件检测函数211<br/>12.6.1 文件结束检测函数feof211<br/>12.6.2 读写文件出错检测函数ferror211<br/>12.6.3 文件出错标志和文件结束标志置0函数clearerr211<br/>12.7 本章小结212<br/>习题212<br/>第13章 位运算*213<br/>13.1 位运算符213<br/>13.1.1 按位与运算213<br/>13.1.2 按位或运算214<br/>13.1.3 按位异或运算214<br/>13.1.4 按位取反运算215<br/>13.1.5 左移运算215<br/>13.1.6 右移运算215<br/>13.2 位域(位段)216<br/>13.3 本章小结219<br/>习题219<br/>附录A C语言上机实验及作业220<br/>附录B 全国计算机二级考试公共基础知识要点259<br/>附录C C语言库函数287<br/>附录D 字符的ASCII码表292<br/>参考文献293<br/><br/><br/>