2024年4月29日发(作者:)
!里 塑
renliziyuanguanli
教育教学研究
初学C语言程序设计的基本方法和技巧
杨春
(北京市石景山区业余大学 北京 1 00043)
【摘要l本文作者通过总结多年c语言程序设计课程的教学经验,对初学c语言程序设计过程中的重要知识点和难点问题作了较为详
细的说明,并提出学习c语言的基本方法即熟记基本知识点、掌握程序的基本结构、掌握一定的常用算法和培养良好的煽程习惯。
【关键词】c语言 程序设计 算法
【中图分类号l U 4 1 2.6 【文献标识码】A 【文章编号】1 6 7 3—8 2 09(2 01 0)01—0 09 0—02
无论哪所大学的计算机专科和本科都需
要学习C语言,《C语言程序设计》是计算机专
业的一门必修课程,也是学习如何编程的入门
掌握上面的必须要记下来的内容,相当r『
我们开始学说话时先听别人说,我们自己跟着
学一些最基本的日常语言。这时我们就可以
三个整型变量用来存放三个整数,还要定义一
个整型变量用来存放最小值。如:int a,b,C,
Tnin;这行代码的作用其实是要了一块内存,然
课。初学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()¥ ̄l输出函数printf()。一个程序如果没
有输入,那无论运行多少次结果都一样,那也
就失去了写程序的目的了。同样一个程序如
果没有输出,那运行程序有什么意义呢?当然
输出的形式比较多。在初学C语言的时候主要
是从屏幕上输出结果。所以这两个函数的使
用方法也必须要掌握。这两个函数已经定义
在stdio.h这个头文件中,不用我们自己写,它
们不是C语言中的语句,所以在使用这两个函
数时在源程序顶部一定要加上#i12ClUde
<stdio.h>。这是为了让我们在执行程序的
时候,让计算机知道scanf() ̄l printfO这两个
函数怎么用。
90~
从一些简单的程序开始读,能把每一个程序的
后在达块内存里存东西。因为我需要一个整
运行结果能自己读程序准确地执行出来,那样
数,所以就用int这个关键字来声明(相当于用
我们就可以开始来编写程序了。
这块地干什么)。那么变量a,b,C是什么呢?
你买了一块地,总要知道这块地在哪是吧?不
2掌握程序的基本结构
然就白买了,变量就是这样一个作用。我们需
编写程序一定要注意程序的结构性。学
要把数据存在计算机中,什么样的数就定义什
习写程序,不能开始就写代码。许多人在动手 么样的类型,需要存几个数就定义几个变量。
写程序的时候感到无从下笔。原因主要是:看
输人数据有两 ’方法。第一种从键盘输
到一个题目不知道如何去分析,它怎么才能变 入,就需要用到scanf()这个函数;第二种是直
成一个程序呢?这是初学者在编写程序的主
接赋值。
要问题。我在教学中采用了一种分步式的方 处理数据是对于初学者来说最难的一部
法。
分,也就是把我们刚才分析过程转换成语句。
2.1看到一个题目的时候先别想着编程序,用
这需要学好C语言的三种程序结构。
一
个具体的实例想想不用程序你是如何解决
(1)顺序结构
这个问题的 顺序结构的程序设计是最简单的,只要按
例如输人三个数,输出最小值。我们用 照解决问题的顺序写出相应的语句就行,它的
3,8,6三个数来考虑,我们一看就知道3是最 执行顺序是自上而下,依次执行。顺序结构可
小的。可是我们这一看中其实并不简单,其中 以独立使用构成一个简单的完整程序,不过大
有判断。我们先看第一个数3,然后已经记在
多数情况下顺序结构都是作为程序的一部分,
我们头脑中了,再看第二个数8,3比8小,那
与其它结构一起构成一个复杂的程序,例如分
我们还是记住3,再比较第3个数6,最后确定
支结构中的复合语句、循环结构中的循环体
3是最小的。我们现在就是要把我们头脑中很
等。
快闪过的这些判断过程想清楚。
(2)选择结构
2.2我们要弄清楚一个程序由哪些部分组成
对于要先做判断再选择的问题就要使用
这就好比我们写一篇文章也有一些结
分支结构。选择结构的执行是依据一定的条
构。一个C程序也有其一般结构,我把它归纳 件选择执行路径,而不是严格按照语句出现的
成下面格式。
物理顺序。选择结构的程序设计方法的关键
#include<stdio.h>
在于构造合适的分支条件和分析程序流程,根
main()
据条件的结果选择对应的分支语句。选择结
{ 构适合于带有逻辑或关系比较等条件判断的
定义变量;int,float,char,double
输入数据; 键盘输入scanf();
直接赋值;例如x=3;
处理数据;if-else;switch;for;while;do-
while:
输入数据;printf();
}
第一行代码表示把标准的输入输出头文
件包含在这个程序中。第二行代码是C程序的
主函数,每个C程序中必须有且仅有一个
main()函数。然后是函数的一对“{}”。
定义变量的意思好比买一块地,有了这块
地就可以在上面盖房、种庄稼之类的。但是为
了便于统一管理,比如城市已经规划好了,你
在郊区买的地就只能种庄稼,在市中心买的,
就只能盖房,这就是变量类型的含义了。用上
面求最小值的例子。我们在三个数中求最小
值。这三个是什么数,是整数还是小数?这就
必须用变量类型来说明。对于上例应该定义
图1
教育教学研究
计算,设计这类程序时往往都要先绘制其程序
流程图,然后根据程序流程写出源程序,这样
做把程序设计分析与语占分丌,使得问题简单
化,易于理解。程序流程图是根据解题分析所
绘制的程序执行流程图。
例如上例中,把我们头脑中很快闪过的这
些划断过程画成流程图即图1:
由上面的流程图再写出对应的语句就比
较容易了。如下所示:
min=a;
团困圈圈
就是表达式的值与常量表达式相匹配的那一
路,它不同if…else语句,它的所有分支都是
并列的,程序执行时,由第一分支开始查找,如
果相匹配,执行其后的块,接着执行第2分支,
第3分支……的块,直到遇到break语句;如果
不匹配,查找下一个分支是否匹配。这个语句
在应用时要特另 注意开关条件的合理设置以
及break语句的合理应用。
(3)循环结构
循环结构可以减少源程序重复书写的工
作量,用来描述重复执行某段算法的问题,这
是程序设计中最能发挥计算机特长的程序结
构,C语言中提供三种循环,即whie循环、d0 l
可以列出方程:
x+y+z:1O0
5*x+3*y+z/3=lO0
if(min>b)min=b;
if(min>c)min:c;
学习分支结构不要被分支嵌套所迷惑,只
按数学方法三个未知数两个方程无解,实
际上是可以解的,如果把公鸡,母鸡和小鸡可
能的只教全部代入到方程中检验就可以得到
最后结果。这种方法叫穷举法。如果我们用手
算那可能要花上半天的功夫,但让计算机来算
就只需要1秒种。使用算法后分析和处理问题
都会简单很多。当我们能熟练地掌握了简单
算法后就能实现一些比较复杂的编程问题了。
任何程序只要有思维,有想法,那么实现
程序时就不会觉得无从下手。而要学习这种
要正确绘制出流程图,弄清各分支所要执行的
部分,嵌套结构也就不难了。嵌套只不过是分
支中又包括分支语句而已,不是新知识,只要
对双分支的理解清楚,夯支嵌套是不难的。下
面我介绍几种基本的分支结构。
①if(条件)
{分支体
}
这种分支结构中的分支体可以是一条语
句,此时“{}”可以省略,也可以是多条语句
即复合语句。它有两条分支路径可选,一是当
条件为真,执行分支体,否则跳过分支体,这时
分支体就不会执行。如:要计算x的绝对值,根
据绝对值定义,我们知道,当x>=0时,其绝对
值不变,而x<O时其绝对值是为x的反号,因
此程序段为:if(x<O)x=一X;
②if(条件)
{分支1}
else
{分支2}
这是典型的分支结构,如果条件成立,执
行分支1,否则执行分支2,分支l和分支2都
可以是1条或若干条语句构成。如:求某年的
年号是否是闰年。
分析:因为当某年号能被4整除但不能被
4整除但不能被100整除,则这一年是闰年;或
者这一年号能被4 0 0整除也是闰年。即
year%4==O&&year%lO0 1=0llyear%400=:O
其程序段如下:
if(Y e a r%4==0&&y e a r%l 0 0 1
=
OI』year%40¨0==0)
printf(“%d is leap year!”,year);
else
printf(-‘%d is not leap year!”,year);
}
③嵌套分支晤句:其语句格式为:
if(条件1){分支1};
else it(条件2){分支2}
else if(条件3){分支3}
else it(条件n){分支n}
eles{分支n+l}
嵌套分支语句虽可解决多个入口和出口
的问题,但超过3重嵌套后,语句结构变得非
常复杂,对于程序的阅读和理解都极为不便,
建议嵌套在3重以内,超过3重可以用switch
语句。
④switch开关语句:该语句也是多分支选
择语句,到底执行哪一块,取决于开关设置,也
while循环和for循环。三种循环可以用来处
理同一问题,一般情况下它们可以互相代替
换,另外还有一种goto循环语句,因为强制改
变程序的顺序经常会给程序的运行带来不可
预料的错误,所以不提倡使用。
常用的三种循环结构学习的重点在于弄
清它们相同与不同之处,以便在不同场合下使
用,这就要清楚三种循环的格式和执行顺序,
将每种循环的流程图理解透彻后就会明白如
何替换使用,就能更好地理解它们的作用。在
分析循环结构的语句时要开清楚,什么时候开
始循环(即循环的初始值);什么时候结束循环
(即循环的终止条件);循环的时候都做哪些操
作(即循环体的执行部分);特别要注意在循环
体内应包含趋于结束的语句(即循环变量值的
改变),否则就可能成了一个死循环,这是初学
者的一个常见错误。
在学完这三个循环后,应明确它们的异同
点:用while和do…while循环时,循环变量的
初始化的操作应在循环体之前,而for循环一
股在语句l中进行的;while循环和for循环
都是先判断表达式,后执行循环体,而d0…
while循环是先执行循环体后判断表达式,也
就是说do…while的循环体最少被执行一次,
而while循环和for就可能一次都不执行。
顺序结构、分支结构和循环结构并不彼
此孤立的,在循环中可以有分支、顺序结构,
分支中也可以有循环、顺序结构,其实不管哪
种结构,我们均可广义的把它们看成一个语
句。在实际编程过程中常将这三种结构相互
结合以实现各种算法,设计出相应程序,但是
要编程的问题较大,编写出的程序就往往很
长、结构重复多,造成可读性差,难以理解,解
决这个问题的方法是将C程序设计成模块化
结构。输出数据是每一个程序必须包含的部
分。在C程序中的输出通常是从显示屏上输出
最后的结果,使用printfO这个函数。
3掌握一些简单常用的算法
编程其实一大部分工作就是分析问题,找
到解决问题的方法,再以相应的编程语言写出
代码。这就好比我们学习写作文段落的时候
都有一些经典的好词好句,可以使文章添彩。
同样程序虽然可以实现各种功能,但最基本的
一
些算法并不是特别多,我们掌握一些简单的
算法,在掌握这些基本算法后,根据不同的问
题,再灵活应用。如百钱买百鸡的问题,就是
用10O元钱买lo0只鸡,公鸡5元一只,母鸡3
元一只,小鸡l元三只。这种问题用数学方法
思维方法就是多做题,多读程序,学习别人好
的思维方法,多想想一个程序还可不可以有另
外一种方法来实现它。这样久而久之,自然会
形成一种自己的思维方法。因此我认为不管
学什么语言都是这样。
4培养良好的编程习惯
培养良好的编程习惯要从第一行代码开
始,这也是学好C语言的重要因素。例如编写
程序时用缩进的方式、写注释、程序写到一定
的阶段时要做一下测试等。这些工作可以帮
我们在调试程序时有很大的帮助。程序代码
实现后,错误是难免的,所以也要锻炼自己的
调试查错能力,而良好的编程习惯可以使我们
在调试时减d,2E作量和提高调试效率,也有助
于形成自己的编程风格。
参考文献
[1]程序设计基础,中央广播电视大学出版社,
2004.
[2】谭浩强.C语言程序设计(第2版),清华大
学出版社,2008,11.
9l一
发布者:admin,转转请注明出处:http://www.yc00.com/web/1714399462a2439395.html
评论列表(0条)