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

下载本文档

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

文档简介

1、C语言程序设计教程语言程序设计教程 王明福 主编 高教社第第3章章 顺序结构顺序结构程序设计程序设计n本本 章章 导导 读读 C语言是结构化程序设计语言,它提供了比其它高级语言更丰富的控制语句。从本章开始,将陆续介绍C语言的控制语句:顺序结构、选择结构和循环结构。本章将介绍三种基本结构的概念,重点介绍顺序结构、C语言的标准输入输出函数,并举例说明顺序程序设计的基本方法。n 本章的教学目标:本章的教学目标: 了解结构化程序设计的三种基本结构; 了解C语言的基本语句; 掌握格式化输入/输出函数; 能进行简单的程序设计。C语言程序设计教程语言程序设计教程 王明福 主编 高教社第第3章章 顺序结构顺序

2、结构程序设计程序设计3.1 C语句概述 3.2 程序的三种基本结构 3.3 顺序结构程序设计的思想 3.4 实现顺序结构程序设计的基本语句 3.5 顺序程序设计举例 C语言程序设计教程语言程序设计教程 王明福 主编 高教社3.1 C语句概述语句概述v C语言的语句用来向计算机系统发出操作指令。一个语句经编译后产生若干条机器指令。C语句是C语言源程序的重要组成部分,是用来完成一定操作任务的。v C语言的语句可以分为五大类: 1. 函数调用语句。由一次函数调用加一个分号构成的语句。例如:printf(“this is a book”); 2. 表达式语句。表达式的后面加一个分号就构成了一个表达式语

3、句。例如: sum = a + b; /* 赋值语句*/ 3空语句,光有一个分号“;”,作为语句结束符,它表示什么也不做。 4. 复合语句。由“”和“”把一些变量说明和语句组合在一起。又称语句块(Block) 。例如,int a = 0,b = 1,sum; sum = a + b; printf(“%d”,sum);C语言程序设计教程语言程序设计教程 王明福 主编 高教社5控制语句,共九种。即 if语句 (条件语句) switch语句 (多分支选择语句) while语句 (循环语句) do-while语句 (循环语句) for语句 (循环语句) break语句 (终止执行循环语句或switc

4、h 语句) continue语句 (结束本次循环语句) goto语句 (转向语句) return语句 (从函数返回语句) C语言程序设计教程语言程序设计教程 王明福 主编 高教社3.2 3.2 程序的三种基本结构程序的三种基本结构 C语言是结构化程序设计语言,结构化程序设计的基本思想是,用顺序结构、选择结构和循环结构等三种基本结构来构造程序;限制使用无条件转移语句(goto语句)。程序的三种基本结构是:1. 1. 顺序结构顺序结构顺序执行每个操作,即先执行A操作,再执行B操作,两者之间是顺序执行的关系。图3-1是顺序结构的流程图。2. 2. 选择结构选择结构设P代表一个判断条件,当P成立(或称

5、“为真”)时,执行A操作,否则执行B操作。即A和B中只能选择其中之一。图3-2是选择结构的流程图。3. 3. 循环结构循环结构(1) (1) 当型循环结构当型循环结构:如图3-3所示,当条件P成立时,反复执行A操作,直到条件P不再成立时才跳出循环。(2) (2) 直到型循环结构:直到型循环结构:如图3-4所示,先执行A操作,再判断条件P是否成立,若P成立,则再执行A操作,如此反复,直到条件P不成立时跳出循环。图3-1 图3-2 图3-3 图3-4C语言程序设计教程语言程序设计教程 王明福 主编 高教社3.3 3.3 顺序结构程序设计的思想顺序结构程序设计的思想 在在顺序结构顺序结构程序中,程序

