![第3章顺序结构程序设计_第1页](http://file4.renrendoc.com/view/d1a4f879d586aabcdffe1c73df213e00/d1a4f879d586aabcdffe1c73df213e001.gif)
![第3章顺序结构程序设计_第2页](http://file4.renrendoc.com/view/d1a4f879d586aabcdffe1c73df213e00/d1a4f879d586aabcdffe1c73df213e002.gif)
![第3章顺序结构程序设计_第3页](http://file4.renrendoc.com/view/d1a4f879d586aabcdffe1c73df213e00/d1a4f879d586aabcdffe1c73df213e003.gif)
![第3章顺序结构程序设计_第4页](http://file4.renrendoc.com/view/d1a4f879d586aabcdffe1c73df213e00/d1a4f879d586aabcdffe1c73df213e004.gif)
![第3章顺序结构程序设计_第5页](http://file4.renrendoc.com/view/d1a4f879d586aabcdffe1c73df213e00/d1a4f879d586aabcdffe1c73df213e005.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章顺序结构程序设计本
章
导
读
C语言是结构化程序设计语言,它提供了比其它高级语言更丰富的控制语句。从本章开始,将陆续介绍C语言的控制语句:顺序结构、选择结构和循环结构。本章将介绍三种基本结构的概念,重点介绍顺序结构、C语言的标准输入输出函数,并举例说明顺序程序设计的基本方法。
本章的教学目标:了解结构化程序设计的三种基本结构;了解C语言的基本语句;掌握格式化输入/输出函数;能进行简单的程序设计。第3章顺序结构程序设计3.1C语句概述
3.2程序的三种基本结构
3.3顺序结构程序设计的思想
3.4实现顺序结构程序设计的基本语句
3.5顺序程序设计举例
3.1C语句概述C语言的语句用来向计算机系统发出操作指令。一个语句经编译后产生若干条机器指令。C语句是C语言源程序的重要组成部分,是用来完成一定操作任务的。
C语言的语句可以分为五大类:1.函数调用语句。由一次函数调用加一个分号构成的语句。例如:printf(“thisisabook”);2.表达式语句。表达式的后面加一个分号就构成了一个表达式语句。例如:sum=a+b;/*赋值语句*/3.空语句,光有一个分号“;”,作为语句结束符,它表示什么也不做。4.复合语句。由“{”和“}”把一些变量说明和语句组合在一起。又称语句块(Block)
。例如,{inta=0,b=1,sum;sum=a+b;
printf(“%d”,sum);}5.控制语句,共九种。即⑴
if语句
(条件语句)⑵
switch语句
(多分支选择语句)⑶
while语句
(循环语句)⑷
do-while语句(循环语句)⑸
for语句
(循环语句)⑹
break语句(终止执行循环语句或switch语句)⑺
continue语句(结束本次循环语句)⑻
goto语句
(转向语句)⑼
return语句
(从函数返回语句)
3.2程序的三种基本结构
C语言是结构化程序设计语言,结构化程序设计的基本思想是,用顺序结构、选择结构和循环结构等三种基本结构来构造程序;限制使用无条件转移语句(goto语句)。程序的三种基本结构是:1.顺序结构顺序执行每个操作,即先执行A操作,再执行B操作,两者之间是顺序执行的关系。图3-1是顺序结构的流程图。2.选择结构设P代表一个判断条件,当P成立(或称“为真”)时,执行A操作,否则执行B操作。即A和B中只能选择其中之一。图3-2是选择结构的流程图。3.循环结构(1)当型循环结构:如图3-3所示,当条件P成立时,反复执行A操作,直到条件P不再成立时才跳出循环。(2)直到型循环结构:如图3-4所示,先执行A操作,再判断条件P是否成立,若P成立,则再执行A操作,如此反复,直到条件P不成立时跳出循环。图3-1图3-2图3-3图3-43.3顺序结构程序设计的思想
在顺序结构程序中,程序的执行是按照各语句出现的先后次序,顺序执行的,并且每个语句都会被执行到。例如:由键盘输入两个整数,然后计算其和,再将结果打印输出。 算法设计: (1)输入两个整数; (2)计算其和; (3)将和打印输出。
解决该问题的算法可用传统流程图3-5描述。具有如下特性: (1)顺序结构由3部分组成:
A:输入两个整数;
B:计算两数的和;
C:输出和数。 (2)按顺序执行,且都执行一次;
ABC3.4实现顺序结构程序设计的基本语句
在C语言描述顺序结构程序中,通常使用的语句有:赋值语句、输入数据函数调用语句(scanf、getchar)、输出数据函数调用语句(printf、putchar)等。
3.4.1赋值语句
3.4.2格式输出函数(printf)
3.4.3格式化输入函数(scanf)
3.4.4单字符输出函数(putchar)
3.4.5单字符输入函数(getchar)
3.4.1赋值语句
C语言的赋值语句是由赋值表达式加一个分号“;”构成,最简单的一种形式为:
变量=表达式;例如:y=4; /*将整数4赋给变量y*/x=y*5+2;/*将表达式y*5+2的值赋给变量x*/说
明:(1)在上述赋值语句中,“=”是赋值符号,赋值符号的右边是由常量、变量、运算符和函数组成的表达式。(2)因赋值语句是由赋值表达式加一个分号“;”构成的,所以下面也是合法的赋值语句:
i++; x+=3;(3)赋值语句是将右边的表达式的值赋给左边的变量,因此,赋值语句要先对表达式计算求值,然后再将求得的值赋给左边的变量,所以赋值语句兼有计算功能。在上例中,先计算表达式y*5+2,求得值为22,最后将22赋给变量x。3.4.2格式输出函数(printf)1.一般形式:
printf(格式控制,[输出表列]);
“格式控制”:用双引号括起来的字符串,也称“转换控制字符串”。它是由字符“%”、格式字符(如d、f、c等)和普通字符(原样输出的)组成。
“输出表列”:是一些与“格式控制”中的格式字符一一对应的需要输出的数据,可以是变量或表达式。【例3.1】main(){inta=2,y;charch=’e’;floatx=2.4;printf("%d%c",a,ch);/*以十进制整数格式输出变量a,以字符格式输出变量ch*/printf("x=%f,y=%d",x,a+10);/*以浮点数形式输出变量x,以十进制整数格式输出表达式a+10的值*/printf("\nhelloworld");/*先换行,再输出字符串helloword*/}运行结果:2ex=2.400000,y=12helloworld说
明:①
对于语句printf("%d%c",a,ch);,"%d%c"是格式控制,a,ch是输出表列。执行时,输出变量a和ch中的值2和e。其中%d表示以十进制整数格式输出变量a的值
,而%c表示以字符格式输出变量ch的值。格式控制的对应关系如下:
printf("%d%c",a,ch);
由于printf是函数,所以,“格式控制”和“输出表列”实际上是函数的参数。printf函数的一般形式可表示为:printf(“格式1格式2…格式n”,参数1,参数2,参数3,……参数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和表达式a+10的值代之,而%f表示以浮点数形式输出变量x的值,%d表示以十进制整数格式输出表达式a+10的值。
2.格式说明符
表3-1printf格式说明符表3-1printf格式说明符数据类型格式说明符功能描述整数(int)%d或%i以带符号的十进制形式输出整数(正数不输出符号)%md(或%-md)以十进制数形式按给定的宽度m输出int型数据。如数据的位数小于m,则左(或右)端补以空格,若大于m,则按实际位输出%ld以十进制整数形式按数据的实际长度输出long型数据%mld(或%-mld)以十进制数形式按给定的宽度m输出long型数据。如数据的位数小于m,则左(或右)端补以空格,若大于m,则按实际位输出%o以八进制无符号形式输出整数(不输出前导符0)%x,%X以十六进制无符号形式输出整数(不输出前导符0x)用x则输出十六进制数的a-f时以小写字母输出;用X时,则以大写字母输出%u以无符号十进制形式输出整数字符(char)%c以单个字符形式输出字符数据%mc(或%-mc)按指定的宽度m和右(或左)对齐方式输出char型数据%s输出字符串形式%ms(或%-ms)按指定的长度和右(或左)对齐方式输出字符串实数(float,double)%f以小数形式输出实数(单、双精度),小数位数为6%m.nf(或%-m.nf)指定输出的数据共占m列,其中小数占n列,靠右(或左)对齐一般格式控制符“格式控制符”的完整格式为:
%[标志][域宽][.精度][F|N|h|l|L]格式符
方括弧括起来的部分是可选的,被称为修饰符。精度输出字符最大数,对于整型值,为输出最少数值个数。F|N|h|l|L
N :
近指针(nearpointer)F : 远指针(farpointer)h : 短整型(shortint)l : 长型(long)L : 长双精度型(longdouble)例:若定义inta=-316;则:printf(“a=%d”,a);输出为a=-316printf(“a=%6d”,a);输出为a=-316printf(“a=%-6d”,a);输出为a=-316再看看下面实数的格式修饰符情况:若定义floatx=3.1415926535;则:printf(“x=%f”,x);输出为x=3.141593printf(“x=%7.4f”,x);输出为x=3.1416printf(“x=%9.2e”,x);输出为x=3.14e+00(1)输出整型、长整型、无符号整型数据。%d,%md(%-md),
%ld(%-ld),%mld,%o,%x【例3.2】输出整型、长整型、无符号整型数据。
main(){inty=20;longa=1024;unsignedb=54321;
clrscr();/*清屏*/printf("%d,%ld,%u\n",y,a,b);/*以十进制按数据实际长度输出变量y,a,b*/
printf("%8d,%8ld,%8u\n",y,a,b);/*以十进制按8位列宽输出变量y,a,b,右对齐*/
printf("%-8d,%-8ld,%-8u\n",y,a,b);/*以十进制按8位列宽输出变量y,a,b,左对齐*/
printf("%o,%lo,%o\n",y,a,b);/*以八进制按数据实际长度输出变量y,a,b*/
printf("%x,%lx,%x\n",y,a,b);/*以十六进制按数据实际长度输出变量y,a,b*/
printf("%8o,%8lo,%8o\n",y,a,b);/*以八进制按8位列宽输出变量y,a,b,右对齐*/
printf("%-8x,%-8lx,%-8x\n",y,a,b);/*以十六进制按8位列宽输出变量y,a,b,左对齐*/}运行结果如下,其中的□表示空格。20,1024,54321□□□□□□20,□□□□1024,□□□5432120□□□□□□,1024□□□□,54321□□□24,2000,15206114,400,d431□□□□□□24,□□□□2000,□□15206124□□□□□□,2000□□□□,152061□□(2)输出字符和字符串---%mc,%ms(或%-ms),%m.ns(或%-m.ns)【例3.3】输出字符和字符串数据main(){charch=‘a';printf("%c\n",ch);/*输出变量ch(单个字符)*/printf("%-3c\n",ch);/*输出变量ch,占3列,靠左对齐*/printf("%3c\n",ch);/*输出变量ch,占3列,靠右对齐*/printf("%s\n","programing");/*按实际长度输出字符串programing*/printf("%15s\n","programing");/*输出字符串programing,占15列,靠右对齐*/printf("%-15s\n","programing");/*输出字符串programing,占15列,靠左对齐*//*输出字符串programing中的前5个字符,占10列,靠右对齐*/printf("%10.5s\n","programing");/*输出字符串programing中的前5个字符,占10列,靠左对齐*/printf("%-10.5s\n","programing");}运行结果如下,其中的□表示空格。
a,a□□□□aprograming□□□□□programingprograming□□□□□□□□□□progrprogr□□□□□(3)输出实型数据。%f,%m.nf【例3.4】输出实型数据。main(){floatx,y;doublea;x=111111.111;y=123.468;a=2222222222222.222222222;printf("%f\n",x);printf("%f\n",a);printf("%10f,%10.2f,%.2f,%-10.2f\n",x,x,x,x);printf("%e\n",x);printf("%e\n",a);printf("%10e,%10.2e,%.2e,%-10.2e\n",a,a,a,a);printf(“%f,%e,%g”,y,y,y);}程序运行结果如下,其中的□表示空格。111111.1093752222222222222.222170111111.109375,□111111.11,111111.11,111111.11□1.11111e+052.22222e+122.22222e+12,□□□2.2e+12,2.2e+12,2.2e+12□□□123.468002,1.23468e+02,123.4683.转义字符
以“\”开头的字符序列。C语言常用的转义字符见第2章表2-3。
【例3.5】转义字符输出形式举例main(){chara,b,c;a=‘n’;b=‘e’;c=‘\167’;/*8进制数167代表的字符w*/printf(“%c%c%c\n”,a,b,c);/*以字符格式输出*/printf(“%c\t%c\t%c\n”,a,b,c);/*每输出一个字符跳到下一输出区*/printf(“%c\n%c\n%c\n”,a,b,c);/*每输出一个字符后换行*/}运行情况如下:newn e wnew3.4.3格式化输入函数(scanf)
1.scanf函数的一般形式格式化输入函数scanf的功能是用来从外部设备(通常是键盘),向程序中的变量输入一个或若干个任意类型的数据。scanf函数的一般形式为:scanf(格式控制,地址表列);其中“格式控制”的含义同printf函数;“地址表列”是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。例如,
inta; floatb;
scanf(“%d%f”,&a,&b);2.格式说明符
scanf函数中的格式说明符的使用与printf函数类似,必须用%开头后面跟一个字母(也可以在其中间增加附加字符),它规定了输入项对应的输入数据格式。同样格式说明符要在个数和类型上与输入项相匹配。scanf函数常用的格式说明符及附加字符见表3-2.
数据类型格式说明符功能描述整数%d%D用来输入带符号的十进制整数用来输入带符号的十进制长整数%i%I用来输入带符号的十、八、十六进制整数用来输入带符号的十、八、十六进制长整数%o%O用来输入无符号的八进制整数用来输入无符号的八进制长整数%x%X用来输入无符号的十六进制整数用来输入无符号的十六进制长整数%u%U用来输入无符号的十进制整数用来输入无符号的十进制长整数实数%f用来输入实数,可以用小数形式或指数形式输入。%e,%g%E,%G用来输入单精度实数用来输入双精度实数字符%c用来输入单个字符%s用来输入字符串,将字符串送到一个字符数组中,以第一个空白字符结束。以“\0”作为串结束标志.【例3.6】用scanf函数输入数据。main(){inta,b;clrscr();printf("pleaseinputtwonumbers:");scanf("%d%d",&a,&b);printf("a=%d,b=%d",a,b);}运行结果如下:pleaseinputtwonumbers:3□4↙(回车)a=3,b=43.4.4单字符输出函数(putchar)
putchar()函数的一般调用形式为:
putchar(c);其中,c为一个字符型数据(普通字符或转义字符)或整型数据(0~255)。
函数的功能是用于将一个字符输出到显示器上显示.【例3.7】输出单个字符。#include<stdio.h>main(){inta;charc1,c2;a=71;c1=‘o’;c2=‘y’;putchar(‘\102’);putchar(c1);putchar(c2);putchar(‘\n’);putchar(a);putchar(‘i’);putchar(‘r’);putchar(108);}运行结果:
BoyGirl3.4.5单字符输入函数(getchar)getchar()函数的一般调用形式为:ch=getchar();getchar()函数的功能是从键盘上输入一个字符。【例3.8】从键盘输入单个字符。#include“stdio.h”main(){inta;charch;ch=getchar();a=getchar();putchar(ch);putchar(a);}运行结果:DA↙(回车)DA(显示变量ch的值)
3.5顺序程序设计举例
【例3.9】从键盘输入一个两个整数,进行加、减、乘、除和模运算,并输出其结果。main(){inta,b;clrscr();/*清除屏幕*/printf("pleaseinput
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《性格与沟通》课件
- 2025年银川货运资格证考试
- 我们的节日主题深化活动方案
- 心理活动月策划书
- 员工表彰年度总结模板
- 绿色简约风艺术画册相册主题
- 咨询业务汇报总结模板
- 安全生产法治文明施工方案
- 信用证申请书格式
- 申请利息减免申请书
- 湖北省2025届高三T8联盟模拟考数学试卷(解析版)
- 二零二五年度文化教育培训中心承包工程2篇
- 2025年广州中医药大学顺德医院(佛山市顺德区中医院)招考聘用高频重点提升(共500题)附带答案详解
- 2025年华侨港澳台学生联招考试英语试卷试题(含答案详解)
- 2025-2030年中国美容院行业营销创新战略制定与实施研究报告
- 2025年江苏省宿迁市事业单位引进名校优生120人历年高频重点提升(共500题)附带答案详解
- 人教版四年级上册寒假数学计算题天天练及答案(共15天)
- 2024人教版英语七年级下册《Unit 3 Keep Fit How do we keep fit》大单元整体教学设计2022课标
- 山东省海洋知识竞赛(初中组)考试题及答案
- 药品流通监管培训
- JD37-009-2024 山东省存量更新片区城市设计编制技术导则
评论
0/150
提交评论