西安交大C语言课件第2章

合集下载

c语言教程ppt第2章

c语言教程ppt第2章

可以设两个变量,一个变量代表被乘数,一个变量 代表乘数。不另设变量存放乘积结果,而直接将 每一步骤的乘积放在被乘数变量中。今设p为被乘 数,i为乘数。用循环算法来求结果。可以将算法 改写如下: S1: 使p=1 S2: 使i=2 S3: 使p×i,乘积仍放在变量p中,可表示为 p×i=>p S4: 使i的值加1,即i+1 => i S5: 如果i不大于5,返回重新执行步骤S3以及其后 的步骤S4和S5;否则,算法结束。最后得到p的值 就是5!的值。
上面的S1,S2…代表步骤1,步骤2……S是step(步) 的缩写。这是写算法的习惯用法。 请读者仔细分析这个算法,能否得到预期的结果。 显然这个算法比前面列出的算法简练。 如果题目改为求1×3×5×7×9×11。 算法只需作很少的改动即可: S1: 1=>p S2: 3=>i S3: p×i=>p S4: i+2=>i S5: 若i≤11,返回S3; 否则,结束。
例2.3 判定2000—2500年中的每一年是否闰年,将结 果输出。 闰年的条件是: ①能被4整除,但不能被100整除的 年份都是闰年,如1996年,2004年是闰年;②能 被100整除,又能被400整除的年份是闰年。如 1600年、2000年是闰年。不符合这两个条件的年 份不是闰年。 算法可表示如下: 设y 为被检测的年份。可采取以下步骤: S1:2000=>y S2: y不能被4整除,则输出y ―不是闰年”。然后转 到S6
图 2.3
图 2.4
图 2.5
下面对2.2节中所举的几个算法例子,改用流程图表 示。 例2.6 将例2.1求5!的算法用流程图表示,流程图见图 2.6。 菱形框两侧的“Y‖和“N‖代表“是”(yes)和 “否”(no)。如果需要将最后结果打印出来,可以 在菱形框的下面再加一个输出框,见图2.7。 例2.7 将例2.2的算法用流程图表示。将50名学生中成 绩在80分以上者的学号和成绩打印出来,见图2.8。 在此算法中没有包括输入50个学生数据的部分, 如果包括这个输入数据的部分,流程图如图2.9所 示。

西安交通大学计算方法C讲义

西安交通大学计算方法C讲义

计算方法(C)目录第1章绪论1。

1 数值计算1。

2 数值方法的分析1.2.1计算机上数的运算1.2.2算法分析第2章线性代数方程组2。

1 Gauss消去法2.1.1消去法2.1.2主元消去法2.2 矩阵分解2.2.1Gauss消去法的矩阵意义2.2.2矩阵的LU分解及其应用2.2.3其他类型矩阵的分解2.2.4解三对角矩阵的追赶法2.3线性方程组解的可靠性2.3.1向量和矩阵范数2.3.2残向量与误差的代数表征2.4解线性方程组解的迭代法2.4.1基本迭代法2.4.2迭代法的矩阵表示2.4.3收敛性第3章数据近似3。

1 多项式插值3.1.1插值多项式3.1.2Lagrange插值多项式3.1.3Newton插值多项式3.1.4带导数条件的插值多项式3.1.5插值公式的余项3. 2 最小二乘近似3.2.1 最小二乘问题的法方程3.2.2 正交化算法第4章数值微积分4.1 内插求积,Newton-Cotes公式4.1.1Newton—Cotes公式4.1.2复化求积公式4.1.3步长的选取4.1.4Romberg方法4.1.5待定系数法4.2数值微分4.2.1插值公式方法4.2.2Taylor公式方法 (待定系数法)4.2.3外推法第5章非线性方程求解5。

1 解一元方程的迭代法5.1.1简单迭代法5.1.2Newton法5.1.3割线法5.1.4区间方法5。

2 收敛性问题5.2.1简单迭代—-不动点5.2.2收敛性的改善5.2.3Newton法的收敛性5.2.4收敛速度第1章绪论1。

