2024年1月11日发(作者:)
初学C语言程序设计的基本方法和技巧(强烈推荐)
无论是计算机专科还是本科,研究C语言都是必修课程之一,也是编程入门的基础课程。初学者可能会觉得C语言难以掌握,但只要掌握一些方法,多读、多写,克服畏难情绪,就能学好C语言并且灵活应用。本文总结了多年的C语言程序设计教学经验和学生在研究过程中常见的问题,介绍一些C语言的研究和编程技巧,希望能对初学C语言的同学有所帮助。
C语言是一门应用最广泛的基础高级编程语言,很多语言都是由它发展而来的,研究好C语言之后再研究其他编程语言都会变得轻松。研究C语言和其他语言的方法基本一样,需要从基本的内容开始记忆。
首先,关键字是由C语言规定的具有特定意义的字符串,是编写C语言程序的基础,必须要记住。其次,C语言中的运算符和表达式与数学上的运算符和表达式有相同之处,也有不同之处,需要注意并弄清楚。最后,常用库函数包括输入函数
scanf()和输出函数printf(),是编写程序必不可少的部分,使用方法也必须要掌握。
在研究过程中,选择结构中的if语句和switch语句,循环语句中的for语句、while语句和do-while语句也是必须要掌握的内容。这部分就好比是你会了许多词,然后得把这些词组成一些句子,语法的作用就是告诉你怎样说好一句话,表达清楚的意思。
总之,只要掌握了这些基本内容,多读、多写,克服畏难情绪,就能学好C语言并且灵活应用。
要掌握编程,必须记住基本的日常用语,就像我们开始学说话时跟着别人研究一样。我们可以从简单的程序开始阅读,能够准确地执行每个程序的结果,这样我们就可以开始编写程序了。
编写程序时一定要注意程序的结构性。研究编写程序不能一开始就写代码。许多人在动手编写程序时感到无从下手。主要原因是看到一个问题不知道如何分析,如何将其转化为程序。
这是初学者编写程序时的主要问题。我在教学中采用了一种分步式的方法。
看到一个问题时,先别想着编写程序,用一个具体的实例想想如果没有程序,你是如何解决这个问题的。例如,输入三个数,输出最小值。我们可以用3、8、6三个数来考虑,我们一看就知道3是最小的。但实际上,这并不简单,其中需要进行判断。我们先看第一个数3,然后记住它,再看第二个数8,发现3比8小,所以我们还是记住3,然后比较第三个数6,最后确定3是最小的。现在我们需要将在头脑中快速闪过的这些判断过程想清楚。
我们需要弄清楚一个程序由哪些部分组成,就像写一篇文章一样,有一些结构。一个C程序也有其一般结构,我将其归纳为以下格式:
include
main()
定义变量;int,float,char,double
输入数据;键盘输入scanf();
直接赋值;例如x=3;
处理数据;if-else;switch;for;while;do-while;
输出数据;printf();
第一行代码表示将标准的输入输出头文件包含在程序中。第二行代码是C程序的主函数,每个C程序中必须有且仅有一个main()函数。然后是函数的一对“{}”。
定义变量就像买一块地,可以在上面建房、种庄稼等。但是变量类型的不同会影响使用方式,比如在城市规划中,郊区只能种庄稼,市中心只能建房。同样地,在求三个数中的最小值时,需要定义变量类型来说明这些数是整数还是小数。例如,定义三个整型变量a、b、c来存放三个整数,以及一个整型变量min来存放最小值。
输入数据有两种方法:从键盘输入和直接赋值。从键盘输入需要使用scanf()函数。
处理数据是初学者最难的部分,需要掌握C语言的三种程序结构。第一种是顺序结构,按照解决问题的顺序编写语句,执行顺序是自上而下。顺序结构可以独立使用构成一个简单的完整程序,也可以与其他结构一起构成一个复杂的程序。第二种是选择结构,用于先做判断再选择执行路径的问题。选择结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据条件的结果选择对应的分支语句。选择结构适用于带有逻辑或关系比较等条件判断的计算,需要先绘制程序流程图,然后根据程序流程编写源程序。例如,在求三个数中的最小值时,可以根据流程图编写相应的语句进行判断。
最后,可以使用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整除,则这一年是闰年;或者这一年号能被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()这个函数。
掌握一些简单常用的算法编程其实一大部分工作就是分析问题,找到解决问题的方法,再以相应的编程语言写出代码。这就好比我们研究写作文段落的时候都有一些经典的好词好句,可以使文章添彩。同样,程序虽然可以实现各种功能,但最基本的一些算法并不是特别多。我们掌握一些简单的算法,在掌握这些基本算法后,根据不同的问题,再灵活应用。
如百钱买百鸡问题,即用100元钱买100只鸡,其中公鸡5元一只,母鸡3元一只,小鸡1元三只。这种问题可以用数学方法列出方程:x+y+z=100,5x+3y+z/3=100.虽然三个未知数只有两个方程,但实际上是可以解决的。我们可以将所有可能的公鸡、母鸡和小鸡的数量代入方程中进行检验,从而得到最终结果。这种方法称为穷举法。手算可能需要很长时间,但是使用计算机只需要一秒钟。使用算法后,分析和处理问题都会变得简单。当我们熟练掌握简单算法后,就能够实现一些比较复杂的编程问题。任何程序只要有思维和想法,就可以实现,而研究这种思维方法的关键是多做题、多读程序、研究别人好的思维方法,多想想一个程序还可以通过其他方法来实现。这样,我们就可以形成自己的思维方法。因此,我认为不管研究什么编程语言,都需要培养良好的编程惯。
发布者:admin,转转请注明出处:http://www.yc00.com/news/1704927197a1382671.html
评论列表(0条)