C语言程序设计教程 第2章
C语言程序设计(谭浩强版)第二章

不应是中断程序的执行,而应是返回一个
表示错误或错误性质的值,以便在更高的
抽象层次上进行处理。
算法设计的原则
4.高效率与低存储量需求
通常,效率指的是算法执行时间; 存储量指的是算法执行过程中所需 的最大存储空间, 两者都与问题的规模有关。
算法设计的原则
算法的时间复杂度
第二章 程序的灵魂——算法
2.1 算法的概念 2.2 算法的简单举例
2.3 算法的特性 2.4 怎样表示一个算法 2.5 结构化程序设计方法
算法的概念
计算机应用: 提取数学模型—设计算法— 编程—测试—应用
程序设计=数据结构+算法
数据结构:对数据的描述 算法:对操作的描述 除此之外程序设计还包括:程序设计方法, 和程序设计语言
怎样表示一个算法
例4的伪代码表示法如下 开始 读入整数n 置sum的初值为0 置k的初值为1 执行下面的操作: 如果k为奇数,置item=1/k 如果k为偶数,置item=-1/k sum=sum+item 直到k>n 打印sum的值 结束
算法设计的原则
算法设计的原则
设计算法时,通常应考虑达到以下目标: 1.正确性 2.可读性 3.健壮性 4.高效率与低存储量需求
从算法中选取一种对于所研究的问题 来说是 基本操作 的原操作,以该基 本操作 在算法中重复执行的次数 作 为算法运行时间的衡量准则。
结构化程序设计方法
采用结构化算法写成的计算机程序是结构 化程序。要编写出结构化程序,经常采用 的方法是结构化程序设计方法。这种方法 的基本思路是: 把给定的问题按层次(纵方向)、分阶段 (横方向)分解为一系列易于编程解决的 小问题,然后对应着这些分解的小问题, 设计结构化的算法,最后采用语言将算法 描述出来。这样一种程序设计方法就是结 构化程序设计方法。
C语言程序设计(李圣良)章 (2)

}
第2单元 顺序和选择结构程序设计
图2-6 例2-6程序运行结果 注意,长整型的数据输出使用“%ld”或“%Ld”,在 Visual C++ 6.0系统中,“%d”、“%ld”控制结果一样,但 在Turbo C中则要严格区分。 (4) %mld:按照指定宽度输出长整型数据。
第2单元 顺序和选择结构程序设计
第2单元 顺序和选择结构程序设计
以上介绍了常用的几种格式符,归纳如表 2-1 所示。
第2单元 顺序和选择结构程序设计
2.1.2 输出语句printf函数 对于一个有意义的程序来说,应该有一个或多个输出,也
就是至少要有一个输出,将程序的结果进行输出。所谓输出, 是指从计算机向外部输出设备(显示器、打印机、磁盘等)输出 数据。一般默认的标准输出设备是显示器。
C语言本身并不提供专门的输入输出语句,C语言中的输入 输出操作是调用专门的输入输出函数来完成的。输入输出函数 的有关信息存放在文件“stdio.h”中,“stdio.h”是标准输 入输出库的头文件,其中包含了所有的标准输入输出函数的有 关信息。因此,在使用这些函数前,必须有“# include <stdio.h>”编译预处理命令,否则系统会提示出错信息 “error C2065:'printf':undeclared identifier”。
{ 语句 1; 语句 2; … 语句 n;
} 例如: { t=x;
x=y; y=t; }
第2单元 顺序和选择结构程序设计
4. 控制语句 控制语句是C语言程序中用来控制程序流程的语句。在C语 言中可具体划分为9种程序流程控制语句。 条件判断语句:if,switch。 循环语句:do…while,while,for。 转向语句:break,continue,goto,return。 以上9种控制语句具体的应用将在后续单元中进行详细讲 解。
C语言程序设计教程第2章程序流程

流程图
算法
确定
程序结构
变量类型
程序语句
(7)调试
调试
C语言程序设计
第二章 程序设计和程序结构
良好的程序编写风格会大大缩 短调试过程,附录4介绍了C语言程 序的一般书写风格,附录11介绍了 一些常见的错误。
C语言程序设计
第二章 程序设计和程序结构
2.1.2 算法
在实际的编程过程中要注意:
1、避免拿起题目就开始写程序的 2、应该先设计出合适的算法
第二章 程序设计和程序结构
本章概述
2.3程序结构 2.1程序设计与算法 2.4流程图及程序例子 2.2流程图
C语言程序设计
第二章 程序设计和程序结构
本章概述
• 本章主要介绍了C语言的程序结构、 流程图的绘制和程序设计的过程。 • 学习目标: • 1、理解程序的开发、设计过程 • 2、掌握C语言程序结构
C语言程序设计
第二章 程序设计和程序结构
其中最后一行的“Press any key to
continue”是VC6.0自动添加在每个
程序运行结果后面的一句提示信息,它
表示当程序执行结束时,操作者可以按
任意键返回到编辑界面。在后面的程序 运行结果中,将不再给出这一信息。
C语言程序设计
第二章 程序设计和程序结构
scanf("%d",&num1);
printf("Input the 2nd integer number: "); scanf("%d",&num2); sum=num1+num2; printf("sum=%d\n",sum); }
C语言程序设计
《C语言程序设计教程》第三版课后习题参考答案