1数值计算现代科学的发展,已导致科学与技术的研究从定性前进到定量,尤其是现代数字计算机的出现及迅速发展,为复杂数学问题的定量研究与解决,提供了强有力的基础.通常我们面对的理论与技术问题,绝大多数都可以从其物理模型中抽象出数学模型,因此,求解这些数学模型已成为我们面临的重要任务.一、本课程的任务:寻求解决各种数学问题的数值方法—-如何将高等数学的问题回归到初等数学(算术)的方法求解—-了解计算的基础方法,基本结构(否则只须知道数值软件)——并研究其性质.立足点:面向数学——解决数学问题面向计算机—-利用计算机作为工具充分发挥计算机的功能,设计算法,解决数学问题例如:迭代法、并行算法二、问题的类型1、离散问题:例如,求解线性方程组bAx= -—从离散数据:矩阵A和向量b,求解离散数据x;2、连续问题的离散化处理:例如,数值积分、数值微分、微分方程数值解;3、离散问题的连续化处理:例如,数据近似,统计分析计算;1.2数值方法的分析在本章中我们不具体讨论算法,首先讨论算法分析的基础--误差.一般来讲,误差主要有两类、三种(对科学计算):1)公式误差-—“截断误差”,数学↔计算,算法形成——主观(人为):数学问题-数值方法的转换,用离散公式近似连续的数学函数进行计算时,一般都会发生误差,通常称之为“截断误差”;——以后讨论2)舍入误差及输出入误差——计算机,算法执行—-客观(机器):由于计算机的存储器、运算器的字长有限,在运算和存储中必然会发生最末若干位数字的舍入,形成舍入误差;在人机数据交换过程中,十进制数和二进制数的转换也会导致误差发生,这就是输入误差.这两种误差主要是由于计算机的字长有限,采用浮点数系所致。

C语言课件第2章

C语言课件第2章

算法解决的问题是
做什么和怎么做(计算机)
算法
• 解决问题所使用的一系列合乎逻辑的、简洁的 步骤就称为“算法”
• 做任何事都有一定的次序和步骤 如:召开会议,报考大学,购物等
• 解决同一个问题可以有不同的方法和步骤,方 法有有劣之分
• 采用简单的和运算步骤少的方法为优
算法(续上)
• 预定火车票的算法:
1. 数值运算算法
目的是求数值解,算法成熟
2. 非数值运算算法
种类繁多,要求各异,难以规范
简单算法举例
例 2.1 求1×2×3×4×5 原始方法: 1×2,2×3,6×4,24×5 通用的方法: 设两个变量(被乘数p,乘数i) S1: 1=>p S2: 2=>i S3: p×i=>p S4: i+1=>i S5: 若i≤5,返回s3;否则结束 如果题目该为求1×3×5×7×9×11 ?
• ②能被100整除,又能被400整除的年份是闰 年,如1600,2000年是闰年。
• 不符合这两个条件的年份不是闰年。 设y为被测的年份,即有:

y不能被4 整除 非闰年
不能被4整除 非闰年
y
不能被100整除 闰年
能被4整除
不能被400整除
能被100整除
③y能被 100整 除又能 被400 整除
S1: 1=>p
S2: 3=>i S3: p×i=>p
S4: i+2=>i S5: 若i≤11,返回s3;否则结束 • 用这种方法表示的算法具有通用性、
灵活性
例2.2 有50个学生,要求将他们之中成绩在 80分以上者打印出来.用n表示学生学号,n1代表 第一个学生学号,ni代表第i个学生的学号,g代 表学生成绩 gi代表第i个学生成绩.算法如下:

C语言程序设计第2章 C语言基础PPT课件

