![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言研究型教学
文章平均质量分 54
stunt
这个作者很懒,什么都没留下…
展开
-
第2章 基本数据类型
章节导学计算机中的存储单元为什么要分类型呢?现实世界中的数据可以根据形态分类,如3、-5是整数,且一个是正的,一个是负的;2.3、1.23×10-5是小数;a、+是字符。计算机中没有正负号,没有小数点,没有……,只有0和1。无论整数、小数或字符,所有数据在计算机中都将编码成由0和1组成的二进制串。假设计算机中一个存储单元的存储状态为01011010,那么这个存储单元的值(解码后的值)在原创 2012-09-09 20:20:47 · 559 阅读 · 0 评论 -
printf函数的盲点
当屏幕出现9时,它表示什么数据呢?语句printf("%c",'9');和语句printf("%d", 9);都可以在屏幕上输出9,但是两者的执行过程是不同的。遇到格式字符c时,printf函数将数据的最低一个字节按整数解码得到一个整数(57),然后输出编号为这个整数的字符的字形码。遇到格式字符d时,printf函数将数据按整数解码得到一个整数(9),然后将这个整数转换成字符串,再输出原创 2012-11-08 20:16:13 · 732 阅读 · 0 评论 -
浅谈变量的原始值、存储状态、实际值和输出值
计算机用存储单元存储数据(编码后的数据),C语言中用变量标识计算机中的存储单元。C语言中有long i,j;i=1;j=-1;,则相应的计算机中就有四个字节的整型变量,其存储状态为00000000000000000000000000000001(十六进制形式为00000001)和11111111111111111111111111111111(十六进制形式为ffffffff)。因此,说变量i和原创 2012-10-25 11:07:14 · 1436 阅读 · 0 评论 -
章节导学第8章 预处理
编译过程可细分为预处理阶段、编译汇编阶段和链接阶段三个阶段,每个阶段都有明确的任务。严格地说,预处理阶段的操作只是简单的文本“替换”,不能称为真正的“编译”。预处理命令主要有3种:宏定义,文件包含和条件编译。虽然预处理命令都只是文本操作,但是,预处理命令极大地方便了程序的编写。宏定义命令虽然类似于查找替换,但是,要定义一个完全没有副作用的宏也并非易事。文件包含命令实现了“文件级别”的查找替原创 2012-09-12 12:08:26 · 778 阅读 · 0 评论 -
章节导学第11章 文件
文件是外存中管理数据的基本单位。外存中的数据可以长期保存,但是,存取效率低。缓冲文件系统可以提高数据的存取效率,不过,在程序中使用文件后,显式地关闭文件就成了“规定动作”。外存像仓库,存储了大量的待加工、半加工和已加工的数据。内存像车间,存放着正加工的数据。由于文件中通常存储了大量的数据,它所包含的存储单元的类型可能非常复杂。文件中最小的存储单元也是字节。如果一个文件中包含了12个字节,那么它原创 2012-09-13 14:32:23 · 917 阅读 · 0 评论 -
章节导学第10章 用户自定义数据类型
顾名思义,用户自定义数据类型是程序员自己定义的数据类型。数据类型规定了存储单元的类型,用于定义变量。编译系统不太可能会处理程序员“发明的”“全新的”数据类型,因此,自定义数据类型中的“自定义”是有条件的。程序员只能在C语言“基本数据类型”的基础上,通过限定或组合来定义“新的”“自己的”数据类型。结构型是最典型的自定义数据类型,与之相关的存储单元由多个类型不同的基本类型存储单元组合而成。当定义一原创 2012-09-13 14:30:49 · 2089 阅读 · 0 评论 -
章节导学第6章 数组
数组并非一组数,而是一组变量,定义一个数组,就是定义了一组变量,因此,可以方便地通过数组定义多个变量来保存用户输入的大量数据。数组的元素依下标排成了有序的序列,如0号元素,1号元素,2号元素,……,这就为使用循环对存于数组中的大批量数据进行统一的处理提供了可能。如果不依靠数组来组织大量杂乱无章的数据,那么,循环将变得“举步维艰”。数组和循环的结合使得许多难题迎刃而解。数组元素的类型仍为数组原创 2012-09-12 12:06:43 · 931 阅读 · 0 评论 -
章节导学第4章 逻辑运算与选择结构程序
在编程处理复杂问题时经常需要区分不同的情况,一种情况一种处理办法。以求用户输入数的绝对值为例,程序中需要区分“用户输入的数是负数”和“用户输入的数不是负数”这两种情况。 C语言中使用逻辑表达式来区分不同的情况,如当用户输入的数存储在变量f中时,表达式f 结合选择结构,当表达式f 与以前只能处理一种情况的程序不同,由于包含了多种处理方法,选择结构程序可以针对用户的实际输原创 2012-09-12 12:02:41 · 939 阅读 · 0 评论 -
章节导学第12章 位运算
字节是存取数据的最小单位,也是许多高级编程语言处理数据的最小单位。C语言支持位运算,位运算是指按二进制位进行的运算,也就是以二进制位为单位对整数进行运算。位运算常用于操作“状态标志”中每个状态位的状态。考虑这样的问题:编程控制编号为0至7的八盏灯的开关。可以定义一个长度为8的短整型数组变量a,如果a[0]的值为1,则0号灯亮;值为0,则0号灯不亮。当内存空间有限时,这个解决方案太浪费存储空原创 2012-09-13 14:35:23 · 900 阅读 · 0 评论 -
章节导学第9章 指针
在程序中可以通过变量方便地使用其所标识的存储单元。整型变量存储整数,浮点型变量存储小数,指针变量存储什么呢?指针,即其他存储单元的地址。通过指针变量可以使用它所标识的存储单元中存储的地址的存储单元。通过指针变量找到地址,再由地址找到并使用存储单元的方式称为“间接引用”。为何要通过指针变量“间接引用”存储单元?通过普通变量直接引用存储单元的方式受变量作用域的限制,如果知道了存储单元的地址,且原创 2012-09-13 14:29:49 · 952 阅读 · 0 评论 -
C语言教材市场的分析
班门弄斧,介绍一下对C语言市场的一些想法。C语言教材市场巨大,否则,也不可能有一本书销千万的“奇迹”。如果能占领这个市场,出版社有两大好处,首先是经济上的;其次,也更重要的是品牌加口碑。当然,要占领市场也并非易事。教材市场的现状是“群阀割据”,大部分学校只用自己的书。这样的局面,一方面是由于评职称的需要,大家都编了书,不用不行;另一方面是,许多老师在教学中有心得收获,“有感而发”。网上除了原创 2012-09-13 09:30:16 · 2336 阅读 · 0 评论 -
章节导学第7章 函数
函数为什么是程序的基本组成单位呢?函数通常具有一定的功能,并且它的功能是通过把用户的输入变成输出体现的。程序只不过是个main函数,程序也有自己的功能,它的功能也是通过把用户的输入变成输出体现的。函数与程序的区别在于两者的用户不同。函数的用户常为其它函数,而程序的用户常为人。在规模上,程序的功能强大,而函数的功能较单一。功能强大的程序需要由团队来开发,如何分配开发任务,充分发挥团队协同作战原创 2012-09-12 12:07:42 · 869 阅读 · 0 评论 -
章节导学第5章 循环结构
日升日落,日复一日,重复是这个世界永恒的主题。现实世界中的许多问题都可以通过“重复”来解决,而C语言中的“循环结构”被用来模拟这一过程中的“重复”。循环是利用计算机解决问题的终极武器,编程实际上就是编写“循环结构”,但是,“循环”来自于“模拟”!首先,程序员必须利用“重复”解决问题;然后,再把“重复”模拟成“循环”。一方面,程序不会“自己”解决问题,它只是程序员解决问题时所用方法的模拟,因此,编程原创 2012-09-12 12:05:52 · 1180 阅读 · 0 评论 -
第1章 C语言与计算机
章节导学计算机正改变着世界,而C语言可用于同计算机的交流。利用C语言编写程序,通过程序进而控制计算机提供所需的服务,这就是利用C语言使用计算机的方式。计算机是如何工作的?C语言又是怎样与计算机沟通的?因此,C语言与计算机的关系是学习C语言时首先应思考的问题。C语言中的变量用于标识计算机中的存储单元。对变量的理解是学习C语言的关键,变量与存储单元的关系贯穿了整个C语言的学习过程。C语原创 2012-09-09 20:17:23 · 804 阅读 · 0 评论 -
一本支持研究型教学的C语言教材(二)
其次,现行C语言教材中许多知识点都介绍得吞吞吐吐模棱两可,本教材中C语言的每个知识点不仅准确而且都经过一番分析研究,知识点有什么用,怎么用清清楚楚明明白白。例如,表达式用于“操作”计算机进行运算,表达式的求值过程就是计算机的执行过程。表达式的求值规则就是序列点、优先级、结合性和数据类型。现行教材中大多不提序列点,如果不讲序列点就不能理直气壮地分析一些表达式如逗号表达式的求值顺序,读者遇到复杂的表达原创 2012-09-10 22:21:47 · 821 阅读 · 0 评论 -
一本支持研究型教学的C语言教材
我所编写的C语言教材特色突出,是一本支持研究型教学的教材,同时也是一本支持学生自主学习的教材。首先,本教材以现代教育理念为指导,大胆探索,勇于创新,在教材层面支持研究型教学。现代教育的重中之重是如何培养学生的创新能力。在这个问题上,教育界存在一个误区,就是强调“练”,强调“用”(如只注重让学生参加“实训”,参与“项目”等等),而忽视了“学”。知识来自于实践,在实践中当然可以激发学生的创新兴原创 2012-09-09 20:32:12 · 1205 阅读 · 0 评论 -
第3章 表达式
章节导学第1章分析计算机与C语言的关系时曾提出:C语言用代数式命令运算器进行各种运算。准确地说,C语言用表达式命令计算机进行各种操作。“代数式”仅是表达式的一种。C语言又称表达式语言,可见表达式在C语言中的重要作用。表达式是用操作符把操作数连接起来的式子,如表达式3+a中的“+”就是操作符,3和a就是操作数(这里的a应理解为一个变量)。C语言表达式最重要的特征是每个表达式都有一个确原创 2012-09-09 20:24:50 · 629 阅读 · 0 评论 -
计算机的计算
章节导学计算机使用二进制。人们习惯使用十进制,据说是因为人类的双手有十根手指头。与十进制相比,二进制有什么特点呢?在理论上,二进制与十进制虽各有千秋,但没有本质上的区别,计算时,既可以用十进制,也可以用二进制。但是,计算机中的二进制与数学上的二进制却有很大的差别。计算机的世界中没有正负号,没有小数点,……,只有(只能模拟)“0”和“1”。计算机使用了“纯粹”的二进制。这就意味着在使用计算机原创 2012-09-09 20:12:58 · 731 阅读 · 0 评论 -
再也不要讨论类似(i++)+(i++)+(i++)表达式的值了!
研究自增操作符的误用C语言标准并没有详细地规定一个表达式该如何求值,如3 * a + 5 * b中先算哪个乘法;表达式a = f1( ) + f2( )中先调用函数f1还是先调用函数f2;表达式( ) * ( )中,先对哪个括号里的子表达式求值。虽然不同的编译系统对子表达式的求值顺序有着不同的优化原则,但是,通常情况下一个表达式在不同的编译系统中会表现为相同的值。自增操作符的作用是让变量自原创 2012-11-11 16:33:06 · 3547 阅读 · 0 评论