当前位置:首页 » 编程语言 » c语言陷阱与技巧第七节
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言陷阱与技巧第七节

发布时间: 2022-11-22 12:56:05

A. c语言学不会怎么办

C语言学不会怎么办?我大一的时候也需要学C语言,C语言学习方法有很多,下面是我的建议。
1.首先应该记住基础知识点,如数组,结构体,指针等相关内容,如果在编程过程中遇到想不起来的知识点,一定要及时去翻书或者上网搜索。

_

B. 零基础如何学习C语言

如何学习 C 语言?

在教学过程中,有些人会觉得C语言。学习比较困难,主要是有几个原因,一个是它C 语言的语法知识太多有点太过于琐碎,碎了。第二个就是他C 语言反复的算数类编程练习,有些人会不感兴趣,然后就不愿意写程序就觉得入门很困难。

总结:其实最主要的是要勤加练习,勤能补拙,当年基础知识掌握后你就可以试着开发一个小程序的开发了自己人生第一个程序后,你就会油然而生,一种自豪感,这样的话就会增加你对编程工能力的提高以及感兴趣程度。所以兴趣是第一老师,如果你不爱玩游戏,没有好奇心的话,你最好还是要考虑一下对是否学习编程

C. 如何学好C语言

就把谭浩强那本书高透了 基础打好了就好说了
比如最基础的 数组 符号 递归 循环 等最基础的东西打牢.

D. C语言学习技巧

1、学习C语言,要从入门到精通,需要读哪些书(从简单的到难的排序,越详细越好,最好都能注释下选择这本书的理由)?

入门阶段:还是老谭那本。
理由:虽然不能说它写得有多好,但是你现在要做的是入门,要快速的掌握c的基本语法,这本书很好理解,能够让你在最短的时间内大致掌握这门语言的概更。

第二阶段:《c程序设计语言》(The C Programming Language)和《C语言解惑》(The C puzzle book)
理由:《the c programming language》号称c语言圣经。其实它也只是一本介绍基础语法的书,不做入门教程是因为对于初学者来说,它难度稍大,之所以推荐,是因为它能让你---系统而严密的---把C语言知识构架整理一遍。《c语言解惑》,系统的整理了c语法中容易让你产生迷惑或容易犯错的地方(如a+++++b等),这时候你才算真正开始学习c语言了.(以上两本现在出重印了,应该在书店可以买到)

第三阶段:《C陷阱与缺陷》(C Traps and Pitfalls)和《高质量c/c++编程指南》
理由:《c陷阱与缺陷》是让对c的理解有质变得一本书,如如何理解(*(void(*)())0)()等问题,我的感觉是看完这本书让我真正从小菜鸟变成了老菜鸟。《高质量...》,终于有一本国产的了,呵呵,我认为这本书是把你从土匪变成正规军的最好指南,该书涉及编程风格、效率、重载、健壮性等一些列之前很难注意的问题。(以上两本《c陷阱...》已绝版,不过网上可以下载到中英文版,《高质量...》本身就是网络书,很容易找到)

其它推荐书:《c专家编程》《c和指针》

E. c语言入门教学

楼主,你可以去编程入门网,那里有挺多知识点的,很多语言都有,很适合初学者,你也可以去CSDN,那里有很多源代码提供下载,也有论坛,呵呵,你也不要忽视网络贴吧,知道,贴吧是学习很多课本没有东西的地方,知道,你需要看解决答案,这样很有收获,你也可以去中国编程网,不过,我觉得一楼也是有道理的,看看书掌握知识点,网上我觉得主要还是提高的地方哦……呵呵……关于怎么学,我是这么过来的,每看一节书,做一节课后习题,其实初学主要还是学习语法和算法(解决问题的方法),多上机自己写程序,写不出来看答案的算法,自己再写一边,关键这个阶段还是积累为主,基本知识学好了,可以学深入编程,不过你需要有熟悉的语法,可以写一些小程序:学生成绩管理系统等等,就过关了,然后可以学习链表,图像编程,等等高级编程……呵呵……努力一定有回报的……加油吧…

F. C语言学习路线

