评论

程序设计基础 | 课程教学大纲

C语言可以这样学

ISBN:9787302600763

作者:王金鹏

定价:69元

课程教学大纲

1

课程简介

程序设计基础是高等院校计算机科学与技术专业必修的八门核心课程之一,主要讲授C语言的基本语法规则、程序设计的基本思想、方法与技术,培养学生的计算思维能力、动手实践能力和程序调试能力,它既是表达算法、进行计算机解题的工具,同时也是数据结构、面向对象程序设计等其他核心课程的必要的先修课,对于培养学生的程序设计思想以及后续课程的学习都有着极其重要的作用。

通过对该课程的学习,学生应掌握用C语言进行程序设计的思想和技能,具备动手编程以及进行程序调试的能力。

2

课程目标

1 课程具体目标

课程目标1:通过对本课程的学习,使学生准确理解C语言的基本概念和语法规则,熟练掌握用C语言进行程序设计的分析方法,具备基本的程序设计思想和计算思维能力,并为后续课程的学习打下基础。

课程目标2:通过对本课程的学习,使学生能熟练掌握编程工具的使用,掌握利用计算机进行程序编制和程序调试的方法。

课程目标3:通过对本课程的学习,使学生具备对计算机领域复杂工程问题进行合理分析、归纳出有效算法、设计出解决方案的能力。

课程目标4:通过对本课程的学习,使学生具备对系统的设计目标进行功能划分、完成模块设计开发的能力。

2 课程目标与毕业要求指标点关系

3

教学内容及基本要求

第1单元:计算机基础知识(6学时)

1、教学内容

(1)计算机的硬件组成以及硬件五部分之间的关系;

(2)二进制、八进制、十进制、十六进制以及相互转换方法;

(3)整数的原码、反码和补码的求法;

(4)路径的概念及一般表示方法

(5)计算机语言的分类和各自优缺点,高级语言的两种执行方式;

(6)程序的执行过程;

(7)算法

2、基本要求

(1)了解计算机硬件的五部分组成及各自的作用,理解五部分之间的关系;

(2)熟练掌握各种进制之间的转换;

(3)熟练掌握原码、反码和补码的求法;

(4)了解计算机语言的分类及各自的特点,理解高级语言的两种执行过程及其特点;

(5)掌握计算机指令及程序的执行过程;

(6)理解算法的概念,掌握算法的两种表示方法。

3、重点和难点

重点:内存的特点,数制及其转换,原码、反码和补码,算法的表示。

难点:数制之间的转换,计算机语言及其执行过程。

4、支撑的课程目标

本单元各知识点的讲授和学习,可以支持课程目标1。

5、教学模式和方法

本课程采用边讲边练的授课方式,即:在实验室上课,人手一机,由教师根据需要随时切换讲述理论或学生实践。

本单元教学以课堂讲述为主,讲述计算机硬件时可间或给学生展示一些计算机硬件的实物:例如CPU、内存条、硬盘、软盘、光盘等,帮助学生了解计算机硬件及其作用;数制转换和原码、反码、补码部分需要结合课堂练习巩固记忆;计算机语言部分特别是高级语言的编译模式执行方式需要结合课堂现场演示来讲述。

第2单元:C程序和C编译器简介(2学时)

1、教学内容

(1)C语言的特点和C标准;

(2)简单的C程序介绍;

(3)常用的C编译器简介

2、基本要求

(1)了解C语言出现的历史背景和C语言的特点;

(2)了解C语言的几个标准及其差异;

(3)了解C语言的构成;

(4)掌握常用编译器的使用方法以及程序的编辑、编译、连接和运行。

3、重点和难点

重点:C语言的构成规则,常用编译器的使用以及程序的编辑、编译、连接和运行。

难点:常用编译器的使用以及程序的编辑、编译、连接和运行。

4、支撑的课程目标

本单元各知识点的讲授和学习,可以支持课程目标2。

5、教学模式和方法

