C语言进修教程第三章-C语言措施设计劈头(1)
C语言措施设计
本课先容C语言措施设计的根基要领和根基的措施语句。
从措施流程的角度来看,措施可以分为三种根基布局, 即顺序布局、分支布局、轮回布局。 这三种根基布局可以构成所有的各类巨大措施。C语言提供了多种语句来实现这些措施布局。 本章先容这些根基语句及其应用,使读者对C措施有一个劈头的认识, 为后头各章的进修打下基本。
C措施的语句
C措施的执行部门是由语句构成的。 措施的成果也是由执行语句实现的。
C语句可分为以下五类:
1.表达式语句
2.函数挪用语句
3.节制语句
4.复合语句
5.空语句
1.表达式语句
表达式语句由表达式加上分号“;”构成。其一般形式为: 表达式; 执行表达式语句就是计较表达式的值。譬喻: x=y+z; 赋值语句y+z; 加法运算语句,但计较功效不能保存,无实际意义i++; 自增1语句,i值增1
2.函数挪用语句
由函数名、实际参数加上分号“;”构成。其一般形式为: 函数名(实际参数表); 执行函数语句就是挪用函数体并把实际参数赋予函数界说中的形式参数,然后执行被调函数体中的语句,求取函数值。(在第五章函数中再具体先容)譬喻printf("C Program");挪用库函数,输出字符串。
3.节制语句
节制语句用于节制措施的流程, 以实现措施的各类布局方法。
它们由特定的语句界说符构成。C语言有九种节制语句。 可分成以下三类:
(1) 条件判定语句
if语句,switch语句
(2) 轮回执行语句
do while语句,while语句,for语句
(3) 转向语句
break语句,goto语句,continue语句,return语句
4.复合语句
把多个语句用括号{}括起来构成的一个语句称复合语句。 在措施中应把复合语句当作是单条语句,而不是多条语句,譬喻
{
x=y+z;
a=b+c;
printf(“%d%d”,x,a);
}
是一条复合语句。复合语句内的各条语句都必需以分号“;”末了,在括号“}”外不能加分号。
5.空语句
只有分号“;”构成的语句称为空语句。 空语句是什么也不执行的语句。在措施中空语句可用来作空轮回体。譬喻 while(getchar()!=’\n’); 本语句的成果是,只要从键盘输入的字符不是回车则从头输入。这里的轮回体为空语句。
赋值语句
赋值语句是由赋值表达式再加上分号组成的表达式语句。 其一般形式为: 变量=表达式; 赋值语句的成果和特点都与赋值表达式沟通。 它是措施中利用最多的语句之一。 在赋值语句的利用中需要留意以下几点:
1.由于在赋值符“=”右边的表达式也可以又是一个赋值表达式,因此,下述形式 变量=(变量=表达式); 是创立的,从而形成嵌套的景象。其展开之后的一般形式为: 变量=变量=…=表达式;
譬喻:
a=b=c=d=e=5;凭据赋值运算符的右接合性,因此实际上等效于:
e=5;
d=e;
c=d;
b=c;
a=b;
2.留意在变量说明中给变量赋初值和赋值语句的区别。给变量赋初值是变量说明的一部门,赋初值后的变量与其后的其它同类变量之间仍必需用逗号隔断,而赋值语句则必需用分号末了。
3.在变量说明中,不答允持续给多个变量赋初值。 如下述说明是错误的: int a=b=c=5 必需写为 int a=5,b=5,c=5; 而赋值语句答允持续赋值
4.留意赋值表达式和赋值语句的区别。赋值表达式是一种表达式,它可以呈此刻任何答允表达式呈现的处所,而赋值语句则不能。
下述语句是正当的: if((x=y+5)>0) z=x; 语句的成果是,若表达式x=y+5大于0则z=x。下述语句是犯科的: if((x=y+5;)>0) z=x; 因为=y+5;是语句,不能呈此刻表达式中。
数据输出语句
本小节先容的是向尺度输出设备显示器输出数据的语句。在C语言中,所有的数据输入/输出都是由库函数完成的。 因此都是函数语句。本小节先先容printf函数和putchar函数。printf函数printf函数称为名目输出函数,其要害字最末一个字母f即为“名目”(format)之意。其成果是按用户指定的名目, 把指定的数据显示到显示器屏幕上。在前面的例题中我们已多次利用过这个函数。
一、printf函数挪用的一般形式
printf函数是一个尺度库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在利用 printf 函数之前必需包括stdio.h文件。printf函数挪用的一般形式为: printf(“名目节制字符串”,输出表列)个中名目节制字符串用于指定输格外式。 名目节制串可由名目字符串和非名目字符串两种构成。名目字符串是以%开头的字符串,在%后头跟有各类名目字符,以说明输出数据的范例、形式、长度、小数位数等。如“%d”暗示按十进制整型输出,“%ld”暗示按十进制长整型输出,“%c”暗示按字符型输出等。后头将专门给以接头。
#p#分页标题#e#
非名目字符串在输出时原样照印,在显示中起提示浸染。 输出表列中给出了各个输出项, 要求名目字符串和各输出项在数量和范例上应该一一对应。
void main()
{
int a=88,b=89;
printf("%d %d\n",a,b);
printf("%d,%d\n",a,b);
printf("%c,%c\n",a,b);
printf("a=%d,b=%d",a,b);
}
a<–8,b<–89
printf("%d %d\n",a,b);
printf("%d,%d\n",a,b);
printf("%c,%c\n",a,b);
printf("a=%d,b=%d",a,b);
本例中四次输出了a,b的值,但由于名目节制串差异,输出的功效也不沟通。第四行的输出语句名目节制串中,两名目串%d 之间加了一个空格(非名目字符),所以输出的a,b值之间有一个空格。第五行的printf语句名目节制串中插手的长短名目字符逗号, 因此输出的a,b值之间加了一个逗号。第六行的名目串要求按字符型输出 a,b值。第七行中为了提示输出功效又增加了非名目字符串。