一,UNIX下C语言的学习路线。
工具篇
“公欲善其事,必先利其器”。编程是一门实践性很强的工作,在以后的学习或工作中,将常常会与以下工具打交道, 下面列出学习C语言编程常常用到的软件和工具。
(一)操作系统
在UNIX或Linux系统中学习C很方便,所以在开始的学习旅程前请先选择一个UNIX或Linux操作系统。
目前可供个人免费使用的UNIX或Linux系统有FreeBSD、RedHat Linux、SUSE Linux等,而且在安装包中还提供很多实用的工具,如:gcc, make等。
如果您一直使用Windows,身边又没有多余的机器安装UNIX,则可以使用VMware,通过VMware安装虚拟系统。
(二)编译工具
目前绝大多数Unix或Lnux系统都提供CC或GCC编译器,最简单的cc命令格式如下:
cc -o hello hello.c
在unix shell环境中敲入上面的代码会将hello.c程序编译成可执行文件hello。
make 工具如 GNU make、System V make 和 Berkeley make 是用来组织应用程序编译过程的基本工具,但是每个 make 工具之间又有所不同。
大部分UNIX和Linux程序都是通过运行make来编译的。make工具会读取一个包含指令的文件(这个文件的名字通常都是 makefile 或 Makefile,不过后文中统一称之为 “makefile”),并执行各种操作来编译程序。
(三)调试工具
最简单的调试工具:为程序添加打印语句
在对程序的运行机制有了一定的了解后,可以实用一些工具帮助进行调试,当然得学习一下这些工具得使用,如:dbx,gdb等。
还有一些内存工具可以帮查找内存泄漏或缓冲区溢出等一些问题,如:memwatch,yamd等
(四) 其他工具
1. vi或vim
Unix下文本编辑器。主要靠一堆命令来编辑文本文件,学Unix编程最好熟悉并熟练使用vi编辑器。
当然在实际工作中,可能需要一个集成编码环境或一个功能强大的图形化编辑工具。
2.netterm
最着名的网络终端软件之一,可以使用它方便的连接到主机系统中。
3.Secure shell
一个支持ssh协议得客户端工具,多数情况下用来连接linux系统。
书籍篇
“书是人类进步得阶梯”。学习一门新的知识,当然要选择几本适合自己得书籍,下面介绍一些我自己学习C语言使用过的书籍:
1.《C primer plus》
推荐理由:适合作为入门书和基本函数查询得参考资料。本书最新版为第五版,以ANSI C99为标准详细介绍了C语言。
2.《The C programming_Language》
推荐理由:C语言之父得作品权威性毋庸置疑。虽然书籍出版时间比较老,好像也没更新,不过仍不失为经典书籍,网上有这本书得英文电子版提供下载。
3.《C 专家编程》
推荐理由:本书可以帮助有一定经验的C程序员成为C编程方面的专家,最关键的是本书寓教于乐,充分享受编程的乐趣。
4.《C缺陷与陷阱》
推荐理由:书中所揭示的知识能帮助绕过C语言自身得陷阱和缺陷,减少代码中许多常见的Bug。
5.《unix环境高级编程》
推荐理由:既然是UNIX环境下C编程,就不得不说说UNIX编程书籍。Stevens先生的《unix环境高级编程》是竭力推荐的,也是案头必备(如果对网络编程有兴趣的,可以学习一下Stevens先生的《UNIX网络编程》两卷,如果觉得还不过瘾,可以再看看《TCP/IP详解》三卷)。
6.《计算机编程艺术》
推荐理由:算法大师得呕心沥血之作。计划出版五卷书,目前好像已出版3卷。对算法有兴趣得可以研究一下。
过程篇
1.学习C语法
语法的学习对于一个具有编程底子的来说,就很轻松了;即使以前没有学习过其他编程语言,我相信有2个星期,也能轻松搞定。
需要注意的是,不要太纠缠于语言的细节,比如:运算符优先级与结合性的问题等。
2.学习C标准库
ANSI C库把函数分为不同的组,每个组都具有与之相关的头文件。C语言标准库相对于其他语言,比如C++,Java来说是非常短小精悍的,但首先应着重对以下库进行学习:
ctype.h:字符处理
math.h:数学库
stdio.h:标准I/O库
stdlib.h:通用工具库
string.h:字符串处理
time.h:时间和日期
如果想了解完成的ANSI C库,可以购买相关的书籍,这些书籍一般会详细介绍每个函数的用户和一些注意点;
3.攻克C的难点
C语言声明:
C语言的声明确实觉得恐怖,比较晦涩难懂,而且声明的形式和使用的形式还类似。比如如下的声明恐怕就连很多熟悉C多年的程序员也不是一眼就能看出来的:
char * const * (*next)();
那么有没有一种好的记忆方法或规则来搞清楚呢,好像没有,如果有的话也不是这样折磨人了。不过可以看看《C专家编程》第三章的内容,或许会有所收获。
也只能多学多练了,所谓熟能生巧嘛,希望这个问题不要在你的心灵上留下阴影。
数组与指针:
数组与指针的关系,在标准中并没有作很详细的规定,而且好多C入门的书籍在这个问题上并没有给出很详细的说明,所以会给人造成很多误解。
对于这个问题,可以参考《C缺陷与陷阱》4.5节和《C专家编程》第4,9,10章,相信这里面的内容搞透彻,以后就不会再被这个问题搞迷惑。
指针与内存:
如果以后编写规模较大的程序,可能发现这个问题可能会是最大的烦恼,而且可能会是消耗最多调试时间的事项。
C版本的问题:
得特别小心该问题,最好不要的程序中混合使用不同版本C的特性,否则会带来很迷惑的问题。如果一定要用,最好清楚自己在做什么。
4. UNIX环境编程
学习了以上内容之后,就可以进行unix环境编程了。不过可能需要对操作系统理论有一点点的了解,这样学起来会比较轻松一些。
Unix环境编程,应该着重IO和进程两大块内容。《Unix环境高级编程》中对Unix环境编程有着非常详细且深入的论述,而且书中有大量实用性例子程序,不过可能得花上几个月得时间,好好啃一啃了。
在扎实掌握以上内容,不代表得C语言学习支路已经完成,相反,才刚刚开始。以后需要用学到得知识去解决大量不同实际问题,在不断得实践过程中,会近一步加深对C的理解。有了以上基础之后,会发现,在实践过程中需要的其他知识,会非常快速的掌握。
二,Windows程序员的学习路线
1.当然要熟悉下C语言了 入门可以选用潭浩强的 《C程序设计》(当然最好能读C Programming Language)特别要对其中的指针,结构体等东西一定要搞清楚了(要学好的很好至少要花费一个月时间) 为什么要从C开始呢:<1> C好学 <2> 大多数的操作系统核心部分是用C开发的 <3> C的效率高且语言成熟
2.在1的基础之上一定要认真学习一下数据结构 对C++程序员来说良好的数据结构可以让一个程序员很轻松的完成程序设计 糟糕的数据结构可以把一个程序员累死 推荐书籍:严蔚敏的《数据结构(C语言版)》或北京大学的一本中C++版的数据结构 书中说到的每个主体在程序设计中都会用到 认真学好会对的以后的C++程序设计有太多的好处 (3个月时间)
3.学好了2之后可以学习下《C++ PROGRAM DESIGN》这本书初步介绍了C++和如何使用C++写出Windows下的程序(要学好至少要花费3个月时间)
4.在3的基础之上可以读一本叫《Windows 95 程序设计》(它的最新版本是Programming Windows)这是一相Windows程序设计的领域的不朽之作(3个月时间) 通过2和3的学习已经成为了一个可以设计Windows程序的程序员了 要想更好的设计Windows程序设计 一定要借助框架结构不可 为什么:框架结构可以加快我们程序设计的速度 虽然使用框架使得我们的程序的效率低了那么一点 但随着当今计算机的运算能力的提升,不会感觉到这一点点的性能损失的反而会因为你使用的框架结构而使你的程序设计加快了速度 使用框架结构才算一个真正的VC++程序员
5.在4的基础之上可以看一些简单的MFC程序设计的书比如《Visual C++入门教程》之类的图书 这可以使你能写出一些带有通用控件的MFC程序 (1个月时间)
6.在5的基础之上已经可以很快开发一个软件了 但不了解MFC框架运行机制是很不好的 了解MFC的运行机制可以使以后的MFC程序设计工作做的更好 推荐书籍侯杰的《深入浅出MFC》 但这本书真的不适合初学者当你有了一定的开发经验以后这本书对来说确实很好 若很熟悉Windows下的SDK程序设计并打算或已经开始使用MFC进行软件开发 那这本书对来说再好不过了 (2个月时间)
7.在6的基础之上可以看下这本书《VC++技术内幕》由潘爱民译的 推荐看原着(3个月)
8.在以上基础之上为了更好的使用VC++这个工具 推荐看一下《VC++6.0宝典》(3个月) 从开发工具的角度讲这本书写的很好
9.为了更好的工作可以参考一下VC++程序设计百例
10.之后可以看一下《Windows核心编程》 这本书很好的讲解了Windows的编程 对你写系统程序很有好处的 推荐看原版
11.只了解其形不算真正的了解 之后还要认真的读一下Windows的内核源码 相信WRK 很容易找到的 可以配合《深入解析Windows操作系统》《Windows内核原理与实现》和《Windows内核情景分析》
12.其它一些东东《COM原理》(潘爱民) OpenGL D3D VC的数据库编程 图形图像 音视频处理和网络都要有所了解和会使用
13.要做到一个好的程序员一定要对驱动程序有所了解所以写一个文件驱动之类的东东是很有必要的
14.经过以上各步的学习完全成为一个优秀的Windows程序员了(前提是每一步要学好)
15.漏了一些重要的东东 编译原理 汇编及 组成原理 和设计模式等也是很重要的东东 只有学好了这些才能明白语言为什么要这样组织才能高效。