本单元教学以课堂讲述、演示、学生练习相结合的方式进行,理论部分以讲述为主,程序的编辑、编译、连接和运行,以现场演示为主并辅以学生实训练习。

第3单元:C编程基础知识(6学时)

1、教学内容

(1)常量和变量;

(2)基本数据类型;

(3)符号常量和常变量;

(4)运算符和表达式;

(5)数据的类型转换。

2、基本要求

(1)理解常量和变量的概念,理解变量与内存的关系;

(2)掌握C语言中基本数据类型的分类、作用、存储方式和存储空间大小;

(3)了解符号常量的作用,掌握符号常量的使用方法;

(4)熟练掌握算术运算符、赋值运算符、自增自减运算符、逗号运算符和类型转换运算符的用法以及它们所对应的的表达式的求值方法;

(5)理解计算机自动进行类型转换的步骤和规则。

3、重点和难点

重点:基本数据类型的存储,各种运算符的作用、优先级别、结合性以及各种表达式的求值方法。

难点:运算符的使用和表达式的求值。

4、支撑的课程目标

本单元各知识点的讲授和学习,可以支持课程目标1。

5、教学模式和方法

本单元教学以课堂讲述为主,辅以课堂演示和练习。每个主题都先由案例引导,引出问题,再围绕问题探讨解决方法,让学生不仅知其然,还知其所以然。

第4单元:顺序结构程序设计(4学时)

1、教学内容

(1)赋值语句;

(2)输入输出函数;

(3)顺序结构程序设计举例。

2、基本要求

(1)理解赋值的本质,掌握赋值语句的执行过程;

(2)掌握几种情况下赋值的数据处理方式;

(3)了解缓冲区以及作用;

(4)掌握常用输入输出函数的使用方法;

(5)掌握顺序结构程序设计的基本步骤。

3、重点和难点

重点:赋值的数据处理方式,输入输出函数的使用方法。

难点:输入输出函数的使用方法。

4、支撑的课程目标

本单元各知识点的讲授和学习,可以支持课程目标1。

5、教学模式和方法

本单元教学采用边讲边练的授课方式,以讲述为主,辅以课堂演示和学生练习。其中赋值的数据处理方式主要采用讲述和演示的方法,输入输出函数采用讲述、演示和练习的教学方式。

第5单元:选择结构程序设计(6学时)

1、教学内容

(1)关系运算符和关系表达式;

(2)逻辑运算符和逻辑表达式;

(3)if语句;

(4)条件运算符和条件表达式;

(5)switch语句。

2、基本要求

(1)掌握关系运算符、逻辑运算符、条件运算符以及它们对应的表达式的求值方法;

(2)熟练掌握if语句和嵌套的if语句,理解其中的逻辑关系;

(3)熟练掌握switch语句的执行步骤和使用方法;

(4)能够灵活运用if或switch语句解决实际问题;

(5)能独立地进行简单的程序调试。

3、重点和难点

重点:if语句,switch语句,程序调试。

难点:多分支选择结构(嵌套if语句)中的逻辑关系,switch语句的执行规则,if和switch后面表达式的求解问题。

4、支撑的课程目标

本单元各知识点的讲授和学习,可以支持课程目标3。

5、教学模式和方法

本单元教学采用边讲边练的授课方式,以讲述为主,辅以学生练习。其中讲述的部分主要包括语法规则和例题,学生练习部分主要包括if语句和switch语句的编程。授课过程中可以根据情况适时地讲解并演示程序调试的作用和方法。

第6单元:循环结构程序设计(6学时)

1、教学内容

(1)循环的思想;

(2)循环语句;

(3)循环的控制;

(4)多重循环;

(5)循环编程举例。

2、基本要求

(1)理解循环的作用和循环的实现条件;

(2)熟练掌握三种循环语句的用法和执行步骤;

(3)掌握控制循环的两种方法,能判别循环是哪一种方式结束的;

(4)掌握常用的循环题目的求解方法:穷举法、辗转赋值法、递推法等,能用所学知识解决相关的实际问题。

3、重点和难点

