C 语言是一门有用的学科,是每个大学生应该学习的课程。
我很有幸能够跟随老师学习这门课程,半个学期的时间,我学到了
很多,对C语言有了很多的了解。
作为初学者,我觉得这么课程不是那么容易,可能是没有太大
的天赋,但是我相信天道酬勤,努力就有收获。所以我尽量跟上老
师的步调,努力学好这门课程,为以后学习、工作做好铺垫。
C 语言是一门编程入门语言, 因为,无论是哪种编程语言,其
原理、本质是相通的、类似的,而C 语言在各种编程语言中又是最
基础的。有了C 语言的基础,学习其他高级语言就会变得比较简单,
更多是在学习、熟悉语言开发的环境,而不是语言本身。
学习C 语言,就好像重新学习一门外语一样,但是它比重新学
习一门外语又要简单很多。
下面是我对每章内容的小结。
第一章概述
1. 程序设计反映了利用计算机解决实际问题的全过程,具体要经
过以下四个基本步骤:分析问题,确定数学模型或方法;设计算法,
画出流程图;选择编程工具,按算法编写程序;调试程序,分析输
出结果。
2. 为解决一个问题而采取的方法和步骤,就陈伟算法。算法是程
序设计的核心。
算法具有5 个特性:有穷性、确定性、有效性、要有数据输
入、要有结果输出。算法的评价标准包括:正确性、可读性、通用
性、高效率。算法效率的度量分为时间度量和空间度量。
描述算法有多种不同的工具,常用的有:流程图、结构化流程
图和伪代码等。实用结构化流程图能帮助培养良好的程序设计风格,
提倡用结构化流程图表示算法。
3. 程序有三种基本结构,分别为顺序结构,选择结构和循环结构。
三种基本程序结构具有共同特点:只有一个入口、只有一个出口、
结构中无死语句,即结构中的每一部分都有机会被执行;结构中无
死循环。结构化定力表面那个,任何一个芜杂问题的程序,都可以
用以上三种基本结构组成。
4. 结构化程序设计采用自顶向下、逐步求精和模块化的分析方法,
从而有效地将一个较复杂的程序费解成许多易于控制和处理的子程
序,便于开发和维护。在学习程序设计过程中,要以结构化程序设
计方法的原则为指导,注意培养正确的程序设计思维方式和良好的
程序设计风格。
5. 面向对象程序设计以对象作为程序的主题,对象是数据和操作
的封装体,封装在对象内的程序通过消息来驱动运行。在图形用户
界面上,消息可通过键盘或鼠标的某种操作来传递。对象和类是面
向对象程序设计的重要概念。类是具有相同属性和方法的一组对象
的几何,它为属于该类的全部对象提供了统一的抽象描述。对象是
类的实例。对象和类具有封装性、继承性、多态性。
6.c 语言在起发展过程中形成了许多不同的版本,目前, ANSI标
准C 具有基础性地位。c 语言兼有高级语言和低级语言的特点。
7.C 语言陈股由一个或多个函数构成,,每个程序有且只有一个
主函数main(),续称执行由主函数开始和结束,在主函数执行过
程中可以调用其他函数。一个函数都由两部分组成:函数头和函数
体。含梳头即函数的第一行,函数体即函数头后面用花括号{}括
起来的部分。
8.C 语言程序每个语句和数据定义的最后,以分号表示结束。C语
言程序书写自由,一行可以写几个语句,一个语句可以写在多行上。
单位了增强程序的可读性,应醉醺人们普遍习惯的书写规则,以培
养良好的编程风格。
9.C 语言程序要经过编辑,编译,连接和运行四个步骤。
第二章基本数据类型与运算
1. C语言数据类型有:基本类型(整型、字符型、实型)、构造
类型(结构体类型、公用体类型、枚举类型)、指针类型和空
类型。
整型又分为段整形、基本整型和长整型三种。整型还可以分为
有符号型和无符号型。实型分为单精度型和双精度型。
C语言并不规定各种类型的数据占用多大的存储空间,具体事
先由编译系统自行决定。为了确定某一种类型数据的长度,可
以利用运算符sizeof ,其功能是给出相应数据类型的数据所占
用的内存字节数。
2. 变量是一个用于存放数值的内存存储区,根据变量的类型不同,
该存储区被分配不同字节的内存安源。变量用标识符命名。变
量名不能实用系统已有定义的关键字作为标识符,也不要使用
系统预定义的标识符作为标识符。C程序中用到的任何变量都
必须在使用前进行定义。
3. 整形变量可以用十进制、八进制、和十六进制来表示。鬼死那
个,以1-9 开头的数字表示十进制数;以0 开头的数字表示八
进制数;以0x 开头的数字表示十六进制数。实行乘凉只能用
十进制,可以用小数形式或指数形式表示。
字符常量以单引号定界,占一个字节存储单元,在内存中以相
应的ASCII 码存放;字符串敞亮以双引号定界,占用一段连续
的存储单元。要注意字符和字符串的区别。
符号常量是用一个标识符代表的敞亮。符号常量名常用大写,
以区别变量。
4. 转义字符占一个字节,分为以下三类:
(1) 控制输出格式的转义字符: \n 、\t 、\b 、\r 、\f 等。
(2) 控制三个特殊符号输出的转义字符: 、’、”
(3) 表示任何可输出的字母字符、专用字符、图形字符和控
制字符。\ddd 表示1-3 位八进制数所代表的字符, \xhh
表示1-2 为十六进制数所表示的代码。
5. C语言的运算符
(1) 基本算术运算符:+ - * / % ,先乘除、求余,后加减;
对于/ 运算,两个整数相除结果仍为整数; %运算符只对
整型数据有效。
(2) 逗号运算符的运算规则:从左向右依次运算每一个表达
式,逗号表达式的结果就是最后一个表达式的值。
6.++ 或—可以卸载变量之前,也可以写在变量之后。吐过单独对
一个变量施加前缀或后缀运算,其运算结果是相同的;如果对变量
施加了前缀或后缀运算,并参与其他运算,则前缀运算是先改变变
量的值再做运算,而后缀运算是先参与运算后改变变量的值。自增
和自减运算符的运算对象只能是变量,而不能是表达式或常量。
7. 当表达式中含有不同类型的数据时,运算的数据类型默认按隐式
类型转换,即从精度低的类型自动转换成精度高的类型;也可以按
显式类型转换,一般形式为:{类型标识符}表达式
第三章顺序结构程序设计
1. C语言的语句主要有简单语句、复合语句和流程控制语句三类。
简单语句包括表达式语句和空语句。表达式语句由各种表达式后
面加分号组成;空语句由一个分号构成。常用在那些语法上需要
一条语句,而实际上并不需要任何操作的场合。复合语句是用花
括号括起来的语句,它在语法上可以看作一条语句。流程控制语
句又分为选择语句、循环语句和控制转移语句。
2. C语言程序中使用频率最高也是最基本的语句是赋值语句,它是
一种表达式语句。应当注意的是,赋值运算符” =“左侧一定代
表内存中某存储单元,通常是变量。
3. C语言中没有提供输入输出语句,在其库函数中提供了一组输入
输出函数, C余元的输入输出是调用函数来实现的。其中对标准
输入输出设备进行格式化输入输出的函数是scanf 和printf 。
4. 输入函数scanf ()的功能是接受键盘输入的数据给变量输出函
数printf ()的功能是将数据以一定格式显示输出。
输出函数的一般形式为:
printf( “格式控制字符串“,输入项表)
其中格式控制字符串由格式说明符、转义序列和普通字符组成。
其中普通字符(包括转义符序列)将被简单地复制显示。而一个
格式说明符将引起一个输出参数项的转换与显示。格式说明符是
由%引出并以一个类型描述符结束的字符串,中间是一些可选的
附加说明项。
输入函数的一般形式为:
Scanf (“格式控制字符串“,输入项表)
其中格式控制字符与printf ()函数中的类似,不过一般只含有
简单的格式说明符;输入项表至少有一个输入项,且必须是变量
的地址(用变量名前加&表示)
Printf ()和scanf ()都要求格式转换说明符与输入项在个数、
顺序、类型上一一对应。
5. Putchar ()函数的功能是将字符型变量C中的字符输出到标注
输出设备上。一般形式为:
Putchar ()
其中形式参数C是一个字符型常量或变量,或者是取值不
大雨255 的整型敞亮或变量。
Getchar ()函数的功能是从标准输入设备上读入一个字符。一
般形式为:
Getchar ()
6.本章介绍的语句和函数可以进行顺序结构程序设计。顺序结构的
特点是结构中的语句按其先后顺序执行。若要改变这种执行顺序,
需要设计选择结构和循环结构。
第四章选择结构程序设计
1. 根据某种条件的成立与否而采用不同的程序段进行处理的程序结
构称为选择结构。选择结构又可以分为单分支、双分支和多分支
三种情况。一般采用if 语句实现单分支、双分支或多分支结构
程序,用switch 和break 语句事先多分支结构程序。虽然用嵌
套if 语句也能实现多分支结构程序,但用switch 和break 语句
实现的多分支结构程序更加简明。
2. If 语句条件表达式的书写通常用关系表达式或逻辑表达式表示,
也可以用一般表达式表示。因为表达式的值非0 为真, 0 为假。
所以具有值的表达式俊可作if 语句的控制条件。要特别注意区
分赋值运算符=和关系等于运算符==,不要混淆。
3. 逻辑运算表达式可以表示更复杂的条件,在其求值过程中,秉不
是所有的运算都一一计算,二十当表达式值已能确定时,其右部
的运算就不再进行。
(1)a&&b&&c:只有a 为真是,才需要判别b 的值,只有a 和b
都为真的情况下才需要判别c 的值。对&&运算符,只有a
非0 时,才继续进行右面的运算。
(2)a||b||c :只有a 为假时,才需要判别b 的值,只有a 和b
都为假的情况下才需要判别c 的值。对|| 运算符,只有a
为0 时,才继续进行右面的运算。
4. if 语句有各种形式,要注意其书写格式,理解其执行过程。表示
条件的表达式一定要加括号。当语句1 或语句2 含有多个语句时,
一定要写成复合语句。
5. 采用嵌套if 语句还可以实现较为复杂的多分支结构程序。在嵌
套if 语句中,一定要弄清楚else 与哪个if 结合。C语言规定,
else 与其前最近的同一复合语句的不带else 的if 结合。书写嵌
套if 语句往往采用缩进的阶梯式写法,目的是便于看清else 与
if 结合的逻辑关系,但折后总写法并不能改变if 语句的逻辑关
系。
6. 如果if 语句的两个分支都是赋值语句,且是同一个变量赋值的
语句,可以用条件运算符来代替if 语句。条件运算符需要三个
操作对象。用条件运算符组成的表达式称为条件表达式。
7. 使用switch 语句的困难在于构造其中的表达式。Switch 后的表
达式的类型常用int 或char 。Case后的常量表达式类型一定与
表达式类型匹配; case 后常量表达式的值必须互不相同; case
和default 出现次序不影响执行结果, default 子句可以省略。
Switch 语句只有与break 语句相结合,才能实际出正确饿多分支
结构程序。Break 语句能终止执行它所在的switch 语句。虽然用
switch 语句和break 语句实现的多分支结构程序可读性好,逻辑
关系一目了然。
Case子句后如没有break 语句,将顺序向下执行个case 子句的
语句。
第五章循环结构程序设计
1. 循环结构又称为重复结构,它可以控制某些语句重复执行,重复
执行的语句称为循环体,而决定循环是否继续执行的是循环条件。
循环结构是程序设计总应用最多的结构形式,在C语言中,可用
while 语句、do, while 语句和for 语句来实现循环结构。一般
情况下,用某种循环语句写的程序段,业内呢个用另外两种循环
语句实现。While 语句和for 语句属于当型循环,即先判断,后
执行;而do, while 语句属于直到型循环,即先执行,后判断,
而无法确定循环次数的问题采用while 语句或do, while 语句比
较自然。
2. 有时候需要用到多重循环,又称为循环嵌套,即在循环语句的循
环体内又包含另一个完整的循环结构。循环嵌套不允许交叉。
3. 为了避免出现无终止的循环,要注意循环结束条件的使用,也就
是说在循环执行中,要修改循环变量,还要注意循环的初始条件。
分析循环第一次和最后一次执行时的情况有助于写出正确程序。
如果程序执行时出现了死循环而无法正常结束,可以按【ctrl+c 】
组合键或【ctrl+break 】组合键强行退出。
4. 出现在村还踢中的break 语句和continue 语句能改变循环的执
行流程。它们的区别在于: break 语句能终止整个循环语句的执
行,而continue 语句只能结束本次循环,跳过其后的语句直接
转去判断循环条件,开始下次循环。Break 语句还能出现在
switch 语句中,而continue 语句只能出现在循环语句中。
这两个语句可以使循环的执行和退出更为灵活,但不符合结构化
的程序设计思想,建议少用。
5. goto 语句可以方便快读地转到指定的任意位置继续执行( goto
语句与语句标号必须在同一函数中)。它的任意性破坏了程序自
上而下的流程,可读性差,可维护性差,因而结构化程序设计中
不提倡使用goto 语句。
6. 本章涉及的算法设计策略有递推法、迭代法、穷举法和试探法。
递推法是利用问题本身所具有的递推福安系去问题解的一种方法,
基本思想是在规定的初始条件下,借助于一直想逐项推出未知项。
迭代法是设定一个迭代变量,由旧值算出变量新值。构造迭代算
法的关键就是确定迭代变量秉建立迭代关系。
穷举法也叫枚举法,基本思路是对众多可能解按某种顺序进行逐
一枚举和检验,秉从中找出那些符合要求的可能解作为为题的解。
试探法也称作回溯法,思路是按某种顺序从某一满足条件的初始
试探解出发,逐步试验生成满足条件的试探解。
第六章函数与编译预处理
1. 函数是利用C语言进行结构化程序设计的最基本的概念, C程序
是由函数组成的。可以把一个复杂的程序分成多个模块进行设计,
而每个模块是一个函数。Main()是C程序中最重要的函数,程
序运行从函数main()开始,也在函数main()结束。
2. 函数定义的一般形式为:
函数符函数名( [ 形式参数说明] )