G. 计算机二级C语言备考技巧有哪些

1、笔试试卷分析


笔试试卷由选择题和填空题组成。选择题和填空题一般对基本知识和基本操作进行考查,它主要是测试我们对相关概念的掌握是否全面、理解是否准确、思路是否清晰。


(1)选择题分析


选择题为单选题,是客观题,每道题的分值为2分,试题覆盖面广,一般情况下我们不可能做到对每个题目都有把握答对。考试时就需要我们学会放弃,对于不确定的题目不要在上面花费太多的时间,先记住,然后作答其他题目。等最后有空余的时间再回过头来仔细考虑这些题目。二级C语言笔试题目众多,分值分散,我们一定要有全局观,合理地安排考试时间。


选择题一般分为:正面试题和反面试题。设问是正确观点的题称为正面试题,绝大多数选择题为正面试题;设问是是错误观点的题称为反面试题。我们在解答选择题时可以如下几个答题方法来答题,这样可以提高答题速度和准确率。


①顺选法:如果对题中的4个选项,一看就能肯定其中的1个是正确的,就可以直接得出答案。对于一些比较容易看出正确选项的题,可以使用排除错误选项。


②排除法:排除法是将错误答案一一排除的方法。对题中的4个选项逐个去掉错误的选项。对于一些比较容易看出错误选项的题,可以使用排除错误选项。