重点:三种循环语句的灵活使用,两种结束循环的控制方法,常用循环题目的求解思路。

难点:循环题目的求解思路。

4、支撑的课程目标

本单元各知识点的讲授和学习,可以支持课程目标3。

5、教学模式和方法

本单元教学采用边讲边练的授课方式,以讲述和演示为主,辅以学生练习。其中讲述和演示部分主要包括各个语句的语法规则以及例题,学生练习部分主要是循环编程。

第7单元:函数(6学时)

1、教学内容

(1)函数的作用;

(2)函数的定义;

(3)函数的调用;

(4)函数的参数传递;

(5)函数的嵌套调用;

(6)递归函数;

(7)函数编程举例;

(8)内部函数和外部函数。

2、基本要求

(1)理解函数的作用;

(2)掌握函数定义的方法,能写出正确且合理的函数定义;

(3)熟练掌握函数声明和函数调用的方法;

(4)理解并掌握参数传递的本质及特点;

(5)掌握函数嵌套调用的方法;

(6)掌握递归函数的定义方法,理解递归函数的执行机制;

(7)了解内部函数和外部函数的区别。

3、重点和难点

重点:函数定义的合理性,函数调用,参数传递的特点。

难点:递归函数的执行机制。

4、支撑的课程目标

本单元各知识点的讲授和学习,可以支持课程目标4。

5、教学模式和方法

本单元教学采用边讲边练的授课方式,以讲述和演示为主,辅以学生练习。其中参数传递的过程和特点,要借助图形和动画说明变量在内存中的变化情况。

第8单元:变量的作用域和存储类别(2学时)

1、教学内容

(1)变量的作用域;

(2)同名变量的辨析;

(3)变量的存储类别和生存期。

2、基本要求

(1)掌握局部变量和全局变量各自的作用域;

(2)学会辨别同名变量;

(3)掌握动态变量和静态变量的存储特点和生存期。

3、重点和难点

重点:局部变量和全局变量的作用域,动态变量和静态变量的存储特点、生存期和初值问题。

难点:动态变量和静态变量的存储特点、生存期和初值问题。

4、支撑的课程目标

本单元各知识点的讲授和学习,可以支持课程目标1和课程目标4。

5、教学模式和方法

本单元教学以课堂讲述为主,辅以现场演示,其中变量的空间分配和释放需借助于图形和动画来说明。

第9单元:编译预处理(2学时)

1、教学内容

(1)宏定义;

(2)文件包含;

(3)条件编译。

2、基本要求

(1)掌握宏的定义方法并理解宏展开的过程;

(2)了解文件包含的作用,掌握两种包含格式的区别;

(3)理解条件编译的作用,掌握条件编译的简单使用方法。

3、重点和难点

重点:宏定义和宏展开,两种文件包含格式的区别。

难点:条件编译的作用。

4、支撑的课程目标

本单元各知识点的讲授和学习,可以支持课程目标1。

5、教学模式和方法

本单元教学以课堂讲述为主,辅以现场演示(文件包含、条件编译和例题)和学生练习(习题)。

第10单元:用指针变量访问变量(2学时)

1、教学内容

(1)指针和指针变量概念;

(2)通过指针变量访问变量的方法;

(3)用指针变量访问变量的适用场合。

2、基本要求

(1)掌握指针、指向、指针变量等概念;

(2)掌握利用指针变量访问变量的方法;

(3)掌握用指针变量访问变量的特点和适用场合。

3、重点和难点

重点:用指针变量访问变量的方法和适用场合。

难点:用指针变量访问变量的原理。

4、支撑的课程目标

本单元各知识点的讲授和学习,可以支持课程目标3和课程目标4。

5、教学模式和方法

本单元教学采用边讲边练的授课方式,以讲述和演示为主,辅以学生练习。其中理论部分主要是课堂讲述,程序部分采用演示或学生练习的方式进行。

第11单元:数组(6学时)

1、教学内容

(1)一维数组;

(2)二维数组;

(3)字符数组和字符串处理函数。