《C语言程序设计教程》第三版课后习题参考答案C语言程序设计教程第三版课后习题参考答案第一章:C语言概述1.1 C语言的特点答案:C语言是一种通用的、面向过程的程序设计语言,具有高效、简洁、灵活等特点。
它提供了丰富的程序设计元素和功能,适用于各种不同的应用领域。
1.2 C语言程序的基本结构答案:C语言程序由预处理指令、函数声明、函数定义、变量声明和语句组成。
其中,预处理指令用来引入头文件或定义宏,函数声明用来声明函数的名称和参数,函数定义用来实现函数的功能,变量声明用来声明变量的类型和名称,语句用来表达具体的计算过程。
1.3 C语言的数据类型答案:C语言提供了多种数据类型,包括基本类型(整型、浮点型、字符型等)和派生类型(数组、指针、结构体等)。
每种数据类型在内存中占据一定的存储空间,并具有特定的取值范围和操作规则。
1.4 C语言的运算符和表达式答案:C语言支持各种运算符和表达式,例如算术运算符(+、-、*、/等)、关系运算符(>、<、==等)、逻辑运算符(&&、||、!等)等。
通过运算符和表达式可以进行各种数值计算和逻辑判断。
第二章:基本数据类型与运算2.1 整型数据类型答案:C语言提供了不同长度的整型数据类型,包括有符号整型(int、long等)和无符号整型(unsigned int、unsigned long等)。
整型数据类型可以表示整数值,并具有不同的取值范围。
2.2 浮点型数据类型答案:C语言提供了浮点型数据类型(float、double等),用来表示带小数部分的实数值。
浮点型数据可以表示较大或较小的数值,并具有一定的精度。
2.3 字符型数据类型答案:C语言提供了字符型数据类型(char),用来表示单个字符。
字符型数据可以用于表示各种字符(包括字母、数字、符号等)。
2.4 布尔型数据类型答案:C语言不直接支持布尔型数据类型,但可以使用整型数据类型来表示布尔值(0表示假、非零表示真)。
第二章 C语言程序设计