C语言程序设计第2章 C语言基础PPT课件
编译预备处理命令 include、define等
2020/11/2
对标识符的规定
11
用户定义标识符 –必须以字母或下划线“_”开头
–不能含有除字母、数字和下划线“_” 外的其他字符
–标识符中大小写字母含义不同
关键字必须用小写字母。不允许使用关键 字为变量、数组、函数等操作对象命名
预定义标识符允许用户对它们重新定义, 当重新定义后将改变它们原来的含义
*整型 长整型
[signed] int 32
[signed] long [int]
*无符号整 型无符号长
unsigned [int]
32
整型 unsigned long [int]
方括号表示可选项
取值范围 -215~215-1
(-32768~32767 ) 0 ~216-1
例如:
3
【例2.1】计算圆的面积,半径为 5 cm。
程序如下:
例jc2_1
main( ) { float r, area ;
r=5 ; area=3.14*r*r; printf ("%f\n ", area) ; }
运算结果是输出圆的面积:78.500000
程序中用到的数据:r、area、5、3.14 对数据进行的运算:* 、= 数据的名称是标识符
特殊字符:+ - * / < > ( ) [ ] { } _ = !
#%.,;:‘“|&?$^\~
2020/11/2
2.1.2 标识符
8
由字母、下划线和数字组成的字符序列 用于程序中的变量、符号常量、数组、函
数、数据类型等操作对象的名字
1.系统定义标识符 –具有固定名字和特定含义的标识符

C语言第2章课件

C语言第2章课件

2.1.3结构化编码
选用顺序、选择和循环三种控制结构,使 程序具有良好的风格。
对变量、函数、常量等命名时,要见名知意,有 助于对变量含义或函数功能的理解。 在程序中增加必要的注释,增加程序的可读性。 程序要清晰易懂,语句构造要简单直接,一行写 一条语句,采用缩进格式。 程序有良好的交互性,输入有提示,输出有说明, 并尽量采用统一整齐的格式。
A
Case1 Case2 部分 部分
2.1.2模块化设计
将模块组织成良好的层次系统,顶层模块调用
其下层模块以实现程序的完整功能,每个下层 模块再调用更下层的模块,从而完成程序的一 个子功能,最下层的模块完成最具体的功能。 遵循模块独立性的原则,即模块之间的联系应 尽量简单。
一个模块只完成一个指定的功能。 模块之间只通过参数进行调用。 一个模块只有一个入口和一个出口。 模块内慎用全局变量。
学生成绩统计程序的层次结构图
学生成绩统计程序
成绩输入
数据计算
数据查找
输出成绩
计算学生平均分
计算课程平均分
用自顶向下逐步细化构造算法

算法:解决问题的方法和步骤 。简单的说,一 个程序的操作步骤,也就是算法。
[例]求1+2+3+……+100
100+(1+99)+(2+98)+……+(49+51)+50
log(123.45) 的值为4.815836
以10为底的对数函数 log10(x):log10x
log10(123.45) 的值为2.091491。
2.3 在屏幕上显示Hello World!
/* 显示“Hello World!” */ 注释文本 # include <stdio.h> int main(void) 主函数 { printf(“Hello World! \n”); 语句结束 return 0; } 输出函数 换行符 1.任何程序都有主函数

第2章 C语言程序设计基础PPT课件

第2章 C语言程序设计基础PPT课件

