初学C语言程序设计的基本方法和技巧
这样一个作用。我们需要把数据存在计算机中,什么样的数就定义什么样的类型,需要存几个数就定义几个变量。 输入数据有两种方法。第一种从键盘输入,就需要用到scanf()这个函数;第二种是直接赋值。 处理数据是对于初学者来说最难的一部分,也就是把我们刚才分析过程转换成语句。 这需要学好C语言的三种程序结构。(1)顺序结构;顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。顺序结构可以独立使用构成一个简单的完整程序,不过大多数情况下顺序结构都是作为程序的一部分,与其它结构一起构成一个复杂的程序,例如分支结构中的复合语句、循环结构中的循环体等。(2)选择结构;对于要先做判断再选择的问题就要使用分支结构。选择结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。选择结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据条件的结果选择对应的分支语句。选择结构适合于带有逻辑或关系比较等条件判断的 计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。程序流程图是根据解题分析所绘制的程序执行流程图。 例如上例中,把我们头脑中很快闪过的这些判断过程画成流程图,根据流程图再写出对应的语句就比较容易了。如下所示: min=a; if(min>b)min=b; if(min>c)min=c; 学习分支结构不要被分支嵌套所迷惑,只要正确绘制出流程图,弄清各分支所要执行的部分,嵌套结构也就不难了。嵌套只不过是分支中又包括分支语句而已,不是新知识,只要对双分支的理解清楚,分支嵌套是不难的。下面我介绍几种基本的分支结构。 ①if(条件) {分支体 } 这种分支结构中的分支体可以是一条语句,此时“{}”可以省略,也可以是多条语句即复合语句。它有两条分支路径可选,一是当条件为真,执行分支体,否则跳过分支体,这时分支体就不会执行。如:要计算x的绝对值,根据绝对值定义,我们知道,当x>=0时,其绝对值不变,而x0时其绝对值是为x的反号,因此程序段为:if(x0)x=-x; ②if(条件) {分支1} else {分支2} 这是典型的分支结构,如果条件成立,执行分支1,否则执行分支2,分支1和分支2都可以是1条或若干条语句构成。如:求某年的年号是否是闰年。分析:因为当某年号能被4整除 但不能被100整除,则这一年是闰年;或者这一年号能被4 0 0整除也是闰年。即year%4==0year%100!=0||year%400==0其程序段如下: i f(y e a r%4==0y 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循环时,循环变量的
- 基于TMS320C62X DSP的混合编程研究(07-12)
- 语音识别及其定点DSP实现(06-14)
- C语言编译过程中的错误分析(08-25)
- 单片机的图形化编程方法分析(05-03)
- 基于数字信号处理器的汇编程序优化方案(03-24)
- C语言在FPGA上实现DSP的解决方案(04-09)