顺序结构程序设计_第1页
顺序结构程序设计_第2页
顺序结构程序设计_第3页
顺序结构程序设计_第4页
顺序结构程序设计_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第“章顺本给构程玛彼计

第4章顺序结构程序设计

4.1C语言语句

4.2数据输入

4.3数据输出

4.4字符数据的输入输出

4.5程序设计举例

第彳章顺本给相程玛彼计

C语言程序结构

第“章顺本给构程玛彼计

4.1C语言语句

4.1.1控制语句

①if()〜else〜条件语句

②switch多分支选择语句

③while。〜当循环语句

④do〜while。直到循环语句

⑤for()-计数循环语句

⑥continue中止本次循环语句

⑦break中止整个循环或switch语句

⑧return函数返回语句

(9)“oto无条件转移语句

第“章顺本给构程玛彼计

4.1.2表达式语句

在C语言中,任何表达式都可以以相应表达式语

句的形式存在于程序中。例如:

①i++;

②a=b=c=l;

③x=y=l,x*x+y*y;

④sin(0.75);

第“章顺本转构程玛彼计

相应的赋值语句有基本赋值语句与复合赋值语句。例如:

(1)S=l+2+3+4+5;

(2)x+=l;

(3)x=y=z=a=b=c=l;

函数调用语句由函数调用表达式加分号构成。例如:

①exp(x);/*求6*/

②fabs(x);/*求|x|*/

③sqrt(x);/*求爪刃

第“章顺本给构程玛彼计

4.1.3特殊语句

1.注释语句

格式为:

/*注释文本*/

注释语句虽然不对程序的运行产生任何影响,但必要的

注释是程序的重要组成部分。

注释分功能性注释和说明性注释。功能性注释用以注

释程序、函数及语句块的功能,说明性注释用以注释变量的

作用。

第“章顺本给构程玛彼计

如何给程序加必要的注释,以增加程序的可读性,

请遵循以下原则:

(1)一个程序至少有一条注释语句,关于整个程

序功能的说明。

(2)对程序中主要的变量加必要的注释,说明变

量的作用。

(3)对程序中重要的语句块加必要的注释,说明

语句块的功能。

第"章顺序将构程停核计

例如:

main()

/*求三角形面积*/

{floata,b,c;/*三角形三边*/

floatt;/*半周长*/

floath,s;/*周长,面积*/

/*输入*/

scanf(''%f,%f,%r,&a,&b,&c);

h=a+b+c;/*求周长*/

t=0.5*h;

s=sqrt(t*(t-a)*(t-b)*(t-c));/*求面积*/

/*输出*/

printf(''面积是%f'',%s);

}

第“章顺本给构程玛彼计

2.复合语句

如if语句中的选择体、while语句中的循环体,当选择

体、循环体需多条语句描述时,就必须采用复合语句。

复合语句只需用大括号”{}〃将一系列语句括起即可。

复合语句不是一条具体语句,是一种逻辑上的考虑,凡是单

一语句可以存在的位置,均可以使用复合语句。复合语句

用在语法上是单一语句,而相应操作需多条语句描述的情

况。

函数体从一般意义上讲就是一条复合语句。

复合语句又称为分程序,它可以有属于自己的数据说

明部分。

第“章顺本给构程玛彼计

3.空语句

空语句是一种概念,C语言的空语句仅由分号构

成,在编译时不产生任何指令,在执行时不产生任何操

作。空语句常用于:

(1)构成标号语句,标识程序中相关位置。

(2)循环语句中空循环体。

(3)模块化程序中未实现的模块及暂不联入的模

块。

第“章顺本给构程玛彼计

4.2数据输入

4.2.1一般格式

数据输入的一般格式为:

Scanf(格式控制,地址表列)

(1)格式控制用以描述输入数据的格式,由格式说明符

组成,格式说明符由“%〃和格式字符组成。不同格式说

明对应不同类型的数据输入。

格式控制中格式字串可以包含普通字符,普通字符在

数据输入时必须原样输入。

第“章顺本给构程玛彼计

(2)输入参数只能用地址表,表示将输入的数据送相

应地址代表的存储单元中。这点要特别注意,这是与其

它高级语言不同的。地址通过取地址运算&获取。

(3)输入数据默认用空格、回车或TAB键分隔。

(4)使用scanf()函数让变量在程序执行过程中得到

从键盘输入的不同值。

(5)输入函数的调用一般采用语句调用形式,间接形

成C语言的输入语句。

第“章顺本转构程玛彼计

例如:

inti,j,k;