2、基本要求

(1)掌握一维数组、二维数组、字符数组的定义方法;

(2)掌握数组的元素构成、逻辑结构和物理存储结构;

(3)掌握数组名的两种用法和下标变量的引用方法;

(4)掌握常用字符串处理函数的使用方法

(5)掌握冒泡法和选择法排序的编程思想。

3、重点和难点

重点:数组名的用法,字符数组的存储。

难点:数组名的两种用法的辨别,常见数组题目求解的算法。

4、支撑的课程目标

本单元各知识点的讲授和学习,可以支持课程目标3。

5、教学模式和方法

本单元教学采用边讲边练的授课方式,以讲述和演示为主,辅以学生练习。其中理论部分主要是课堂讲述,程序部分采用演示或学生练习的方式进行。讲述部分中,排序算法需要结合板书或动画来讲解。

第12单元:用指针变量访问下标变量(2学时)

1、教学内容

(1)一维数组;

(2)二维数组;

(3)字符数组和字符串处理函数。

2、基本要求

(1)掌握一维数组、二维数组、字符数组的定义方法;

(2)掌握数组的元素构成、逻辑结构和物理存储结构;

(3)掌握数组名的两种用法和下标变量的引用方法;

(4)掌握常用字符串处理函数的使用方法

(5)掌握冒泡法和选择法排序的编程思想。

3、重点和难点

重点:数组名的用法,字符数组的存储。

难点:数组名的两种用法的辨别,常见数组题目求解的算法。

4、支撑的课程目标

本单元各知识点的讲授和学习,可以支持课程目标3和课程目标4。

5、教学模式和方法

本单元教学采用边讲边练的授课方式,以讲述和演示为主,辅以学生练习。其中理论部分主要采用课堂讲述,程序部分采用演示或学生练习的方式进行。讲述部分中,排序算法需要结合板书或动画来讲解。

第13单元:指针综述(10学时)

1、教学内容

(1)指针类型简介和指向变量的指针;

(2)指向数组的指针;

(3)指针与字符串;

(4)指针与函数;

(5)指针数组;

(6)指向指针变量的指针;

(7)带参数的main函数;

(8)动态内存分配。

2、基本要求

(1)了解C语言中与指针有关的数据类型;

(2)掌握指向数组的指针及其使用;

(3)学会用指针表达字符串以及用指针变量处理字符串;

(4)掌握用指针调用函数的方法、指针函数的定义和使用;

(5)掌握指针数组的使用和指向指针变量的指针的使用;

(6)了解带参数的main函数的执行过程;

(7)了解动态内存分配的优点并学会使用。

3、重点和难点

重点:指向数组的指针,用指针处理字符串,指针数组,动态内存分配。

难点:指针数组,指向指针变量的指针,带参数的main函数。

4、支撑的课程目标

本单元各知识点的讲授和学习,可以支持课程目标3和课程目标4。

5、教学模式和方法

本单元教学采用边讲边练的授课方式,以讲述和演示为主,辅以学生练习。其中理论部分主要采用课堂讲述的方式,程序部分采用演示或学生练习的方式进行。讲述部分中,带参数的main函数部分需借助于图形或动画来讲解。

第14单元:数据类型的自定义(8学时)

1、教学内容

(1)结构;

(2)链表;

(3)联合(共用体);

(4)枚举类型;

(5)数据类型名的自定义

2、基本要求

(1)熟练掌握结构和结构体变量的定义方法,掌握结构体变量的内存分配规则,掌握结构体变量的引用方法(包括通过指针引用)和引用规则;

(2)了解链表的作用和种类,掌握简单的链表操作;

(3)掌握联合的定义和联合型变量的定义方法,掌握联合型变量的引用和初始化方法;

(4)熟悉枚举类型的定义和枚举变量的使用方法;

(5)熟悉数据类型名的自定义方法。

3、重点和难点

重点:结构和联合以及各自变量的定义和引用方法。

难点:在被调函数中用指针变量访问结构或联合型变量。