声明与定义部分
语句部分

类型符指明函数返回值的类型。如果函数定义是不指明类型,系
统隐含指定为int 型。形式参数又称形参、虚参或哑元,有两个
作用:其一表示将从主调函数中接收哪些类型的信息,其二在函
数体中形式参数可以被引用。
3. 函数返回值由return 语句实现, return 语句的格式为:
Return 表达式;
函数先将表达式的值转换为所定义的类型,然后返回到主调函数
中的调用表达式。
4. 函数调用是通过函数调用表达式进行,当函数被调用时,计算机
才为形参分配存储空间。在调用函数时,函数之间的参数传递也
称为虚实结合。形参从相应的实参得到值,称为传值调用方式。
实参与形参在个数、类型上要匹配。当调用结束,流程返回主调
函数时,形参所占空间被释放。
5. 函数调用前应该已经定义或声明。
6. 函数的形参及函数内定义的变量称为局部变量,其作用范围在定
义它的函数或复合语句内。
在函数外部定义的变量称为全局变量,其作用域是从定义或声明
处到整个程序结束。
7. 变量的存储类别指的是变量在计算机中的存放位置,变量的存储
类有:自动类、外部类、静态类、寄存器类。
8. 一个函数被调用的过程中可以调用另一个函数,即函数调用允许
嵌套。
9. 一个函数直接或间接地调用函数本身,称为递归调用。任何有意
义的递归总是由两部分组成的;递归方式与递归终止条件。
10. 一般来说,一个函数只要不是主函数,就可以被其他函数调用。
可以认为函数默认是外部的。为了减少函数的互相影响, C语言
规定,有的函数只能被定义它的文件中的其他函数调用,而不能
被其他文件中的函数调用,,这样的函数称为内部函数或静态函
数。
11. 以#开始的行称为编译预处理命令,这些行完成与预处理器的
通信,预处理的步骤在编译前自动执行。编译预处理语句的作用
范围是从它在文件中的出现处到文件尾或者是被其他命令取消作
用的位置。常用的编译预处理命令有宏定义,文件包含,条件编
译等。
12. 宏定义又称宏替换,主要功能是用一个指定的标识符代替一个
字符串,宏定义又分为不带参数的宏定义和带参数的宏定义两种。
宏定义可以嵌套,即用定义的宏名去定义另一个宏名。
13. 如果想把宏定义的作用域限制在程序的某个范围内,可以使用
#undef 来解除已有的宏定义。
14. 文件包含的功能是把一个指定文件嵌入到现有的源程序文件中。
15. 条件编译就是根据条件对C程序的某一部分进行编译,其他部
分不编译。
这就是我半个学期学到的东西,可能有些不足,有些不深刻。
我学习C语言的心得:
多读程序是必不可少的,我们不能刚入门C 语言就希望自己能
编出多么了不起的程序,刚开始就要多读程序,并且要读懂。在读
懂的基础上就要求学习分析这个程序的设计思路是什么,再就是思
考有不有比它更简单的设计思路。
作为一门编程语言,要想熟练掌握,就需上机亲自操作。纸上
得来终觉浅,绝知此事要躬行。在机器上,重复别人的代码,是我
们初学者的学习编程语言的必经之路,也是很好的捷径。C 语言的
理论课和上机课是差不多多的。可见上机亲自操作是多么的重要。
当我们的代码累积到一定量的时候我就要学会改别人的程序,
把别人的东西变成自己想要的。学编程就要思维很发达,敢想并敢
去试。不要轻易的放弃自己的每一个想法,一次不成功就要多试几
次,因为程序本身就是需要不断的测试才会成功的。
我了解的还太少,还需要很虚心的不断学习,不断进步。