⑴scanf(〃%d,%d,%d〃,&i,&j,&k);

格式控制输入参数表

从键盘输入i,j,k的值。

如输入:1,2,3

i将得到值l,j将得到值2,k将得到值3。

如输入:10,20,30

i将得到值10,J将得到值20,k将得到值30。

(2)scanf(〃i=%d,j=%d〃,&i,&j);

如i的值为l,j的值为2,必须作如下输入:

i=l,J=2

第“章顺本给构程玛彼计

4.2.2格式字符

对应于不同类型的数据输入,C语言用不同的格式字

符描述:

d:用于输入十进制整数。

。:用于输入八进制整数。

x:用于输入十六进制整数。

c:用于输入字符数据。

s:用于输入字符串数据。

f:用于输入实数,可以用小数形式或指数形式输入。

e:与f作用相同,e与f可以相互替换。

第“章顺本给构程玛彼计

例如:inti;charc;floatf;

(1)scanf(〃%d,%f,%c〃,&i,&f,9&c);

如输入:2,34c

i、f、c分别得到值2、3.4>'c'。

第“章顺本给构程玛彼计

(2)scanf(rr%x,%F\&i,&f);

如输入:1A4.93el

i得到值1A(十六进制数),f得到值49.3。

C语言还提供附加格式字符用于输入数据格式的进一步描述:

1:用于输入长整型数据(%ld,%lo,%lx),以及双精度型

数据(%lf,%le)o

h:用于输入短整型数据(%hd,%ho,%hx)。

n:域宽,为一正整数,用于指明截取输入数据的位数。只能

用于整型数据输入。

*:表示跳过当前输入项。

第“章顺本给构程玛彼计

例如:假定已有相应变量定义

(l)scanf(rr%2d,%3d”,&i,&j);

如输入:12,345

i得到值12,j得到值345。

(2)scanf(〃%2d%*3d%2d”,&a,&b);

如输入:1234567

a得到值12,b得到值67。

第“章顺本给构程玛彼计

4.2.3说明

(1)输入函数中格式控制字串中不允许使用转义字符。

(2)利用格式字串中普通字符在输入时要原样输入,常

引入特定的普通字符如逗号等,作为输入数据的分隔符,如:

scanf(〃%f,%f,%d〃,&x,&y,&z);

输入数据必须用逗号分隔,如:3.0,4.0,5o

第“章顺本给构程玛彼计

(3)如果数据本身可以将数据分隔时,输入数据不需

用分隔符,如:

scanf(〃%d%c%d〃,&vl,&v2,&v3);

vl的值30,v2的值v3的值18。可这样输入:

30al8,字符数据a能起到分隔数据30、18的作用。

