C语言渐渐
① c语言很难么
C语言个人认为并不是难,因为在大学刚上计算机语言,大家都缺少学习编程语言的基础,而大学老师很多都是照本宣科,并没有去备好课程,所以上课就只能去读那种晦涩难懂的句子,说不定自己都不懂。其次,C语言从一届学生口中,口耳相传,就会给人以心理暗示,大学真的好难的错觉,以至于最终大家潜意识都会认为C语言很难。最后,要告诉提问的小伙伴,C语言不是难,而是你没有找到一个好的引路人,如果你有问题,可以继续发给我
② 什么是C++
C++这个词在中国大陆的程序员圈子中通常被读做“C加加”,而西方的程序员通常读做“C plus plus”,“CPP”。 它是一种使用非常广泛的计算机编程语言。C++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。
在C基础上,一九八三年又由贝尔实验室的Bjarne Strou-strup推出了C++。 C++进一步扩充和完善了C语言,成为一种面向 对象的程序设计语言。C++目前流行的编译器最新版本是Borland C++4.5,Symantec C++6.1,和Microsoft VisualC++ 2012。C++提出了一些更为深入的概念,它所支持的这些面向对象的概念容易将问题空间直接地映射到程序空间,为程序员提供了一种与传统结构程序设计不同的思维方式和编程方法。因而也增加了整个语言的复杂性,掌握起来有一定难度。
C++由美国AT&T贝尔实验室的本贾尼·斯特劳斯特卢普博士在20世纪80年代初期发明并实现(最初这种语言被称作“C with Classes”带类的C)。开始,C++是作为C语言的增强版出现的,从给C语言增加类开始,不断的增加新特性。虚函数(virtual function)、运算符重载(operator overloading)、多重继承(multiple inheritance)、模板(template)、异常(exception)、RTTI、命名空间[1](name space)逐渐被加入标准。[2]
1998年国际标准组织(international standard organization, ISO)颁布了C++程序设计语言的国[3]际标准ISO/IEC 1988-1998。C++是具有国际标准的编程语言,通常称作ANSI/ISOC++。[4]
1998年是C++标准委员会数枝成立的第一年,以后每5年视实际需要更新一次标准。C++0x最终国际投票已于2011年8月10日结束,并且所有国家都投出了赞成票,C++0x已经毫无疑义地成为正式国际标准。先歼铅前被薯改敏临时命名为C++0x的新标准将被称为C++ 2011。C++ 2011将取代现行的C++标准ISO/IEC 14882,它公开于1998年并于2003年更新,通称C++98以及C++03。国际标准化组织于2011年9月1日出版发布ISO/IEC 14882:2011,名称是:Information technology -- Programming languages -- C++ Edition: 3。
计算机诞生初期, 人们要使用计算机必须用机器语言或汇编语言编写程序。世界上第一种计算机高级语言诞生于1954年, 它是FORTRAN语言。 先后出现了多种计算机高级语言。 其中使用最广泛、影响最大的当推BASIC语言和C语言。
BASIC语言是1964年在FORTRAN语言的基础上简化而成的, 它是为初学者设计的小型高级语言。
C语言是1972年由美国贝尔实验室的D.M.Ritchie研制成功的。 它不是为初学者设计的,而是为计算机专业人员设计的。 大多数系统软件和许多应用软件都是用C语言编写的。
但是随着软件规模的增大, 用C语言编写程序渐渐显得有些吃力了。
C++是由AT&T Bell(贝尔)实验室的Bjarne Stroustrup博士及其同事于20世纪80年代初在C语言的基础上开发成功的。 C++保留了C语言原有的所有优点, 增加了面向对象的机制。
C++是由C发展而来的, 与C兼容。 用C语言写的程序基本上可以不加修改地用于C++。 从C++的名字可以看出它是C的超越和集中。 C++既可用于面向过程的结构化程序设计, 又可用于面向对象的程序设计, 是一种功能强大的混合型的程序设计语言。
C++对C的“增强”,表现在六个方面:
(1) 类型检查更为严格。
(2) 增加了面向对象的机制。
(3)增加了泛型编程的机制(template)
(4)增加了异常处理
(5)增加了运算符重载
(6)增加了标准模板库(STL)
面向对象程序设计,是针对开发较大规模的程序而提出来的,目的是提高软件开发的效率。不要把面向对象和面向过程对立起来, 面向对象和面向过程不是矛盾的,而是各有用途、互为补充的。
学习C++, 既要会利用C++进行面向过程的结构化程序设计, 也要会利用C++进行面向对象的程序设计,更要会利用模板进行泛型编程。
C和C++关系
但是,C是C++的基础,C++语言和C语言在很多方面是兼容的。因此,掌握了C语言,再进一步学习C++就能以一种熟悉的语法来学习面向对象的语言,从而达到事半功倍的目的。
C timeline
1978 k&R C---->1988 ANSI C-->1995 ISO C
学习C语言最经典的还是The C Programming Language
发展历史
C++语言发展大概可以分为三个阶段:
第一阶段
从80年代到1995年。这一阶段C++语言基本上是传统类型上的面向对象语言,并且凭借着接近C语言的效率,在工业界使用的开发语言中占据了相当大份额;
第二阶段
从1995年到2000年,这一阶段由于标准模板库(STL)和后来的Boost等程序库的出现,泛型程序设计在C++中占据了越来越多的比重性。当然,同时由于Java、C#等语言的出现和硬件价格的大规模下降,C++受到了一定的冲击;
第三阶段
从2000年至今,由于以Loki、MPL等程序库为代表的产生式编程和模板元编程的出现,C++出现了发展历史上又一个新的高峰,这些新技术的出现以及和原有技术的融合,使C++已经成为当今主流程序设计语言中最复杂的一员。[7]
优点
C++代码
· C++设计成静态类型、和C同样高效且可移植的多用途程序设计语言。
· C++设计成直接的和广泛的支持多种程序设计风格(程序化程序设计、资料抽象化、面向对象程序设计、泛型程序设计)。
· C++设计成给程序设计者更多的选择,即使可能导致程序设计者选择错误。
· C++设计成尽可能与C兼容,借此提供一个从C到C++的平滑过渡。
· C++避免平台限定或没有普遍用途的特性。
· C++不使用会带来额外开销的特性。
· C++设计成无需复杂的程序设计环境。[8]
出于保证语言的简洁和运行高效等方面的考虑,C++的很多特性都是以库(如STL)或其他的形式提供的,而没有直接添加到语言本身里。关于此类话题,Bjarne Stroustrup的《C++语言的设计和演化》(1994)里做了详尽的陈述。
C++在一定程度上可以和C语言很好的结合,甚至目前大多数C语言程序是在C++的集成开发环境中完成的。C++相对众多的面向对象的语言,具有相当高的性能。
C++引入了面向对象的概念,使得开发人机交互类型的应用程序更为简单、快捷。很多优秀的程序框架包括MFC、QT、wxWidgets就是使用的C++。[9]
代码性能
人们一般认为,使用Java或C#的开发成本比C++低。但是,如果充分分析C++和这些语言的差别,会发现这句话的成立是有条件的。这个条件就是:软件规模和复杂度都比较小。如果不超过3万行有效代码(不包括生成器产生的代码),这句话基本上还能成立。否则,随着代码量和复杂度的增加,C++的优势将会越来越明显。造成这种差别的就是C++的软件工程性。[9]
缺点
C++由于语言本身过度复杂,这甚至使人类难于理解其语义。更为糟糕的是C++的编译系统受到C++的复杂性的影响,非常难于编写,即使能够使用的编译器也存在了大量的问题,这些问题大多难于被发现。[9]
由于本身的复杂性,复杂的C++程序的正确性相当难于保证。也有人提出不支持多线程的原语等缺陷。不过有如此多的知名人士提出了如此多的缺陷,正说明C++被广泛使用和成功。
c++语言由于过度的复杂性,以及与unix的文化相抵触,在unix/linux领域受到很多着名人士(比如Linux之父linus torvalds与着名黑客Eric S. Raymond)的强烈批评与抵制。
C++基本数据类型和表达式
数据是程序处理的对象,数据可以依其本身的特点进行分类。我们知道在数学中有整数、实数概念,在日常生活中需要用字符串来表示人的姓名和地址,有些问题的回答只能是“是”或“否”(即逻辑“真”或“假”)。不同类型的数据有不同的处理方法,例如:整数和实数可以参加算术运算,但实数的表示又不同于整数,要保留一定的小数位;字符串可以拼接;逻辑数据可以参加“与”、“或”、“非”等逻辑运算。
我们编写计算机程序,目的就是为了解决客观世界中的现实问题。所以,高级语言中也为我们提供了丰富的数据类型和运算。C++中的数据类型分为基本类型和自定义类型。基本类型是C++编译系统内置的。
基本数据类型
C++的基本数据类型如下表所示(表中各类型的长度和取值范围,以面向IA-32处理器的VC++ 2008和gcc 4.2为标准)。
类型名 长度(字节) 取值范围
bool 1 false,true
char
1 -128~127
signed char 1 -128~127
unsigned char 1 0~255
short(signed short) 2 -32768~32767
unsigned short 2 0~65535
int(signed int) 4 -2147483648~2147483647
unsigned int 4 0~4294967295
long(signed long) 4 -2147483648~2147483647
unsigned long 4 0~4294967295
float 4 3.4X10^(-38)~3.4X10^(38)
double 8 1.7X10^(-308)~1.7X10^(308)
long double 8 1.7X10^(-308)~1.7X10^(308)
编辑本段编程技巧
new和delete
运算符new和delete提供了存储的动态内存分配和释放功能,它的作用相当于C语言的函数malloc()和free(),但是性能更为优越。使用new较之使用malloc()有以下的几个优点:
(1)new自动计算要分配类型的大小,不使用sizeof运算符,比较省事,可以避免错误。
(2)自动地返回正确的指针类型,不用进行强制指针类型转换。
(3)可以用new对分配的对象进行初始化。[11]
inline
对于频繁使用的函数,C语言建议使用宏调用代替函数调用以加快代码执行,减少调用开销。但是宏调用有许多的弊端,可能引起不期望的副作用。例如宏:#define abs(a)(a)<0?(-a):(a)),当使用abs(i++)时,这个宏就会出错。
所以在C++中应该使用inline内联函数替代宏调用,这样既可达到宏调用的目的,又避免了宏调用的弊端。
使用内联函数只须把inline关键字放在函数返回类型的前面。[11]
函数重载
在C语言中,两个函数的名称不能相同,否则会导致编译错误。而在C++中,函数名相同而参数数据类型不同或参数个数不同或二者皆不同的两个函数被解释为重载。
使用函数重载可以帮助程序员处理更多的复杂问题,避免了使用诸如intabs()、fabs()、dabs()等繁杂的函数名称;同时在大型程序中,使函数名易于管理和使用,而不必绞尽脑汁地去处理函数名。同时必须注意,参数数据类型相同,但是函数返回类型不同的两个函数不能重载。[11]
参数传递
在C语言中,如果一个函数需要修改用作参数的变量值的时候 ,参数应该声明为指针类型;当参数的大小超过一个机器字长时,通过传值方式来传递参数的效率较低,也需要用指针。由于C语言的指针可以进行p++,--p,p+=1等算术运算,所以编译器无法在编译的时候确定指针引用的变量。对于复杂的程序,使用指针容易出错,程序也难以读懂。在C++中,对于上述情况 可以使用引用来代替指针,使程序更加清晰易懂。引用就是对变量取的一个别名,对引用进行操作,这就相当于对原有变量进行操作。[11]
缺省参数
在C++中函数可以使用缺省参数。
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。否则当你省略其中一个参数的时候,编译器无法知道你是自定义了这个参数还是利用了缺省参数而定义了非缺省的参数。[11]
使用STL
STL(Standard Template Library,标准模板库), STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),并包括一些工具类如auto_ptr。几乎所有的代码都采用了模板类和模板函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。
作用符被重载,使得我们可以像访问数组一样访问vector中的元素。[11]
使用模板
.模板的概念。
模板是C++的一个特性,是函数和类可以作用于不同的类型上而不需要针对每一个具体类型重复相同的代码。与模板相反,我们已经学过的重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。如果使用模板就可以只写一个通用的MAX模板,而不需要针对每个类型重复相同的逻辑。
指针与引用的区别
指针与引用看上去完全不同(指针用操作符“*”和“->”,引用使用操作符“&”),但是它们似乎有相同的功能。指针与引用都是让你间接引用其他对象。你如何决定在什么时候使用指针,在什么时候使用引用呢?
首先,要认识到在任何情况下都不能使用指向空值的引用。一个引用必须总是指向某些对象。因此如果你使用一个变量并让它指向一个对象,但是该变量在某些时候也可能不指向任何对象,这时你应该把变量声明为指针,因为这样你可以赋空值给该变量。相反,如果变量肯定指向一个对象,例如你的设计不允许变量为空,这时你就可以把变量声明为引用。[12]
③ Dev-C++的历史发展
C++是从C语言中发展而来的。C语言是1972年由美国贝尔实验室(AT&TBell)的D.M.Ritchie研制成功的。它不是为了初学者设计的,而是为计算机专业人员设计的。最初它是作为写UNIX操作系统的一种工具,在贝尔实验室内部使用。后来C语言不断改进,人们发现它功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好,既具有高级语言的优点,又具有低级语言的许多优点,特别适合于写系统软件,因此C语言从实验室走向美国,从美国走向世界。到20世纪70年代,它已风靡全世界。无论是在中国还是在外国,C语言都成为了计算机开发人员的基本功。
但是随着软件规模的增大,用C语言编写程序渐渐显得有些吃力了。C语言是结构化和模块化的语言,它是面向过程的。在处理较小规模的程序时,程序员用C语言还是比较得心应手。但是当问题比较复杂、程序的规模比较大时,结构化程序的设计方法就显出它的不足。
为了解决软件设计的危机,在20世纪80年代,人们提出了面向对象的程序设计(object oriented programming,OOP),需要设计出能支持面向对象的程序设计方法的新的语言。在实践中,人们发现由于C语言是如此的深入人心,使用如此广泛,面对程序设计方法的革命,最好的办法不是另外发明一种语言去代替它,而是在它原有的基础上加以发展。在这种形式下,C++应运而生。C++是由贝尔实验室(AT&TBell)的Bjarne Stroustrup博士及其同事于20世纪80年代初在C语言的基础上开发成功的。
AT&TBell发布的第一个Dev-C++编译系统实际上是一个预编译器(前端编译器),真正的Dev-C++程序是在1988年诞生的。
C++中提供丰富的STL模板库,不仅适合算法竞赛,同样适合软件开发。
④ 怎样让发光二极管渐渐的亮或渐渐的暗掉 C语言程序
这主要靠硬件上的支持了。
发光二极管的亮度,跟流过它的电流有关。
要改变电流,一是改变VCC电压,一是改变回路上的限流电此如阻。
改变电压,
最奢侈的方法就是加个DA ,单片机控制输出电压值。
要不就是IO口输出一个PWM波,要加个滤波电路。通过调整闹举PWM波的占空比来改变电压
改变阻抗。
要看你亮暗分多少档了,用几个IO口来控森弯启制,每个口上控制的回路阻抗大小不同,用几个口的组合来弄出不同的回路阻抗。
⑤ c语言心得体会
c语言心得体会范文7篇
在平日里,心中难免会有一些新的想法,可用写心得体会的方式将其记录下来,这样我们可以养成良好的总结方法。那么心得体会该怎么写?想必这让大家都很苦恼吧,以下是我帮大家整理的c语言心得体会范文,供大家参考借鉴,希望可以帮助到有需要的朋友。
c语言心得体会范文1
在初学C语言的一个学期后,我们进行了C语言实训阶段,尝试编写一个比较复杂的程序系统。在为期一周的时间中,我们同组的同学共同的感受是:C语言实训和平时上课所接触的程序是有很大不同的,所经受的考验和克服的困难是平时所无法比拟的。好在同组的搭档们精诚合作,分工明确,有问题共同解决,攻克了C语言实训的复杂程序。在这里,我作为其中的参与者,感触良多。
在这次实训中,我对对C语言有了一个更深的了解认识,也对这个学期学的知识得到巩固,还尝试运行编程,每次运行程序成功,让我对下面的项目就充满信心。通过自己与同学合作编写程序,最终把最初的理论知识转化基本技能。这次的实训,使我对C语言的学习产生浓厚的兴趣。
耐神还是这次实训,最令人激动的就是合作做项目,虽然那只是一个很小很小的项目。每天大家来得很早,大家在一起学习,取长补短,我们很好的在实训中长知识,提高我们的学习热情。实训中深切体会到了老师认真负责的伟大的精神和热情为同学指导的促学方式,虽然对有些时候老师没给我们指出解决问题的方法有些小抱怨,但是到了结束时才知道,这种教学让我们自己学会了自学,学会了去看懂别人的代码。更多是老师给的感动,每天在我们来之前就到了教室,在讲课中海给我们分享他在公司上班的一些心得和体会,还有那些我们应该注意的事项,这些是平时上课时无法学到的,是更深层次的巨大收获。
通过这次实训,也使我们发现了许多问题。
在实训中,我们认识到自己还有很多的知识没学好,基础知识没理清,而且许多东西还要去翻书,去上网搜索。而且遇到一些小错误运行不出来,就会烦躁不安,觉得有些自暴自弃或者抱怨项目的变态,以后要克服,尽量保持一颗良好的心态,学好C语言,也学好用C语言编写一个按要求的系统。
还有就是对于未来,近程就是下学期,我觉得我还有许多方面需要提高。
首先我要继续学习好C语言的基础知识,然后能在电脑上熟练的运用。然后每天都能写一些程序,上网时候多看一些优秀的教程和优秀的代码。遇到问题时多和同学讨论,并且多弄出几套方案,多锻炼自己结局问题的能力和与同学合作的能力。
总之,这一切都成为我记忆里面的一个篇章,更是在C语言编程上的一个里程碑。
c语言心得体会范文2
通过一学期对C语言的学习,我感觉学习C语言是有一定难度却又是非常有趣的科目。也是很有帮助的,特别是对将要面对的计算机二级考试。这段时间的学习我知道了C语言的基本特点有以下几点:
1.语言简洁,使用灵活方便。
2.运算符丰富,表达能力强。
3.数计类型丰富。
4.目标程序质量高,具有面向硬件系统的特点。
5.具有结构化的控制语句和模块化的程序结构。
6.具有编译预处理功能。
7.程序设计自由度大,可移植性好。卜灶
这段时间学习使我掌握了:
一、我学习了C语言的数据类型、常量与符号常量、变量、C语言的运
算符和表达式、赋值运算符和赋值表达式、自增自减运算符以及逗号表达式等。
二、这章介绍了结构化程序的三种基本结构、C语句概述、数据输出包
括字符输出函数putchar和格式输出函数printf、数据输入包括字符输入函数getchar和格式输入函数scanf,还有一些简单的C语程序设计举列等。
前几天一直在看C++语法,所以对一些比较实际的例子总感到比较抽象,但是昌弊亏那也是一个必需阶段,可能大家和我的学习方式不一样,但从刚接触程序到现在来看,发现这样学习语言的方法挺不错的。
经过第一阶段对语法的学习,我觉得实例阶段应该是一个过渡阶段吧,通过前一阶段对语法的学习之后,可能有很多概念我们都比较模糊,或者说很多东西太抽象了,这就为我们第二个阶段的学习做好了实例化的准备,可以这样说吧,第一个阶段就我们为我们的学习一样东西而构建的一个类,里面讲了我们应该在这里面要做什么?第二阶,也就是本阶段,我们就应该去把前一段的东西具体化(实例化先前创建的类),那怎么个具体化呢,呵呵!说白了,去练习一些小例子,从网上下载的电子书上有很多这方面的例子的,如果有自己去书店买书的话,里面也应该提供了不少,里面的例子,我是每次都打了一遍,也许有的人不会亲自去用手打一遍,什么等,当然这样也行,但我个人认为,对于初学者来说,最好还是自己动手打一遍比较好,毕竟这些东西对我们来说,都比较陌生,如果每个字都自己打完的话,有些代码你不想记住也难了,在这里,我们得弄懂练习的每一个例子,如果能把一些例子稍稍修改,弄懂里面精髓的东西,让自己知道为什么这样做,那么是最好不过的了,我平时练习时,这一步是少不了的,都习惯了,所以也就成了条件反射,想不这样都不行。最后,我们就应该汇一下总,把前面做过的例子里所用的技术理一下,再做一个比较大的例子,尽量把到目前为止所懂的知识全部应用到里面去,只是尽量,当然有些东西是不能集成到一起的,也是是代码之间的排斥性。
这是个人的一点学习心得,希望能更好的运用到学习中去。C语言是一门很有用的、对于我们的就业很实际的语言,学习好C语言是一项必须而实际的任务。我们必须要好好掌握。
c语言心得体会范文3
三周的课程设计已经结束了。
回想学习C语言 的过程中,既有快乐又有烦恼。
从领到书的那一刻,我就很郁闷,《C 语言程序设计》到底事学什么的,有什么用。刚开始上课时,还在迷茫这门课程是用来做什么的。不过,这些感受都是在对这门课程不了解的情况下产生的。后来慢慢的接触多了,听老师讲的多了,了解多了,渐渐的产生了兴趣。尤其是学到语句和函数时,上机操作程序,经过编译,调试和运行后,出现界面,当时觉得很好奇,想真正的学好这门课程。通过半个学期的学习,我掌握了基本知识。
下学期开始时,被通知要进行三周的课程设计。当时有点懵,感觉学的东西很少,很零散,不知该怎么练到一起,就要课程设计,是不是太难为我们了。
第一天基本上都是在看书,把基本知识再熟悉一边。到了下午的时候,老师发过来三道练习题,从这几道练习题上我得到了不少启发,然后我们组把整个程序的思路理清了,开始着手写程序。
第一周结束的时候,我感觉自己收获挺大的,从一开始的迷茫,不知道从何下手到把程序中的几个模块编写出来,心里挺开心的。但是,到了第二周,我们由不得不再次陷入困境。在整个程序的编写过程中。最难的就是修改和删除这两个模块,这也是我们第二周要解决的重点问题。
开始编写修改和删除时,很头疼,去向其他人寻求帮助,在别人的帮助和提示下,我编完了修改程序,但编译时老出错,修改后的内容将文本内的信息全部覆盖了。困难之时,我们组的其他人,帮助了我,完成了修改和删除。这样的话,整个程序基本上全部完成了,就剩下完善工作了。我们组写了两个程序,最后,两个程序相互组合,互补,大功告成
虽然设计时完成了,但是我觉得其中还是由一些不足之处:
1. 警告句。程序中缺少一些警告句,例如:“是否真的删除(y/n)?”。
2. 重名的情况。由于考虑的不周全,没有设计遇到重名的情况该怎么处理。
3. 选择单一。我们设计的程序中,只设计了按名字选择,进行操作,忽略了重名的情况。
整个程序完成了,还有很多不完善的地方,希望自己以后办事的时候要认真,仔细,考虑周全。
短短的三周课程设计结束了,但是这段时间里,我又学到了更多C 知识,如:对象数组,string类,文件流等,同时我也被提醒以后办事的时候要认真,仔细,考虑周全。,也看到了团队精神和互帮互助的重要性。这一点会让我终生受益。通过三周的课程设计,我觉得自己肚子里的墨水多了,收获也挺大的,这三周过的挺充实!
c语言心得体会范文4
在初学C语言的一个学期后,我们进行了C语言阶段,尝试编写各种类型的程序。在为期一个周时间中,我的感受是:C语言实训和平时上课所接触的成有很多不同,所经受的考验和克服的困难和平时的相差不大,遇到不会做的题同学互相讨论,互相帮助,共同解决,攻克了C语言的复杂程序,我感触良多。
在这次实训中,我对C语言有了一个更深的认识了解,也对这学期的知识得到巩固,还尝试了运行编程,每次运行程序成功,让我对下面的项目充满了信心通过自己的努力最终把最初的理论知识转化成基本技能,这次的实训,是我对C语言的学习产生了农活的兴趣。
还是这次实训,最令人激动的就是同学遇到问题互相帮助虽然只是一个很小得实训,但同学们的满腔人情却是值得骄傲的,我们在实训中取长补短在实训中长知识,提高了我们学习,虽然对有些时候老师没给我们指出解决问题的方法有一些小抱怨,但到了结束是才知道,这种教学让我们自己学会了自学,学会了去看懂别人的代码。更多的是老师的感动,每天在我们来之前家到了机房,给我们我分享他学C语言的感受,还提醒我们注意在编程时与遇到的事项,,这些是我们平时上课无发了解到的知识是我们更深层次的极大收获。
通过实训我们也发现了许多问题,在试训中我认识到自己还有很多知识没学好,最基本的'知识点没有理清楚,而且许多东西要经过翻书,上网查阅,搜索,遇到一小点错误运行不出来,就会烦躁不安,觉得有些自暴自弃或这抱怨题目有些变态,以后要克服,尽量保持一颗蓝好的心态,学好C语言,用C语言来编写一个按要求的系统。
对于未来,近程下个学期,我觉得我还有许多方面需要提高。
首先我要继续学习好C语言的基础知识,然后能在电脑上熟练的运用。能写出一些程序,上网的时候多看一些优秀的教程和优秀的代码,遇到问题是多和同学讨论,并且多弄出几套方案,多练习自己结局问题的能力和与同学合作的能力。
总之,这一切都成为我记忆里面的一个篇章,更是C语言编程上的一个里程碑。
c语言心得体会范文5
在科技高度发展的今天,计算机在人们之中的作用越来越突出。而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。
在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,更多的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。
由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。包括了程序模块处理。简单界面程序。高级界面程序。程序的添加修改。用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。
上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:
1.加深对课堂讲授内容的理解
课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用c语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,
这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。
学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。
通过上机实验来验证自己编制的程序是否正确,恐怕是大多数同学在完成老师作业时的心态。但是在程序设计领域里这是一定要克服的传统的、错误的想法。因为在这种思想支配下,可能你会想办法去"掩盖"程序中的错误,而不是尽可能多地发现程序中存在的问题。自己编好程序上机调试运行时,可能有很多你想不到的情况发生,通过解决这些问题,可以逐步提高自己对c语言的理解和程序开发能力。
2.熟悉程序开发环境、学习计算机系统的操作方法
一个c语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。所谓"环境"就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。通过上机实验,熟练地掌握c语言开发环境,为以后真正编写计算机程序解决实际问题打下基础。同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。
3.学习上机调试程序
完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。有时候一个消耗你几个小时时间的小小错误,调试高手一眼就看出错误所在。
通过这次为数不多的几天计算机实践学习,我们了解了一些关于c语言的知识,理解巩固了我们c语言的理论知识,着对我们将来到社会工作将会有莫大的帮助。同时它让我知道,只要你努力,任何东西都不会太难。
c语言心得体会范文6
1、引言
《C语言程序设计》是各大高校理工类专业的一门重要的必修课程,由于C语言使用灵活,数据类型繁多,结构复杂,因此学生在学习该课程时都或多或少的感觉头疼,学习不得要领。这就要求教师在教学中需要贯穿先进的教学理念,采用适合的教学方法。本文针对C语言教学中存在的问题,结合多年的教学经验,提出几点教学方法和体会。
2、C语言教学中存在的问题
2.1学生学习热情不高
C语言课程的开设对象一般为大一学生,想让他们马上接受程序设计的思想几乎是不可能的。另外他们从高年级同学那里得知C语言学习难度大,就会产生学习C语言这门课程的惧怕心理。还有一部分学生认为学习C语言对自身的专业没有什么用处,因此产生了厌学的情绪。
2.2传统教学方式存在弊端
以教师为中心的灌输式教学方法忽视了学生的“学”,学生处于被动接受状态,缺少教师和学生的互动,学生学习的主动性、积极性难以发挥。虽然近年来C语言程序设计课程多媒体课件教学得到广泛普及,在某种程度上激发了学生的学习兴趣,但仍然没有脱离传统教学方式,缺少教学目标的针对性,由“照本宣科”变为“照片(幻灯片)宣科”,没有从根本上解决师生交互匮乏的现实[1]。
2.3学生学习方法不得当
由于大一学生还不是很适应大学的学习方式,很多时候还沿用高中时候学数学、英语等科目的方法来学习C语言,一些学生只重视理论知识,以为光靠背一背、做做题就能学好,忽视了实践环节的重要性,从而导致了一部分学生学不得法,效率极低。
3、几点教学体会
针对上述存在的问题,分别提出几点体会,可以归纳为:“一个目标”、“两个关键”、“三步实践”。
3.1树立一个目标
这是针对学生的学习态度提出的。做一件事情如果没有一个明确的目标。就很难提起兴趣,遇到困难也很容易放弃,当然也无法做好。学习C语言也不例外。如果想激发学生的学习兴趣,让学生喜欢学、主动学,就必须让学生明确为什么要学习C语言,明确一个学习的目标。事实上,学习C语言对于任何专业的学生都有莫大的好处,可以锻炼逻辑思维能力,对以后的专业课的学习有很好的辅助作用,也会对以后学习其他编程语言打下良好的基础,正所谓”万变不离其宗”,如果真正掌握精了程序设计思想,具备了真正解决实际问题的能力,语言再更新可程序设计的本质不会变[2]。当然,从更实用的角度来看,可以把“通过国家二级考试”作为一个为之努力实现的目标,不仅对以后就业很有帮助,让学习有了兴趣和动力,有了克服困难的决心,取得事半功倍的效果。
c语言心得体会范文7
在初学C语言的一个学期后,我们进行了C语言实训阶段,尝试自己编写一个比较复杂的程序系统。在为期两周的时间中,我们同组的同学共同的感受是:C语言实训和平时上课所接触的程序是有很大不同的,所经受的考验和克服的困难是平时所无法比拟的。好在同组的搭档们精诚合作,分工明确,有问题共同解决,攻克了C语言实训的复杂程序。在这里,我作为其中的参与者,自然感触良多。
刚开始接触到C的时候,我已经学过一些有关VB的内容,这个在算法和思维上稍微有点帮助。回想本学期的学习,首先,最基本的,是C的数据格式,让我们知道整数,浮点数以及字符常量在C中的运用。然后,在学会了数据转化,以及熟练的可以对各种数据处理之后,我开始进行有关数据结构,像数组,结构体等的学习,因为有的东西从现有的知识来看都是非常简单的,还没有联系到指针等等一些复杂的概念。可是,仅仅学会这些是远远不够的,C语言中,还有很多更加经典、重要、实用的知识。
说说函数。虽说很多程序语言都有函数这一内容,但我觉得C语言的函数是最有魅力的了。学习函数的方法是比较简单的,只有两个字“牢记”,即:牢记函数的功能,牢记函数的用途以及如何输入输出。函数从本质上讲是一段通用程序,用它可以帮助我们节约很多编程的时间,学习C语言的“高人”都说,一个聪明的编程者在编写程序前往往总是先找自己所编写的程序中有多少是可以用函数来代替的。比如,大家可以作一个比较字符串的实验,用C语言中的strcmp()函数只要一句话,而自己编写的话,30句都很难实现,可想而知函数的实用和快捷。在我们C语言实训的代码中,函数更是得到了充分的应用,可以说,实训题目的复杂代码,就是用无数个函数的调用和嵌套积累出来的。
要注意的是,有的同学刚刚开始的时候,都是被一些大的程序激励的,所以当开始的时候看到繁琐的数据转化和简单的算法,都觉得很无聊,都想自己做几个自己满意的程序来看看,虽然这种想法很好,但是,我们说,没有基础,纯粹是搬照一些现成设计方法,是不足取的。要知道,程序设计讲究的是个人的思维的,假如刚开始就被一些现成的思想束缚住,以后就会觉得很无趣。
我们知道,指针其实是C语言的灵魂,许多的数据结构在我们学到这里之前都可以说是精通了。所以我们的任务就是,让数据结构在指针中运行。当然,刚刚开始接触到这些新的东西,是一件非常痛苦的事情,所以我们一定要用非常形象的思维去看待指针,不能太固化。所以,新的东西,比如结构体在指针中的表现方法,数组及多维数组在结构体中的运用,都一点一点的加了进来,同时丰满了我们对原来C的数据机构,数据表示的理解。当我们完成了这三步的学习,我们已经可以自豪的说,我们的基础都扎实了,可以进一步的学习有关算法,设计概念等等深层次的东西了。
但是,指针,结构体,这些太抽象的东西,在学习C语言的时候我们就有点“似懂非懂”,可是在眼下的C语言实训中,像这么重要的C语言知识,一定要达到能熟练掌握,实际运用的程度。在实训的大程序中,结构体在指针中的表现方法,数组及在结构体中的运用等具体的技术环节,都得到了体现,不会指针,我们的工作是没法展开的。所以,在实训期间,大家在巩固基本知识的基础上,逐块攻克实训课题,克服了困难,自信心得到了提高。
最后,谈谈我们组的程序软件。商店商品管理系统,是一个比较利于应用,解决实际问题,方便实际管理的程序。设计代码比较复杂,结构比较严谨。在程序编写的1周左右的时间里,组员们遇到了上述的困难,包括程序设计构思,甚至是指针等某些知识点的欠缺,导致的工作中出现的困难。但是,当大家一起团结协作,解决了这些困难之后,发现自己也可以编写复杂的、应用性的程序了,更发现自己对C语言这门学科的兴趣也提高了。
当然,我们编写的商店商品管理系统,还存在很多疏漏和不合理之处。比如,程序复杂冗长,如果时间充裕,我们将在不改变程序运行结果的基础上,简化程序,使每一句更加精辟,总体上更加简化。另外,在程序的外观上,我们由于时间问题,没有做更多的修饰,运行起来显得比较死板、枯燥乏味。如果增添一些色彩和其他效果,我们的程序也许会更加完美。
⑥ C语言中初始化是什么意思
C语言中的初始化就是你要给它赋予一个词,这个词渐渐影响到你程序的一个说说效果,如果不进行初始化,那这个数据,他的直将是不定的程序,也是无法运行的,就算是可以运行,也不是你想要的数据。
⑦ 计算机程序设计语言的发展经历哪几个阶段
选择B。
程序设计语言的发展经历了从机器语言、汇编语言到高级语言的历程。
第一代机器语言
机器语言是由二进制 0、1 代码指令构成,不同的 CPU 具有不同的指令系统。机器语言程序难编写、难修改、难维护,需要用户直接对存储空间进行分配,编程效率极低。这种语言已经被渐渐淘汰了。
第二代汇编语言
汇编语言指令是机器指令的符号化,与机器指令存在着直接的对应关系,所以汇编语言同样存在着难学难用、容易出错、维护困难等缺点。但是汇编语言也有自己的优点:可直接访问系统接口,汇编程序翻译成的机器语言程序的效率高。 从软件工程角度来看,只有在高级语言不能满足设计要求,或不具备支持某种特定功能的技术性能(如特殊的输入输出)时,汇编语言才被使用。
第三代高级语言
高级语言是面向用户的、基本上独立于计算机种类和结构的语言。其最大的优点是:形式上接近于算术语言和自然语言,概念上接近于人们通常使用的概念。高级语言的一个命令可以代替几条、几十条甚至几百条汇编语言的指令。因此,高级语言易学易用,通用性强,应用广泛。高级语言种类繁多,可以从应用特点和对客观系统的描述两个方面对其进一步分类。
拓展资料:
程序设计语言用于书写计算机程序的语言。语言的基础是一组记号和一组规则。根据规则由记号构成的记号串的总体就是语言。在程序设计语言中,这些记号串就是程序。程序设计语言有3个方面的因素,即语法、语义和语用。
语法表示程序的结构或形式,亦即表示构成语言的各个记号之间的组合规律,但不涉及这些记号的特定含义,也不涉及使用者。语义表示程序的含义,亦即表示按照各种方法所表示的各个记号的特定含义,但不涉及使用者。
⑧ C语言-存储期(storage ration)
在函数中声明的变量,并不是从程序开始到程序结束让岩始终有效的。变量的生存期也就是生命有两种,它们可以通过 存储期 (storage ration)这个概念来体现。
在函数中不使用存储类说明符 static 而定义出的对象(变量),被赋予了 自动存储期 (automatic storage ration), 它具有以下特性。
也就是说,该对象拥有短暂的寿命,另外, 如果不显式地进行初始化,则该对象会被初始化为不确定的值 。
被赋予自动存储期的对象,在程序执行到 int ax = 0; 的时候,就被创建出来并且进行初始化。
在函数中使用 static 定义出来的对象,或者在函数外声明定义出来的对象被赋予了 静态存储期 (static storage ration),它具有以下特性。
也就是说,改对象拥有"永久"的寿命。另外, 如果不显式地进行初始化,则该对象会自动初始化为0 。
被赋予了静态存储期的对象,会在 main 函数兄滑罩开始执行之前被初羡闹始化 。因此,虽说程序执行的时候会经过 static int sx = 0; 的声明,但其实那个时候并没有进行初始化处理,也就是说该声明并未执行赋值处理。
在函数通过存储类说明符 auto 和 register 声明定义出的变量,也被赋予了自动存储期。通过 auto int ax = 0; 进行的声明和不使用 auto 进行的声明在编译的时候是完全相同的。因此 auto 就显得有些多余了。
另外,使用 register 进行的声明 register int ax = 0; ,在源程序编译的时候, 变量 ax 不是保存在内存中,而是保存在更高速的寄存器中,然而,由于寄存器的数量有限,所以也不是绝对的 。
现在编译技术已经十分先进了,那个变量保存在寄存器中更好都是通过编译自行判断并进行最优化处理的(不仅如此,保存在寄存器中的变量在程序执行的时候也可能发生改变)。
使用 register 进行声明也渐渐变得没有意义了。