③比较法:这种办法是没有办法的办法,如果有些题实在是没有把握,那么就只有比较四个选项中那个更接近题目要求了(这也称之为“蒙猜法”)。


(2)填空题分析


填空填一般难度都比较大,一般需要我们准确地填入字符,往往需要非常精确,错一个字也不得分。在分值方面,每题也是2分。在作答填空题时要注意以几点:


①答案要写得简洁明了,尽量使用专业术语。


②认真填写答案,字迹要工整、清楚,格式要规范、正确,在把答案往答题卡上填写后尽量不要涂改。


③注意,在答题卡上填写答案时,一定要注意题目的序号,不要弄错位置。


④对于有两种答案的情况,只需填一种即可,多填并不多给分。


2、上机试题分析


一个C语言源程序总是在一定的硬件和软件环境支持下进行编辑、编译、连接和运行的,而这其中的每一步都直接影响程序调试的效率。所以初学者必须了解所使用的计算机系统的基本操作方法,学会使用该系统,了解在该系统上如何编辑、编译、连接和运行一个C语言程序。


上机考试重点考察我们综合运用基础的操作能力和程序编写能力,要求我们具有综合运用基础知识进行实际操作的能力。上机试题综合性强、难度较大。上机考试的评分是以机评为主,人工复查为辅的.。机评不存在公正性的问题,却存在呆板的问题,有时还可能因为出题者考虑不周出现错评的情况。这就要求我们做题时要充分考虑到各种情况,尽可能的按规范编写程序,否则有可能答对不得分。


掌握好上机考试的考试技巧,可以使我们的实际水平在考试时得到充分发挥,从而取得较为理想的成绩。历次考试均有考生因为忽略了考试技巧,加之较为紧张的考场气氛影响了水平的发挥,致使考试成绩大大低于实际水平。因此我们在考试前,要有充分的准备。总结起来有以下几点供我们在复习和考试时借鉴:


(1)上机考试训练时,一定不要死记硬背。以往有部分考生能够顺利通过笔试,却不能通过上机考试,主要原因就是她们在平时训练时死记硬背,而没有真正的理解知识应用,到考试时,题目稍有变动就变的束手无策。所以我们一定要在熟记基本知识点的基础上,加强上机训练,做到真正理解、掌握解题方法和思路。


(2)一定要重视考试模拟软件的使用。应使用考试模拟软件进行实际的上机操作练习,尤其要做一些具有针对性的上机模拟题,以便熟悉考试题型,体验真实的上机环境,减轻考试时的紧张程度。


