如何学习C语言,从和下手,以及学习的方法 不知道怎么去学习c语言,该从哪下手,
c\u8bed\u8a00\u7684\u5b66\u4e60\u65b9\u6cd5\u9996\u5148\u7533\u660e\uff0c\u672c\u4eba\u4e0d\u662f\u4ec0\u4e48\u9ad8\u624b\uff0c\u4f46\u81ea\u8ba4\u4e3a\u5bf9c\u8fd8\u6bd4\u8f83\u719f\u6089\uff0c\u53ef\u4ee5\u7ed9\u4f60\u63d0\u70b9\u5efa\u8bae\uff1a
1\u3001\u5b66\u4e60C\u8bed\u8a00\uff0c\u8981\u4ece\u5165\u95e8\u5230\u7cbe\u901a\uff0c\u9700\u8981\u8bfb\u54ea\u4e9b\u4e66\uff08\u4ece\u7b80\u5355\u7684\u5230\u96be\u7684\u6392\u5e8f\uff0c\u8d8a\u8be6\u7ec6\u8d8a\u597d\uff0c\u6700\u597d\u90fd\u80fd\u6ce8\u91ca\u4e0b\u9009\u62e9\u8fd9\u672c\u4e66\u7684\u7406\u7531\uff09\uff1f
\u5165\u95e8\u9636\u6bb5\uff1a\u8fd8\u662f\u8001\u8c2d\u90a3\u672c\u3002
\u7406\u7531\uff1a\u867d\u7136\u4e0d\u80fd\u8bf4\u5b83\u5199\u5f97\u6709\u591a\u597d\uff0c\u4f46\u662f\u4f60\u73b0\u5728\u8981\u505a\u7684\u662f\u5165\u95e8\uff0c\u8981\u5feb\u901f\u7684\u638c\u63e1c\u7684\u57fa\u672c\u8bed\u6cd5\uff0c\u8fd9\u672c\u4e66\u5f88\u597d\u7406\u89e3\uff0c\u80fd\u591f\u8ba9\u4f60\u5728\u6700\u77ed\u7684\u65f6\u95f4\u5185\u5927\u81f4\u638c\u63e1\u8fd9\u95e8\u8bed\u8a00\u7684\u6982\u66f4\u3002
\u7b2c\u4e8c\u9636\u6bb5\uff1a\u300ac\u7a0b\u5e8f\u8bbe\u8ba1\u8bed\u8a00\u300b(The C Programming Language)\u548c\u300aC\u8bed\u8a00\u89e3\u60d1\u300b(The C puzzle book)
\u7406\u7531\uff1a\u300athe c programming language\u300b\u53f7\u79f0c\u8bed\u8a00\u5723\u7ecf\u3002\u5176\u5b9e\u5b83\u4e5f\u53ea\u662f\u4e00\u672c\u4ecb\u7ecd\u57fa\u7840\u8bed\u6cd5\u7684\u4e66\uff0c\u4e0d\u505a\u5165\u95e8\u6559\u7a0b\u662f\u56e0\u4e3a\u5bf9\u4e8e\u521d\u5b66\u8005\u6765\u8bf4\uff0c\u5b83\u96be\u5ea6\u7a0d\u5927\uff0c\u4e4b\u6240\u4ee5\u63a8\u8350\uff0c\u662f\u56e0\u4e3a\u5b83\u80fd\u8ba9\u4f60---\u7cfb\u7edf\u800c\u4e25\u5bc6\u7684---\u628aC\u8bed\u8a00\u77e5\u8bc6\u6784\u67b6\u6574\u7406\u4e00\u904d\u3002\u300ac\u8bed\u8a00\u89e3\u60d1\u300b\uff0c\u7cfb\u7edf\u7684\u6574\u7406\u4e86c\u8bed\u6cd5\u4e2d\u5bb9\u6613\u8ba9\u4f60\u4ea7\u751f\u8ff7\u60d1\u6216\u5bb9\u6613\u72af\u9519\u7684\u5730\u65b9(\u5982a+++++b\u7b49)\uff0c\u8fd9\u65f6\u5019\u4f60\u624d\u7b97\u771f\u6b63\u5f00\u59cb\u5b66\u4e60c\u8bed\u8a00\u4e86.\uff08\u4ee5\u4e0a\u4e24\u672c\u73b0\u5728\u51fa\u91cd\u5370\u4e86,\u5e94\u8be5\u5728\u4e66\u5e97\u53ef\u4ee5\u4e70\u5230\uff09
\u7b2c\u4e09\u9636\u6bb5\uff1a\u300aC\u9677\u9631\u4e0e\u7f3a\u9677\u300b(C Traps and Pitfalls)\u548c\u300a\u9ad8\u8d28\u91cfc/c++\u7f16\u7a0b\u6307\u5357\u300b
\u7406\u7531\uff1a\u300ac\u9677\u9631\u4e0e\u7f3a\u9677\u300b\u662f\u8ba9\u5bf9c\u7684\u7406\u89e3\u6709\u8d28\u53d8\u5f97\u4e00\u672c\u4e66\uff0c\u5982\u5982\u4f55\u7406\u89e3(*(void(*)())0)()\u7b49\u95ee\u9898\uff0c\u6211\u7684\u611f\u89c9\u662f\u770b\u5b8c\u8fd9\u672c\u4e66\u8ba9\u6211\u771f\u6b63\u4ece\u5c0f\u83dc\u9e1f\u53d8\u6210\u4e86\u8001\u83dc\u9e1f\u3002\u300a\u9ad8\u8d28\u91cf...\u300b\uff0c\u7ec8\u4e8e\u6709\u4e00\u672c\u56fd\u4ea7\u7684\u4e86\uff0c\u5475\u5475\uff0c\u6211\u8ba4\u4e3a\u8fd9\u672c\u4e66\u662f\u628a\u4f60\u4ece\u571f\u532a\u53d8\u6210\u6b63\u89c4\u519b\u7684\u6700\u597d\u6307\u5357\uff0c\u8be5\u4e66\u6d89\u53ca\u7f16\u7a0b\u98ce\u683c\u3001\u6548\u7387\u3001\u91cd\u8f7d\u3001\u5065\u58ee\u6027\u7b49\u4e00\u4e9b\u5217\u4e4b\u524d\u5f88\u96be\u6ce8\u610f\u7684\u95ee\u9898\u3002(\u4ee5\u4e0a\u4e24\u672c\u300ac\u9677\u9631...\u300b\u5df2\u7edd\u7248\uff0c\u4e0d\u8fc7\u7f51\u4e0a\u53ef\u4ee5\u4e0b\u8f7d\u5230\u4e2d\u82f1\u6587\u7248\uff0c\u300a\u9ad8\u8d28\u91cf...\u300b\u672c\u8eab\u5c31\u662f\u7f51\u7edc\u4e66\uff0c\u5f88\u5bb9\u6613\u627e\u5230)
\u5176\u5b83\u63a8\u8350\u4e66\uff1a\u300ac\u4e13\u5bb6\u7f16\u7a0b\u300b\u300ac\u548c\u6307\u9488\u300b
\u8bf4\u5b9e\u8bdd\u8fd9\u4e24\u672c\u4e66\u6211\u5e76\u6ca1\u6709\u770b\u8fc7\uff08\u6216\u770b\u5b8c\uff09\uff0c\u4f46\u6709\u53e3\u7686\u7891\uff0c\u90fd\u662f\u7ecf\u5178\u4e4b\u4f5c\uff0c\u4e0d\u8fc7\u90fd\u5df2\u7ecf\u7edd\u7248\uff0c\u4ed4\u7ec6\u627e\u627e\u7f51\u4e0a\u6709\u4e0b\u8f7d\u7684\u3002
2\u3001\u6709\u54ea\u4e9b\u597d\u7684C\u8bed\u8a00\u7ec3\u4e60\uff08\u8d8a\u96be\u7684\u8d8a\u597d\uff09\uff1f
\u5bf9\u8bed\u8a00\u672c\u8eab\u7684\u7ec3\u4e60\u5176\u5b9e\u5c31\u662f\u4f60\u5bf9\u5b83\u7684\u7406\u89e3\uff0c\u7528\u5f97\u591a\u4e86\uff0c\u6ce8\u610f\u5f97\u591a\u4e86\uff0c\u81ea\u7136\u5c31ok\u4e86\u3002\u5176\u5b83\u601d\u7ef4\u4e0a\u7684\u7ec3\u4e60\u4e3b\u8981\u662f\u7b97\u6cd5\u548c\u6570\u636e\u7ed3\u6784\u65b9\u9762\u7684\uff0c\u4e25\u8001\u7684\u300a\u6570\u636e\u7ed3\u6784\u9898\u96c6\uff08C\u8bed\u8a00\u7248\uff09\u300b\u5982\u679c\u4f60\u80fd\u505a\u5b8c\u5c31\u76f8\u5f53\u4e86\u4e0d\u8d77\u4e86\u3002
3\u3001\u8981\u5b66\u7cbeC\u8bed\u8a00\uff0c\u8fd8\u8981\u5177\u5907\u54ea\u4e9b\u6761\u4ef6\uff1f
\u5176\u5b9ec\u8bed\u8a00\u4e5f\u53ea\u662f\u4e00\u4e2a\u5de5\u5177\u800c\u5df2\uff0c\u5c31\u50cf\u9504\u5934\u4e00\u6837\uff0c\u4f60\u6bcf\u5929\u6316\u5730\u9504\u7530\u81ea\u7136\u5c31\u7cbe\u901a\u5b83\u4e86\u3002\u53ea\u8981\u4e0d\u662f\u767d\u75f4\uff0c\u5e94\u8be5\u90fd\u6ca1\u6709\u95ee\u9898\u3002
4\u3001C\u8bed\u8a00\u5b66\u5b8c\u540e\u63a5\u4e0b\u53bb\u8981\u5b66\u54ea\u4e9b\u8bed\u8a00\u597d\uff1f
\u8fd9\u4e2a\u6211\u5c31\u6ca1\u6709\u8d44\u683c\u56de\u7b54\u4e86\uff0c\u56e0\u4e3a\u9664\u4e86\u5c11\u91cf\u6c47\u7f16\u548cc++\uff0c\u6211\u5927\u90e8\u5206\u53ea\u7528\u5230\u4e86c,\u4e0d\u8fc7\u4e5f\u8bb8\u662f\u4e00\u8109\u76f8\u627f\u7684c++\u5427\u3002c\u662f\u9762\u5411\u8fc7\u7a0b\u7684\u8bed\u8a00\uff0c\u5b66\u4e60c++\u9762\u5411\u5bf9\u8c61\u7684\u601d\u60f3\u3002
5\u3001\u5404\u4f4d\u7f51\u53cb\u5982\u679c\u5728\u5b66\u4e60\u8ba1\u7b97\u673a\u8bed\u8a00\u65b9\u9762\u8fd8\u6709\u4e00\u4e9b\u72ec\u5230\u7684\u89c1\u89e3\uff0c\u6b22\u8fce\u63d0\u51fa!
\u4e0d\u662f\u6211\u63d0\u51fa\u7684\uff0c\u4e0d\u8fc7\u771f\u7684\u5f88\u7ecf\u5178\u2014\u2014\u201c\u5929\u4e0b\u7a0b\u5e8f\u4e00\u5927\u6284\u201d,\u5475\u5475\u3002
\u8981\u628ac\u8bed\u8a00\u7a0b\u5e8f\u8bbe\u8ba1\u90a3\u672c\u4e66\u770b\u900f \u8bfe\u540e\u4e60\u9898\u8981\u5f04\u61c2 \u4e0d\u77e5\u9053lz\u7684\u4e13\u4e1a\u8981\u6c42\u662f\u4ec0\u4e48\u6837\u7684 \u5982\u679c\u4e13\u4e1a\u8981\u6c42\u4e0d\u662f\u5f88\u5f3a\u7684\u8bdd \u5c31\u662f\u57fa\u672c\u7684\u54ea\u51e0\u4e2a\u7ed3\u6784\u8981\u5f04\u61c2 \u8fd8\u6709\u53d8\u91cf\u548c\u6570\u7ec4 \u4ee5\u53ca\u4e00\u4e9b\u6587\u4ef6\u7684\u64cd\u4f5c\u548c\u4f4d\u8fd0\u7b97 \u660e\u767d\u8fd9\u4e9b\u7701\u4e8c\u7ea7\u5c31\u5e94\u8be5\u53ef\u4ee5\u641e\u5b9a\u4e86 \u56fd\u5bb6\u4e8c\u7ea7\u5c31\u8981\u5728\u54ea\u4e9b\u5b8c\u5168\u5f88\u900f\u7684\u60c5\u51b5\u4e0b \u8fd8\u6709\u4f1a\u6307\u9488\u548c\u51fd\u6570 \u4ee5\u53ca\u7ed3\u6784\u4f53\u4e86\u3002\u5982\u679c\u4f60\u4eec\u4e13\u4e1a\u8981\u6c42\u90fd\u5f88\u4e25\u7684\u8bdd \u90a3\u5c31\u5f97\u5168\u90e8\u5f04\u901a\u5566 \u4e5f\u53ef\u4ee5\u4ece\u7f51\u4e0a\u4e0b\u70b9\u5377\u5b50 \u7ec3\u7ec3 \u505a\u4e2a\u51e0\u5957\u5c31\u6709\u611f\u89c9\u4e86\u3002\u4e0a\u673a\u7f16\u7a0b\u6700\u597d\u73b0\u5728\u7eb8\u4e0a\u7f16\u597d \u53ea\u8981\u4f1a\u7528vc \u6216 turbo c \u5c31\u6ca1\u95ee\u9898\u4e86
怎样才能学好C语言1、学好C语言,你可以很好地应付任何一种编程工具。
2、一定要多上机练习,通过程式了解相关知识。几经反复方得正果。
3、不要把学习C语言当成一种任务,更不要把它看成很难完成的任务。要充满自信,只要是一个智力正常的人都能学好C语言。始终保持游戏的心态,多发现其中的乐趣。当感到编程趣味无穷,那你在电脑方面将前程无量。
4、如果一个程式一时无法弄清楚最后暂时放在一边,过一段时间你可能会从其他的程式中悟出道理。
5、C语言是一个整体,各个方面是有机联系的,要从总体上把握它,不要把它割裂成互不关联的部件。
6、不要完全相信教材(包括本讲义),所有结论最好都上机验证。
怎样学好C语言
1. 工欲善其事,必先利其器
准备工作:一个开发环境,如Turbo C 2.0、Visual C++等开发工具;一本好教材,如谭浩强主编的《C语言程序设计》(第二版)。我当时看的是他的第一版,就为它的简洁、完美所吸引,简直爱不释手,用了两个星期一口气看完。
2. 秘密武器
初学者学习计算机语言要会“读程序”,要对小型的应用型、游戏型程序感兴趣,并模仿去加深对C语言程序设计的理解和操作,只有不断地写程序、调试程序才能得到编写程序的经验和加深对程序的理解,这也是学习编写优秀高级程序的秘密武器。
3. 发扬探索精神
学习C语言程序设计有点像做数学难题,只要我们善于思考,善于探索,发扬探索精神去寻找好的设计思想和方法,才能把C语言的精髓真正地掌握。
备战C语言考试要诀
1. 了解大纲,临阵不乱
各类笔试中,大多数考题是与大纲要求的基本内容一致的,难度不高,但内容十分广泛,应牢固掌握C语言考试大纲要求的基础部分。只有熟悉题型,理解语法、句法,做到心中有数,才能临阵不乱。
2. 善于归纳,强化记忆
对于需要记忆的计算机基础知识和基本概念,如果考试时因此失分就十分可惜。如:C语言中有几种不同的数据类型?运算的优先级别是怎样的?因此我们需要善于归纳这些计算机基础知识,并在理解的基础上强化记忆。
3. 重视实践,善于调试
计算机科学是一门理论性、实践性都很强的学科,对C语言考试的参加者来说,基础理论方面要求不高,而上机试题往往是很多考生不能通过考试的重要原因,因此要勤于实践。
4. 多做练习,查漏补缺
在认真地学完指定用书后,最好再找些试题,认真地测试一下,一则可以检查自己的复习情况;二则可以查漏补缺;三则可以调节心理状况,以备正式考试时沉着冷静、万无一失。
===================
C程序设计》的内容很丰富,按照我们现在的教学大纲,教学的主要内容是基础知识、四种结构的的程序设计、函数与数组的应用和一些简单的算法。在学习时,同学们应该把主要精力放在这些部分,通过实践(练习和上机调试等熟练掌握。当然,在初学C语言时,可能会遇到有些问题理解不透,或者表达方式与以往数学学习中不同(如运算符等),这就要求不气馁,不明白的地方多问多想,鼓足勇气进行学习,待学完后面的章节知识,前面的问题也就迎刃而解了,这一方面我感觉是我们同学最欠缺,大多学不好的就是因为一开始遇到困难就放弃,曾经和好多同学谈他的问题,回答是听不懂、不想听、放弃这样三个过程,我反问,这节课你听过课吗?回答又是没有,根本就没听过课,怎么说自己听不懂呢?相应的根本就没学习,又谈何学的好?
学习C语言始终要记住“曙光在前头”和“千金难买回头看”,“千金难买回头看”是学习知识的重要方法,就是说,学习后面的知识,不要忘了回头弄清遗留下的问题和加深理解前面的知识,这是我们学生最不易做到的,然而却又是最重要的。比如:在C语言中最典型的是关于结构化程序设计构思,不管是那种教材,一开始就强调这种方法,这时也许你不能充分体会,但是学到函数时,再回头来仔细体会,温故知新,理解它就没有那么难了。学习C语言就是要经过几个反复,才能前后贯穿,积累应该掌握的C知识。
那么,我们如何学好《C程序设计》呢?
一.学好C语言的运算符和运算顺序
这是学好《C程序设计》的基础,C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单,但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全。当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。在学习中,只要我们对此合理进行分类,找出它们与我们在数学中所学到运算之间的不同点之后,记住这些运算也就不困难了,有些运算符在理解后更会牢记心中,将来用起来得心应手,而有些可暂时放弃不记,等用到时再记不迟。
先要明确运算符按优先级不同分类,《C程序设计》运算符可分为15种优先级,从高到低,优先级为1 ~ 15,除第2、3级和第14级为从右至左结合外,其它都是从左至右结合,它决定同级运算符的运算顺序。下面我们通过几个例子来说明:
(1) 5*8/4%10 这个表达式中出现3种运算符,是同级运算符,运算顺序按从左至右结合,因此先计算5 *8=40,然后被4除,结果为10,最后是%(求余数)运算,所以表达式的最终结果为10%10 = 0;
(2)a = 3;b = 5;c =++ a* b ;d =a + +* b;
对于c=++a*b来说,按表中所列顺序,+ +先执行,*后执行,所以+ + a执行后,a的值为4,由于+ +为前置运算,所以a的值4参与运算,C的值计算式为4*5=20而不是3*5=15了;而对于d=a++*b来说,由于a + +为后置运算,所以a值为4参与运算,使得d的值仍为20,而a参与运算后其值加1,值为5。 这个例子执行后,a的值为5,b的值为5,c的值为20,d的值也是20;
(3)(a = 3,b = 5,b+ = a,c = b* 5)
例子中的“,”是逗号结合运算,上式称为逗号表达式,自左向右结合,最后一个表达式的结果值就是逗号表达式的结果,所以上面的逗号表达式结果为40,a的值为3,b的值为8,c的值为40。
(4)a=5;b=6;c=a>b?a:b;
例中的a>b?a:b是一个三目运算,它的功能是先做关系运算a>b部分,若结果为真,则取问号后a的值,否则取冒号后b的值,因此c的值应该为6,这个运算可以用来代替if…else…语句的简单应用。
二.学好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程序设计》教学大纲中,只要求我们掌握一些简单的算法,在掌握这些基本算法后,要完成对问题的分析就容易了。如两个数的交换、三个数的比较、选择法排序和冒泡法排序,这就要求我们要清楚这些算法的内在含义,其中选择法排序和冒泡法排序稍难,但只要明白排序的具体过程,对代码的理解就不难了。如用选择法对10个不同整数排序(从小到大),选择法排序思路:设有10个元素a[1]~a[10],将a[1]与a[2]~a[10]比较,若a[1]比a[2]~a[10]都小,则不进行交换,即无任何操作;若a[2]~a[10] 中有一个比a[1]小,则将其中最大的一个(假设为a[i])与a[1]交换,此时a[1]中存放了10个中最小的数。第二轮将a[2]与a[3]~a[10]比较,将剩下9个数中的最小者a[i]与a[2]交换,此时a[2] 中存放的10个数中第2小的数;依此类推,共进行9轮比较,a[1]到a[10]就已按从小到大的顺序存放。即每一轮都找出剩下数中的最小一个,代码如下:
for(i=1;i<=9;i++)
for(j=i+1;j<=10;j++)
if(a[i]>a[j]
{temp=a[i];
a[i]=a[j];
a[j]=temp;
}
结语:当我们把握好上述几方面后,只要同学们能克服畏难、厌学、上课能专心听讲,做好练习与上机调试,其实C语言并不难学。
新手如何学习C语言
新手学习C语言,有很多误区,以一个学过C语言的人,给新手一些建议。
抛砖引玉,请前辈指出问题,发表意见,新手请注意后面的回复。
第一:一些概念。
C语言是一门程序设计语言,有一些标准,比较重要的是ANSI C(好像是C89)和C99。
数据结构包括逻辑结构和物理结构。逻辑结构是数据元素集合和定义在集合上的关系。物理结构是逻辑结构在计算机中的实现。
LCC、VC、TC、GCC都是C语言编译器,一般包括集成开发环境,编译器和链接器及辅助工具
我们书写的是C源程序,源程序通过编译器编译为中间文件,中间文件经链接器链接生成可执行文件。不同操作系统可执行文件不同。中间文件也有几个标准,微软使用的和Linux下通用的有差异。
第二:学习什么。
个人认为程序设计学习的重点放在数据结构的学习上,但是这种学习要有一个平台,比如C语言。
学习C语言首先要掌握基本语法,常量、变量、类型、及顺序结构、分支结构和循环结构的意义及用法。进一步学习构造类型如指针、结构、函数的意义和用法。
C语言提供一些标准函数以减轻程序设计工作量,这些函数我们自己也可以实现。即使不依靠函数库,只有编译器,理论上就足够了。事实上,提供的标准函数效率都很高,使用很频繁,没有自己实现的必要,所以掌握常用函数是非常必要的,但是要注意函数的适用范围。
继续学习因人而异,应该可以独立选择了。
第三:如何学习。
强调多实践,C语言的学习要经常上机,多写程序才能逐步提高。
推荐书籍:C Programming Languge。有中译本,但最好看英文版。
通读,并将所有习题独立思考,给出解答,尤其是编程实践题,最好逐一上机完成。
C语言其实并不难,如果认真掌握了C Programming Language,C语言的基础就可以了,继续学习就更加容易。建议不要找捷径,通过考试除外,真正的水平提高是建立在编程实践积累基础上的,必须一个一个程序的完成才能提高。
绛旓細绗2姝ワ細璁捐绋嬪簭 瀵圭▼搴忓簲璇ュ畬鎴愪粈涔堜换鍔℃湁姒傚康鎬х殑璁よ瘑鍚庯紝灏卞簲璇ヨ冭檻濡備綍鐢ㄧ▼搴忔潵瀹屾垚瀹冦傞櫎姝や箣澶栵紝杩樿鍐冲畾鍦ㄧ▼搴忥紙杩樺彲鑳芥槸杈呭姪鏂囦欢锛変腑濡備綍琛ㄧず鏁版嵁锛屼互鍙鐢ㄤ粈涔堟柟娉曞鐞嗘暟鎹瀛︿範C璇█涔嬪垵锛岄亣鍒扮殑闂閮藉緢绠鍗曪紝娌′粈涔堝彲閫夌殑銆傜3姝ワ細缂栧啓浠g爜 璁捐濂界▼搴忓悗锛屽氨鍙互缂栧啓浠g爜鏉ュ疄鐜般備篃灏辨槸璇达紝...
绛旓細瀛︿範鏂规硶鏄細1銆佽鍓嶉涔狅紝璇惧悗澶嶄範锛岃鐪熷仛璇惧爞銆佽鍚庣殑浣滀笟锛岀悊瑙g悊璁虹煡璇嗐2銆佽浣忚娉曡鍒欍3銆佸姞寮洪昏緫鎬濈淮銆4銆佸鍔ㄦ墜锛岄氳繃缁冧範涓婃満浜嗚В瀹冪殑杩愯杩囩▼銆5銆佸疄璺碘>鐞嗚鈥>鍐嶅疄璺碉紝鍒氬紑濮瀛︿範C璇█鏃讹紝鎸夌ず渚嬬粌涔狅紝骞舵帹鍔ㄧ悊璁虹殑瀛︿範锛岀劧鍚庡啀鑷繁澶氭濊冿紝澶氫笂鏈哄疄璺点
绛旓細鎬庢牱鎵嶈兘瀛﹀ソC璇█,搴斾粠鍝嚑鏂归潰鐫鎵(浜) 瀛︿範C璇█涓嶆槸涓鏈濅竴澶曠殑浜嬫儏,浣嗕篃涓嶉渶瑕佽姳璐瑰崄骞存椂闂存墠鑳界簿閫氥濡備綍浠ユ渶灏忕殑浠d环瀛︿範骞剁簿閫欳璇█鏄湰鏂囩殑涓婚銆傝娉ㄦ剰,鍗充娇鏄滄渶灏忕殑浠d环鈥,涔熺粷涓嶆槸浠涔堟嵎寰,鑰屾槸浠ユ渶鐭殑鏃堕棿鍙栧緱鏈澶氱殑鏀惰幏,鍚屾椂涔熸剰鍛崇潃浣犻渶瑕佺粡鍘嗚壈鑻︾殑杩囩▼銆備竴銆佽璇诲氨璇诲ソ涔,鍚﹀垯涓嶅涓嶈 鎵...
绛旓細C璇█鏄竴闂ㄥ叕璁ょ殑涓嶆槗鍏ラ棬鐨勮瑷(鍚﹀垯涔熶笉浼氶偅涔堝澶у鐢熲滄儴鍙濅簡^_^),鍥犱负娑夊強鐨勫唴瀹规瘮杈冨(鐗瑰埆鏄娉曠箒澶 )銆備粠杩欎箞澶氬勾鐨勬暀瀛﹀疄璺垫潵鐪,浼犵粺鏁欏鍜屽涔犲瓨鍦ㄤ竴浜涢棶棰樸 鍗冧竾涓嶈涓鐪嬪埌鑻辨枃灏卞ご澶,灏界鎴戜篃鏄繖鏍,骞朵笉鏄湅涓嶆噦(姣曠珶涔熸帴鍙楄繃CET4銆6绾у搼宸磋嫳璇殑鏁欒偛,杩樻槸鑳界湅鎳傜殑)銆 (3) C璇█瀛︿範鏂...
绛旓細浠婂ぉ鏈汉灏变笌澶у涓璧疯皥璋濡備綍瀛︿範C璇█銆傚涔燙璇█蹇呴』浠庝互涓嬪洓鐐瑰叆鎵嬶紝涔熷氨鏄锛屽彧瑕佷綘鑳芥帉鎻¤繖鍥涚偣鐨勫唴瀹癸紝閭d箞鍩烘湰涓婂氨澶у姛鍛婃垚浜嗐1銆佸鐪嬩唬鐮 鍦ㄦ湁涓瀹氬熀纭浠ュ悗涓瀹氳澶氱湅鍒汉鐨勪唬鐮併 娉ㄦ剰浠g爜涓殑绠楁硶鍜屾暟鎹粨鏋勩傛瘯绔熷C涔嬪悗鐨勫叧鍙e氨鏄畻娉曞拰鏁版嵁缁撴瀯銆傛彁鍒版暟鎹粨鏋勶紝鎸囬拡鏄叾涓噸瑕佺殑涓鐜...
绛旓細浠庤璁¤呯殑瑙掑害鏉ユ弿杩C鎬庢牱搴旂敤鍦ㄥ疄闄呯殑椤圭洰涓傝瑷鎻忚堪鐨勫叏闈㈡ф瑺浣筹紝浣嗚繕鏄湁涓瀹氱簿搴︾殑锛屽挨鍏舵槸鍦ㄤ竴浜涘皬鎶宸ф柟闈傛湰涔﹁繕寮曞叆浜嗗ぇ閲忕殑鎴樹緥锛岄氳繃涓涓釜鐨勭湡瀹為」鐩潵寮曞浣犱娇鐢–鐨勬濇兂鍘绘濊冮棶棰樸傜炕璇戝緢宸紝鏈変竴瀹氶毦搴︺瀛︿範鍩虹璇硶锛岀啛鎮夎皟鐢ㄥ悇绉嶅簱鍑芥暟锛岃繖鏃朵綘渚挎垚涓轰竴鍚嶅垵绾C绋嬪簭鍛樹簡銆
绛旓細c璇█鏄緢澶氫汉閮芥兂瀛︿範鐨勫唴瀹癸紝浣嗘槸寰堝浜洪兘涓嶇煡閬濡備綍寮澶淬瀛︿範c瑷璇紝鏄彲浠ュ垎鎴愬嚑涓樁娈垫潵瀛︿範鐨勶細1.鍒濈骇闃舵 杩欎釜闃舵锛屽叾瀹炲氨鏄叆闂ㄩ樁娈点傝繖涓樁娈电殑瀛︿範鍔炴硶涔熷緢绠鍗曪紝鐪嬩功銆佸仛棰樸備笉杩囪繖涓畝鍗曠殑鐪嬩功鍋氶鍗村張鏈変竴浜涚暀鎰忎簨椤广傚氨鏄功鐪嬩粈涔堜功锛岄鍋氫粈涔堥銆傞鍏堬紝鍏充簬鍒濆鏉ヨ锛屾垜浠ヤ负鐪嬭碍娴╁己鐨刢...
绛旓細鍐欏埌鏈鍚,杩樻湁闈炲父闈炲父閲嶈鐨勪竴鐐规病鏈夋彁鍙娾斺斾唬鐮侀鏍,浠鏈寮濮嬪涔犲氨蹇呴』寮鸿揩鑷繁妯′豢鏈浼樼鐨勪唬鐮侀鏍笺傜湅浜嗚繖绡囨枃绔犱箣鍚,鎴戝緢鏈夋劅瑙︺傛兂鐜板湪瀛︿範C璇█閮藉ソ澶氬勾浜嗚繕鏄病鏈変粈涔堣繘姝,涓婇潰閮借閬撲簡銆傚缓璁ゼ涓荤疆椤,璁╂洿澶氱殑浜烘洿蹇洿濂界殑瀛︿範C璇█銆侰璇█鏄紪绋嬬殑鏍瑰熀,涔熸槸鏈涓烘繁濂ュ拰鐏垫椿鐨勮瑷銆傛湁浜嗚繖绡囨枃绔犵殑...
绛旓細涓鏄涔犻『搴 鍏堜粠鐔熸倝绠鍗曠殑C璇█璇硶寮濮嬪叆闂紝鐒跺悗鍐嶅惊搴忔笎杩锛屽涔燙++璇硶锛學IN32銆丮FC銆丵T銆佺綉缁滅紪绋嬶紝鏁版嵁搴撱佹暟鎹粨鏋勩佺畻娉曘丆OM銆丼TL绛夈傛瀯寤轰竴涓畬鏁寸殑C璇█鐭ヨ瘑浣撶郴銆傝繖闇瑕佷竴涓瘮杈冩极闀跨殑瀛︿範绉疮鐨勮繃绋嬨傝娉曞叆闂ㄩ儴鍒嗗ぇ姒2-3涓湀锛屽叾浠栭儴鍒嗛渶瑕佸涔犲拰宸ヤ綔涓參鎱㈢悊瑙e拰娑堝寲浜嗐俢11.jpg 浜屾槸...
绛旓細鎴戠殑寤鸿鏄細鏁板銆佽嫳璇C璇█銆傛暟瀛﹀拰鑻辫鐨勯噸瑕佹у凡缁忎笉闇瑕佹垜鏉ュ己璋冿紝澶у涔熻浠庡辜鍎垮洯灏卞紑濮嬪涔犲畠浠簡锛岃鏃跺埢鎶婂畠浠斁鍦ㄦ渶閲嶈鐨勪綅缃紝鏃犺浣犳槸鍚﹀涔犺绠楁満銆備负浠涔圕璇█濡傛閲嶈锛熸垜浠浠庡涔鏂规硶寮濮嬭璧枫備功鏈笂鎻忚堪鐨勪笢瑗匡紝鍊樿嫢涓嶇粡杩囨垜浠殑浜茶嚜瀹炶返锛屾槸闅句互琚交搴曟秷鍖栧惛鏀剁殑銆傝绠楁満缁勬垚鍘熺悊璁茶В...