例2 求1+2+3+4+…+10。
假设用存储单元S存放累加和,具体算法如下:
➢步骤1: 把0存入S单元中;
➢步骤2: 把1加到S中(即取S中的内容0加1后得到
1,再把1送回S单元中);
➢步骤3: 把2加到S中; ➢步骤4: 把3加到S中;
这算法虽然正确,但不科学, 不实用。可以增加一个计数器
…… ➢步骤10: ➢步骤11: ➢步骤12:
''' 和 '\' 是非法字符常量 2、转义字符: 1)字母表示:'\n' '\t' '\\' '\'' …… 2)八进制数字表示(\ddd):'\123' '\3' 3)十六进制数字表示(\xdd): '\xFF' '\x5' 说明:字符可用对应的编码(整数)表示
如:用 065 53 0x35 表示 '5' C中经常将字符常量等价为整数参与运算:
xmax n+1n
输出max
16
2.1 算法与程序设计步骤
一、算法及其表示
(3) N-S图(盒图)
N-S图(盒图)的特点:N-S图完全去掉了流程线,算法 的所有处理步骤都写在一个大矩形框内(表示简单、符 合结构化思想)(象堆积木)
17
2.1 算法与程序设计步骤
二、程序设计步骤
根据实际问题设计应用程序大致要经过四个步骤: 见P18
注意:数据类型的位数和取值范围与所运行环境有很 大关系(本书以Windows下的Visual C++ 6.0为准 )

第2章数据类型运算符与表达式-西安交大

第2章数据类型运算符与表达式-西安交大

2.2
常量与变量
2.2.1 常量 1.定义:在程序执行期间,其值不可改变的量称为常量 2.类型: • 数值常量:例如:10,3 , 2.68等 • 符号常量:用一个符号代表一个常量 例如: #define PI 3.1415926 •增加可读性; main() •提高可维护性 { float r,l,s; r=2;l=2*PI*r;s=PI*r*r; printf(“l=%d,s=%d”,l,s); }
c=a++;
d=++b; printf(“c=%d,d=%d\n”,c,d); }
A=8,b=8
C=8,d=9
3.9
赋值运算符和赋值表达式
1. 赋值运算符(=) 形式:变量名=常量或表达式 作用:将右边常量或表达式的值赋给左边的变量 例如:a=3; b=c+d ; 当赋值运算符两边类型不一致时,要进行类型转换。规则是: ⑴ 实型数据赋给整型变量,舍去小数。 ⑵ 整型变量赋给单、双精度变量,小数部分补零。 ⑶ 字符型数据赋给整型数据,把对应的ASCII码置于低8位,高8 位视情况而变。 ⑷ short int 赋给long int,高端要根据正负补0或1。反之,只截取 低8位。 其它见书。
例:
•各种类型的整数13在内存中的存储形式。
2. 4实型数据(又叫浮点数float)
(1)实型常量
定点数形式: .123,123. ,123.0 ,0.0 (必须带有小数点)
指数形式:
1.234e3
123e3或123E3 ;
(E前必须有数;E后须为整数,可正可负) 代表 1.234×103
e3,1e2.3,.e3,e不合法。
2.6 变量赋初值
• 声明变量同时初始化 int a=3; float f=3.1; char c=„g‟; • 声明时部分初始化 int a,b,c=5; • 同时给几个变量赋相同的值 int a=3,b=3,c=3; int a=b=c=3是错误的

C语言课件第2章

C语言课件第2章

以上三种基本结构,有以下共同特点: 以上三种基本结构,有以下共同特点: (1) 只有一个入口。 只有一个入口。 (2) 只有一个出口。 只有一个出口。 (3) 结构内的每一部分都有机会被执行到。对每一个 结构内的每一部分都有机会被执行到。 框来说, 框来说,都应有一条从入口到出口的路径通过它 (4) 结构内不存在“死循环”(无终止的循环 。 结构内不存在“死循环” 无终止的循环 无终止的循环)。
如果题目改为求1× × × × × 。 如果题目改为求 ×3×5×7×9×11。 S1: 1=>p : S2: 3=>i : S3: p×i=>p : × S4: i+2=>i : S5: 若i≤11,返回 ; 否则,结束。 : ,返回S3; 否则,结束。
个学生, 例2.2 有50个学生,要求将他们之中成绩在 分以上 个学生 要求将他们之中成绩在80分以上 者打印出来。 表示学生学号, 代表第一个学 者打印出来。用n表示学生学号,n1代表第一个学 表示学生学号 生学号, 代表第 个学生学号。 代表第i个学生学号 代表学生成绩, 生学号,ni代表第 个学生学号。用g代表学生成绩, 代表学生成绩 gi代表第 个学生成绩,算法可表示如下。 代表第i个学生成绩 代表第 个学生成绩,算法可表示如下。 S1:1=>i : S2:如果 :如果gi≥80,则打印 和gi,否则不打印 ,则打印ni和 , S3:i+1=>i : S4:如果 :如果i≤50,返回 ,继续执行;否则,算法 ,返回S2,继续执行;否则, 结束。 结束。 本例中,变量 作为下标 用它来控制序号(第几个学生 作为下标, 第几个学生, 本例中,变量i作为下标,用它来控制序号 第几个学生, 第几个成绩)。 超过 超过50时 表示已对50个学生的成绩 第几个成绩 。当i超过 时,表示已对 个学生的成绩 处理完毕,算法结束。 处理完毕,算法结束。

C语言程序设计第二章课件PPT课件

C语言程序设计第二章课件PPT课件

一个简单的C程序例子
#include <stdio.h>
/*函数功能:计算两个整数相加之和 入口参数:整型数据a和b 返回值: 整型数a和b之和
*/ int Add(int a, int b) {
return (a + b); }
/*主函数*/ main() {
int x, y, sum = 0;
• 不要对变量所占的内存空间字节数想当然
• 用sizeof获得变量或者数据类型的长度
• 现象与危害 • 在平台间移植时会出现问题,导致数据丢失或者溢出
第19页/共26页
sizeof到底是什么?
• C语言的关键字,并非函数 • 计算类型占用的字节数
• 两种语法形式 sizeof(类型)
• 结果为类型占用的字节数 sizeof(表达式)
• 运算符(Operator) • 详见附录C
• 分隔符(Separator) • 空格、回车/换行、逗号等
• 其他符号 • {和}标识函数体或语句块 • /*和*/是程序注释的定界符
• 常量(Constant)
第5页/共26页
2.1.1常量(Constant)
• 在程序中不能改变其值的量 • 包括:
第17页/共26页
2.4如何计算变量或数据类型 所占内存空间的大小
• 一个位有多大? • 只能是0或者1,二进制
• 一个字节有多大? • 可以表示0~255之间的整数
第18页/共26页
不同类型占用的内存字节数不同
• 同种类型在不同的平台其占字节数不尽相同 • 如int在16位、32位和64位系统上分别占2、4和8个字节
bit(b) Byte(B) Kilobyte(KB)

c语言程序设计第2章课件

c语言程序设计第2章课件

2.2 简单算法举例
书15页零个或多个输入 有一个或多个输出 有效性
2.4 怎样表示一个算法
用自然语言表示算法 用流程图表示算法 3种基本结构和改进的流程图 用N-S流程图表示算法 用伪代码表示算法 用计算机语言表示算法
2.5 结构化程序设计方法
第二章 程序设计的灵魂-算法
2.1 算法的概念 2.2 简单算法举例 2.3 算法的特性 2.4 怎样表示一个算法 2.5结构化程序设计方法
2.1 算法的概念
广义地讲,为解决一个问题而采取的方法和步 骤称为“算法”。 计算机算法是计算机所能执行的算法。计算机 算法可分为两大类:数值运算算法和非数值运 算算法。数值运算的目的是求数值解,非数值 运算十分广泛,可以用于事物管理领域,例如 图书检索、人事管理、行车调度管理等。 目前,计算机在非数值运算方面的应用远远超 过了在数值运算方面的应用。

幻灯片C语言程序设计第2章PPT课件

幻灯片C语言程序设计第2章PPT课件

[例2.4]求1-1/2+1/3-1/4+…+1/99-1/100
算法如下: S1:sign=1 S2:sum=1 S3:deno=2 S4:sign=(-1)*sign S5:term=sign*(1/deno) S6:sum=sum+term S7:deno=deno+1 S8:若deno100返回S4;否则算法结束。
(5)有效性。算法中的每一个步骤都应当能有效地执行, 并得到确定的结果。
11
2.4 怎样表示一个算法
为了表示一个算法,可以用不同的方法。 常用的方法有:
自然语言 传统流程图 N-S流程图 伪代码 PAD图等。
12
2.4.2 用流程图表示算法
13
[例2.6]将例2.1求5!的算法用流程图表示
14
C程序设计
Email: lliunan@
1
整体概况
概况一
点击此处输入 相关文本内容
01
概况二
点击此处输入 相关文本内容
02
概况三
点击此处输入 相关文本内容
03
2
第2章 程序的灵魂-算法
一个程序包括以下两个方面的内容: (1)对数据的描述。在程序中要指定数据的类型和数据的 组织形式,即数据结构。 (2)对操作的描述。即操作步骤,也就是算法。
10
2.3 算法的特性
(1)有穷性。一个算法应包含有限的操作步骤,而不能 是无限的。
(2)确定性。算法中的每一个步骤都应当是确定的,而 不应当是含糊的、模棱两可的。
(3)有零个或多个输入。所谓输入是指在执行算法时需 要从外界取得必要的信息。
(4)有一个或多个输出。算法的目的是为了求解,“解” 就是输出。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

能源与动力工程学院C语言基本知识陈斌目录第一节概述第二节基本知识第三节流程控制第四节指针与数组第五节函数Hello, world!例10-1 Hello, world!#include <stdio.h>/*预处理语句引入系统头文件,可以使用系统提供的许多函数*/int main(void)//每个程序都必须而且只能包含一个main函数{printf("hello, world!\n");return 0;}C程序的书写每条语句以末尾的分号“;”表示结束;每行通常写一条语句,也可以写多条语句。

如果语句太长,可以拆开换行继续书写,一般不用加续行标志。

注释语句以“/*”开头,以“*/”结尾,如果注释较长,可以写作多行,包含在“/*”与“*/”之间可以用花括号{}把多个单条语句括起来,组成一个复合语句。

复合语句内的各条语句都必须以分号“;”结尾,在括号“}”外不能加分号。

字符集字符集:52个字母(C 语言区分大小写) 10个阿拉伯数字 29个特殊字符•! + –* / = % ' " # { } [ ] < > ( ) . , ; : ? ~ ^ \| _ & 4个格式符•空格、水平制表符(HT )、垂直制表符(VT )、换页符(FF )其他字符只能放在注释语句、字符型常量、字符串型常量中数据类型数据类型:基本类型:•整型、字符、浮点(单精度、双精度)、枚举构造类型•数组、结构体(struct )和联合(union )指针类型(*)空类型(void )数据类型UCHAR_MAX0~2551unsigned charSCHAR_MAX SCHAR_MIN–128~1271signed char CHAR_MAX CHAR_MIN –128~1271char字符型LDBL_MAX LDBL_MIN 3.3621031431120935063e-4932~1.189731495357231765e+493210long double DBL_MAX DBL_MIN 2.2250738585072014e-308~1.7976931348623158e+3088double 双精度实型FLT_MAXFLT_MIN 1.175494351e-038~3.402823466e+384float单精度实型ULONG_MAX 0~42949672954unsigned longLONG_MAX LONG_MIN –2147483648~21474836474long UINT_MAX 0~42949672954unsigned int INT_MAX INT_MIN–2147483648~21474836474int USHRT_MAX 0~655352unsigned short SHRT_MAX SHRT_MIN–32768~327672short 整型最大值最小值范围字宽类型数据类型#include <stdio.h>#include <stdlib.h>#include <limits.h>#include <float.h>int main(){printf("%d, %d\n", SHRT_MIN, SHRT_MAX);printf("%u\n", USHRT_MAX);printf("%d, %d\n", INT_MIN, INT_MAX);printf("%u\n", UINT_MAX);printf("%ld, %ld\n", LONG_MIN, LONG_MAX);printf("%lu\n", ULONG_MAX);printf("%d, %d\n", CHAR_MIN, CHAR_MAX);printf("%d, %d\n", SCHAR_MIN, SCHAR_MAX);printf("%d\n", UCHAR_MAX);printf("%.6e, %.6e\n", FLT_MIN, FLT_MAX);printf("%.12e, %.12e\n", DBL_MIN, DBL_MAX);printf("%.15Lf, %.15Lf\n", LDBL_MIN, LDBL_MAX);/*部分编译器不支持*/return 0;}例10-2 各种数据类型的最大、最小值标识符与常量标识符由字母或下划线开头。

由于C语言自带的库函数通常以下划线开头,因此标识符命名时不要以下划线开头 其它部分可以由字母、下划线或数字组成;有效长度为32个字符;区分字母大小写。

常量整型常量、浮点数常量、字符常量枚举常量符号常量枚举常量枚举常量:一个整型常量值的列表如果一个变量存在几种可能的值,就可以被定义成为枚举类型。

enum常量名{枚举名列表}如果没有显式说明,枚举类型中第一个枚举名的值为0,第二个为1,依次类推。

如果只指定了部分枚举名的值,那么未指定值的枚举名,其取值从最后一个指定值递增。

enum color {RED, ORIENGE, YELLOW, GREEN, CRYN, BLUN, PURPLE} /*RED的值为0,ORIENGE的值为1,依次类推*/enum shape {CIRCLE = 2, SQUARE, RECANGUAGLE, TRIANGLE, OVAL} /*CIRCLE的值为2,SQUARE的值为3,依次类推*/枚举常量只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量:a = sum;b = mon;是正确的。

而:a = 0;b = 1;是错误的。

如一定要把数值赋予枚举变量,则必须用强制类型转换:a = (enum weekday)2;其意义是将顺序号为2的枚举元素赋予枚举变量a,相当于:a = tue;枚举元素不是字符常量也不是字符串常量,使用时不要加单、双引号。

枚举常量#include <stdio.h>#include <stdlib.h>enum week {Monday=1, Tuesday, Wednesday, Thursday, Friday, Saturday,Sunday};int main(){int i;enum week today, tomorrow;scanf("%d", &i);switch(i){case 1: today = Monday; break;case 2: today = Tuesday; break;case 3: today = Wednesday; break;case 4: today = Thursday; break;case 5: today = Friday; break;case 6: today = Saturday; break;case 7: today = Sunday; break;default: break;}if (today == Sunday)tomorrow = Monday;elsetomorrow = today + 1;printf("Tomorrow is ");switch(tomorrow){case Monday: printf("Monday"); break;case Tuesday: printf("Tuesday"); break;case Wednesday: printf("Wednesday"); break;case Thursday: printf("Thursday"); break;case Friday: printf("Friday"); break;case Saturday: printf("Saturday"); break;case Sunday: printf("Friday"); break;default: break;}return 0;}符号常量符号常量:用一个标识符来代表一个常量#define 宏名常数#define PI 3.14159265#define E 2.71828一旦完成定义后,符号常量的值在作用域内不能改变,也不能再被赋值宏定义的实质是用宏名代替字符串,只作简单的置换,不做语法检查;宏名一般习惯用大写字母表示,以与变量名相区别;宏定义不是C语句,无需在行末加分号。

如果加了分号则会连分号一起置换。

符号常量#include <stdio.h>#define PI 3.14159265 /* 全局变量*/int main(){float r, a, v;scanf("%f", &r);a = 4.0 * PI * r * r;v = 4.0 / 3.0 * PI * pow(r, 3);printf("a = %f b = %f\n", a, v);return 0;}变量及其初始化变量:使用之前必须先定义其数据类型,未经声明的变量不能使用。

变量声明通常放在函数起始处,位置在第一条可执行语句前面。

int i, j, k;double temperature, pressure, timestep;声明的同时可以对变量进行初始化int i=1;float x = 5.0;变量的const修饰所有变量的声明都可以用const修饰符,表示指定该变量的值不能被修改:const double e = 2.71828;const double pi = 3.14159265;double const e = 2.71828;double const pi = 3.14159265;只能在定义该变量的函数体内使用,除非定义的是全局变量作用范围在整个程序常量修饰符,把变量定义为常量只进行简单的字符替换,无类型检查定义程序中的常量,编译时处理定义宏,预编译时处理const double pi = 3.14159265;#define PI 3.14169265;const修饰变量宏定义运算符按运算的类别算术运算符关系运算符逻辑运算符 位操作运算符 赋值运算符条件运算符(?和:) 逗号运算符(,) 指针运算符(*和&)求字节数运算符(sizeof ) 特殊运算符(( ),[ ],., –>)按操作数的多少 单目运算符(一元) 双目运算符(二元) 多目运算符(多元)混合运算与左右结合性不同运算符混合计算时:按优先符的优先级由高向低进行运算,例如先乘除、后加减。

相关文档
最新文档