4、支撑的课程目标

本单元各知识点的讲授和学习,可以支持课程目标3。

5、教学模式和方法

本单元教学采用边讲边练的授课方式,以讲述和演示为主,辅以学生练习。其中理论部分主要采用课堂讲述的方式,程序部分采用演示或学生练习的方式进行。

第15单元:位运算(2学时)

1、教学内容

(1)6个位运算符;

(2)位运算的应用

2、基本要求

(1)熟练掌握6个位运算符的运算规则和作用;

(2)掌握利用位运算解题的方法。

3、重点和难点

重点:位运算符的作用,位运算的应用。

难点:位运算应用中的算法。

4、支撑的课程目标

本单元各知识点的讲授和学习,可以支持课程目标3。

5、教学模式和方法

本单元教学采用边讲边练的授课方式,以讲述和演示为主,辅以学生练习。其中理论部分主要采用课堂讲述的方式,程序部分采用演示或学生练习的方式进行。

第16单元:文件(10学时)

1、教学内容

(1)文件及相关概念,文件操作的原理,读写位置指针和文件结束标志;

(2)文件的打开和关闭;

(3)文件的读写操作;

(4)读写位置指针的移动和定位;

(5)文件的出错检测

2、基本要求

(1)了解文件的作用,掌握文件中数据的两种存储方式,了解文件操作的原理,掌握读写位置指针的概念和文件结束标志的由来;

(2)掌握12种文件打开方式的不同,了解关闭文件的作用;

(3)掌握常用的文件读写函数的使用;

(4)掌握用于对读写位置指针进行移动和定位的几个函数的使用方法;

(5)了解文件出错后的处理方法。

3、重点和难点

重点:数据读写的两种方式,打开文件两种方式的不同,文件读写操作函数的使用。

难点:两种数据读写方式的不同、打开文件的两种方式之间的不同、两种类型的读写函数的不同。

4、支撑的课程目标

本单元各知识点的讲授和学习,可以支持课程目标3。

5、教学模式和方法

本单元教学采用边讲边练的授课方式,以讲述和演示为主,辅以学生练习。其中理论部分主要采用课堂讲述的方式,程序部分采用演示或学生练习的方式进行。

4

学时分配与教学方式

5

考核方式与成绩评定标准

1. 考核方式及具体要求

本课程采用过程化监管和考核方式,以便综合考核学生对C语言各知识点的掌握情况,考核学生的动手实践能力、程序调试能力、算法思维能力和用程序解决实际问题的能力。具体方法是将一学期分成三个阶段,每个阶段进行一次机考。第一次考试内容为1-6章,第二次考试内容为7-11章,第三次考试内容为12-16章。学生最终成绩由平时作业成绩(30%)、三次机考成绩(占70%)构成。

平时作业和三次机考均在Online Judge(简称OJ)平台上的进行,题型包括选择题,填空题,编程题和程序填空题,既考核学生对基本理论的掌握度,也考核学生的计算思维能力、动手操作能力以及程序调试的能力。

平时作业从练习题库中选题。三次机考从考试题库中选题,按章节和知识点自动组卷。

2. 评价标准

(1)平时成绩

平时作业在OJ上进行,教师从练习题库中布置理论题(选择题、填空题、判断题)和编程题,理论题和编程题均有一定的分值(由任课老师设定)。

学生期末平时成绩的计算公式是:

(2)考试成绩

考试题库中的题库根据课程目标设计,用以考核学生对课程相关知识的掌握、综合应用能力及解决复杂工程问题的能力;每次考试均根据课程目标和各知识点的重要程度按一定权重随机生成试卷,考试结束即时出成绩。

3. 综合成绩

6

课程目标达成评价方法

课程目标达成根据考核成绩进行分析评价。

7

教材及参考资料

1、教材

[1] 王金鹏. C语言可以这样学. 清华大学出版社. 2022.4.

2、参考资料

[1] (美)P.J.Deitel、H.M.Deitel. 《C大学教程》(第五版). 苏小红 李东 王甜甜等译. 电子工业出版社,2008.2

