第一个难点 C语言的数据类型 关于C语言数据类型,不难理解但难于运用。这就要求同学们在学习的时候记住常用的一些数据类型的特征(第一次作业第2题内容)。 第二个难点 C语言的运算符和运算顺序 1.C语言的运算功能十分丰富,运算种类远多于其它程序设计语言。大家在学习的时候不仅要注意某些运算符的运算法则,还要注意运算规则(注意事项)。 2.当多种不同运算组成一个运算
表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。 第三个难点 C语言的三种简单程序
结构 其实,C语言的前二个程序结构不是难点,三种结构里难点应在于循环的嵌套用法。 (1)关于顺序结构 这种结构的程序比较简单,就是按照
语句的排列顺序依次执行的机制。顺序结构的执行顺序是自上而下,依次执行,因此编写程序也必须遵守这一规定,否则你的程序执行结果就不对。 语句也是多分支选择语句,又称为多路开关语句,到底执行哪一块,取决于开关设置,也就是表达式的值与常量表达式相匹配的那一路,它不同if—else 语句,它的所有分支都是并列的,程序执行时,由第一分支开始查找,如果相匹配,执行其后的块,接着执行第2分支,第3分支……的块,直到遇到break语句;如果不匹配,查找下一个分支是否匹配。 (3)关于循环结构: 循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供四种循环,即goto循环、while循环、do –while循环和for循环。 四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提昌用goto循环,所以下面我们重点讲解另外的三种循环。 常用的三种循环结构学习的重点在于弄清它们相同与不同之处,以便在不同场合下使用,大家好好看一下书中三种循环的格式和执行顺序,如何替换使用,如把while循环的例题,用for语句重新编写一个程序,这样能更好地理解它们的作用。 注意:在while和do—while循环体内和for 循环中的第3语句中,应包含趋于结束的语句(如i++,i--),否则就可能成了一个死循环,这也是初学者的一个常见错误。 下面我们来讨论下这三种循环的异同之处: 用while和do—while循环时,循环变量的初始化的操作应在循环体之前,而for循环是在语句1中进行的;while 循环和for循环都是先判断表达式,后执行循环体,而do—while循环是先执行循环体后判断表达式,也就是说do—while的循环体最少被执行一次,而while 循环和for就不一定了。这三种循环都可以用break语句跳出循环,用continue语句结束本次循环,而goto语句与if构成的循环,不能用break和 continue语句进行控制。 这三种结构并不是彼此孤立的,在循环中可能出现分支、顺序结构,分支中也可能出现循环、顺序结构而把循环、分支看成一个语句,它又是构成顺序结构的一个元素,因此这三种结构相互结合,就能实现各种算法,设计出解题程序,但若是很大的题目,这样编出的程序往往很长,重复结构多,并且可阅读性差,因此我们常将C程序设计成模块化结构。c语言语句分为5
类
:
1、
表达式语句
2、
函数调用语句
3、
控制语句
4、
复合语句
5、
空语句
表达式语句
:
表达式+分号;
函数调用语句
:
函数名+实际参数+分号;
格式一般为:函数名(参数表);
控制语句
:
1,条件判断语句
if语句,switch语句循环执行语句
例如:if(a>b)
max=a
else
max=b
//
该语句表示:如果a>b条件成立,则max取a的值,否则max的值是b。在a>b条件的控制下,出现两个可能的分支流程。而switch语句能实现多个分支流程。
do
while语句,while语句,for语句转向语句
2,循环语句有for、while和do_while三种。当循环语句的循环控制条件为真时,反复执行指定操作,是c语言中专门用来构造循环结构的语句。
如:for(i=1i<10i++)
printf("%d",i)
i从1开始,每次加1,只要i<10就输出i的值,因此i=1,2,3,……,9,共循环9次,输出:
1
2
3
4
5
6
7
8
9
上述功能还可以用while语句和do_while语句实现。
用while语句实现:
i=1
while(i<10)
{
printf("%d",i)i++
}
用do_while语句实现:
i=1
do
{
printf("%d",i)i++
}
while(i<10)
转移语句有break,continue,return和goto四种。它们都能改变程序原来执行顺序并转移到其它位
置继续执行。例如,循环语句中break语句终止该循环语句的执行;而循环语句中的continue语句只结束本次循环并开始下次循环;return语句
用来从被调函数返回到主调函数并带回函数的运算结果;goto语句可以无条件转向任何指定的位置执行。
复合语句
:多个语句用{}括起来,组成复合语句,其中每条语句都以;结束,但}外不能加分号;
空语句
:
空语句是只有分号(;)的语句。由一个分号组成,它表示什么操作也不做。从语法上讲,它的确是一条语句。在程序设计中,若某处从语法上需要一条语句,而实际上不需要执行任何操作时就可以使用它。例如,在设计循环结构时,有时用到空语句。
赋值语句
:属于表达式语句,注意事项如下:
1、
允许嵌套
2、
与为变量赋初值有区别,赋初值是变量说明的一部分,与其他变量要用逗号分隔,而赋值语句需要用分号;结束
3、
变量说明不允许中的赋初值不允许连续赋初值,如int
a=b=c=5;是错误的,但赋值语句a=b=c=5是正确的。
4、
注意赋值表达式和赋值语句的区别。赋值表达式是一种表达式,它可以出现在任何允许表达式出现的地方,而赋值语句则不能。
如if
((x=y+5)>0)
z=x是正确的,而if((x=y+5)>0)
z=x是错误的。