第3章 顺序程序设计
第三章最简单的

•由三位二进制位组成的数字.
•十六进制(逢十六进一): (567)16 = 5x162 + 6x161 + 7x160 •其元素为:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
关于存储的几个概念
•字节 (byte) : 计算机一般采用8位二进制位组成一个字节. (1011,0101)2 = 1x27 + 0x26 + 1x25 + 1x24 + 0x23 + 1x22 + 0x21 + 1x20 = 128 + 0 + 32 + 16 + 0 + 4 + 0 + 1
m = c1 + ‗b‘ ; k = 017; /*八进制表示*/ m = 0x1a; /*十六进制表示*/ …
main( )
{… x = PI * RADIUS * RADIUS; p = 2*PI* RADIUS ; … } 注意:符号常量产生后不能再赋值
}
(1)整型常量(整数)
– 书写形式: 十进制、八进制(以数字0开头)或十六 进制数(以0x或0X开头)幻灯片 6
2)字符数据在内存中的存储形式及其使用方法 将一个字符常量存放到字符变量中时,相当于把该 字符常量对应的ASCII码值按8位二进制存入到字符变量所 在的存储单元中。 实际上,字符数据和整数的存储形式一样,它既可 以看作是字符,也可以看作是整数(char型的范围是-128 〜127、unsigned char型的范围是0〜255 )。例如: main() { char c1,c2; c1 = 97; c2 = ‘b’; printf(“\n%c\t%c", c1,c2); printf(“\n%d\t%d", c1,c2); } 注:%d显示一个整数 %c显示一个字符 \n \t转义字符 输出结果: a b 97 98
c语言程序设计(包云)c第3章顺序程序设计

• 为什么用计算机运算时,要指定数据的类型呢?
2019/5/19
第3章 数据类型、运算符与表达式
25
C的数据类型
基本类型
数据类型
派生类型
在程序中对用到的 所有数据都必须指
定其数据类型.
空类型 枚举类型
?
整型
字符型 浮点型 布尔型
单精度型 双精度型
指针类型 数组类型
结构体类型
C程序设计
第三章 最简单的C程序设计 -顺序程序设计
主要内容
3.1 顺序程序设计举例 3.2 数据的表现形式及其运算 3.3 C语句 3.4 数据的输入输出
2019/5/19
第3章 数据类型、运算符与表达式
2
3.1 顺序程序设计举例
例3.1将华氏温度转化为摄氏温度。
c 5 ( f 32) 9
2、组成:只能由字母、数字、下划线组成。且 第一个字符必须为字母或下划线。
3、长度:标识符的有效长度随系统而异,如果 超长,则超长部分被舍弃。VC++6.0中规定最大 长度为247个字符。Turbo C中的最大长度为32.
4、标识符命名的良好习惯──见名知意 例如,name(姓名)、age(年龄)
2019/5/19
程中是否可以修改产生了常量和变量的概念。
存储地址:在内存的什么位置保存该量。对于一些
深层低端编程人员或者特定程序而言,地址是不可缺 少的一种概念/工具。
类型: 决定了量的基本操作和性质。同地址结合,
产生了空间大小和值域的概念。
对于量的访问,高级语言一般提供的是名字,而汇编中往 往直接面对地址的概念来处理。
规范化指数形式:小数 部分采用纯小数形式,
第3章 顺序结构程序设计