[2] (美)Ivory Horton. 《C语言入门经典》. 张欣等译. 机械工业出版社,2007.5

[3] 苏小红等 《C语言程序设计》. 高等教育出版社,2016.1

参考书籍

《C语言可以这样学》

ISBN:9787302600763

作者:王金鹏

定价:69元

讲解精彩。讲解简练、准确,深入浅出。

本书案例丰富,有配套视频和源代码

内容简介

本书从计算机基础知识讲起,继而介绍标准C语言,还包含C语言编程必需的若干重要内容。

本书深入浅出,文字简练,将复杂的问题简单化,篇幅不大但内容全面;对各章节的重点、难点把握准确,处理得当;注重培养编程思维能力,对编程时易犯的错误点评到位。本书对C语言中最重要的内容(函数、指针、数组、文件四部分)的编写,会使读者的认识上升一个层次。

本书作者讲授C语言课程20多年,有丰富的编程和教学经验,对学生的思维方式和学习状况非常了解,对C语言的知识体系非常熟悉。在书中,作者奉献了自己对许多问题的独到见解。书中大量的编程经验和注意事项,蕴含着作者长期的积累,凝聚着C语言的精华。

本书适合作为高等学校各专业“程序设计基础”或“C语言程序设计”等课程的教材,也可作为自学教材或学习参考书,尤其适合作为C程序员的编程指导手册和入门教材。

目录

向上滑动阅览

第1章计算机基础知识1

1.1计算机的硬件组成1

1.1.1运算器1

1.1.2控制器1

1.1.3存储器1

1.1.4输入设备3

1.1.5输出设备3

1.2数制及数制间的转换3

1.2.1二进制3

1.2.2八进制5

1.2.3十六进制5

1.3计算机中的信息编码6

1.3.1整数的编码6

1.3.2字符的编码7

1.4程序及程序的执行过程7

1.4.1计算机指令7

1.4.2计算机程序7

1.4.3程序的执行过程7

1.5计算机语言8

1.5.1机器语言8

1.5.2汇编语言9

1.5.3高级语言9

1.6算法10

1.6.1算法的概念11

1.6.2算法的特性11

1.6.3算法的表示12

1.6.4程序的3种基本结构12

习题113

第2章C程序和C编译器简介15

2.1C语言及C标准简介15

2.1.1C语言的出现15

2.1.2C语言的特点15

2.1.3C标准16

2.2简单的C程序17

2.3C程序的构成21

2.4C编译器及操作简介23

2.4.1Turbo C 2.0编程环境及常用操作简介23

2.4.2Visual C++6.0编程环境及常用操作简介27

2.5编程常见错误及处理流程32

2.5.1编译错误32

2.5.2连接错误33

2.5.3逻辑错误33

2.5.4运行错误33

习题233

C语言可以这样学(第2版·MOOC版·题库版·OnlineJudge版)目录第3章C编程基础知识35

3.1常量和变量35

3.1.1常量35

3.1.2变量35

3.2基本数据类型40

3.2.1整型数据40

3.2.2实型数据42

3.2.3字符型数据45

3.2.4字符串47

3.3符号常量和常变量48

3.3.1符号常量48

3.3.2常变量48

3.4运算符和表达式49

3.4.1算术运算符49

3.4.2赋值运算符和赋值表达式50

3.4.3自增自减运算符51

3.4.4逗号运算符和逗号表达式53

3.4.5类型转换运算符54

3.5数据的类型转换55

习题356

第4章顺序结构程序设计59

4.1赋值语句59

4.1.1赋值语句及其执行过程59

4.1.2赋值的几种数据处理方式59

4.2输入输出函数63

4.2.1缓冲区的概念及作用63

4.2.2getchar和putchar64

4.2.3printf和scanf65

4.3顺序结构程序设计举例70

习题472

第5章选择结构程序设计76

5.1关系运算符和关系表达式76

5.1.1关系运算符76

5.1.2关系表达式76

