Ⅰ 怎样才能把c语言学好,成为编程大牛
时常都有新手这样问,我回答过很多,现在只复制答案给你:
1、现在的编程已经是外围包装打得很好,好到让你写几行代码就能看到成果:有名HELLO World!但如真正理解编程是怎么回事,可能3-5年,你未必得其然。
2、能用现有的编程工具写出第一个程序HELLO World!就是你想学编程而不怕编程的最好动力。
3、编程已经被包装很严实,所以你先熟悉外表包装:windows你会用没有?当然你会Linux更好,但会Linux的不会问这个问题的;你会在windows安装程序没有?你用过一般的软件没有?office也算;这些都很普通,但得会;因为这是你会用编程工具的基础;其实我想说的是你能安装现有的编程工具没有,你会用编程工具没有?会了,就买个入门书,学语法,对着书一字符一字符的输入样板代码;写完后一字符一字符校对代码,确保没有抄错。然后用工具编译你的代码,得到代码的目标文件,用工具运行目标文件:基本都是HELLO World!啦。完成第2点,点燃你的兴趣,加强你的信心,因为编程路漫漫,没兴趣和信心,你立刻就倒下。
4、修炼完第一个入门书,这样你会对编程有个概念。
5、有了概念,学着去理解程序的各种理念。
6、把各种理念变成你的代码。
7、运行各种程序理念去完成一些任务。
8、选择好你的方向走下去,你就可能到达光明顶。
Ⅱ 如何编写C语言程序
首先,你需要学会c语言的基础语法,那么你就可以写一些简单的程序了。想要进阶就要进一步深入学习算法等。其次,学习编程语言必须要有兴趣,兴趣不够很容易半途而废。
格式的话,养成良好的缩进习惯有助于别人和自己更容易看懂代码。
推荐一本书<<c primer plus>>写的很不错。
你还需要安装ide,推荐安装vs2012。
拓展资料:
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
Ⅲ 怎么去学习编程c语言,我没有一点数学基础 还有就是看不懂里面的代码 需要怎样去学 谢谢!
一、C语言是最值得学习的语言
学习C语言,首先要明确地告诉自己:C语言是世界上最值得学习的语言。
如今决定学习任何一门其他语言之前,都要先考察这个语言有什么成功项目吗?唯独C语言没有必要问,因为世界上所有最最重要的的系统中,都必然有C语言的身影。比如操作系统内核、高级语言底层等等。
为什么C最适合担任系统核心?主要原因可能是C语言具有和汇编语言的对应性,一条C语言代码,对有经验的人来说,可以转换为一条或多条汇编代码,也就是说编译结果具有可预测性。C代码不会在被编译时被加上奇奇怪怪的修饰,也不会在二进制兼容性方面带来大问题。这种稳稳当当的语言,一切都在掌握之中,一切荣耀归属于coder,一切错误也归罪于coder。
学习C语言的同时,就自然而然的理解了硬件与操作系统的浅表一层。比如int有几个字节的问题,已经是QQ加群验证是否是程序员的一个标准了(笑),这从侧面说明了学习C语言时确实会关心底层软硬件的实现。C语言简单的基于值类型的数据类型体系(引用靠指针,指针本身也是值类型),保持了和硬件底层的一致性(即内存、缓存、寄存器只能保存值),不会出现其他语言比如C#那样既有值又有引用反而对理解底层实现制造了障碍。
从某些角度上讲,C语言从设计上来说并不是为了让我们更好的写逻辑代码而设计的,它真的是“只能是这样”,没有对错好坏之分。因为计算机体系结构就是这样的、汇编就是这样的,所以C语言大致也只能是这样的,谁也不能随意捏造它。它足够简单,评论它的设计优劣意义不大。
废了这么多口舌,是为了坚定思想,端正态度,只有抱着“最好”的态度,才能排除杂念,勇往直前。时代在进步,某些东西易逝,而另一些东西持久。很多编程大师都用亲身经历告诉你,C语言永远值得用最纯粹的态度去学习。
二、学习C语言的初步路线
我们说学习任何东西,都有先把书读厚,再把书读薄的过程。也就是说,先学习大量知识和细节,然后总结归纳、提纲挈领,就彻底掌握了这门知识。
而学习C语言,一开始就不那么厚 : ) 。大道至简,只需一本:
<img src="https://pic2.mg.com/50/v2-_hd.jpg" data-rawwidth="286" data-rawheight="337" class="content_image" width="286">
赏析一下书中前几个问题:
第1章 正则表达式匹配器
第2章 Subversion中的增量编辑器:像本体一样的接口
第3章 我编写过的最漂亮代码
第4章 查找
可能是知识结构不足,本书后面的例子我读起来有点不清晰。对C语言学习者来说,前几个例子非常值得一读,可以迅速意识到自己的不足并迅速成长。本书建议先找电子版试读。
PS:关于C语言开发环境
1、Windows平台,请使用Dev-C++。不要用Visual Studio,对C语言支持不完整。
2、安装Linux虚拟机,桌面版本的,比如Ubuntu,现在貌似“深度Linux”挺火,没试过。
三、关于进阶
C语言的进阶会遇到两个主要问题:
1、明白基础以后,缺少大量练习。而大量练习本身会非常费时间,因为在顾及语法的同时要顾及逻辑问题,捉襟见肘。这时候的初学者,逻辑抽象能力和语法使用都是半吊子,非常难受。
2、阅读代码方面,C语言的成熟工程代码一般会比较冗长,函数中间夹杂着很多宏和指针操作,我阅读的感觉是读后面忘前面,非常难入手。如果不明白某个函数的功能,强行将其读懂非常费时费力,容易放弃。
这样一来,学完基本知识之后的进阶之路真的非常陡峭。
我个人大胆给出C语言进阶的一个相对缓和的路线:
1、实现链表、可变长数组、哈希表等基本数据结构,实现方便的string结构体。然后大胆的用在自己写的程序中。不要怕写的有BUG,也不要怕效率不高。现代编程中容器是非常关键的武器,没有容器寸步难行。而编写容器时会练到封装、指针、内存分配,都是C语言进阶时极其重要的方面。
2、如果工作学习中用到C语言就再好不过,比如现在很多本科、硕士毕业论文都要用C语言实现,那么这时候抓住机会多练练,是最好的。
3、尝试ACM竞赛题,ACM竞赛和OnLineJudge平台,比如
http://tyvj.cn/
类似有很多,北大、北邮这种大学都有类似的网站,上面不仅有题目,还有算法、有答案、有提示,还能直接在网页上做题。刷题可以获得及时反馈,一旦你AC了3道题,那种成就感可以让你继续下去,哈哈。不过除非你兴趣就是算法本身,那么刷30道题基本就可以了,毕竟这种刷题会猛烈地提高算法能力,但是对架构能力的提升几乎没有任何作用,对大多数人来说不建议刷太多。
4、非常重要的私货:如果除了做练习题以外没有练习机会,那么请把C语言放一下,快速学习Python(首选)、Lua(次选)、JavaScript(或TypeScript更好)等能够立即实现功能效果的语言。学习好的动态语言有两方面好处:
第一:表层来说,能迅速提高逻辑代码的编写能力。用C语言构思半天才能写一点的功能,用动态语言会快速的多,动态语言将我们从内存分配、容器等基本问题中解脱出来,直接实现我们想要的效果。用动态语言实现之后,可以用C语言仿写这些逻辑代码,相当于按图索骥,直达目的。
第二:深层来说,较高级的语言对底层的语言编写有强烈的指导意义。我个人在工作中使用C++用了很长时间,但是总感觉遇到瓶颈无法突破。直到我学习了Python,写了一两个比较复杂的工具,从另一个角度突破了逻辑设计的屏障,才感觉到编程水平有了明显提高。
第三:在掌握了Lua或Python后,再找资料一边学习一边看Lua和Python的C源码,对提高C语言水平有实质性的帮助。
这里举一个简单的例题:一个文件中有很多对ID和字段,这些ID和字段对分别代表另一个文件。而另一个文件内容可能会链接到更深一级的文件。怎样读取这些文件组成一棵树呢?
这个问题对能力达到一定水平的人是基础问题,而对于初学者来说可能是一个门槛。这种问题我的建议是用Python或Lua的表、字典来解决,然后理清思路之后,改写为C代码。
Ⅳ c语言如何写代码
这个问题就是一个简单的输出
代码示例如下
#include<stdio.h>
int main()
{
printf("Hello World! ");
}
Ⅳ 如何学习C语言
学习方法是:
1、课前预习,课后复习,认真做课堂、课后的作业,理解理论知识。
2、记住语法规则。
3、加强逻辑思维。
4、多动手,通过练习上机了解它的运行过程。
5、实践—>理论—>再实践,刚开始学习C语言时,按示例练习,并推动理论的学习,然后再自己多思考,多上机实践。
拓展资料
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
Ⅵ 如何学习C语言
如果刚开始接触c语言,听不懂也正常,不要有畏惧的心理,有些小伙伴可能看到部分同学什么都会,自己就很气馁,因为这部分同学很可能接触编程比较早,即使小孩学走路也有一个过程,刚开始有走路欲望->学会站立,腿部有力量->尝试走路,不断练习->学会走路。所以不要慌。
学C语言与走路一样,刚开始一定要有学习的欲望,然后,再制定计划,不断练习,量变会引起质变,坚持下去就发现原来这么简单。
欢迎关注公众号:c语言与cpp编程,关注后,回复“加群‘’进微信学习交流群
1、学习资料
书本推荐:《cprimerplus》难得的好书。老谭的书可看可不看,但是这本蓝皮的cprimerplus是我案头必备的参考书,后面还有完整的c99标准库,所以适合当个参考书。注意区分一下《c++primer》和《cprimerplus》
如果觉得这几本书还是有点难,那就先看《C语言程序设计》
有了经验后要去看看,例子很经典。后来进阶可以看看三剑客《c和指针》《c陷阱与缺陷》《c专家编程》
刚学C语言的话可以结合看下C语言编程经典100例;
编译器:VS,DevC++,VC++,CodeBlocks,C-Free,TurboC。关于它们的特点网上介绍很多了,就不赘述了。讲真,入门和基础阶段你用哪个无所谓,还是选自己喜欢的,不过对于初学者我们推荐DevC++。可能现在大学课堂用的还是VC++,刚入门自己习惯就行。
视频推荐:有同学曾经说过,视频这么好,上课就不用听讲了,这个是完全错误的,视频是课堂补充,上课还是一定要好好听讲的,视频可以查缺补漏,系统的学习一下。
上面提到的一些资料整理好了,可以下载:
链接:
提取码:1234
学习方法:
1、过:学习一门新的语言,第一步就是把它所涉及的基础知识大体过一点,不求深解,只求了解——第一遍:无需了解太过深入的理论,大体知道这门语言是什么样的,主要面向哪些场合,一些基本的语法格式是什么样的就可以了。
2、抄代码:刚开始写代码,没有多少人一上来就能立刻自己写一个很完善很强大的代码,甚至连基本的语法都会写错,这时候抄代码就很关键了,从书上抄,从例子里抄,边抄边想,边想边回忆语法。
3、模仿改:自己会抄写一些简单的代码,熟悉了一遍此语言的简单语法后,但还不太清楚怎样下手写一个完整的代码模块,所以这一步要仿写了,仿照给出的代码写一个属于自己的代码
4、勤调试:没有人能一下子写出完全正确的代码,自己试着写一些代码,通过不断调试来验证自己的一些想法,继续思考,再次验证,来回折腾。熟悉一些基本的调试工具以及调试方法。
5、看n遍:出错或遇到问题时,将代码从头看到尾,看了一遍又一遍,直到快全部记住时,总能找出问题原因,相信方法总会比问题多
6、练重复2-5步三遍以上,不解释。
7、创新拿出一个完全没有写过的代码,根据要求,一步步的写出来。如果写不出来,或者中间一堆错误,请参考第六步。
8、悟:主动找到写代码的感觉和成就感,并保持下去,世界上最难的语言就掌握了,将成为你软件生涯永远的工具。
Ⅶ C语言的程序要怎样才能写好呢
首先要对C语言有一个完整的认识
然后要理解算法
之后的数据库数据结构什么的,不要太着急
然后看看《高质量C/C++吧》
原因就是对于一个程序,清晰第一,效率第二
再然后,就是多看以前自己写的程序,对比你现在写的,有什么区别,对于需要重新写的,一定要重写,哪怕只是一个Hello World的程序
最后,编程语言只是工具而已,你可以试一试用C++和C语言同时解决一个问题,这样对于你说的问题也是有帮助的
哦,还有,经常看高手的程序,看看差距在哪儿,也可以试着帮助别人解决问题,这些都是有好处的
加油吧
Ⅷ 怎么用c语言写代码
#include
void Putout(double *a);
double Average(double *b);
double Max(double *c);
void Paixu(double *d);
int main()
{
double array[10];
int i;
for(i = 0; i < 10; i++)
scanf("%lf",&array[i]);
Putout(array); //输出各元素
printf("\n平均值: %lf\n",Average(array));
printf("最大值: %lf\n",Max(array));
Paixu(array);//输出排序
return 0;
}
void Putout(double *a) //输出各元素
{
int i;
for(i = 0; i < 10; i++)
printf("%4.2f ",a[i]);
}
double Average(double *b) //求平均值
{
double sum = 0;
double average;
int i;
for(i = 0; i < 10; i++)
{
sum = sum + b[i];
}
average = sum/10;
return average;
}
double Max(double *c) //求最大值
{
int i;
double max = c[0];
for(i = 1; i < 10; i++)
{
if(max < c[i])
max = c[i];
}
return max;
}
void Paixu(double *d)//排序 此程序为冒泡排序
{
int i, j;
double t;
for(j = 0; j < 9; j++)
{
for(i =0; i < 9-j; i++)
{
if(d[i] > d[i+1])
{
t = d[i];
d[i] = d[i+1];
d[i+1] = t;
}
}
}
for(i = 0; i <10; i++)
{
printf("%4.2lf ",d[i]);
}
printf("\n");
}
Ⅸ c语言怎么学,从什么地方开始学
1、程语语言其实是一个很初级的工具,但是又必须熟练的掌握它,学懂一门编程语言就好像学会了写字,但是会写字的人不见得会写文章,而会写文章又不见的写得好。可是如果不会写字,那就一定写不出文章来。 2、在学习C语言之前,应该学好计算机基础。里面的很多概念对于C程序员都是非常重要的。如果在着手学习C之前,或者已经开始学习C,但是碰到了很多问题,应该再把计算机基础的书拿来好好看看。如果有足够的耐心,十足的毅力,应该再学习C语言之前学学汇编,这会对许多比较细腻的概念有清醒的认识。那么可以在看完一遍C语言的教材后再看,但是一定要看一遍,一定会受益匪浅。不管看什么书,先认真地看懂,不要贪速度,应该力求深入的理解。如果能够比较熟练的解决一本教材上的所有习题,那么就应该转入对算法的学习,尽管此时的C语言还称不上精通,有许多细节问题还不了解,许多问题还没有碰到,但是这些问题会在后面的工作和学习中得到解决的。 3、不需要多少资料,掌握一本《The C Programming Language》就足够了。继续学习就更加容易。建议不要找捷径,通过考试除外,真正的水平提高是建立在编程实践积累基础上的,必须一个一个程序的完成才能提高。
Ⅹ 如何学好C语言
在初学C语言时,可能会遇到有些问题理解不透,或者表达方式与以往数学学习中不同(如运算符等),这就要求不气馁,不明白的地方多问多想,鼓足勇气进行学习,待学完后面的章节知识,前面的问题也就迎刃而解了,这一方面我感觉是我们同学最欠缺,大多学不好的就是因为一开始遇到困难就放弃,曾经和好多同学谈他的问题,回答是听不懂、不想听、放弃这样三个过程,我反问,这节课你听过课吗?回答又是没有,根本就没听过课,怎么说自己听不懂呢?相应的根本就没学习,又谈何学的好?
学习C语言始终要记住“曙光在前头”和“千金难买回头看”,“千金难买回头看”是学习知识的重要方法,就是说,学习后面的知识,不要忘了回头弄清遗留下的问题和加深理解前面的知识,这是我们学生最不易做到的,然而却又是最重要的。学习C语言就是要经过几个反复,才能前后贯穿,积累应该掌握的C知识。
那么,我们如何学好《C程序设计》呢?
一.学好C语言的运算符和运算顺序
这是学好《C程序设计》的基础,C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单,但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全。当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。在学习中,只要我们对此合理进行分类,找出它们与我们在数学中所学到运算之间的不同点之后,记住这些运算也就不困难了,有些运算符在理解后更会牢记心中,将来用起来得心应手,而有些可暂时放弃不记,等用到时再记不迟。
先要明确运算符按优先级不同分类,《C程序设计》运算符可分为15种优先级,从高到低,优先级为1 ~ 15,除第2、3级和第14级为从右至左结合外,其它都是从左至右结合,它决定同级运算符的运算顺序.
二.学好C语言的四种程序结构
(1)顺序结构
顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。
例如;a = 3,b = 5,现交换a,b的值,这个问题就好像交换两个杯子水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为: c = a; a = b; b = c; 执行结果是a = 5,b = c = 3如果改变其顺序,写成:a = b; c = a; b = c; 则执行结果就变成a = b = c = 5,不能达到预期的目的,初学者最容易犯这种错误。 顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算,输出三步曲的程序就是顺序结构,例如计算圆的面积,其程序的语句顺序就是输入圆的半径r,计算s = 3.14159*r*r,输出圆的面积s。不过大多数情况下顺序结构都是作为程序的一部分,与其它结构一起构成一个复杂的程序,例如分支结构中的复合语句、循环结构中的循环体等。
(2) 分支结构
顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用分支结构。分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。分支结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。程序流程图是根据解题分析所绘制的程序执行流程图。
学习分支结构不要被分支嵌套所迷惑,只要正确绘制出流程图,弄清各分支所要执行的功能,嵌套结构也就不难了。嵌套只不过是分支中又包括分支语句而已,不是新知识,只要对双分支的理解清楚,分支嵌套是不难的。下面我介绍几种基本的分支结构。
①if(条件)
{
分支体
}
这种分支结构中的分支体可以是一条语句,此时“{ }”可以省略,也可以是多条语句即复合语句。它有两条分支路径可选,一是当条件为真,执行分支体,否则跳过分支体,这时分支体就不会执行。如:要计算x的绝对值,根据绝对值定义,我们知道,当x>=0时,其绝对值不变,而x<0时其绝对值是为x的反号,因此程序段为:if(x<0) x=-x;
②if(条件)
{分支1}
else
{分支2}
这是典型的分支结构,如果条件成立,执行分支1,否则执行分支2,分支1和分支2都可以是1条或若干条语句构成。如:求ax^2+bx+c=0的根
分析:因为当b^2-4ac>=0时,方程有两个实根,否则(b^2-4ac<0)有两个共轭复根。其程序段如下:
d=b*b-4*a*c;
if(d>=0)
{x1=(-b+sqrt(d))/2a; x1=(-b-sqrt(d))/2a; printf(“x1=%8.4f,x2=%8.4f\n”,x1,x2); }
else
{r=-b/(2*a); i =sqrt(-d)/(2*a); printf(“x1=%8.4f+%8.4fi\n”r, i); printf(“x2=%8.4f-%8.4fi\n”r,i) }
③嵌套分支语句:其语句格式为:
if(条件1) {分支1};
else if(条件2) {分支2}
else if(条件3) {分支3}
……
else if(条件n) {分支n}
else {分支n+1}
嵌套分支语句虽可解决多个入口和出口的问题,但超过3重嵌套后,语句结构变得非常复杂,对于程序的阅读和理解都极为不便,建议嵌套在3重以内,超过3重可以用下面的语句。
④switch开关语句:该语句也是多分支选择语句,到底执行哪一块,取决于开关设置,也就是表达式的值与常量表达式相匹配的那一路,它不同if…else 语句,它的所有分支都是并列的,程序执行时,由第一分支开始查找,如果相匹配,执行其后的块,接着执行第2分支,第3分支……的块,直到遇到break语句;如果不匹配,查找下一个分支是否匹配。这个语句在应用时要特别注意开关条件的合理设置以及break语句的合理应用。
(3)循环结构:
循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供四种循环,即goto循环、while循环、do –while循环和for循环。四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提倡用goto循环,因为强制改变程序的顺序经常会给程序的运行带来不可预料的错误,在学习中我们主要学习while、do…while、for三种循环。常用的三种循环结构学习的重点在于弄清它们相同与不同之处,以便在不同场合下使用,这就要清楚三种循环的格式和执行顺序,将每种循环的流程图理解透彻后就会明白如何替换使用,如把while循环的例题,用for语句重新编写一个程序,这样能更好地理解它们的作用。特别要注意在循环体内应包含趋于结束的语句(即循环变量值的改变),否则就可能成了一个死循环,这是初学者的一个常见错误。
在学完这三个循环后,应明确它们的异同点:用while和do…while循环时,循环变量的初始化的操作应在循环体之前,而for循环一般在语句1中进行的;while 循环和for循环都是先判断表达式,后执行循环体,而do…while循环是先执行循环体后判断表达式,也就是说do…while的循环体最少被执行一次,而while 循环和for就可能一次都不执行。另外还要注意的是这三种循环都可以用break语句跳出循环,用continue语句结束本次循环,而goto语句与if构成的循环,是不能用break和 continue语句进行控制的。
顺序结构、分支结构和循环结构并不彼此孤立的,在循环中可以有分支、顺序结构,分支中也可以有循环、顺序结构,其实不管哪种结构,我们均可广义的把它们看成一个语句。在实际编程过程中常将这三种结构相互结合以实现各种算法,设计出相应程序,但是要编程的问题较大,编写出的程序就往往很长、结构重复多,造成可读性差,难以理解,解决这个问题的方法是将C程序设计成模块化结构。
(4)模块化程序结构
C语言的模块化程序结构用函数来实现,即将复杂的C程序分为若干模块,每个模块都编写成一个C函数,然后通过主函数调用函数及函数调用函数来实现一大型问题的C程序编写,因此常说:C程序=主函数+子函数。 因此,对函数的定义、调用、值的返回等中要尤其注重理解和应用,并通过上机调试加以巩固。
三.掌握一些简单的算法
编程其实一大部分工作就是分析问题,找到解决问题的方法,再以相应的编程语言写出代码。这就要求掌握算法,根据我们的《C程序设计》教学大纲中,只要求我们掌握一些简单的算法,在掌握这些基本算法后,要完成对问题的分析就容易了。如两个数的交换、三个数的比较、选择法排序和冒泡法排序,这就要求我们要清楚这些算法的内在含义
结语:当我们把握好上述几方面后,只要同学们能克服畏难、厌学、上课能专心听讲,做好练习与上机调试,其实C语言并不难学