(3)学会并习惯使用编程软件的帮助系统。C语言编程软件有非常全面的帮助系统,熟练掌握、使用帮助系统,可以使我们减少记忆量,解决解题中的陌生、疑难问题。


(4)熟悉考试场地及环境,尤其是要熟悉考场的硬件情况和所使用的相关软件的情况。一般在正式考试前,考点会给我们提供一次模拟上机的机会,应尽可能地去参加。模拟考试时,不要把重点放在做题上,而应放在熟悉考试环境,相应软件的使用方法,考试系统的使用等方面。


(5)在考试时不要急燥、慌张,而是要认真、冷静地看清题目要求,在做完题后一定要保存文件,并运行程序检测运行结果是否符合题目要求。在考完交卷前先关闭掉C语言编程软件和其他打开的文件,再交卷,确保交卷过程中不出错误。


3、综合应试技巧


(1)认真审题,先分析,后下笔。试题的考核是有针对性的,因此在答题时也要有针对性。解答前,除了要看清问题外,还要弄清楚题目考核的意图。明白了问在那里后,就可以开始考虑好如何答题了,然后依思路从容做答。


(2)对于十分了解或熟悉的问题,切忌粗心大意、得意忘形,一定要认真看题、分析,避免掉入陷阱,确定后再写出答案。


(3)对于偶尔碰到或是虽然在复习中见过但已记不清的题目,也不要泄气,将自己的判断同书本知识联系起来做答;对于完全陌生的问题,实在不知如何根据书本知识进行解答时,可以采用“蒙猜法”,用自己的思考和逻辑推断作答。由于这这方法作出来的题没有多大把握得分,因此不要花费太多时间去研究它。


总之,考试要取得好成绩,取决于我们对C语言知识掌握的扎实程度。否则,即使有再好的技巧也无济于事,只能碰运气,这是不可能考出好成绩的。当然,在有扎实的基础上运用一些应试的技巧,能使考试起到事半功倍的效果。

H. 零基础如何学习C语言

学习C语言不是一朝一夕的事情,但也不需要花费十年时间才能精通。如何以最小的代价学习并精通C语言是本文的主题。请注意,即使是“最小的代价”,也绝不是什么捷径,而是以最短的时间取得最多的收获,同时也意味着你需要经历艰苦的过程。

一、要读就读好书,否则不如不读。所有初学者面临的第一个问题便是:如何选择教材。好的开始是成功的一半,选择一本优秀的教材是事半功倍的关键因素。不幸的是,学校通常会帮你指定一本很差劲的C语言课本;而幸运的是,你还可以再次选择。

切记一个原则,不要读自己目前还看不懂的书,那是浪费生命。如果你看不懂,那你一定是缺失了某些必需基础知识。此时,你要仔细分析自己需要补充哪些内容,然后再去书店寻找讲述的这些内容的书籍。把基础知识补充完毕再回头来学习,才会真正的事半功倍。

二、Unix/Linux还是Windows,这是个很大的问题。不同的编程环境会造就出不同思维的程序员。Windows的程序员大多依赖集成开发环境,比如Visual Studio,而Unix程序员更加钟爱Makefile与控制台。显而易见,集成开发环境更容易上手,在Windows上学习C语言,只需要会按几个基本的Visutal C++工具栏按钮就可以开始写Hello, World!了,而在Unix下,你需要一些控制台操作的基本知识。

建议初学者应该以Visual C++ 6.0(不是VisualC++ .NET)或者Dev C++作为主要的学习环境,而且千万不要在IDE的使用技巧上过多纠缠,因为今后你一定要转向Unix环境的。Visual C++ 6.0使用很方便,调试也很直观,但其默认的编译器对C标准的支持并不好,而Dev C++使用gcc编译器,对C99的标准都支持良好。

I. 百度知道是不是都能解决所有问题

这个不一定的,因为网络知道也是各个网友在上面提问问,热心的来回答,一般的常见问题都有解答,而且一般也是个人的观点,难的专业的问题很少有人能回答出来,所以不一定所有的问题都能解决,但是你可以在这里发动群众的智慧帮你解决问题。

J. 学习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(条件)

else

这是典型的分支结构,如果条件成立,执行分支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) ;
else if(条件2)
else if(条件3)
……
else if(条件n)
else
嵌套分支语句虽可解决多个入口和出口的问题,但超过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] 结语:当我们把握好上述几方面后,只要同学们能克服畏难、厌学、上课能专心听讲,做好练习与上机调试,其实C语言并不难学.