3.1.3 算法的表示
➢对于同一算法,允许在算法的描述和实 现方法上有所不同。常用的算法描述方 法可以归纳为以下几种:
自然语言 传统流程图 结构化流程图(N-S流程图) 伪代码 计算机语言
i+1i
N
i>5
Y
结束
输出t 26
开始
例2:将欧几里德 算法用流程图的 形式表示。
Y
输出n
输入m,n
m%nr
r=0
N nm
结束
rn
➢通过上面的例子可以看出流程图是表示算 法的较好的工具
➢一个流程图包括以下几部分:
(1) 表示相应操作的框 (2) 带箭头的流程线 (3) 框内外必要的文字说明
➢流程线不要忘记画箭头,否则难以判定各 框的执行次序
if(m<n)
{t=m; m=n; n=t;}
/* 若m中的数小于n中的数,交换m和n中的数 */
r = m % n;
while (r)
{ m = n;
n = r;
r = m % n;
}
printf("%d"\n,n);
}
3.2 基本语句
3.2.1 程序的结构 3.2.2 C语言的基本语句 3.2.3 赋值语句
9
什么是算法:
♦计算机算法可分为两大类别:
● 数值运算算法(求数值解) ● 非数值运算算法(排序、查找搜索等)
♦数值运算的目的是求数值解 ♦非数值运算包括的面十分广泛,最常见
的是用于事务管理领域
10
简单的算法举例:
《C语言程序设计》第三章 顺序结构程序设计

第三章顺序结构程序设计3.1 基本要求z掌握C语言中使用最多的一种语句——赋值语句的使用方法。
z掌握各种类型数据的输入输出的方法,并能正确使用各种格式转换符。
z掌握文件包含预处理命令#include。
3.2 内容小结本章主要介绍了一些为编写简单程序所必须的语句及基本的输入输出方法。
它们是C语言中5类基本语句:控制语句、函数调用语句、表达式语句、空语句和复合语句。
格式输入输出函数scanf( )和printf( ):在C语言中没有专用的输入输出语句,但可通过调用输入输出函数及C系统提供的9种格式字符,进行各种类型数据、各种格式的输入输出。
单个字符的输入输出函数getchar( )和putchar( )。
文件的包含:函数是C程序的构成单元,C程序中的函数调用可分为两类,本源程序中函数的调用和非本源程序中函数的调用,如是后者需用#include 文件包含预处理命令把该函数所在的源文件包含到本源文件中来。
3.3 典型例题分析z例题1 printf( )函数的功能main( ){ int a , b;a=10;b=25;printf(“a=%d b=%d\n”,a,b);printf(“a+b=%d\na-b=%d\n”,a+b,a-b);}运行结果:a=10 b=2529a+b=35a-b=-15从上例中可以看出,转换说明符不仅规定了输出格式,而且也决定了输出项在整个输出信息中的位置。
此外,从上例也可以看出,输出项还可以是运算表达式,这时输出的是它的运算结果值。
z例题2 scanf( )函数的功能main( ){ int x, y;printf(“Enter integer x:”);scanf(“%d”,&x);printf(“Enter integer y:”);scanf(“%d”,&y);printf(“x+y=%d\n”,x+y);printf(“x-y=%d\n”,x-y);}该程序是以人机对话方式给变量x和y赋值,它的某次运行情况如下所示:Enter integer x:16〈CR〉Enter integer y:25〈CR〉x+y=41x- y=-9其中划有下横线的部分是从键盘打入的字符,其中〈CR〉表示回车键。
C程序设计(第五版)-第3章最简单的C程序设计—顺序程序设计课后习题答案

C程序设计(第五版)-第3章最简单的C程序设计—顺序程序设计课后习题答案1.假如我国国民⽣产总值的年增长率为7%,计算10年后我国国民⽣产总值与现在相⽐增长多少百分⽐。
计算公式为p = ( 1 + r ) n次⽅,其中 r为年增长率,n为年数,p为与现在相⽐的倍数。
#include <stdio.h>#include <math.h>/*** @brief* 假如我国国民⽣产总值的年增长率为7%,计算10年后我国国民⽣产总值与现在相⽐增长多少百分⽐。
* 计算公式为p = ( 1 + r ) n次⽅,其中 r为年增长率,n为年数,p为与现在相⽐的倍数。
** @return int*/int main(){float r, p, n;r = 0.07;n = 10;p = pow(1 + r, n);printf("p=%f\n", p);system("pause");return 0;}2、存款利息的计算。
有1000元,想存5年,可按以下5种办法存:(1)⼀次存5年期(2)先存2年期,到期后将本息再存3年期(3)先存3年期,到期后将本息再存2年期(4)存1年期,到期后将本息再存1年期,连续存5次(5)存活期存款,活期利息每⼀季度结算⼀次2017年银⾏存款利息如下:1年期定期存款利息为1.5%;2年期定期存款利息为2.1%;3年期定期存款利息为2.75%;5年期定期存款利息为3%;活期存款利息为0.35%(活期存款每⼀-季度结算⼀-次利息)如果r为年利率,n为存款年数,则计算本息的公式如下:1年期本息和: P= 1000* (1+r);n年期本息和: P= 1000* (1+n* r);存n次1年期的本息和: P=1000* (1+r)^n;活期存款本息和: P= 1000 *(1+r/4) ^{4n};说明: 1000 *(1+r/4)是⼀个季度的本息和。
第3章 顺序结构程序设计

