A. 如何学习c语言
楼上的动不动就拷贝别人写的东西,说不定自己都没学过。
学任何一门语言多练习才是王道。多找找题目,然后自己试着写程序,当然,你还得学会怎么编译、调试程序。你得学会看懂编译器的警告、错误信息。这些都是最最基础的。当你写完程序发现有问题的时候,可以对照知识点看书,或者上网络知道提问,但记得把代码贴上来。
初学者应该看的书:《c primer》。当然,如果你是在linux下,还应该看《UNIX环境高级编程》
给你推荐点书,建议你在linux下学C语言,因为开源代码很多,可以很好的学习:
第一阶段:《c primer》、《c primer plus》、《linux c》、《unix环境高级编程》
第二阶段:《深入理解计算机系统》、《代码大全》
第三阶段:《重构》
除了多看书,还要多看开源代码。因为很多开源代码写的都很经典。我是过来人,所以就有这些经验了。
很多人推荐谭浩强的书,我不推荐,原因是:谭浩强的书有的东西不标准也不完善。最简单的例子就是main函数。通篇用的是main()(这也是用windows学c语言的通病)。标准的main函数是int main(void)和int main(int argc, char *argv[])。因为弄懂了标准的main函数,你就明白了程序是如何和系统交互的。
B. C语言谁的书好
潭浩强
清华大学出版社
学C语言的99%都用他的书
以下在网络上看到对他的书的评价
按∶
谭浩强
教授编写的
《C程序设计
》一书受到广泛的欢迎和高度评价。下面刊登几所大学讲授C语言
课程
的老师对《C程序设计》一书的评价意见。
清华大学计算机与信息管理中心
承担着清华大学非
计算机专业
的“计算机软件技术基础”课,自1994年起选用清华大学出版的谭浩强教授编写的《C程序设计》一书作为本课程教材,取得了很好的教学效果,深受师生们的欢迎,现正使用第二版作为
教材
。此书的特点及对教学的
促进作用
主要表现在以下几方面:
1.内容全面,实用性强
此书涵盖了程序设计
基础知识
及C语言程序设计的全部内容,并介绍了大量常用
算法
。通过学习此教材,初学程序设计的学生可以达到熟练运用C语言进行小规模应用开发的能力。
2.讲解透彻,深入浅出
此书对
概念
讲解透彻,使初学
计算机程序设计
的学生不仅学习了一种
高级语言
,而且能够对相关基础知识有准确深入的理解,例如在介绍
变量
的存储类型时、介绍指针时都对
计算机
的
存储管理
做了清楚的论述,使读者知其然也知期所以然。广大非计算机专业的学生学习
计算机课程
的学时很少,没有足够的
时间系统
地学习计算机专业基础知识。因此像这样将必要的基础知识融会贯通到程序设计课程中,对学生的
知识结构
建设以及今后的深造和提高都大有裨益。
3.通俗易懂,易于自学
此书的一个突出优点就是,语言优美、举例生动、
浅显易懂
。学生在学习C语言之前,普遍有些畏难情绪,因为听说C语言比较难学。的确C语言最初是面向专业
开发人员
的。但是读了
这本书
之后,学生们不再惧怕C语言。很多学生说,读这本书不仅
学会
了C语言,而且读的
过程
本身就是一种享受,不像有些专业书籍,堆砌大量技术
名词
,艰涩难懂。由于这本书易于自学,给我们的教学工作带来很大帮助,使我们可以达到精讲多练,逐步实现教师指导下的学生自主式
学习模式
。
4.结构清晰,循序渐进
由于本书结构清晰,
知识点
明确,循序渐进的内容组织方式非常符合
初学者
的认知
规律
,因此给教师组织
课堂教学
提供了很好的指导。我们按照这本书的内容结构组织教学,取得了学生和
教务处
的一致好评。
5.习题丰富,利于复习
计算机程序设计是一门实践性很强的课程,因此仅仅通过阅读教科书或听课是不可能掌握的,学习程序设计的最重要环节就是实践。本书每章都附有大量习题,并且有配套的习题解答,非常有利于学生复习巩固课上所学的知识。也便于教师设计
实验课
的
教学内容
。
C. 学习C语言
给你介绍一个很好的C语言集成环境的软件,超好用。
http://www.onlinedown.net/soft/8426.htm编程与数学的联系
离散数学是在大学开设的,其实初中生也能看得懂,主要是因为它的描述过于严谨,所以看起来有点神圣。但只要明白其本质,也没有什么难的,不过是比较烦。
你不用专门地从头研究数学。如果你学过一点编程,那么建议你学习数据结构,从中你可以了解到学习哪些数学知识能帮你更好地前进;而且在学习过数据结构之后,你的编程水平将大大提高。
掌握一门语言的语法并不需要太多的数学知识。只有在遇到具体问题时,要用到数学上的相关理论,数学才发挥作用,此时完全可以通过查资料来解决。当然,有数学基础自然可以事半功倍。不过通过应用时的临时学习将使你对该理论有更深该的认识也形成了你的实践积累。
最后给你一条武林秘决(今天你可能无法领悟,到你功力倍进的时候,你就会心领神会了) 程序=算法+数据结构
问题: 我想自学计算机科学,应该怎样开始?
--------------------------------------------------------------------------------
答案:
以学计算机专业为例,许多大学生认为学最新的计算机语言、技术、标准是最好的铺路方法,因为许多公司招聘时要求这些方面的经验。这些新技术虽然该学,但是学习计算机基础课程更重要,因为计算机语言和开发平台日新月异,但是万变不离其宗的就是那些基础课程:数据结构、算法、编译原理、计算机组成、关系型数据库原理等。有位同学生动地在“开复学生网”上把这些基础课程比拟为内功,把新的语言、技术、标准比拟为外功。只追寻时髦的学生最后只懂招式,没有功力,是不可能成为高手的。
想系统地学习计算机科学,可以从三方面起步:
1 数学。
离散数学 (包括集合论,图论,数理逻辑,等等),线性代数,概率统计。我觉得数学分析和微积分与软件及计算机科学本身关系不大,也许在一些计算机应用中有用。但是,数学分析的思想精髓,值得一看。
2 软件
可以从数据结构,操作系统,算法和程序设计语言开始。程序设计语言可以从C学起。
3 另外
通过对计算机组成及框架结构的学习,可以对计算机硬件略知一二。
有 了这些基础,然后可以向编译原理,数据库,人工智能,图形学,网络,软件工程,等等方向扩展。一个很好的办法是参考大学计算机系的课程安排,当然自学的时 候取舍更加灵活一些。另外,你也许可以去旁听一些计算机系的课程,并和授课的老师多多接触,看看有没有转系或者选修其双学位的机会。
计算机能力不一定是通过证书来评价的。当然证书也是一个方面。计算机学习应用领域主要看书、上网找资料这些方面学习的。当然培训也是一个快速的方法。
在计算机专业上面有什么问题,可以去比如“新闻组(http://www.microsoft.com/china/commuity),或者专门的一些BBS比如(http://forum.diyinside.com),上面去多看看,相信你回有收获的
还可以到微软社区看帖子、到微软技术网站看文章,都能取得不错的效果。
我们DIY Inside的公益社区还会在微软社区以及其他机构的协助下在各大城市(北京、上海、南京、成都等)的高校中举办MVP校园技术教育会议,如果你正好在这些城市,不防多多关注diyinside.com,注册去参加这些免费的由微软MVP讲师主讲的课程。
你必须有一个坚定的目标,然后不断努力,而不能天天无聊没事情做。这样,你的生活才是充实的。
补充一点:给自己设定的目标不要太大太不容易实现。从小事开始做,一步一个脚印,更能够增加自信心。另外,朋友圈子很重要。你应该有意识地多结交一些做实事的朋友,也许你们可以一起提高.
认为要学好C语言首先必须了解等级考试C语言的大纲和内容,以及各种辅助材料的用途,这是学好C的基础。从以前的经验以及考网上的一些信息可知,要自学C语言必须准备以下资料:
1、 教材:大家现在都公认是清华大学谭浩强主编的那本,当然有其他的也可以,如高校出版社的。
2、 习题集:我认为清华大学的《C语言样题汇编》不错。书后面附有答案。
3、 上机练习:我认为南开大学的那个可以,最好是在考前从头到尾做一遍。答案可以去考网下载区下载。
4、 大纲:这个肯定要的,可以在考网二级版那里去下,然后打印出来。
5、 自学计划:为了做到有计划有目的地学习C语言,大家可以根据自己的学习(或工作)情况,制定一个自学计划,循序渐进地学习。
6、 模拟盘:为了更好地熟悉考场环境,下一个模拟盘是必不可少的,可以在http://studywang.yeah.net/。下载,注意,在下载时要把锁匙盘一起下回来,否则不能进入考试环境。
7、 教学光盘:如果能买到C语言的教学光盘,那当然更好,这样可以更直观地学习C语言了。
下面从微观上针对C语言的几个重点和难点,逐个谈谈具体的自学方法。
二 如何学习C语言的运算符和运算顺序
C语言的运算功能十分丰富,运算种类远多于其它程序设计语言。因此,当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。
初学者往往对此感到非常困难,觉得C语言学习太繁杂,其实只要我们对此合理进行分类,找出它们与我们在数学中所学到运算之间的不同点之后,记住这些运算也就不困难了,有些运算符在理解后更会牢记心中,将来用起来得心应手,而有些可暂时放弃不记,等用到时再记不迟。
下面是所有的运算符按优先级不同分类列表:(对不起,因为表格显示不正常,已被我删除大家可以看书上的)
表中列出15种优先级的运算符,从高到低,优先级为1 ~ 15,最后边一栏是结合规则,除第2、3级和第14级为从右至左结合外,其它都是从左至右结合,它决定同级运算符的运算顺序。
下面我们通过几个例子来说明:
(1) 3*20/4%10 这个表达式中出现3种运算符,是同级运算符,运算顺序按从左至右结合,因此先计算3 * 20=60,然后被4除,结果为15,最后是%(求余数)运算,所以表达式的最终结果为15%10 = 5
(2)a = 3;b = 5;c =++ a* b ;d =a + +* b;
例子中的“;”是C语言的语句分隔符,执行顺序为从左到右,第1条语句执行后a的值为3,第2条语句执行后b的值为5,第3条语句中有两个运算符前置+ +和*,按表中所列顺序,+ +先执行,*后执行,所以+ + a执行后,a的值为4,由于+ +为前置运算,所以a的值4参与运算,C的值为20,最后执行第4条语句,由于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。
三、如何学习C语言的四种程序结构
(1)顺序结构
这种结构的程序比较简单,就是按照语句的排列顺序依次执行的机制。顺序结构的执行顺序是自上而下,依次执行,因此编写程序也必须遵守这一规定,否则你的程序执行结果就不对。
例如;a = 3,b = 5,现交换a,b的值,正确的程序为:
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。而大多数情况下顺序结构都是作为程序的一部分,与其它结构一起构成一个复杂的程序,例如分支结构中的块体、循环结构中的循环体等。
C语言自学方法(2)
(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}
④switch语句:
switch
语句也是多分支选择语句,又称为多路开关语句,到底执行哪一块,取决于开关设置,也就是表达式的值与常量表达式相匹配的那一路,它不同if—else 语句,它的所有分支都是并列的,程序执行时,由第一分支开始查找,如果相匹配,执行其后的块,接着执行第2分支,第3分支……的块,直到遇到break语句;如果不匹配,查找下一个分支是否匹配。
(3)循环结构:
循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供四种循环,即goto循环、while循环、do –while循环和for循环。
四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提昌用goto循环,所以下面我们重点讲解另外的三种循环。
常用的三种循环结构学习的重点在于弄清它们相同与不同之处,以便在不同场合下使用,大家好好看一下书中三种循环的格式和执行顺序,如何替换使用,如把while循环的例题,用for语句重新编写一个程序,这样能更好地理解它们的作用。
注意:在while和do—while循环体内和for
循环中的第3语句中,应包含趋于结束的语句(如I++,I--),否则就可能成了一个死循环,这也是初学者的一个常见错误。
下面我们来讨论下这三种循环的异同之处:
用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程序=主函(main)+若干个函数。
在程序设计中,常将一些常用的功能模块写成函数,也可以将大程序段分割成若干函数,前者目的在于减少重复编写程序段的工作量,后者目的在于缩短模块长度,以便程序阅读方便。
一个源程序文件由一个或多个函数组成,它是一个编译单位,而一个C程序由一个或多个源程序文件组成。对较大的程序,往往分成多个文件,这样可以分别编写、分别编译,提高高调试效率,一个源程序文件可以被多个C程序公用。
C程序的的执行是从main()函数开始,调用其它函数后流程回到main函数,在main中结束整个函数运行,main函数的称是系统规定的,用户可以修改其内容即函数体,但不能修改其名称和参数,一个C程序必须有一个main函数,也只能有一个main函数。
所有函数都是平行的,即在定义函数时是互相独立的一个函数度不从属于另一个函数,即函数不能嵌套定义,但可以互相调用,但不能调用main函数。
函数分成两类,即标准函数和用户自定义函数,标准函数又称库函数,由系统提供,用户可直接调用,C语言提供了丰富的库函数,请考生在编写C程序时查阅教材后的函数说明,这可节省你的编程工作量;用户自定义函数由编程者自己编写.
D. 学习C语言有什么用处
C是基础的语言
C语言被广泛用于操作系统和编译器的开发
功能非常强
虽然现在不是最流行但是
最基础的东西是也比较好学的语言
如:金山的创始人江明
从30多岁开始学语言
学的就是C
对C的评价相当高
C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。
C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。
C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。
常用的C语言IDE(集成开发环境)有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++,Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++,Lccwin32 C Compiler 3.1,Microsoft C,High C,TurboC等等......
C语言的优点
1.简洁紧凑、灵活方便
C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C语言可以象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
2.运算符丰富
C的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富,表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
3.数据结构丰富
C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等,能用来实现各种复杂的数据类型的运算,并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能,支持多种显示器和驱动器,且计算功能、逻辑判断功能强大。
4. C是结构式语言
结构式语言的显着特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
5. C语法限制不太严格,程序设计自由度大
虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。
6. C语言允许直接访问物理地址,可以直接对硬件进行操作
因此既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。
7. C语言程序生成代码质量高,程序执行效率高
一般只比汇编程序生成的目标代码效率低10へ20%。
8. C语言适用范围大,可移植性好
C语言有一个突出的优点就是适合于多种操作系统,如DOS、UNIX,也适用于多种机型。
C语言的缺点
1.C语言的缺点主要是表现在数据的封装性上,这一点使得C在数据的安全性上做的有很大缺陷,这也是C和C++的一大区别。
2. C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。
C语言指针
指针就是C语言的一大特色,可以说C语言优于其它高级语言的一个重要原因就是因为它有指针操作可以直接进行靠近硬件的操作,但是C的指针操作也给它带来了很多不安全的因素。C++在这方面做了很好的改进,在保留了指针操作的同时又增强了安全性。Java取消了指针操作,提高了安全性。
C源程序的结构特点
1.一个C语言源程序可以由一个或多个源文件组成。
2.每个源文件可由一个或多个函数组成。
3.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。
4.源程序中可以有预处理命令(include命令仅为其中的一种),预处理命令通常应放在源文件或源程序的最前面。
5.每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。
6.标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。
学习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)分支结构
顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用分支结构。分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。分支结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。程序流程图是根据解题分析所绘制的程序执行流程图。
E. 我想学C语言,有什么书比较全面
谭浩强的《C程序设计》
注意看下文中的第2和第3点。
读《C程序设计》是一种享受
清华大学计算机与信息管理中心副教授 郑莉
按∶谭浩强教授编写的《C程序设计》一书受到广泛的欢迎和高度评价。下面刊登几所大学讲授C语言课程的老师对《C程序设计》一书的评价意见。
清华大学计算机与信息管理中心承担着清华大学非计算机专业的“计算机软件技术基础”课,自1994年起选用清华大学出版的谭浩强教授编写的《C程序设计》一书作为本课程教材,取得了很好的教学效果,深受师生们的欢迎,现正使用第二版作为教材。此书的特点及对教学的促进作用主要表现在以下几方面:
1.内容全面,实用性强
此书涵盖了程序设计基础知识及C语言程序设计的全部内容,并介绍了大量常用算法。通过学习此教材,初学程序设计的学生可以达到熟练运用C语言进行小规模应用开发的能力。
2.讲解透彻,深入浅出
此书对概念讲解透彻,使初学计算机程序设计的学生不仅学习了一种高级语言,而且能够对相关基础知识有准确深入的理解,例如在介绍变量的存储类型时、介绍指针时都对计算机的存储管理做了清楚的论述,使读者知其然也知期所以然。广大非计算机专业的学生学习计算机课程的学时很少,没有足够的时间系统地学习计算机专业基础知识。因此像这样将必要的基础知识融会贯通到程序设计课程中,对学生的知识结构建设以及今后的深造和提高都大有裨益。
3.通俗易懂,易于自学
此书的一个突出优点就是,语言优美、举例生动、浅显易懂。学生在学习C语言之前,普遍有些畏难情绪,因为听说C语言比较难学。的确C语言最初是面向专业开发人员的。但是读了这本书之后,学生们不再惧怕C语言。很多学生说,读这本书不仅学会了C语言,而且读的过程本身就是一种享受,不像有些专业书籍,堆砌大量技术名词,艰涩难懂。由于这本书易于自学,给我们的教学工作带来很大帮助,使我们可以达到精讲多练,逐步实现教师指导下的学生自主式学习模式。
4.结构清晰,循序渐进
由于本书结构清晰,知识点明确,循序渐进的内容组织方式非常符合初学者的认知规律,因此给教师组织课堂教学提供了很好的指导。我们按照这本书的内容结构组织教学,取得了学生和教务处的一致好评。
5.习题丰富,利于复习
计算机程序设计是一门实践性很强的课程,因此仅仅通过阅读教科书或听课是不可能掌握的,学习程序设计的最重要环节就是实践。本书每章都附有大量习题,并且有配套的习题解答,非常有利于学生复习巩固课上所学的知识。也便于教师设计实验课的教学内容。
总之,使用这本书作为教材,对我们的教学工作有很大的促进。目前我们已经将谭浩强教授讲授《C程序设计》的教学录像带作为新教师上岗前的观察学习课程。教师们都感觉从中收益非浅。特别是第二版增加了面向对象的程序设计的基本思想和方法,使初学者也能跟上计算机科学的最新发展,深受学生欢迎。
http://www.tanhaoqiang.com/Pages/CandCpp/C-wenzhang/C-pinglun2.htm
http://www.tanhaoqiang.com/Pages/CandCpp/CCpp.htm
◎ C语言的教材就数谭浩强老师的这本最好
◎ 读《C程序设计》是一种享受
◎ 我用谭浩强教授的书教C程序设计
◎ 一本不可多得的教材
◎ 最受欢迎的一本优秀教材
F. 想深入学习C语言,却不知怎样学起,请帮忙推荐相关书籍或方法
初学C语言程序设计的基本方法和技巧
C语言是一门应用最广泛的基础高级编程语言,有很多语言都是由它发展而来的,所以学习好C语言之后再学习任何一种编程语言都会轻松上手。
1 熟记基本知识点
学习C语言和学习任何一种语言的方法基本一样。我们婴儿期间咿呀学语时,从一个字开始学,然后两个,接着更多,最后我们能成句,成段,到出口成章。学习C语言的时候也一样,有些最基本的内容必须要记下来。
1.1 关键字
关键字是由C语言规定的具有特定意义的字符串。它们是写C语言的基础,如果关键字不记下来,那编程是寸步难行。
1.2 运算符
C语言中的运算符和表达式与我们数学上的运算符和表达式有相同的,也有不同的。我们在学习的时候就注意记住并弄清楚那些不同的地方。基本的语法表达式及执行过程。选择结构中的if语句和switch语句。循环语句中的for语句、while语句和do-while语句。这部分就好比是你会了许多词,然后得把这些词组成一些句子,语法的作用就是告诉你怎样说好一句话,表达清楚的意思。
1.3 常用库函数
在这里最重要有两个函数:输入函数scanf()和输出函数printf()。一个程序如果没有输入,那无论运行多少次结果都一样,那也就失去了写程序的目的了。同样一个程序如果没有输出,那运行程序有什么意义呢?当然输出的形式比较多。在初学C语言的时候主要是从屏幕上输出结果。所以这两个函数的使用方法也必须要掌握。这两个函数已经定义在stdio.h这个头文件中,不用我们自己写,它们不是C语言中的语句,所以在使用这两个函数时在源程序顶部一定要加上#include 。这是为了让我们在执行程序的时候,让计算机知道scanf()和printf()这两个函数怎么用。
掌握上面的必须要记下来的内容,相当于我们开始学说话时先听别人说,我们自己跟着学一些最基本的日常语言。这时我们就可以从一些简单的程序开始读,能把每一个程序的运行结果能自己读程序准确地执行出来,那样我们就可以开始来编写程序了。
2 掌握程序的基本结构
编写程序一定要注意程序的结构性。学习写程序,不能开始就写代码。许多人在动手写程序的时候感到无从下笔。原因主要是:看到一个题目不知道如何去分析,它怎么才能变成一个程序呢?这是初学者在编写程序的主要问题。我在教学中采用了一种分步式的方法。
2.1 看到一个题目的时候先别想着编程序,用一个具体的实例想想不用程序你是如何解决这个问题的
例如输入三个数,输出最小值。我们用3,8,6三个数来考虑,我们一看就知道3是最小的。可是我们这一看中其实并不简单,其中有判断。我们先看第一个数3,然后已经记在我们头脑中了,再看第二个数8,3比8小,那我们还是记住3,再比较第3个数6,最后确定3是最小的。我们现在就是要把我们头脑中很快闪过的这些判断过程想清楚。
2.2 我们要弄清楚一个程序由哪些部分组成
这就好比我们写一篇文章也有一些结构。一个C程序也有其一般结构,我把它归纳成下面格式。
#include
main()
{
定义变量;int,float,char,double
输入数据;键盘输入scanf();
直接赋值;例如x=3;
处理数据;if-else;switch;for;while;do-while;
输入数据;printf();
}
第一行代码表示把标准的输入输出头文件包含在这个程序中。第二行代码是C程序的主函数,每个C程序中必须有且仅有一个main()函数。然后是函数的一对“{}”。
定义变量的意思好比买一块地,有了这块地就可以在上面盖房、种庄稼之类的。但是为了便于统一管理,比如城市已经规划好了,你在郊区买的地就只能种庄稼,在市中心买的,就只能盖房,这就是变量类型的含义了。用上面求最小值的例子。我们在三个数中求最小值。这三个是什么数,是整数还是小数?这就必须用变量类型来说明。对于上例应该定义三个整型变量用来存放三个整数,还要定义一个整型变量用来存放最小值。如:int a,b,c,min;这行代码的作用其实是要了一块内存,然后在这块内存里存东西。因为我需要一个整数,所以就用int这个关键字来声明(相当于用这块地干什么)。那么变量a,b,c是什么呢?你买了一块地,总要知道这块地在哪是吧?不然就白买了,变量就是这样一个作用。我们需要把数据存在计算机中,什么样的数就定义什么样的类型,需要存几个数就定义几个变量。
输入数据有两种方法。第一种从键盘输入,就需要用到scanf()这个函数;第二种是直接赋值。
处理数据是对于初学者来说最难的一部分,也就是把我们刚才分析过程转换成语句。这需要学好C语言的三种程序结构。
(1)顺序结构
顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。顺序结构可以独立使用构成一个简单的完整程序,不过大多数情况下顺序结构都是作为程序的一部分,与其它结构一起构成一个复杂的程序,例如分支结构中的复合语句、循环结构中的循环体等。
(2)选择结构
对于要先做判断再选择的问题就要使用分支结构。选择结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。选择结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据条件的结果选择对应的分支语句。选择结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。程序流程图是根据解题分析所绘制的程序执行流程图。
例如上例中,把我们头脑中很快闪过的这些判断过程画成流程图即图1:
由上面的流程图再写出对应的语句就比较容易了。如下所示:
min=a;
if(min>b) min=b;
if(min>c) min=c;
学习分支结构不要被分支嵌套所迷惑,只要正确绘制出流程图,弄清各分支所要执行的部分,嵌套结构也就不难了。嵌套只不过是分支中又包括分支语句而已,不是新知识,只要对双分支的理解清楚,分支嵌套是不难的。下面我介绍几种基本的分支结构。
①if(条件)
{ 分支体
}
这种分支结构中的分支体可以是一条语句,此时“{ }”可以省略,也可以是多条语句即复合语句。它有两条分支路径可选,一是当条件为真,执行分支体,否则跳过分支体,这时分支体就不会执行。如:要计算x的绝对值,根据绝对值定义,我们知道,当x>=0时,其绝对值不变,而x<0时其绝对值是为x的反号,因此程序段为:if(x<0) x=-x;
②if(条件)
{分支1}
else
{分支2}
这是典型的分支结构,如果条件成立,执行分支1,否则执行分支2,分支1和分支2都可以是1条或若干条语句构成。如:求某年的年号是否是闰年。
分析:因为当某年号能被4整除但不能被4整除但不能被100整除,则这一年是闰年;或者这一年号能被400整除也是闰年。即year%4==0&&year%100!=0||year%400==0
其程序段如下:
if(year%4==0&&year%100!=0||year%400==0)
printf(“%d is leap year!”,year);
else
printf(“%d is not leap year!”,year);
}
③嵌套分支语句:其语句格式为:
if(条件1) {分支1};
else if(条件2) {分支2}
else if(条件3) {分支3}
……
else if(条件n) {分支n}
else {分支n+1}
嵌套分支语句虽可解决多个入口和出口的问题,但超过3重嵌套后,语句结构变得非常复杂,对于程序的阅读和理解都极为不便,建议嵌套在3重以内,超过3重可以用switch语句。
④switch开关语句:该语句也是多分支选择语句,到底执行哪一块,取决于开关设置,也就是表达式的值与常量表达式相匹配的那一路,它不同if…else 语句,它的所有分支都是并列的,程序执行时,由第一分支开始查找,如果相匹配,执行其后的块,接着执行第2分支,第3分支……的块,直到遇到break语句;如果不匹配,查找下一个分支是否匹配。这个语句在应用时要特别注意开关条件的合理设置以及break语句的合理应用。
(3)循环结构
循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供三种循环,即while循环、do while循环和for循环。三种循环可以用来处理同一问题,一般情况下它们可以互相代替换,另外还有一种goto循环语句,因为强制改变程序的顺序经常会给程序的运行带来不可预料的错误,所以不提倡使用。
常用的三种循环结构学习的重点在于弄清它们相同与不同之处,以便在不同场合下使用,这就要清楚三种循环的格式和执行顺序,将每种循环的流程图理解透彻后就会明白如何替换使用,就能更好地理解它们的作用。在分析循环结构的语句时要开清楚,什么时候开始循环(即循环的初始值);什么时候结束循环(即循环的终止条件);循环的时候都做哪些操作(即循环体的执行部分);特别要注意在循环体内应包含趋于结束的语句(即循环变量值的改变),否则就可能成了一个死循环,这是初学者的一个常见错误。
在学完这三个循环后,应明确它们的异同点:用while和do…while循环时,循环变量的初始化的操作应在循环体之前,而for循环一般在语句1中进行的;while 循环和for循环都是先判断表达式,后执行循环体,而do…while循环是先执行循环体后判断表达式,也就是说do…while的循环体最少被执行一次,而while 循环和for就可能一次都不执行。
顺序结构、分支结构和循环结构并不彼此孤立的,在循环中可以有分支、顺序结构,分支中也可以有循环、顺序结构,其实不管哪种结构,我们均可广义的把它们看成一个语句。在实际编程过程中常将这三种结构相互结合以实现各种算法,设计出相应程序,但是要编程的问题较大,编写出的程序就往往很长、结构重复多,造成可读性差,难以理解,解决这个问题的方法是将C程序设计成模块化结构。输出数据是每一个程序必须包含的部分。在C程序中的输出通常是从显示屏上输出最后的结果,使用printf()这个函数。
3 掌握一些简单常用的算法
编程其实一大部分工作就是分析问题,找到解决问题的方法,再以相应的编程语言写出代码。这就好比我们学习写作文段落的时候都有一些经典的好词好句,可以使文章添彩。同样程序虽然可以实现各种功能,但最基本的一些算法并不是特别多,我们掌握一些简单的算法,在掌握这些基本算法后,根据不同的问题,再灵活应用。如百钱买百鸡的问题,就是用100元钱买100只鸡,公鸡5元一只,母鸡3元一只,小鸡1元三只。这种问题用数学方法可以列出方程:
x+y+z=100
5*x+3*y+z/3=100
按数学方法三个未知数两个方程无解,实际上是可以解的,如果把公鸡,母鸡和小鸡可能的只数全部代入到方程中检验就可以得到最后结果。这种方法叫穷举法。如果我们用手算那可能要花上半天的功夫,但让计算机来算就只需要1秒种。使用算法后分析和处理问题都会简单很多。当我们能熟练地掌握了简单算法后就能实现一些比较复杂的编程问题了。
任何程序只要有思维,有想法,那么实现程序时就不会觉得无从下手。而要学习这种思维方法就是多做题,多读程序,学习别人好的思维方法,多想想一个程序还可不可以有另外一种方法来实现它。这样久而久之,自然会形成一种自己的思维方法。因此我认为不管学什么语言都是这样。
4 培养良好的编程习惯
培养良好的编程习惯要从第一行代码开始,这也是学好C语言的重要因素。例如编写程序时用缩进的方式、写注释、程序写到一定的阶段时要做一下测试等。这些工作可以帮我们在调试程序时有很大的帮助。程序代码实现后,错误是难免的,所以也要锻炼自己的调试查错能力,而良好的编程习惯可以使我们在调试时减小工作量和提高调试效率,也有助于形成自己的编程风格。
C语言教学探讨
注重编程细节,培养编程技巧
C语言的规则颇多,编写C程序得严格按照其规则进行程序设计,对初学者而言,常常马虎大意,所编写的程序不能正常编译和执行结果,从而打消学生的学习积极性。因此在教学初期,教师必须强调C的许多细节问题,让学生的这种不良习惯扼杀于“萌芽”状态。如学生常常在写程序时出现以下问题:
3.1 字母大小写问题
C语言程序严格区分字母的大、小写,此规则一定给学生讲清楚,让其记住那些特例。如用科学计数法表示浮点数中的“E”,弄清该计数法的规则,其中的字母“E”可以不区分大、小写;再如表示16进制数的符号“0x”,其中字母“x”也可不区分大、小写等等,在教学过程中,对该类问题进行总结、归纳让学生一次就掌握并记住。
3.2 标点符号问题
学生在录入程序时,往往忽略标点符号。问题主要表现在:
(1)忘记录入标点,C语言中,一条语句的结束需要用符号“;”与另一语句隔开,对初学的学生,他们通常会忽略掉这个细节问题,这需要教师在讲授中明确地指出,让学生弄清楚。另外,强调不同标点符号的作用和区别,如“;”和“,”等等。
(2)标点录入错误,在录入程序时,很多学生录入的标点是不正确的。如分号“;”和“;”是有区别的,前者为中文下的标点符号,而后者才是程序中需要的。必须给学生强调程序中所需要的标点符号都应该是英文状态下的。
3.3 容易混淆的符号
字母符号“o”,“O”与数字符号“0”;字母符号“l”与数字符号“1”;字母符号“z”与数字符号“2”的区别等等。
对于少数学生,教师虽然强调了很多的细节,但还是不能接受,这便通过程序的调试来让他们明白问题的严重性,通过他们自己对程序的调试来纠正问题的所在,这需要教师耐心地为学生指导。如程序xx.c:
#include <stdio.h>
void main()
{
int a=10
printf("a=%d\n",a);
}
编译时出现以下问题:xx.c(5) : error C2146: syntax error : missing ';' before identifier 'printf',给学生讲解提示,让学生通过提示明白问题所在,即该程序第5行的printf语句前缺少“;”,这是学生自己通过实践证明了问题的所在,使之深受体会。通过程序调试的方法不仅可以为学生解决错误,同时也增强了学生调试程序的能力,从而提高编程的经验和技巧。
4 明确教学目标,任务驱动学习
教师深入分析教学大纲, 在全面了解学生的数学基础知识状况的前提下, 根据大纲制定好教学计划,做好每次教学任务计划,明确教学目标,选择适当的练习作业,督促学生不断深入学习。
在制定计划的过程中要针对学生的数学知识基础, 将教材中涉及到的学生未掌握的数学知识类例题进行更换, 避免因数学的方面的问题形成教学障碍, 在课时允许的条件下也可在教学前为学生补充一定的数学方面相关知识。
设计“循环”语句教案时,可以先给学生讲清楚学习循环语句的用处及优点,介绍学习重点、难点,要求掌握一些程序设计的算法,让他们明确该语句的重要性。如实现求等差数列s=1+2+3+…+n的和时,主要介绍使用循环语句求解,并要求学生掌握其求解方法,并按照此方法推广,以掌握算法思想,然后再通过作业的任务编写垒加算法的相关程序,如求s=1!+2!+3!+…+n!等,学生通过自己的练习不断总结编写循环程序的经验,体会循环的思想,使得他们对循环语句有更深的理解和认识,从而达到较好的教学效果。
5 改进教学方法,实现教学相长
传统教学模式的教学方式是:用大量的时间讲定义、语法、概念、语句,对学生的要求是注重接受、理解、记忆,讲课方式是老师讲、学生听。学生掌握的知识比较抽象、机械、静止、片面和孤立,他们不知道如何灵活地综合运用这些知识去解决实际问题。基础知识固然重要,但利用基础知识解决实际问题能力的培养是高等教育更为重要的目的。如何使当前的大学生具备扎实基础知识的同时,又具备解决实际问题、批判性思维和创造性思维,发展合作能力与自主学习能力,是目前急待解决的问题,也是人们进行教学改革的思路。
注重问题求解方法,掌握算法思想。如实现求等差数列s=1+2+3+…+n的和时,该数列的求解方法有多种。除了使用循环语句求解外,还可以通过公式s=(1+n)*n/2进行求,也可以使用函数的递归调用进行求解。通过多种方法的介绍,不仅可以巩固学生的基础知识,又能培养学生的创造性思维。
在教学中一定要做到培养学生学习兴趣,让学生体验成功乐趣,改变学习方式,促进教学互动。
6 知识转变能力培养,注重实践课教学
计算机科学是一门经验学科与理论学科相结合的课程,在学习时,不仅要掌握理论知识,而且实践操作的经验的积累也非常重要。C语言变成实践经验的积累是不断从编写程序、调试程序和运行程序结果的过程中总结得出,由此,教师在讲授C语言课程时,不能忽视实践课的教学,尤其是学生上机辅导课的教学。
往往,很多教师认为,上机辅导课就是让学生自由练习,及时为有疑问的学生解决问题。实际上这种教学辅导方式是不合理的,应该在以下方面进行改进:
1)学生上机应有明确的练习目标,提高编程效率
在每学期的教学调查中,同学们总会提到这样的问题:上机课不知道该干什么;写程序无从下手;编程很难等。这就要求我们教师在上机课程中要有目的有意识的给同学安排上机的任务。应该从以下几点来进行上机课程:
(1)结合上课的理论知识,确定上机课要完成的目标。
(2)引入相关的程序实例,逐步分析解决该程序的思路和相关的程序代码。让学生了解如何下手去编写程序。
(3)根据引入的程序实例再扩展开,让同学们自己动手完成相关的程序代码。
(4)评讲相关的程序代码,并引出新的程序,让学生自己独立的完成。
(5)课程随时的课堂答疑。
2)激发学生的学习兴趣
学生学习的最关键的因素是兴趣,一定要注意提高学生学习的兴趣,如何提高是一个很关键的问题。首先要充分的肯定学生,即便是一点点值得肯定的地方也要肯定。其次多评价学生做的作业,让学生有一定的满足感。最后多让枯燥的程序与实际的生活联系起来。这样就可以大大的提高学生的学习兴趣。
7 小结
以上就是在学习和教授过程中,对C语言程序设计教学课程的心得体会,希望对广大的同仁能有一定的参考价值
C语言快速学习技巧(原创)默认分类 2010-03-14 12:09:53 阅读46 评论0 字号:大中小
从最基本的流程学起,从最基本的语句学起。在学习的过程中,特别注意每个函数的作用,多想想这个函数能怎样用,用在哪里,能起到什么另外的效果!要学会活用!程序,对数学,特别是逻辑的要求把比较高。写好程序,首先对整个程序的流程有缜密的思考,要求周到,准确,先思考,不要急着写程序!!这一点请注意!也就是说先算法,先研究程序的结构,是用什么来实现的,循环?分支?等等。然后再用语言来实现!语言只是编写程序的工具。所以学语言,先学会程序化的思想。在将算法翻译成语言的时候,再结合实际情况,逐步求精,有目的的修改,达到最优化。我们学院的C语言,很有特色,英文版,考试也是。我想说的就是,外文版的这本书,它在引领一个不懂编程的人,逐步养成程序、流程、逻辑的思想,是非常优秀的一本书。如果能字字句句阅读,将会很清楚领会到程序的思想。然而,书太厚,生词太多,时间太短。我的建议是,看某一本中文版的书,一本不够,看两本。先尽快学会程序的思想,也就是用程序来想问题,这样,就会编程了。然后,考试前几周,背一背生词、关键词,就可以考试了。如果你坚持要读外文版,可以,但要跳读!然后,还要看你是想只是应付期末考试,还是想学好编程。应付期末考,需要注意书中的重点,也就是考点,这样就够了。比如说字符型变量加指针,这样就够了,不需要更高级的指针的知识。而你如果想真正学好程序(我不说C语言是因为我说过C语言只是编写程序的工具之一),肯定是要打好基础的!任何一个细节,都是不能放过的!而且,这样的人往往会很郁闷~因为我们程序真正要求的,考试一般不会涉及到,因为比较难!(不会指针的人,永远不要说他会C语言!)而考试的内容,恰恰是最无聊的东西,比如格式化输出printf函数的第一个参数,太繁了,记都记不住。如果学的深的话,只需要知道有这么一个函数,有这么一个功能。而要用的时候,查书就行。可是对考试来说,显然不行。所以要看看你是哪一种~掌握一些简单的算法 编程其实一大部分工作就是分析问题,找到解决问题的方法,再以相应的编程语言写出代码。这就要求掌握算法,根据我们的《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语言并不难学.
G. c语言入门教学
楼主,你可以去编程入门网,那里有挺多知识点的,很多语言都有,很适合初学者,你也可以去CSDN,那里有很多源代码提供下载,也有论坛,呵呵,你也不要忽视网络贴吧,知道,贴吧是学习很多课本没有东西的地方,知道,你需要看解决答案,这样很有收获,你也可以去中国编程网,不过,我觉得一楼也是有道理的,看看书掌握知识点,网上我觉得主要还是提高的地方哦……呵呵……关于怎么学,我是这么过来的,每看一节书,做一节课后习题,其实初学主要还是学习语法和算法(解决问题的方法),多上机自己写程序,写不出来看答案的算法,自己再写一边,关键这个阶段还是积累为主,基本知识学好了,可以学深入编程,不过你需要有熟悉的语法,可以写一些小程序:学生成绩管理系统等等,就过关了,然后可以学习链表,图像编程,等等高级编程……呵呵……努力一定有回报的……加油吧…
H. 学习C语言的要领和技巧
从最基本的流程学起,从最基本的语句学起。
在学习的过程中,特别注意每个函数的作用,多想想这个函数能怎样用,用在哪里,能起到什么另外的效果!要学会活用!
程序,对数学,特别是逻辑的要求把比较高。
写好程序,首先对整个程序的流程有缜密的思考,要求周到,准确,先思考,不要急着写程序!!这一点请注意!也就是说先算法,先研究程序的结构,是用什么来实现的,循环?分支?等等。然后再用语言来实现!语言只是编写程序的工具。所以学语言,先学会程序化的思想。在将算法翻译成语言的时候,再结合实际情况,逐步求精,有目的的修改,达到最优化。
我们学院的C语言,很有特色,英文版,考试也是。我想说的就是,外文版的这本书,它在引领一个不懂编程的人,逐步养成程序、流程、逻辑的思想,是非常优秀的一本书。如果能字字句句阅读,将会很清楚领会到程序的思想。然而,书太厚,生词太多,时间太短。我的建议是,看某一本中文版的书,一本不够,看两本。先尽快学会程序的思想,也就是用程序来想问题,这样,就会编程了。然后,考试前几周,背一背生词、关键词,就可以考试了。如果你坚持要读外文版,可以,但要跳读!
然后,还要看你是想只是应付期末考试,还是想学好编程。应付期末考,需要注意书中的重点,也就是考点,这样就够了。比如说字符型变量加指针,这样就够了,不需要更高级的指针的知识。
而你如果想真正学好程序(我不说C语言是因为我说过C语言只是编写程序的工具之一),肯定是要打好基础的!任何一个细节,都是不能放过的!而且,这样的人往往会很郁闷~因为我们程序真正要求的,考试一般不会涉及到,因为比较难!(不会指针的人,永远不要说他会C语言!)而考试的内容,恰恰是最无聊的东西,比如格式化输出printf函数的第一个参数,太繁了,记都记不住。如果学的深的话,只需要知道有这么一个函数,有这么一个功能。而要用的时候,查书就行。可是对考试来说,显然不行。所以要看看你是哪一种~
I. 如何学习C语言
锐英源指导学C语言不错,评价很好。
目标明确:掌握工作能力。
目标远大:项目经理或系统分析员。
全面能力培训:抽象思维、语言基础、设计思路、技术疑难、软件工程、文档(英语)理解和文档设计。
综合教材培训:结合工作经验、开源、英语、视频教学、在线教学、阶段式兴趣和实践。
灵活教学:因人施教。
核心价值培训:海量源码教学,培养掌握复杂源代码阅读和修改能力。
抽象思维引导:保证基础差或非专业学员能够学的会学的精;
中英文混合教材:让学员潜移默化克服对英语的畏难感;
结合工作:解决实际工作问题的培训,2年在线技术支持解决工作技术疑难;
低收费高实效:依据学员不同阶段能力需求要求,建立学费比其它机构低且学期长的学制体系。