例:整型数据的溢出。 main( ) { int a, b; a=32767; b=a+1;
printf(“%d,%d”,a,b);
}
返回
整型变量的定义
[unsigned][short][long] int <变量名1>, <变量名2>,……<变量名n>;
表达式1,表达式2……表达式n
说明:
1、逗号运算符的结合性为从左到右
2、所有运算符中,逗号运算符的优先级最低
练习题
执行下列语句后,a和b的值 分别为
int a, b; a=1+(b=2+7%-4-’A’)
练习题
执行下列语句后,a和b的值 分别为 -59,-60
int a, b; a=1+(b=2+7%-4-’A’)
练习题
一个C语言的源程序中,
(A)必须有一个主函数
。
(B)可以有多个主函数
(C)必须有主函数和其他函数
(D)可以没有主函数
练习题
1、编程实现,输入一个数,输出其 绝对值。 2、编程实现,输入a,b,c三个数, 输出其中最大者。
题 1、
Void Main()
{
int a, result; /*定义变量*/ scanf(“please input a number:%d”, &a); if (a>=0) result=a; else result=-a;
3、类型转换
例:
void main( )
{ float x, y;
C语言程序设计第2章

章要点 退出
上一页 下一页
学习目标与要求
1、掌握C语言中基本的数据类型
2、理解并掌握程序中常量和变量的概念、 定义及应用
3、掌握各类运算符及其优先级和结合性, 能正确书写和计算各类表达式的值
4、掌握常用库函数的使用方法,会使用TC 的帮助文件
章要点 退出
《C语言程序设计》
数位 b15 b14 b13 b12 b11 b10 B9 b8 b7 b6 b5 b4 b3 b2 b1 b0 0 0 0 0 0 00 000001111
符号位
15 的二进制表示 图 2-1 十进制数 15 两个字节的补码表示
章要点 退出
《C语言程序设计》
上一页 下一页
18
(2)该数为负整数时,求补码口诀为“求反加 一”。先求出该负数的二进制表示,将其按位取 反(符号位除外),再在最低位加1。
在本章中,我们先介绍基本数据类型中的整 型、浮点型和字符型。其余类型在以后各章中陆 续介绍。
章要点 退出
《C语言程序设计》
上一页 下一页
6
常量与变量
标识符命名
在C语言中,标识符是用来标识变量名、符号 常量名、函数名、数组名、类型名、文件名的有 效字符序列。
C语言中规定标识符只能由字母、数字、下划 线三种字符组成,且第一个字符必须为字母或下 划线。
例如:ch1、ch2、add、_sum、Student_name、 a_2_b、PI等都是合法的,而3a、a!、¥168、 M.D.Tom、high a等都是非法的。
章要点 退出
《C语言程序设计》
上一页 下一页
7
标识符的长度可以是一个或多个字符,大部分
c语言程序设计第2章(谭浩强)

第2章程序的灵魂——算法1. 概念:为解决某一特定问题而采取的具体工作步骤和方法。
2. 举例◆计算1+2+3+……+100的值◆计算1×2×3×……×1000的值◆有50个学生,要求输出他们之中成绩在80分以上的学号和成绩◆判定2000-2500年中的每一年是否闰年3. 算法的表示(1) 自然语言(2) 流程图表示法(3) 伪代码表示法(4) 计算机语言表示法(2) 流程图表示法顺序结构、选择结构和循环结构流程图这三种基本结构有以下共同的特点:1. 只有一个入口;2. 只有一个出口;3. 结构中的每一部分都有被执行到的机会;4. 结构内没有死循环。
用上述基本结构的顺序组合可以表示任何复杂的算法结构,但是基本结构中的流程线使流程图显得较乱,于是1973年美国学者提出了一种新的流程图形式。
在这种流程图中,完全去掉了带箭头的流向线,全部算法写在一个矩形框内。
下面是三种控制结构的N-S图。
例1 求四个数的和算法一:在内存中设一累加用的存储单元S。
第1步:将存储单元S清零。
第2步:输入第1个数a1。
第3步:把a1加到存储单元S中。
第4步:输入第2个数a2。
第5步:把a2加到存储单元S中。
第6步:输入第3个数a3。
第7步:把a3加到存储单元S中。
第8步:输入第4个数a4。
第9步:把a4加到存储单元S中。
第10步:把存储单元S中的结果输出。
算法二:在内存中设一累加用的存储单元S和一计数用的单元I。
第1步:将累加单元S清零。
第2步:将计数单元I清零。
第3步:输入一个数A。
第4步:把A加到累加单元S中。
第5步:计数单元I的值增加1,即I+1=>I。
第6步:若I<4则转去执行第3步,否则,继续执行第7步。
第7步:输出存储单元S中的结果。
开始结束S+A=>S 0=>S 0=>I 输入A I+1=>I I<4输出S 0=>s0=>I输入A S+A=>S I+1=>I 直到I=4输出结果S N-S 图Y例2 求5!开始结束T*i=>t 1=>t 2=>i i+1=>i i>5输出S N例3 将50名学生中成绩在80分以上练习1:交换两个单元的内容。
C语言第2章 数据类型及运算符

C/C++程序设计第2 章数据类型及表达式计算机学院C/C++程序设计课程组C/C++程序设计第2章主要内容本章主要介绍:基本数据类型和存储类型的说明方法,以及基本运算符的运算规则和表达式的构成方法,为后续章节的学习奠定一个基础。
C/C++程序设计2.1 C 语言的数据类型使用高级语言编写程序,主要工作有两项:一是描述数据,二是描述数据加工的方法。
数据类型图 2.1C 语言的数据类型基本类型整型实型字符型带符号长整型(简称长整型)带符号整型无符号整型无符号整型无符号短整型无符号长整型单精度型双精度型空类型构造类型指针类型枚举类型数组类型结构体类型共用体类型C/C++程序设计2.2 常量常量是程序运行过程中其值不发生变化的数据。
2.2.1 整型常量表2.1 整型数据的表示方式2.2.2 实型常量3.14、.9999、-3.14159、834.、–0.666 、6.89E-52.2.3 字符常量’x’,’a’,’A’,’b’,’$’,’#’ ,printf("\tab\rcd\n\’ef\\g");2.2.4 符号常量#define 符号常量字符串#define PI 3.14159C/C++程序设计【例2.1】求一个圆柱体体积,用符号常量代替π。
#include <stdio.h>#define PI 3.14159 /*定义PI为符号常量*/void main(){float r,h,v;scanf("%f,%f",&r,&h);v=PI*r*r*h; /* PI相当于3.14159,参与运算*/printf("Volume=%f",v);}运行时输入:3,2↙运行结果为: Volume=56.548618C/C++程序设计2.2.5 字符串常量"\tab\rcd\n\’ef\\g“"I am a student" 、"x"、""注意:’\0’和’0’不同,’\0’是编码为0的字符,而’0’则是数字0,其编码为48。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8
第2章 C语言的基本数据类型与表达式
1,直接常量:是在程序中直接引用的数据. ,直接常量:是在程序中直接引用的数据. 请 判 断 这 些 常 量 正 确 与 否 : 120 , -100, 0; 100, 0120, 072; 0120, 072; 0xFFFF, 0x1e,0X28AF,0XED4 ; xFFFF, 28AF, XED4 120L, 200L 120L, 200L ; 长整型常量 3.14, -3.1, 5.12E-6 ; 14, 12E 'a' ,'#','\n','\101' ; '#', n', 101' 099,12f 099,12f, 0xg ,48EA ; 48EA 019. 019.5 , 1e-08; 08; 型常量 用 2.1E +10.2,E-6,6.4E+4.8,E9 ; 10. E+4 "changsha" ,"+++\\ ab" ; changsha" +++\ ab"
6
第2章 C语言的基本数据类型与表达式
例如:字符A的ASCII码为: 例如:字符A ASCII码为: 码为 65D(十进制)=41H(十六进制)=101Q(八进制) 65D(十进制)=41H(十六进制)=101Q(八进制) ∴字符A可以表示为'A','\x41','\101'. 字符A可以表示为' x41' 101' 2,分类: 分类: char; char 和 unsigned char; 值域: 3,值域: 每个字符型数据在内存中占一个字节;包括ASCII ASCII字符 每个字符型数据在内存中占一 个字节 ;包括ASCII 字符 表中的所有字符(可显示字符和非显示字符) 表中的所有字符(可显示字符和非显示字符). 字符串: 4,字符串: 是用一对双引号括起来的字符序列. 是用一对双引号括起来的字符序列. SHANGHAI" AbcdeFGHijk" you" 如:"SHANGHAI","AbcdeFGHijk","How are you".
9
第2章 C语言的基本数据类型与表达式
2,符号常量 用标识符来表示一个数据 在程序不能给它赋值. 来表示一个数据; 是 用标识符 来表示一个数据 ; 在程序不能给它赋值 . 定义形式: 定义形式: #define 标识符 常量数据 例如: 例如: #define PI 3.14159 在程序预处理时,凡是出现标识符PI的地方都将用 在程序预处理时,凡是出现标识符PI的地方都将用 数据3 14159来替换 来替换. 数据3.14159来替换. 14159. 如: 2*2.3*PI 就等价于 2*2.3*3.14159. 二, 变量 变量是指以标识符为名字 其值可以改变的量. 以标识符为名字, 变量是指以标识符为名字,其值可以改变的量. 变量代表计算机内存中的某一存储空间, 变量代表计算机内存中的某一存储空间,该存储空间 中存放的数据就是变量的值 的数据就是变量的值. 中存放的数据就是变量的值. 在同一程序块中,变量不能被重复定义 不能被重复定义. 在同一程序块中,变量不能被重复定义. 使用变量时必须"先定义,后使用" 使用变量时必须"先定义,后使用".
自己设定, 自己设定,满足 标识符的规定. 标识符的规定.
;不可省
2,变量初始化 在说明变量的同时给变量一个初始值. 在说明变量的同时给变量一个初始值.
例如
a=5 b=3 int a=5, b=3; √ a=b=c=3 int a=b=c=3; × int a,b,c; a=b=c=3;
√
11
第2章 C语言的基本数据类型与表达式
注意
小数点不能单独出现; 0.√ 小数点不能单独出现; .0 √ . × 的两边必须有数,且其后面必须为整数; e或E的两边必须有数,且其后面必须为整数; 如: 6E0.2 × e5 × 2,分类: 分类:
关键字 float double 字节数 4 8 取值范围 3.4×10-38 ~ 3.4×1038 1.7×10-308 ~ 1.7×10308 精度( 精度(位) 7 15
3
第2章 C语言的基本数据类型与表达式
2,分类: 分类: 根据数据所占的二进制位数分为:int,short,long; 根据数据所占的二进制位数分为:int,short,long; 同样存储长度的数据又分unsigned,signed; 同样存储长度的数据又分unsigned,signed; 故可组合出六种类型. 故可组合出六种类型. 3,值域: 值域: 由机器中数据的存储长度决定. 由机器中数据的存储长度决定. C中 short(2字节 int(2字节 ≤long(4字节 字节)≤ 字节) 字节) 如Turbo C中,有 short(2字节)≤int(2字节) ≤long(4字节)
例2-1: : main( main( ) /*定义 定义x 为整型变量* { int x,y,z,w; /*定义x,y,z,w为整型变量*/ /*定义 为无符号整型变量* 定义k unsigned int k; /*定义k为无符号整型变量*/ x=10 y=-20;k=30 10; 30; x=10;y=-20;k=30; z=x+k;w=y+k; z=x+k;w=y+k; printf( x+k=% y+k=% printf("x+k=%d,y+k=%d\n",z,w); } 程序运行结果为: 程序运行结果为: x+k=40 y+k=10 40, x+k=40,y+k=10
5
第2章 C语言的基本数据类型与表达式
四,字符类型 1,常量: 常量: 用单引号括起来的一个字符; A', 1', (1) 用单引号括起来的一个字符;如:'A', '1','?' 等. 用单引号括起来的由反斜杠( 引导的转义字符. (2) 用单引号括起来的由反斜杠(\)引导的转义字符.
字符形式 \n \t \b \r \\ \' \ddd \xhh 功能 换行 横向跳格 退格 回车 反斜杠字符 单引号字符 进制数表示的ASCII ASCII码对应的字符 8进制数表示的ASCII码对应的字符 16进制数表示的ASCII码对应的字符 进制数表示的ASCII 16进制数表示的ASCII码对应的字符
注意
'\\' √ ''' × '\'' √ \ \ 'a'与"a"的区别. 的区别. a与 的区别
'\' \
×
7
第2章 C语言的基本数据类型与表达式
2.2 常量与变量
一,常量与符号常量 常量是指在程序运行中,其数值不能被改变的量. 常量是指在程序运行中,其数值不能被改变的量. 常量又可分为直接常量和符号常量. 常量又可分为直接常量和符号常量.
4
第2章 C语言的基本数据类型与表达式
三,实型 1,常量: 常量: 十进制小数形式:由数字和小数点组成; (1) 十进制小数形式:由数字和小数点组成; 例如: .3. 例如: 3.4, 4., .3. 指数形式: 十进制小数" e(或E)" (2) 指数形式:"十进制小数"+" e(或E)"+"十进制数整 数". 例如: 12.5e表示12.5 12.5× 例如: 12.5e-6 表示12.5×10-6 .
13
第2章 C语言的基本数据类型与表达式
在函数内部说明的变量或者在复合语句中定义的变 量称为局部变量. 量称为局部变量.其作用范围是其所在的函数或复合 语句. 语句.
14
第2章 C语言的基本数据类型与表达式
4,全局变量 又称全程变量 或外部变量, 或外部变量,在 函数外部说明. 函数外部说明. 其作用范围从它 被定义的位置起, 被定义的位置起, 在之后的程序段 中都是起作用的. 中都是起作用的.
关键字 short unsigned short int unsigned long unsigned long 所占位数 16 16 16 16 32 32 取值范围 -32768~32767 32768~ 0~65535 32768~ -32768~32767 0~65535 2147483648~ -2147483648~2147483647 0~4294967295
10
第2章 C语言的基本数据类型与表达式
1,定义形式:类型标识符: 变量名1 [,变量名2,变量名3...]; 变量名2 定义形式:类型标识符: 变量名1 [,变量名 变量名3...]
如:int, float,char
例如: 例如:int a,b,c ; float x,y; x,y; char c1,c2; 或 int c1,c2; ,c2 ,c2
12
第2章 C语言的基本数据类型与表达式
3,局部变量 语言程序是由函数组成的,且有且只能有一个main函数. main函数 C语言程序是由函数组成的,且有且只能有一个main函数. 变量定义可以出现在函数内, 变量定义可以出现在函数内,亦可出现在函数外或者是函 数的参数中. 数的参数中. 按照变量定义语句出现的位置,可以分为: 按照变量定义语句出现的位置,可以分为: 局部变量:在函数内定义; 局部变量:在函数内定义; 只在该函数中才能使用. 只在该函数中才能使用. 全局变量:在函数外定义; 全局变量:在函数外定义; 从它被定义的位置起, 之后的所有函数中有效 所有函数中有效. 从它被定义的位置起,在之后的所有函数中有效. 形式参数:定义为函数的参数; 形式参数:定义为函数的参数; 只在该函数中才能使用. 只在该函数中才能使用.