5.2逻辑运算符和逻辑表达式77

5.2.1逻辑运算符77

5.2.2逻辑表达式78

5.3if语句79

5.3.1if语句的格式79

5.3.2if语句的使用说明80

5.3.3嵌套的if语句83

5.3.4if语句应用举例85

5.3.5if语句编程的常见问题87

5.4条件运算符和条件表达式92

5.5switch语句93

5.5.1switch语句的格式及执行过程94

5.5.2switch语句应用举例96

5.5.3switch语句编程的常见错误97

习题598

第6章循环结构程序设计104

6.1循环及其实现思想104

6.2循环语句105

6.2.1while循环105

6.2.2do-while循环107

6.2.3for循环108

6.2.43种循环的比较110

6.3循环的控制111

6.3.1计数器控制循环和其他条件控制循环111

6.3.2break和continue112

6.3.3循环结束后循环变量的值与终值的比较115

6.4多重循环116

6.5循环编程举例117

习题6126

第7章函数132

7.1函数的作用132

7.2函数的定义134

7.2.1函数定义的格式134

7.2.2函数的返回值134

7.2.3函数参数的设置138

7.3函数的调用140

7.3.1函数调用前的声明140

7.3.2函数调用的方式142

7.4函数的参数传递143

7.4.1形参与实参143

7.4.2参数的传递143

7.4.3参数传递的单向性144

7.5函数的嵌套调用145

7.6递归函数146

7.6.1递归的条件146

7.6.2递归函数的执行过程147

7.6.3递归与迭代149

7.7函数编程举例150

7.8内部函数和外部函数153

习题7154

第8章变量的作用域和存储类别158

8.1变量的作用域158

8.1.1局部变量158

8.1.2全局变量158

8.2同名变量的辨析160

8.3变量的存储类别和生存期162

8.3.1内存的存储区域162

8.3.2动态变量162

8.3.3静态变量163

8.4变量的作用域和生存期小结164

习题8165

第9章编译预处理168

9.1宏定义168

9.1.1无参宏定义168

9.1.2有参宏定义169

9.1.3嵌套的宏定义170

9.2文件包含170

9.2.1文件包含的格式170

9.2.2文件包含的作用171

9.2.3文件包含两种格式的区别171

9.3条件编译172

9.3.1条件编译的格式172

9.3.2条件编译应用举例174

习题9175

第10章用指针变量访问变量178

10.1指针和指针变量178

10.1.1指针和指针变量的概念178

10.1.2直接寻址和间接寻址179

10.1.3指针变量的值、地址及类型181

10.2通过指针变量访问变量181

10.2.1指针变量的定义181

10.2.2指针变量的赋值182

10.2.3通过指针变量间接访问一个变量183

10.3指针变量在函数传递中的作用183

习题10188

第11章数组191

11.1一维数组191

11.1.1一维数组的定义191

11.1.2一维数组的元素构成及一维数组的存储结构192

11.1.3数组名的指针类型192

11.1.4数组元素的表示方法193

11.1.5一维数组的引用194

11.1.6一维数组的初始化196

11.1.7一维数组应用举例196

11.2二维数组201

11.2.1二维数组的定义201

11.2.2二维数组的元素构成及二维数组的存储结构202

11.2.3二维数组名的指针类型202

11.2.4二维数组中下标变量的表示方法203

11.2.5二维数组的引用204

11.2.6二维数组的初始化205

11.2.7二维数组应用举例205

11.3字符数组和字符串处理函数206

11.3.1字符数组206

11.3.2字符串处理函数207

11.3.3字符数组应用举例211

习题11213

第12章用指针变量访问下标变量218

12.1用指针变量访问下标变量的方法218

12.1.1知识回顾218

12.1.2用指针变量访问一维数组中的下标变量218

12.1.3用指针变量访问二维数组中的下标变量220

12.2用指针变量访问下标变量的适用场合221

习题12224

第13章指针综述228

13.1指针类型简介228

13.2指向变量的指针229