6、的执行是按照各语句出现的先后次程序中,程序的执行是按照各语句出现的先后次序,顺序执行的,并且每个语句都会被执行到。序,顺序执行的,并且每个语句都会被执行到。 例如:由键盘输入两个整数,然后计算其和,再将结果打印例如:由键盘输入两个整数,然后计算其和,再将结果打印输出。输出。算法设计:算法设计:(1) (1) 输入两个整数输入两个整数; ;(2) (2) 计算其和计算其和; ;(3) (3) 将和打印输出。将和打印输出。解决该问题的算法可用传统流程图解决该问题的算法可用传统流程图3-53-5描述。具有如下特性:描述。具有如下特性:(1) (1) 顺序结构由顺序结构由3部分组成:部分组成: A A

7、: 输入两个整数;输入两个整数;B B:计算两数的和;计算两数的和;C C:输出和数。输出和数。(2) (2) 按顺序执行,且都执行一次;按顺序执行,且都执行一次;A AB BC C C语言程序设计教程语言程序设计教程 王明福 主编 高教社3.4 3.4 实现顺序结构程序设计的基本语句实现顺序结构程序设计的基本语句 在C语言描述顺序结构程序中,通常使用的语句有:赋值语句、输入数据函数调用语句(scanf、getchar)、输出数据函数调用语句(printf、putchar)等。3.4.1 3.4.1 赋值语句赋值语句 3.4.2 3.4.2 格式输出函数格式输出函数( (printfprint

8、f) )3.4.3 3.4.3 格式化输入函数(格式化输入函数(scanfscanf) 3.4.4 3.4.4 单字符输出函数(单字符输出函数(putcharputchar) 3.4.5 3.4.5 单字符输入函数(单字符输入函数(getchargetchar) C语言程序设计教程语言程序设计教程 王明福 主编 高教社3.4.1 赋值语句 C语言的赋值语句是由赋值表达式加一个分号“;”构成,最简单的一种形式为:变量变量 = = 表达式;表达式;例如:y = 4; /* 将整数4赋给变量y */x = y*5 + 2; /* 将表达式y*5 + 2的值赋给变量x */说说 明:明:(1) 在上述

9、赋值语句中,“=”是赋值符号,赋值符号的右边是由常量、变量、运算符和函数组成的表达式。(2) 因赋值语句是由赋值表达式加一个分号“;”构成的,所以下面也是合法的赋值语句: i+;x += 3;(3) 赋值语句是将右边的表达式的值赋给左边的变量,因此,赋值语句要先对表达式计算求值,然后再将求得的值赋给左边的变量,所以赋值语句兼有计算功能。在上例中,先计算表达式y*5 + 2,求得值为22,最后将22赋给变量x。C语言程序设计教程语言程序设计教程 王明福 主编 高教社3.4.2 3.4.2 格式输出函数格式输出函数( (printfprintf) )1. 1. 一般形式:一般形式: printf

10、printf( (格式控制,格式控制, 输出表列输出表列); “格式控制格式控制”:用双引号括起来的字符串,也称用双引号括起来的字符串,也称“转换控制字符串转换控制字符串”。它是由字符。它是由字符“%”“%”、格式字符(如、格式字符(如d d、f f、c c等)和普通字符(原样输出的)组成。等)和普通字符(原样输出的)组成。 “输出表列输出表列”:是一些与是一些与“格式控制格式控制”中的格式字符一一对应的需要输出的数据,中的格式字符一一对应的需要输出的数据,可以是变量或表达式。可以是变量或表达式。【例【例3.13.1】main()main() int int a = 2 , y;a = 2 ,

11、 y;char char chch = e; = e;float x = 2.4;float x = 2.4;printfprintf(%d%c,a,(%d%c,a,chch); /); /* *以十进制整数格式输出变量以十进制整数格式输出变量a a,以字符格式输出变量以字符格式输出变量chch* */ /printfprintf(x=%f,y=%d, x,a+10);/(x=%f,y=%d, x,a+10);/* *以浮点数形式输出变量以浮点数形式输出变量x x,以十进制整数格式输出表以十进制整数格式输出表达式达式a+10a+10的值的值* */ /printfprintf(n hello

12、world); /(n hello world); /* *先换行,再输出字符串先换行,再输出字符串hello wordhello word* */ / 运行结果:运行结果: 2 2ex=2.400000,y=12ex=2.400000,y=12 hello worldC语言程序设计教程语言程序设计教程 王明福 主编 高教社说说 明明: 对于语句printf(%d%c,a,ch);,%d%c是格式控制,a,ch是输出表列。执行时,输出变量a和ch中的值2和e。其中%d表示以十进制整数格式输出变量a的值 ,而%c表示以字符格式输出变量ch的值。格式控制的对应关系如下: printf printf

13、(%d %c, a , (%d %c, a , chch);); 由于printf是函数,所以,“格式控制”和“输出表列”实际上是函数的参数。printf函数的一般形式可表示为:printfprintf(“(“格式格式1 1 格式格式2 2 格式格式n”n”,参数参数1 1,参数,参数2 2,参数,参数3 3,参数参数n);n);其功能是将参数1,参数2,参数n分别按格式1,格式2,格式n 输出。 对于语句printf(x=%f,y=%d, x,a+10);,“x=%f,y=%d” 是格式控制,x,a+10是输出表列。执行时,x=和y=是原样输出,而语句中的%f和%d分别以后面输出表列中变量x

14、和表达式a+10的值代之,而%f表示以浮点数形式输出变量x的值,%d表示以十进制整数格式输出表达式a+10的值。 C语言程序设计教程语言程序设计教程 王明福 主编 高教社2. 格式说明符数据类型格式说明符功能描述整 数(int)%d或%i以带符号的十进制形式输出整数(正数不输出符号)%md(或%-md)以十进制数形式按给定的宽度m输出int型数据。如数据的位数小于m,则左(或右)端补以空格,若大于m,则按实际位输出%ld以十进制整数形式按数据的实际长度输出long型数据%mld(或%-mld)以十进制数形式按给定的宽度m输出long型数据。如数据的位数小于m,则左(或右)端补以空格,若大于m,

15、则按实际位输出%o以八进制无符号形式输出整数(不输出前导符0)%x,%X以十六进制无符号形式输出整数(不输出前导符0 x)用x则输出十六进制数的a-f时以小写字母输出;用X时,则以大写字母输出%u以无符号十进制形式输出整数字 符(char)%c以单个字符形式输出字符数据%mc(或%-mc)按指定的宽度m和右(或左)对齐方式输出char型数据%s输出字符串形式%ms(或%-ms)按指定的长度和右(或左)对齐方式输出字符串实 数(float, double)%f以小数形式输出实数(单、双精度),小数位数为6 %m.nf(或%-m.nf)指定输出的数据共占m列,其中小数占n列,靠右(或左)对齐C语言

16、程序设计教程语言程序设计教程 王明福 主编 高教社一般格式控制符n“格式控制符格式控制符”的完整格式为:的完整格式为: % 标志标志 域宽域宽 .精度精度 F|N|h|l|L格式符格式符 方括弧括起来的部分是可选的,被称为修饰符。n精度精度 输出字符最大数,对于整型值,为输出最少数值个数。nF|N|h|l|L N:近指针(near pointer) F:远指针(far pointer) h:短整型(short int) l:长型(long) L:长双精度型(long double)C语言程序设计教程语言程序设计教程 王明福 主编 高教社例例: 若定义 int a = -316;则:printf

17、(“a=%d”,a); 输出为 a=-316printf(“a=%6d”,a); 输出为 a= -316printf(“a=%-6d”,a); 输出为 a=-316再看看下面实数的格式修饰符情况:若定义 float x = 3.1415926535;则:printf(“x=%f”,x); 输出为 x=3.141593printf(“x=%7.4f”,x); 输出为 x= 3.1416printf(“x=%9.2e”,x); 输出为 x= 3.14e+00C语言程序设计教程语言程序设计教程 王明福 主编 高教社(1 1)输出整型、长整型、无符号整型数据。)输出整型、长整型、无符号整型数据。% %

18、d,%d,%mdmd(%-(%-mdmd),), %ld(%-ld),% %ld(%-ld),%mldmld,%o,%x,%o,%x【例例3.23.2】输出整型、长整型、无符号整型数据。 main() int y=20; long a=1024; unsigned b=54321; clrscr();/*清屏*/ printf(%d,%ld,%un,y,a,b); /*以十进制按数据实际长度输出变量y,a,b*/ printf(%8d,%8ld,%8un,y,a,b); /*以十进制按8位列宽输出变量y,a,b,右对齐*/ printf(%-8d,%-8ld,%-8un,y,a,b);/*以十

19、进制按8位列宽输出变量y,a,b,左对齐*/ printf(%o,%lo,%on,y,a,b); /*以八进制按数据实际长度输出变量y,a,b*/ printf(%x,%lx,%xn,y,a,b); /*以十六进制按数据实际长度输出变量y,a,b*/ printf(%8o,%8lo,%8on,y,a,b); /*以八进制按8位列宽输出变量y,a,b,右对齐*/ printf(%-8x,%-8lx,%-8xn,y,a,b);/*以十六进制按8位列宽输出变量y,a,b,左对齐*/ 运行结果如下,其中的表示空格。20,1024,5432120,1024,5432120, 1024, 5432124,

20、2000,15206114,400,d43124,2000,15206124,2000,152061C语言程序设计教程语言程序设计教程 王明福 主编 高教社(2)输出字符和字符串输出字符和字符串-%-%mc,%ms(mc,%ms(或或%-%-ms),%m.ns(ms),%m.ns(或或%-%-m.ns)m.ns)【例例3.33.3】输出字符和字符串数据main()char ch = a;printf(%cn,ch); /*输出变量ch(单个字符)*/printf(%-3cn,ch); /*输出变量ch,占3列,靠左对齐*/printf(%3cn,ch); /*输出变量ch,占3列,靠右对齐*/

21、printf(%sn,programing); /*按实际长度输出字符串programing*/printf(%15sn,programing); /*输出字符串programing,占15列,靠右对齐*/printf(%-15sn,programing);/*输出字符串programing,占15列,靠左对齐*/*输出字符串programing中的前5个字符,占10列,靠右对齐*/printf(%10.5sn,programing);/*输出字符串programing中的前5个字符,占10列,靠左对齐*/printf(%-10.5sn,programing); 运行结果如下,其中的表示空格。

22、 a,aaprogramingprogramingprogramingprogrprogrC语言程序设计教程语言程序设计教程 王明福 主编 高教社(3 3)输出实型数据。)输出实型数据。 % %f,%m.f,%m.nfnf【例例3.43.4】输出实型数据。main()float x,y; double a;x=111111.111; y=123.468;a=2222222222222.222222222;printf(%fn,x);printf(%fn,a);printf(%10f,%10.2f,%.2f,%-10.2fn,x,x,x,x);printf(%en,x);printf(%en,a

23、);printf(%10e,%10.2e,%.2e,%-10.2en,a,a,a,a);printf(“%f,%e,%g”,y,y,y);程序运行结果如下,其中的表示空格。111111.1093752222222222222.222170111111.109375,111111.11, 111111.11, 111111.111.11111e+052.22222e+122.22222e+12, 2.2e+12, 2.2e+12, 2.2e+12123.468002,1.23468e+02,123.468C语言程序设计教程语言程序设计教程 王明福 主编 高教社3 3转义字符转义字符 以“”开头的

24、字符序列。C语言常用的转义字符见第2章表2-3。【例例3.53.5】转义字符输出形式举例main()char a,b,c;a = n;b = e;c = 167; /*8进制数167代表的字符w */printf(“%c%c%cn”,a,b,c); /*以字符格式输出*/printf(“%ct%ct%cn”,a,b,c);/*每输出一个字符跳到下一输出区*/printf(“%cn%cn%cn”,a,b,c); /*每输出一个字符后换行*/运行情况如下:newnewnewC语言程序设计教程语言程序设计教程 王明福 主编 高教社3.4.3 格式化输入函数(scanf) 1. 1. scanfsca

25、nf函数的函数的一般形式一般形式格式化输入函数scanf的功能是用来从外部设备(通常是键盘),向程序中的变量输入一个或若干个任意类型的数据。scanf函数的一般形式为:scanfscanf ( (格式控制,地址表列格式控制,地址表列) );其中“格式控制”的含义同printf函数;“地址表列”是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。例如,int a;float b;scanf(“%d%f”,&a,&b);C语言程序设计教程语言程序设计教程 王明福 主编 高教社2 2格式说明符格式说明符 scanf函数中的格式说明符的使用与printf函数类似,必须用%开头

26、后面跟一个字母(也可以在其中间增加附加字符),它规定了输入项对应的输入数据格式。同样格式说明符要在个数和类型上与输入项相匹配。scanf函数常用的格式说明符及附加字符见表3-2.数据类型格式说明符功 能 描 述整 数%d%D用来输入带符号的十进制整数用来输入带符号的十进制长整数%i%I用来输入带符号的十、八、十六进制整数用来输入带符号的十、八、十六进制长整数%o%O用来输入无符号的八进制整数用来输入无符号的八进制长整数%x%X用来输入无符号的十六进制整数用来输入无符号的十六进制长整数%u%U用来输入无符号的十进制整数用来输入无符号的十进制长整数实 数%f用来输入实数,可以用小数形式或指数形式输

27、入。%e,%g%E ,%G用来输入单精度实数用来输入双精度实数字 符%c用来输入单个字符%s用来输入字符串,将字符串送到一个字符数组中,以第一个空白字符结束。以 “0”作为串结束标志.C语言程序设计教程语言程序设计教程 王明福 主编 高教社【例例3.6】用scanf函数输入数据。 main()int a,b;clrscr();printf(please input two numbers:);scanf(%d%d,&a,&b);printf(a=%d,b=%d,a,b); 运行结果如下:please input two numbers:34 (回车)a=3,b=4 C语言程序设

28、计教程语言程序设计教程 王明福 主编 高教社3.4.4 3.4.4 单字符输出函数(单字符输出函数(putcharputchar) nputchar()函数的一般调用形式为: putchar putchar(c);(c);其中,c为一个字符型数据(普通字符或转义字符)或整型数据(0255)。 n函数的功能是用于将一个字符输出到显示器上显示.【例例3.73.7】输出单个字符。#include main() int a;char c1,c2;a = 71;c1 = o; c2 = y;putchar(102);putchar(c1);putchar(c2);putchar(n);putchar(a

29、);putchar(i);putchar(r);putchar(108); 运行结果: Boy GirlC语言程序设计教程语言程序设计教程 王明福 主编 高教社3.4.5 3.4.5 单字符输入函数(单字符输入函数(getchargetchar)ngetchar()函数的一般调用形式为:chch = = getchargetchar();();ngetchar()函数的功能是从键盘上输入一个字符。【例【例3.83.8】从键盘输入单个字符。#include “stdio.h”main() int a;char ch;ch=getchar();a=getchar();putchar(ch);putchar(a);运行结果:DA (回车)DA(显示变量ch的值)C语言程序设计教程语言程序设计教程 王明福 主编 高教社3.5 3.5 顺序程序设计举例顺序程序设计举例 【例例3.93.9】从键盘输入一个两个整数,进行加、减、乘、除和模运算,并输出其结果。main()int a,b;

温馨提示

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

评论

0/150

提交评论