(4)无符号整型数据输入用%(1、%o、%x描述。

第“章顺本给构程玛彼计

(8)输入函数的返回值为输入数据的个数,需要时可以

加以利用。

(9)在介绍完输入函数后,读者这时还应注意到变量得

到值有三种方法:

定义时赋给初值,在编译时得到;在执行时利用赋值

语句得到;在执行时通过输入函数得到。利用输入函数

得到值更具一般性、通用性。另外,数据也常来自磁盘

文件。

(10)在分析程序的输入数据时,要同时考虑输入数据

的输入格式。

第“章顺本给构程玛彼计

4.3数据输出

4.3.1一般格式

数据输出的一般格式为:

printf(格式控制,输出参数表)

(1)格式字串用以描述输出数据的格式,由格式说明符

和普通字符组成。与scanf()函数中格式字串一样,格式说

明符由“%〃和格式字符组成,不同的格式说明符对应不同

类型数据的输出,普通字符原样输出。

第“章顺本给构程玛彼计

(2)输出参数可以是表达式。如果是常量,直接输出;

如是变量,输出其值;如是表达式,先计算表达式的值,再输

出。

(3)输出函数的调用一般也采用语句调用形式,间接形

成C语言的输出语句。例如:

inti=j=2;charch='a';

①printf("i=%2d,j=%2d",i,j);

输出结果:i=2,j=2

②printf(〃%2d*%2d=%2d〃,i,j,i*j);

第“章顺本给构程玛彼计

4.3.2格式字符

对应不同类型数据的输出,类似于输入函数,C语言

用不同的格式字符描述。

d:以带符号的十进制整数形式输出整数(正数不输

出符号)。

o:以无符号八进制整数形式输出整数(不输出前导

符0)。

x:以无符号十六进制整数形式输出整数(不输出前

导符Ox)。

U:以无符号十进制整数形式输出整数。

第“章顺本给构程玛彼计

C:以字符形式输出,输出一个字符。

S:以字符串形式输出,输出字符串的字符至结尾符,\

0,为止。

f:以小数形式输出实数,隐含输出1位整数,6位小数。

e:以标准指数形式输出实数,数字部分隐含1位整数,

6位小数。

g:根据给定的值和精度,自动选择f与e中较紧凑的一

种格式,不输出无意义的0。

第“章顺本给构程玛彼计

一般数据默认的输出宽度等于数据的实际位数。例

如:inta=3,b=12;floatx=1.23,y=4.785;

①printf("a=%d,b=%d",a,b);

输出结果:a=3,b=12

②printf("%伊%4%产,x,y,x*y);

输出结果:1.230000*4.785000=5.885550

对输出格式,C语言同样提供附加格式字符,用以对

输出格式作进一步描述。

第4章顺本转构程玛彼计

1:用于长整型数据输出(%ld,%lo,%lx,%lu)。

m:域宽,十进制整数,用以描述输出数据所占宽度。

如果m大于数据实际位数,输出时前面补足空格;如果m小于

数据的实际位数,按实际位数输出。

n:附加域宽,十进制整数,用于指定实型数据小数部

分的输出位数。如果n大于小数部分的实际位数,输出时小

数部分用0补足;如果n小于小数部分的实际位数,输出时

将小数部分多余的位四舍五入。如果用于字串数据,表示从

字串中截取的字符数。

第“章顺本给构程玛彼计

输出数据左对齐,缺省时为右对齐。

+:输出正数时,也加上“十〃号。

#:作为o,X的前缀时,输出结果前面加上前导符0、Oxo

例如:前举例中用指定格式输出:

(1)printf("a=%5d,b=%5d",a,b);

输出结果:a=3,b=12

(2)printf(〃%5.2#%5.24%5.2产,x,y,x*y);

输出结果:1.23*4.79=5.89

第“章顺本给构程玛彼计

4.3.3说明

(1)可以无输出参数,而只有格式字串。

(2)输出对象中使用转义字符,完成一些特殊的输出

操作。例如:

①printf("\n");/*输出换行*/

②printf("\t〃);/*跳到下一个输出区*/

(3)字符及字串常量,除了作为输出参数输出外,也可

作为格式字串中基本字符输出。

第“章顺本给构程玛彼计

(4)可以将整数作字符数据输出,输出的是以此作

为ASCII码的字符。字符数据也可以作整数输出,输出

的是字符的ASCII码。如:

printf(〃%c,%d〃,97,b);

输出结果:a,98

第4章顺本转构程玛彼计

(5)负数以补码的形式存储,将负数以无符号数输出时,

类似于赋值的规则处理。

反之,将一个无符号数用有符号数的格式输出,也是类

似于赋值的规则处理。例如:

①inta=—1;

printf("a=%d,ox=%o,xa=%x,ua=%u",a,a,a,a);

输出结果:a=-1,ox=177777,xa=flff,ua=65535

②intb=65535;

printf("b=%d,ob=%o,xb=%x,ub=%u",b,b,b,b);

输出结果:b=—1,ob=177777,xb=ffff,ub=65535

第“章顺本给构程玛彼计

(6)利用不同的输出格式可间接进行数制转换。如:

inti=16;

printf("il=%d(十进制),i2=%o(八进制),

i3=%x(十六进制)”,i,i,i);

输出结果:il=16(十进制),12=20(八进制),

i3=10(十六进制)

第“章顺本给构程玛彼计

(7)字符数据的输出可直接以输出数据作参数,调

用输出函数putchar()完成。如:

putchar('a');

输出字符a

(8)在分析程序的输出数据时,要同时考虑输出数

据的输出格式。

第“章顺本给构程玛彼计

4.3.4交互信息

交互提示信息使用输出函数产生。

main()

{inta,b;

ints;

printf(〃请输入两个整数:〃);/*产生交互信息*/

scanf("%d,%d〃,&a,&b);

printf(〃正在求和......");/*产生交互信息*/

s=a+b;

printf("和=%6d",s);

第4章顺本转相程玛彼计

4.4字符数据的输入输出

4.4.1putchar函数(字符输出函数)

putchar函数的作用是向终端输出一个字符。例如:

putchar(c)

它输出字答变量c的值。C可以是字符型变量或整型变量。

例如:输出单个字符。

#include<stdio.h>

main()

{chara,b,c;

a=fBr;b=rOr;c=zY,;

putchar(a);putchar(b);putchar(c);)

运行结果:BOY

也可以输出控制字符,如putcha(\n)输出一个换行符。

也可以输出转义字符,如putcharC'lOl,)输出A,putchar,\")输出单撇号

字符',putcha(\015')输出回车,不换行,

第“章顺本给构程玛彼计

4.4.2putchar函数(字符输出函数)

•此函数的作用是从终端输入一个字符。Getchar函数没有参数,一

般形式为::getchar()

例如:输入单个字符。

#include<stdio.h>

main()

{charc;

c=getchar();

putchar(c);

第4章顺停给构程玛被奸

4.5程序设计举例

例4-1求五个数的和、积、平均值。

数据分析:

输入量:输入的五个数xl、x2、x3、x4、x5,float

输出量:和s、积m、平均值a,float

注意:输出时要注意输出格式的设计。

算法分析:

①输入xl、x2、x3、x4、x5o

②求和s。

③求积m。

④求平均值a。

⑤输出和s、积m、平均值a。

第4章顺洋秸相程停核计

/*程序4-1,求五个数的和、积、平均值*/

#include"stdio.h"

main()

{floatxl,x2,x3,x4,x5;

floats,m,a;

clrscr();/*清屏函数*/

/*输入数据,输入数据用逗号分隔*/

printf("请输入五个数:");

scanf(〃%f,%f,%£%f,%F,&xl,&x2,&x3,&x4,&x5);

/*求和s、积m、平均值a*/

s=x1+x2+x3+x4+x5;

m=xl*x2*x3*x4*x5;

a=s/5;

/*输出和s、积m、平均值a*/

printf("和=%6.3£积=%6.3£平均值=%6.3f\n",s,m,a);

}

输入数据:1.1,122.1,2.2,3.1

运行结果:和=9.700,积=18.905,平均值=1.940

第4章顺序错构程序核计

例4-2从键盘输入一个大写字母,要求改用小写字母输

出。

#include<stdio.h>

main()

运行情况如下:

{charcl,c2;

A(输入)

cl=getchar();

A,65

printf(u%c,%d\n”,cl,cl);

a,97

c2=cl+32;

printf(66%c,%d\n”,c2,c2);

第4章顺星秸构程玛被计

例4-3求圆的面积和周长。

数据分析:

输入量:半径r,float

输出量:面积s,周长1,float

算法分析:

①输入半径r。

②计算面积s。

③计算周长1。

④输出面积s和周长1。

第4章顺序将构福停被计

/*程序4-3,求圆的面积和周长*/

#definePI3.14159

#include"stdio.h"

main()

{floatr;

floats,1;

clrscr();

/*输入数据*/

printf("请输入圆的半径:");

scanf("%?\&r);

/*求面积s、周长1*/

s=PI*r*r;

l=2*PI*r;

/*输出面积s、周长1*/

printf(〃面积=%6.3£周长=%6.3f\n",s,1);

输入数据:2

运行结果:面积=12.566,周长=12.566

第4章顺本转构程玛彼计

例4-4求平面上两点之间的距离。

数据分析:

输入量:第一个点坐标xl、yl,第二个点坐标x2、y2,float

输出量:两点之间的距离d,float

算法分析:

①输入第一个点坐标xl、ylo

②输入第二个点坐标x2、y2o

③求两点之间的距离d。

④输出两点之间的距离d。

第“章顺停给构程玛被奸

/*程序4-4,求平面上两点之间的距离*/

#include"stdio.h"

#include"math.h"

main()

{floatxl,yl,x2,y2;

floatd;

clrscr();

printf("请输入第一个点坐标xl、yl:");

scanf(〃%f,%f〃,&xl,&yl);

printf("请输入第二个点坐标x2、y2:");

scanf(〃%f,%f”,&x2,&y2);

d=sqrt((xl-x2)*(xl-x2)+(yl-y2)*(yl-y2));

printf(〃两点之间的距离=%8.4f\n〃,d);

}

输入数据:0,0

1,1

运行结果:两点之间的距离=1.4142

第"章顺序将构程停钱计

例4-5求三角形的面积和周长。

数据分析:

输入量:三角形三边a、b、c,float

中间量:半周长hl,float

输出量:面积s,周长1,float

算法分析:

①输入三边a、b、Co

②计算周长1。

③计算半周长hl。

④计算面积s。

⑤输出面积s和周长1。

第4章顺序给构程涛微行

/*程序4-5,求三角形的面积和周长*/

#include"stdio.h"

#include"math.h"

main()

{floata,b,c;

floathl;

floats,1;

clrscr();

printf(〃请输入三角形的三边:〃);

scanf(〃%£%f,%f〃,&a,&b,&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论