13.2.1指向变量的指针常量229

13.2.2指向变量的指针变量229

13.3指向数组的指针230

13.3.1指向一维数组的指针常量230

13.3.2指向一维数组的指针变量231

13.3.3指向一维数组的指针变量的适用场合232

13.4指针与字符串234

13.4.1字符串的表示方式234

13.4.2用指针变量处理字符串235

13.5指针与函数237

13.5.1函数的入口地址237

13.5.2指向函数的指针变量238

13.5.3指向函数的指针变量的作用238

13.5.4指针函数239

13.6指针数组240

13.6.1指针数组的定义240

13.6.2指针数组的引用241

13.6.3指针数组应用举例241

13.7指向指针变量的指针242

13.7.1指向指针变量的指针常量242

13.7.2指向指针变量的指针变量242

13.7.3应用举例243

13.8带参数的main函数245

13.8.1C语言对main函数参数的规定245

13.8.2带参数main函数的作用245

13.8.3带参数的main函数的执行过程246

13.8.4程序举例246

13.9动态内存分配247

13.9.1动态内存分配函数247

13.9.2动态内存分配举例248

习题13249

第14章数据类型的自定义254

14.1结构体的定义和结构体变量的定义254

14.1.1结构体的概念和结构体的定义254

14.1.2结构体变量的定义和空间分配256

14.1.3结构体变量的初始化258

14.1.4结构体数组的定义和初始化259

14.2结构体变量的引用259

14.2.1结构体变量的引用方法259

14.2.2结构体变量引用举例260

14.3用指针变量操作结构体变量261

14.3.1为什么要通过指针变量访问结构体变量261

14.3.2应用举例262

14.4链表及链表操作简介263

14.4.1链表的概念263

14.4.2使用链表的优点264

14.4.3链表操作简介264

14.5共用体269

14.5.1共用体的概念269

14.5.2共用体的作用270

14.5.3共用体及共用体变量的定义271

14.5.4共用体变量(数组)的初始化272

14.5.5共用体变量的引用272

14.5.6共用体的两个妙用272

14.6枚举类型273

14.6.1枚举类型的定义273

14.6.2枚举变量的定义274

14.6.3枚举变量的使用275

14.6.4枚举应用举例275

14.7用typedef定义类型别名276

习题14277

第1章位运算280

15.1C语言中的位运算符280

15.2位运算及应用281

15.2.1按位与281

15.2.2按位或282

15.2.3按位异或283

15.2.4按位取反284

15.2.5按位左移284

15.2.6按位右移285

习题15286

第16章文件288

16.1文件及相关的概念288

16.1.1文件的范畴288

16.1.2文件中存储数据的两种方式288

16.1.3文件的种类289

16.1.4文件操作函数及缓冲区的概念290

16.2文件读写的原理291

16.3文件的读写位置指针和文件结束标志292

16.3.1读写位置指针292

16.3.2文件结束标志292

16.4文件的打开和关闭293

16.4.1文件的打开293

16.4.2文件的关闭299

16.5文件的读写300

16.5.1fgetc和fputc301

16.5.2fread和fwrite303

16.5.3fgets和fputs307

16.5.4fscanf和fprintf308

16.6读写位置指针的移动和定位310

16.6.1移动读写位置指针的函数310

16.6.2两个与读写位置指针有关的函数311

16.7文件的出错检测312

16.8文件操作举例313

习题16317

第17章综合应用举例320

17.1简单的计算器(一)320

17.2简单的计算器(二)322

17.3数据库文件的读取325

附录AC语言规约335

附录B输入输出重定向 337

附录CC语言的关键字340

附录D常用字符与ASCII码对照表341

附录E运算符的优先级和结合性342

附录F常用库函数344

参考文献349

扫码京东优惠购书

在公众号书圈后台回复【978730260076】,下载本书配套的教学资源

单击页面下方【阅读原文】,订阅【教学大纲】栏目返回搜狐,查看更多

责任编辑:

平台声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
阅读 ()
大家都在看
推荐阅读