致命错误: main函数中,xxx行 语句丢分号 Warning xxx Possible use of „x‟ before definition in … 警告:xxx中xxx行 在定义前可能使用了‘x’ 运行错误要具体问题具体分析;一般较复杂。 简单跟踪:在程序中加入输出语句
[例4.2] 从键盘输入一个小写字母,要求用大小写 字母形式输出该字母及对应的ASCII码值。 #include "stdio.h" main() {char c1,c2; printf("Input a lowercase letter: "); c1=getchar(); putchar(c1);printf(",%d\n",c1); c2=c1-32;/*将大写字母转换成对应的小写字母*/ printf("%c,%d\n",c2,c2); } 程序运行情况如下: Input a lowercase letter: a↙ a,97 A,65 程序演示
在顺序结构程序中,各语句 (或命令)是按照位置的先后次序, 顺序执行的,且每个语句都会被执 行到。
顺序结构程序设计举例
[例子4.1]输入一个圆的半径,求它的面积。 #include <stdio.h> #define PI 3.1415 void main() {float r, area; scanf(“%f”,&r); area=PI*r*r; printf(“r=%7.2f, area=%7.2f\n”,r,area); } 程序演示
建议:为改善人机交互性,同时简化输入 操作,在设计输入操作时,一般先用 printf()函数输出一个提示信息,再用 scanf()函数进行数据输入。 如: printf(“please input data:\n”); scanf(“%d,%d”,&sum1,&sum2);
第3章 顺序结构程序设计PPT课件
4.标识符
标识符是一个数据对象的名字 变量名、符号常量名是标识符 标识符命名规则
字母或下划线开始,后跟字符、数字或下划线 以下为合法的标识符
x1, sum, _average, day, month, lotus_1_2_3 以下为不合法的标识符
$456, #abc, 1fs, 2nd, M.D.Jhon 变量名不能是关键字(即保留字P378)
-10的原码 取反 再加1
int i=10 0 0 0 00 0 0 0 0 00 0 1 0 1 0
int j= -10 1000000000001010
1 1 11 1 1 11 1 1 1 1 0 10 1
得-10的补码 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 符号位
4.常见整型数据的存储空间和值的范围
#include <stdio.h> main( ) {
int a, b, c, d; unsigned u; a=12; b=-24; u=10; c=a+u; d=b+u; printf("a+u=%d, b+u=%d\n",c,d); }
6.整型数据的溢出
一个int 型变量的最大允许值为32767,如果再加1,其 结果不是32768,而是-32768,即"溢出"。
例 main() { int a, b; a=32767; b=a+1; printf("%d, %d\n",a,b); }
32767
0 1 11 1 1 11 1 1 1 1 1 11 1
-32768 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
第3章顺序结构程序设计
一、C的数据类型
2、 变量 • 变量代表内存中具有特定属性的一个存储单元,它
用来存放数据,这就是变量的值,在程序运行期间, 这些值是可以改变的。
int a=25;
2001H
25
2002H
2003H
Advanced Programming
一、C的数据类型
2、 变量
Advanced Programming
二、常量与变量
1、 常量和符号常量
(1)整型常量
• 在一个整常量后面加一个字母u或U,认为是unsigned int 型。
• 在一个整常量后面加一个字母l或L,则认为是long int型常 量。 如123l.432L.0L等。
Advanced Programming
❖每个二进位的值是0或1
54
01
0 1 2 3 4 5 6 7 8 9 10
32
10
10
01
……...
Advanced Programming
一、C的数据类型
1、整型数据
常见的整型类型:
类型
类型说明符 长度 数的范围
基本整型 int
2字节 -32768~32767
短整型
short
2字节 -215~215-1
一、C的数据类型
1、 常量和符号常量 (4)字符串常量
• C规定:在每一个字符串常量的结尾加一个 “字符串结束标志”,以便系统据 此判断字符串是否结束。
C规定以字符’\0’作为字符串结束标志。
如:如果有一个字符串常量”CHINA” ,实际上在内存中是:
C H I N A \0
它占内存单元不是5个字符,而是6个字符,最后一个字符为’ \0’。 但在输出时不输出‘\0’。
第3章顺序结构程序设计
第3章顺序结构程序设计第3章最简单的C程序设计——顺序程序设计本章要求1、掌握程序的三种基本结构特点及其控制语句的使⽤。
2、重点掌握数据输⼊、输出函数及其格式控制。
3、熟悉Turbo C环境的使⽤,头⽂件,帮助系统的使⽤(Ctrl+F1)。
3.1程序的三种基础结构顺序、选择、循环。
3.2 C语句概述C程序结构如图:⼀个C程序可以由多个源程序⽂件构成,Turbo C⽤“⼯程⽂件”(prj:Project)来描述该程序由那些源程序⽂件构成。
所有这些源程序⽂件经过分别编译后形成各⾃的⽬标⽂件,经连接程序LINK后形成⼀个EXE⽂件。
⼀个源程序⽂件由若⼲函数和“预编译命令”构成。
函数包括数据定义部分(变量定义)和执⾏部分,执⾏部分是C语⾔语句,完成对数据的操作。
C语句有以下五类:1、控制语句,完成程序流程控制。
if()~else~条件语句for()~循环语句while()~循环语句do~while() 循环语句continue 结束本次循环语句break 中⽌switch或循环语句switch 多分⽀选择语句goto 转向语句return 从函数返回语句( )表⽰条件,~表⽰内嵌的语句,若有多个语句既复合语句⽤{}括起来。
2、函数调⽤语句。
例、printf("This is a C statement."); /* 该语句调⽤函数printf() */3、表达式语句:在表达式后⾯加分号构成。
例:a = 3 /* 后⾯⽆分号,是表达式 */a = 3; /* 后⾯有分号,是语句 */i++; /* 语句 */4、空语句:仅包含⼀个分号的语句,例、;5、复合语句:由⼤括号{ }括起来的语句序列。
例、{ z = x + y;t = z / 100;printf("%f",t);}注:C语⾔允许⼀⾏写多个语句,也允许⼀个语句写多⾏。
3.3 赋值表达式和赋值语句⼀、赋值表达式1。
第三章顺序程序设计
著名计算机科学家沃思(Nikiklaus Wirth)提出: 数据结构+算法=程序
描述数据 的类型, 组织形式
描述对数据 的操作步骤
3.1 算法与程序设计
(本节请参考潭浩强《C程序设计》三版,第2章 算法,受时 间限制本节只能做简单介绍)
1、算法:为解决一个问题而采取的方法和步骤称为“算法”。 对于同一个问题可以有不同的解题方法和步骤,也就是有不
3.4.1 printf函数(格式输出函数) 2.格式字符 :对于不同类型的数据项应当使用不同的格式字符构
成的格式说明项。
(1)d格式符(i格式符)。表示输出带符号的十进制的整数。 ▪ %d,%i按照数据的实际长度输出。printf(“%d”,a);
printf(“%i”,a);
▪ %md,m指定输出字段的宽度(整数)。如果数据的位数 小于m,则左端补以空格(右对齐),若大于m,则按照实 际位数输出。
3.3输入/输出及其C语言的实现
4.C函数库中有一批“标准输出) putchar(输出字符) puts(输出字符串)
scanf(格式化输入) getchar(输入字符) gets(输入字符串)
3.3输入/输出及其C语言的实现
5.在使用C库函数时,要用预处理命令“#include” 将有 关 的“头文 件”包含到用户源文件中。头文件包含库中函数 说明,定义的常 量等。每个库一般都有相应的头文件。
式完成输出功能。它可以向屏幕输出字符,字符串, 数值,及空行等。输出的内容可以是执行结果,也可 以是提示语。
1. printf函数的一般格式 : printf(格式控制字符串,输出表列)
3.4 格式输入/输出
3.4.1 printf函数(格式输出函数)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
25
例 scanf(“%d,%d”,&a,&b) 输入 3,4 则3a, 4 b
例 scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);
输入 a=12,b=24,c=36
18
任 务
编写程序,从键盘输入圆的半径r,圆
柱的高h,分别计算圆周长cl和圆柱体积
cv。输出结果取小数点后2位的数字。
19
分析
step1:从键盘输入圆的半径r,圆柱的高h step2:求圆的周长及圆柱体积 公式: 圆周长cl=2*3.14*r 圆柱体积cv=3.14*r*r*h step3:输出结果
26
scanf附加格式说明符 m 表示数据占用的宽度
例 scanf(“%4d%2d%2d”,&yy,&mm,&dd); 输入 19991015 则1999yy, 10 mm, 15 dd
27
例 : scanf(“%3c%2c”,&c1,&c2); 输入 abcde 则‘a‟c1, „d‟ c2
32
字符输出函数
格式: putchar( c ) 参数: c为字符常量、变量或整型变量 功能:把字符c输出到显示器上 #include <stdio.h> main( ) { int c; char a; c=65; a='B'; putchar(c); putchar('\n'); putchar(a); }
功能
按指定格式向显示器输出数据
printf("a=%d b=%f", a, b);
函数名
普通字符
输出表列 格式转换说明符
10
格式字符: d,i 十进制整数 x,X 十六进制无符号整数 o 八进制无符号整数 u 不带符号十进制整数 c 单一字符 s 字符串 e,E 指数形式浮点小数 f 小数形式浮点小数 g e和f中较短一种 %% 百分号本身
输入:3,4,6 输出:a= 3.00, b= area= 5.33
4.00, c=
6.00
s=
6.50
38
例2: 从键盘输入大写字母,用小写字母输出 #include "stdio.h" main( ) { char c1,c2; c1=getchar( ); printf("%c,%d\n",c1,c1); c2=c1+32; printf("%c,%d\n",c2,c2); } 输入:A 输出: A,65 a,97
2. 顺序结构程序的函数体
(1)变量类型的声明 (2)提供数据语句 (3)运算部分 (4)输出部分
37
3.3 程序举例 例1: 输入三角形边长,求面积。
#include <math.h> #include <stdio.h> 文件包含预处理命令 main( ) 变量定义 { float a,b,c,s,area; scanf("%f,%f,%f",&a,&b,&c); 输入数据 s=1.0/2*(a+b+c); 输出数据 area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2f\n",a,b,c,s); printf("area=%7.2f\n",area); }
cv=PI*r*r*h;
输出cl,cv 结束
printf(“cl=%.2f,cv=%.2f”,cl,cv);
}
31
字符输入函数
格式: getchar( ) 功能:从键盘读一字符,显示在屏幕上 #include <stdio.h> main() 运行结果: { char c; Enter a character:A printf("Enter a character:"); A--->hex41 c=getchar( ); printf("%c--->hex%x\n",c,c); }
例 int a=3,b=4; 例printf(“%d main( ) %d\n”,a,b); { unsigned ,int u=65535; printf(“a=%d b=%d \n”,a,b); \n”,u); 输出结果printf(“u=%d : 3 4 } a=3, b=4 输出结果:u= -1
}
21
1 2
格式输出函数printf( ) 格式输入函数scanf( ) C语句分类
3
22
2、格式输入函数scanf( )
格式 功能
scanf(“格式控制串”,地址表列)
按指定格式从键盘读入数据,存入地址表指 定的存储单元中,并按回车键结束
地址表列:变量的地址,常用取地址运算符&
scanf(“%d,%f”, &a,&b);
11 11 11 11 11 11 11 11
65535
12
附加格式说明符(修饰符)
修饰符 功 能 m 输出数据域宽,数据长度<m,左补空格;否则按实际输出 .n + 对实数,指定小数点后位数(四舍五入) 对字符串,指定实际输出位数
输出数据在域内左对齐(缺省右对齐)
指定在有符号数的正数前显示正号(+) 输出数值时指定左面不使用的空位置自动填0
printf(“%s”,“ABC”);
float a=567.789;printf(“%e”,a); float a=567.789;printf(“%f”,a); float a=567.789;printf(“%g”,a); printf(“%%”);
%
11
说明 格式字符要用小写 格式字符与输出项个数应相同,按先后顺序一一对应 输出转换:格式字符与输出项类型不一致,自动按指定 格式输出
28
2、格式输入函数scanf( )
说明:
输入数据时,遇以下情况认为该数据结束:
遇空格、
TAB、或回车
遇宽度结束 遇非法输入
如 scanf(“%c%c%c”,&c1,&c2,&c3); 若输入a• b• c 则ac1, •c2, b c3
29
任 务
编写程序,从键盘输入圆的半径r,圆
理解C顺序程序设计的概念
6
分析任务 流程图:
开始 输入r,h cl=2*3.14*r cl=2*3.14*r;
main( ) { float r,h,cl,cv;
cv=3.14*r*r*h
cv=3.14*r*r*h;
输出cl,cv
结束
}
7
数据的输入输出(函数调用语句)
输入:从标准输入设备上输入数据到计算机内存 输出:将计算机内存中的数据送到标准输出设备 C语言中输入输出操作通过调用标准库函数来实现
39
例3:求方程ax2+bx+c=0的根(b2-4ac>0)
#include <stdio.h> #include <math.h> main( ) { float a,b,c,disc,x1,x2,p,q; scanf("a=%f,b=%f,c=%f",&a,&b,&c); disc=b*b-4*a*c; p=-b/(2*a); q=sqrt(disc)/(2*a); x1=p+q; x2=p-q; printf("\nx1=%5.2f\nx2=%5.2f\n",x1,x2); } 输入:a=1,b=3,c=2 输出:x1=-1.00 x2=-2.00
int a=567;printf ( “%d”,a); int a=255;printf(“%x”,a); int a=65;printf(“%o”,a); int a=567;printf(“%u”,a); char a=65;prBC 5.67789e+02 567.789000 567.789
柱的高h,分别计算圆周长cl和圆柱体积
cv。输出结果取小数点后2位的数字。
30
流程图:
开始
输入r,h cl=2*PI*r cv=PI*r*r*h #define PI 3.14 #include <stdio.h> main( ) { float r,h,cl,cv;
分析任务
scanf(“%f,%f”,&r,&h); cl=2*PI*r;
1234,1234• 124.46,124.5• Hello,Hel•
16
格式输出函数printf( )
格式
功能
printf(“格式控制串”,输出表列)
按指定格式向显示器输出数据
格式字符:d,o,x,u,c,s,f
17
格式输出函数printf( )
a=3;b=4; printf("a=%d,b=%f", a, b); a=3,b=4.000000
14
例 m.n
例 static char a[]=“Hello,world!” printf(“%s\n%15s\n%10.5s\n%2.5s\n%.3s\n”,a,a,a,a,a); 输出结果 Hello,world! Hello,world! Hello Hello Hel
15
例 int a=1234; float f=124.456; static char c[]=“Hello,world!”; printf(“%8d,%-8d\n”,a,a); printf(“%10.2f,%-10.1f\n”,f,f); printf(“%10.5s,%-10.3s\n”,c,c);