无论哪所大学的计算机专科和本科都需要学习C语言《,C语言程序设计》是计算机专业的一门必修课程,也是学习如何编程的入门课。初学C语言的人都会觉得C语言不好学,感到无从下手。其实,按照我们现在的教学大纲和教学要求,只要同学们掌握一些方法,多读,多写,克服心理上畏难情绪,C语言是完全可以学好的并且灵活应用的。我总结了多年的《C语言程序设计》课程的教学经验和学生在学习过程中常见的一些问题,在些介绍一些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语言中的语句,所以在使用这两个函数时在源程序顶部一定要加上#i n c l u d e。这是为了让我们在执行程序的时候,让计算机知道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)选择结构;对于要先做判断再选择的问题就要使用分支结构。选择结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。选择结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据条件的结果选择对应的分支语句。选择结构适合于带有逻辑或关系比较等条件判断的

计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。程序流程图是根据解题分析所绘制的程序执行流程图。

例如上例中,把我们头脑中很快闪过的这些判断过程画成流程图,根据流程图再写出对应的语句就比较容易了。如下所示:

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整除 但不能被100整除,则这一年是闰年;或者这一年号能被4 0 0整除也是闰年。即year%4==0&&year%100!=0||year%400==0其程序段如下:

i f(y e a r%4==0&&y e a r%1 0 0!=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循环、dowhile循环和for循环。三种循环可以用来处理同一问题,一般情况下它们可以互相代替换,另外还有一种goto循环语句,因为强制改变程序的顺序经常会给程序的运行带来不可预料的错误,所以不提倡使用。

常用的三种循环结构学习的重点在于弄清它们相同与不同之处,以便在不同场合下使用,这就要清楚三种循环的格式和执行顺序,将每种循环的流程图理解透彻后就会明白如何替换使用,就能更好地理解它们的作用。在分析循环结构的语句时要开清楚,什么时候开始循环(即循环的初始值);什么时候结束循环(即循环的终止条件);循环的时候都做哪些操作(即循环体的执行部分);特别要注意在循环体内应包含趋于结束的语句(即循环变量值的改变),否则就可能成了一个死循环,这是初学者的一个常见错误。

在学完这三个循环后,应明确它们的异同点:用while和do…while循环时,循环变量的初始化的操作应在循环体之前,而for循环一般在语句1中进行的;while循环和for循环都是先判断表达式,后执行循环体,而d o…while循环是先执行循环体后判断表达式,也就是说do…while的循环体最少被执行一次,而while循环和for就可能一次都不执行。

怎样学好c语言程序设计这门,初学C语言程序设计的基本方法和技巧相关推荐

  1. 有n个学生选修了c语言程序设计这门课程,C语言程序设计报告学生选修课系统(18页)-原创力文档...

    C 语 言 程 序 设 计 学校: 学院: 班级序号: 学号: :姓名 指导老师: C语言程序设计报告 一.C语言课程设计的目的: 高级语言课程设计是学习完<高级语言程序设计>课程后进行的 ...

  2. 有n个学生选修了c语言程序设计这门课程,C语言程序设计报告—学生选修课程系统...

    <C语言程序设计报告-学生选修课程系统>由会员分享,可在线阅读,更多相关<C语言程序设计报告-学生选修课程系统(11页珍藏版)>请在人人文库网上搜索. 1.C语言程序设计学校: ...

  3. c语言常用的代码,初学C语言常用简单程序代码;

    <初学C语言常用简单程序代码;>由会员分享,可在线阅读,更多相关<初学C语言常用简单程序代码;(16页珍藏版)>请在人人文库网上搜索. 1.初学C语言常用简单程序代码素数的筛选 ...

  4. c语言程序设计学了什么知识,初学C语言编程基础知识

    初学C语言编程基础知识 初学C语言的人,很多基础知识是需要学习的,下面小编为大家带来了初学C语言编程的基础知识,欢迎大家阅读! 初学C语言编程基础知识 (1)学习过C语言的同学在对单片机有了基本了解之 ...

  5. c程序设计语言选修难吗,欢迎大家选修C语言程序设计这门课,本帖解释一下一些常见的问题...

    置顶 欢迎大家选修C语言程序设计这门课,本帖解释一下一些常见的问题 叶卡林娜 发表于2017年01月05日 首先欢迎大家选修浙大翁恺老师的C语言程序设计课程.开课2天就看到讨论区已经有这么多帖子,说明 ...

  6. C 用单向链表建立一张班级成绩单,包括每个学生的学号、姓名、英语、高等数学、普通物理、C语言程序设计4门课程的成绩。实现以下功能,并提供菜单选项:(只实现了部分功能)

    用单向链表建立一张班级成绩单,包括每个学生的学号.姓名.英语.高等数学.普通物理.C语言程序设计4门课程的成绩.实现以下功能,并提供菜单选项: 0.退出 1.输入每个学生的各项信息 2.输出每个学生的 ...

  7. c语言程序设计门禁,门禁C语言程序

    <门禁C语言程序>由会员分享,可在线阅读,更多相关<门禁C语言程序(8页珍藏版)>请在人人文库网上搜索. 1.include #include #defineLed_datXB ...

  8. 初学C语言,你的“行囊”需要准备什么呢?

    关注.星标公众号,直达精彩内容 今天,我能够自称是一个混IT的人,并能以此谋生,将来大家能一次谋生,都要感谢两个人:克劳德.香农和约翰.冯.诺依曼,是他们发现了所有的数字化信息,不论是一段程序,一封e ...

  9. 如何学好编程%2B(精挑细选编程教程,帮助现在在校学生学好编程,让你门找到编程的方向)四个方法总有一个学好编程的方法适合你%2529

    诶呀 整理的眼睛都疼了 可是还是整理的有点乱  希望能够带给你们很大的帮助哟要珍惜我的劳动成果.谢谢咯 方法(一) 编了这么久的程序,一直想找机会总结下其中的心得和方法,但回想我这段编程道路,又很难说 ...

最新文章

  1. hadoop 2.2 本地库编译
  2. [Linux]history 显示命令执行的时间
  3. play!framework框架概述
  4. C/C++学习之路: C++对C的扩展
  5. 其他手机有机会用鸿蒙,即将发布的荣耀50系列手机可以有机会用鸿蒙系统吗?...
  6. Java并发编程-synchronized锁优化
  7. 基于计算机视觉的葡萄检测分级系统
  8. linux根目录下各子目录的作用
  9. 微软服务器补丁每月几号发布,微软11月安全公告 发布一个紧急级补丁
  10. H3CNE中单臂路由实验
  11. 【微信小程序】java游戏后端开发
  12. 哈佛架构、冯诺依曼架构、指令集
  13. PS CC2019安装
  14. 文件存储、对象存储、块存储分不清楚?看完就懂了
  15. 设备故障率高的四大原因及对策分析
  16. inline内联函数 static静态函数 普通函数区别
  17. PS基础入门教程-如何制作GIF动画
  18. 夏至日环食奇趣天象将在中国天空上演 错过再等十年
  19. 什么是画中画模式,画中画视频怎么操作
  20. Numbers Mac表格的功能与介绍

热门文章

  1. c++题目大坑:分数化小数
  2. 解决 Vue 重复点击相同路由,出现 Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation 问题
  3. opencv之解决对加载图片大小限制的问题
  4. c# java gt;gt;gt;,C#的相当于Java的&LT ;?扩展底座&GT;在仿制药
  5. 怎么设置php 中小窗口浮动,CSS_闭合浮动元素超级简单的方法,无意中看到的一个非常不错的 - phpStudy...
  6. Halcon学习路线——Blob分析(2)
  7. js原生方式实现bind方法
  8. Sismics Reader: Google Reader的一个本地替代品
  9. 「管理数学基础」1.1 矩阵理论:线性变换及其矩阵表示
  10. 【汇编语言与计算机系统结构笔记10】C语言数组的汇编访问:连续存储、代码优化、无边界检查;结构对齐要求 #简洁笔记形式