谭浩强C程序设计

时间:2022-11-25 10:05:34 作者:壹号 字数:7330字

谭浩强C程序设计

C 语言程序设计第2章 C语言基础天津科技大学 计算机学院

谭浩强C程序设计

本章主要内容本章介绍C语言的基础,包括: – 数据类型 – 运算符和表达式 均是程序设计的基本知识 为什么讨论这些知识?

2

通常程序要对数据进行操作处理: – 处理的对象是数据 – 通过运算符和表达式进行操作2013-7-26

谭浩强C程序设计

例如:【例2.1】计算圆的面积,半径为 5 cm。 例jc2_1 程序如下:main( ) { float r, area ; r=5 ; area=3.14*r*r; printf ("%fn ", area) ; } 运算结果是输出圆的面积:78.500000

3

程序中用到的数据:r、area、5、3.14 对数据进行的运算:* 、=2013-7-26

谭浩强C程序设计

分析:

涉及数据类型 的基本知识 计算机操作处理时,要完成以下工作: 在内存中给半径 r 和运算结果 area 开辟存 储空间,存放它们的值。应该留多大的地 方来存放它们的值? 数据 5 和 3.14 与 r 、area 不同,它们是在 编写程序时就给出确定的值,在运算过程 中不会改变。这样的数计算机怎么处理? 对整数 5 和小数3.14 ,计算机存放时是否 有区别?

4

2013-7-26

谭浩强C程序设计

C语言的数据类型

5

本章讨论 基本类型数据

基本类型

整型 字符型 单精度型 实型(浮点型) 双精度型 空类型 数组类型 结构体类型 共用体类型 枚举类型

C数据类型

构造类型 指针类型

2013-7-26

谭浩强C程序设计

2.1.1 整型数据1.整型数据的类型 – 基本整型数据 int ,分配 2 Byte – 短整型数据 short int,分配 2 Byte – 长整型数据 long int,分配 4 Byte 整型数据均以二进制补码形式存储

6

问题:

为什么要采用补码? 如何表示?2013-7-26

谭浩强C程序设计

计算机中正、负数的表示例如:109 =(1101101)2 要区别:+109 和 -109 方法是:将符号也数码化 即: 正的符号 +用 0 表示 负的符号 -用 1 表示 ∴ 计算机中的数表示方法是: 符号位+二进制数值(以 8bit 为例) +109 → +110 1101 → 0110 1101 -109 → -110 1101 → 1110 1101

7

2013-7-26

谭浩强C程序设计

问题:计算机计算复杂化例如计算: (-19)+(+22) 1001 0011 + 0001 0110 需要判断符号是否相同: 如果相同,结果符号不变,并进行绝对值相加 如果不同,结果取绝对值大的数的符号,并进 行绝对值相减

8

解决的方法是: 使用反码或补码的表示方法(按前述 表示的编码称为原码),即能将减法一律 转换为加法。2013-7-26

谭浩强C程序设计

原码、反码和补码 正数:原码、反码、补码相同

9

符号位为0,数值为对应的二进制数。 +109 [01101101]原 = [01101101]反 = [01101101]补 负数: –原码符号位为1,数值为绝对值的二进制 数。 -109 [11101101]原 –反码符号位为1,数值为绝对值的二进制 数各位变反。 -109 [10010010]反 –补码符号位为1,数值为绝对值的二进制 数各位变反加1。-1

09 [10010011]补–2013-7-26

谭浩强C程序设计

2. 有符号和无符号整型数据有符号的整型数据 signed int – 无符号的整型数据 unsigned int 区别是将最高位看作符号位还是数据位–

10

例如: 1111 1111 1010 1000 作为有符号数使用时,最高为符号位 为负数,值是:- 88(再求一次补) 作为无符号数使用时,最高为数据位 为无符号的数,值是:654482013-7-26

谭浩强C程序设计

例如:main( ) { unsigned int m; 按有符号数输出 m= 65448; printf("nm=%dn",m); 例 jc2_a printf("m=%un",m); }

11

输出结果: m=-88 m=65448

按无符号数输出

2013-7-26

谭浩强C程序设计

整型数据的类型及规定类型名称 整型 (短整型) 无符号整型 类型符 [signed] int [signed] short [int] unsigned [int] bit 16 16 取值范围

12

-215~215-1

(-32768~32767 ) 0 ~216-1 (0~65535 )

长整型

…… 此处隐藏1071字 ……

跳到下一个输出位置双引号字符

ddd ddd为1到3位八进制数所代表的字符

xhh hh为1到2位十六进制数所代表的字符2013-7-26

谭浩强C程序设计

4. 字符串常量用双引号括起的一个字符序列 – 例如:"ABC"、"123"、"a"、 "nt " "nGood morning" 字符串常量的长度 : 字符串 – 所包含的字符个数 结束标记 字符串常量的存储方式:

21

所占存储单元数:串长度+1 例如: a n G o o d m o r n i n g 2013-7-26