C语言各章学习心得,小节相关推荐

  1. 统计学习方法 第一章 学习心得

    统计学习方法 第一章 学习心得 以下可能有不当之处,请各位朋友停步指正,先谢过各位. 上一帖子说道,统计学习方法的三要素: 模型.策略.算法. 模型:模型的假设空间 策略:模型的选择准则,即:定义最优 ...

  2. c语言程序培训,C语言编程培训学习心得

    说到C语言学习真的是千言万语,可以说C语言在世界语言排行榜中位居前列,像一些操作系统.驱动软件.多媒体软件.大型游戏. 杀毒软件等等软件操作系统,都是C\C++的特区,对于其他语言来讲真的是望尘莫及. ...

  3. 《Windows程序设计》第三章学习心得(1)|图解消息机制

    注释:文章转载自如鹏网论坛,版权归原作者所有. 为了绘制下面那张所谓"Windows消息循环流程图",忙活了一下午!先给表扬一下自己(吼吼~画得还蛮好看的嘛!),再泼桶冷水(呃~乱 ...

  4. c语言指针章总结,c语言指针的学习心得

    #include main() { view *有求于人: if(真的做不到) { point  *怎么办? 怎么办?=&可以去找比自己犀利的人寻求: } else(做的到&& ...

  5. c语言函数指针学习心得,c语言 函数指针 学习C语言笔记

    c语言 函数指针 大一学的C语言,课,算是学了一遍,后来接触Java,C++,易语言,python,还有写单片机用的类似C语言,可以说后来根本没有好好学,C也忘个差不多了,但是这次我课选了OC,不喜欢 ...

  6. c语言之数据结构学习心得

    写在前面   你们好,我是小庄.很高兴能和你们一起学习c语言.如果您对编程感兴趣的话可关注我的动态.   写博文是一种习惯,在这过程中能够梳理知识和巩固知识点. 一.绪论 1.什么是数据.数据元素.数 ...

  7. 汇编语言 王爽 第四版 前两章学习心得

    博客开篇 从大学入学开始,心里就萌生了写博客的想法,奈何自己太懒惰,一直没有付诸于行动.工作后,最近上班还算清闲,故又萌生出了写博客的想法.千里之行,始于足下.谨以此篇博客作为自己的博客开端,文中不足 ...

  8. 《windows程序设计》第二章学习心得

    Unicode简介 Unicode是ASCII字符编码的一个扩展.Unicode用的是16位字符编码,而不是像ASCII那样的7位编码. ------------------------------- ...

  9. c语言指针心得6,c语言指针的学习心得

    #include main() { view *有求于人: if(真的做不到) { point  *怎么办? 怎么办?=&可以去找比自己犀利的人寻求: } else(做的到&& ...

最新文章

  1. python音乐的数据抓取与分析_Python练习之抓取QQ音乐数据
  2. python软件界面-用Html来写Python桌面软件的UI界面-htmlPy
  3. 图解MySQL数据库的安排和把持-1
  4. 计算器的程序代码java_求用JAVA编写的计算器程序代码
  5. 在 SUSE 11 sp2 上安装 freeradius
  6. 《犯罪心理学》读书笔记(part8)--犯罪心理的主观差异(中下)
  7. linux中查找文件属于那个软件包的方法
  8. 【HDU - 6662】Acesrc and Travel(树形dp,博弈dp)
  9. java adt入门教程_【教程】【多图详解】如何在Eclipse中离线安装ADT(Android Development Tools)...
  10. 《音乐达人秀:Adobe Audition CC实战222例》——1.3 数字录音记录生活越来越便捷...
  11. Page_Load基类,重写OnLoad
  12. Java集合框架总结
  13. Java反编译xml实现_如何反编译apk文件得到源码和XML文件
  14. usb万能驱动win7_我!Win7!还能接着续!Z490 B460 H410 Win7 保姆教程
  15. 各编程语言用途及分类
  16. 炫彩的按钮渐变动画——css3
  17. P02014132 魏思奇 对信息论几个问题的一些看法
  18. 在html中进行表单设计,谈谈网页中的表单设计
  19. SQL注入靶场 RedTiger通关教程(level1~level10)
  20. VMWare安卓安卓系统虚拟机

热门文章

  1. Quartz简介及初始化
  2. 微信小程序使用qrcode生成二维码(可用于微信收款)
  3. 【网络安全】重放攻击(Replay Attacks)
  4. 再探https与重放攻击
  5. 2019 南京 网络赛 B (二维偏序,树状数组离线)
  6. 一、计算机基础: 特点、数制、编码、组成
  7. MATLAB符号表达式运算
  8. 文件浏览器ftp服务器,es文件浏览器查看ftp服务器
  9. 【Python】批量修改照片日期和文件名
  10. “常量中有换行符”的解决方法