c语言程序设计谭浩强ch2基本数据类型和表达式
C语言(谭浩强)第2章数据描述

• • • •
转义字符表
转义字符形式 \n \t \v \b \r \f \a \\ \? \“ \’ \ddd xhh 换行 水平制表 垂直制表 退格 回车 走纸换页 报警(如铃声) 反斜杠 问号 双撇号 单撇号 1~3位八进制常数 1~2位十六进制常数 意 义
例2.5 /* 文件名:ex020501.c */ /*打印人民币符号″¥″*/ #include <stdio.h> int main(void) { printf(″Y\b=\n″); return 0; }
/* 注意格式码 */ /* 注意格式码 */
例2.4 /* 文件名:ex020401.c */ #include <stdio.h> int main(void) { char c; c = 0362; printf (″%d\n″, c); return 0; } 运行结果: -14
2. 字符常量
下面不是合法的整型常量:
09876——(非十进制数,又非八进制数,因为有数 字8和9) 20fa——(非十进制数,又非十六进制数,因为不 是以0x开头) 0x10fg——(出现了非法字符)
2. 整数常量类型的确定
在C语言中整数可以进一步分为short、int、 long和long logn等类型。那么,对于一个常数如 何分辨其类型呢?一般说来,有以下原则: 1)默认原则:在没有任何特别标志的情况下,可 以按照常数所在的范围,决定其类型。例如,在 16位的机器中,当一个常整数的值在十进制32768~32767(八进制数0~0177777、十六制数 0x0~0xFFFF),则被看作一个short int或int型 整数。超出上述范围的整常数,则被看作长整数 (32位)表示。例如,234、32766、0177776、 0xFFFE等被看作是int型,而-32769、32768、 0200000、0x10000等被看作是long型。
c语言程序设计(谭浩强)

其它常量:直接用数据表示 例: 23 45.5 ‘e’ 3e+2 2)在 C 语言中,对变量要 先定义,后使用。 3)如果一个变量被指定为一确定类型后,在 C 语言编译时,就能 为其分配相应 的存储单元。 a 变量名 存储地址)2000 3 变量值 存储单元 地址的 概念 3.常用的基本数据类型 (1)整型 1)整型常量:十进制整数 123,-11,0 非 0 开头 八进制整型 0123,-011 0 开头 十六进制整型 0x11 0x20 0x0D 0XFF 0x4e 0x/0X 开头 唯 C 动力 http://www.clearner.net/ 提供 10 说明:在一个整常量后面加一个字母:l 或 L,是长整型常量。22L 0733L 0xa e4l 2)整型变量: 定义 存储字节 数的范围 基本型 int x (2 字节) -32768 ̄32 767 短整型 short int x (2 字节) -32768 ̄32767 长整型 long int x (4 字节) -2,147,483,648 ̄2,147,483,647 无符号型 unsigned int x (2 字节) 0 ̄65535 u nsigned short x(2 字节) 0 ̄65535 unsigned long x (4 字节) 0 ̄4,294,967,2 95 注: 数据在内存中是以:二进制形式存放 如:9 为 00001001 例: x=13; x=01 5 ; x=0xD 存储结构 见 P44 图 3.5 注:数据超过数据范围,会发生数据溢出 例 3 .2、3.3 (2)实型(浮点数) 1)实型常量: 十进制整数 1.23 .0123 指数形式 1 .23e3,1.00e-3 2)实型变量: 数的表示范围 P46 表 3.2 单精度 float x (4 字 节)3.4x10-38 ̄3.4x1038 TC 默认 双精度 double x (8 字节)1.7x10-308 ̄1.7x10 308 说明:实型常量 不分 float 和 double,只有十进制表达方式 有的 C 编译系统 64 位存储方式,如尾加 f 或 F 可表示 32 位:324.567f 例:x=1.23; x=123e3 P 47 例 3.4(存储精度) (3)字符型 1)字符常量: a) 用单引号括起来的一个字符 ‘a’ ‘A’ b) 转义字符(由“\专用字母” ) 书 P48 表 3.3 例 3.5 \0 字符串 结束符 \n 换行 \t 水平制表 \ddd 八进制数 \xdd 十六进制数 2)字符变量: cha r c (1 字节) 说明:一个字符变量,只能放一个字符常量。实际是把该常量的 AS CII 值,送入字 符变量中。即: ‘B’ (66) c (字符变量) 书 P374ASCII 表 p50 例 3.6-7 c=‘B’ c 的内容为 66 故:字符数据可以进行算术运算;即:c=‘B ’+2 为 68 字符数据在内存中的存储方式 书 P50 唯 C 动力 http://www.clearner .net/ 提供 11 unsigned char 0-255 char -128-127 有符号数在 TC 中是用补码表示的 127( 0x7f) 0111 1111 128(0x80) 1000 0000 复习:补码的规定: 正数:其原码、反码、 补码相同 负数: 最高位为 1, 其余各位为原码的反码(原码的相应位取反), 然后 对整个数加 1。 140(0x8c) 1000 1100→1111 0011 + 1(取反加 1)→1111 0100→-0 x74 -0x74 1000 1011 + 1(取反加 1) → 1000 1100 → 0x8c (0x80 为负数-74 高位 为 1) 3)字符串常量 用双引号括起来的字符 “a” , “ABFD” “a” =“a\0” <> ‘A’ 说明:C 规定,在每一个字符串的结尾应加一个“字符串结束标志” (\0 ) , 以便系统判断字符串是否结束。 4.各类数值间的混合运算 1)整型、字符型 、单精度型、双精度型数据——可以混合运算 2)字符型、整型——可以通用 规则: 高 double float long unsigned 低 int char,short 例如 10+’a’+1.5-8765.1 234*’b’ -858873.593200 (TC 默认 6 位小数) 10+97+1.5-8765.1234*98 二.运算 符和表达式 C 表达式:由变量、常量、函数等运算对象和运算符组成的式子 C 运算 符作用: 1)能把一些基本运算模块用单一的运算符处理 2)使用丰富的运算符,构 成多种表达式 C 运算符有优先级,优先级高的先执行,同级的由结合规则决定其处理 规则 C 运算符有两种结合规则: 1)从左到右的结合运算顺序;即:a=5+x-10;运 算对象与左边运算符结合 2)从右到左的结合运算顺序;即:x=y=7;运算对象与右边 运算符结合 C 运算符分类 书 P55 1.基本运算符(算术运算符) C 语言有 7 个基本 运算符 1)单目运算符: (表示符号) 正号“+” 负号“-” 2)双目运算符:+、 - 、*、/、%(模运算,求余运算,两侧为整数) 唯 C 动力 http://www.clearner. net/ 提供 12 说明: a)运算顺序的结合方向从左到右 b)求余(取模)运算符是对两个整数 相除的余数,计算结果的符号与第一个数的 符号相同。即:-5%3 值为-2、 -5%-3 值 为-2�
c程序设计谭浩强.ppt

二.
实型数据
1. 实型数据类型标识符 实型数据有单精度型和双精度型两种。 单精度型:类型标识符为float。 双精度型:类型标识符为double。
类型 float double
占用字节数 4 8
有效数字 6-7 15-16
数值范围 3.4*10-383.4*1038 1.7*10-3081.7*10308
m;
unsigned
3、整型常量
C语言中整型常量可以用3种形式表示:
① 十进制数,如+123,-234,0,23;
② 八进制数,如 0234,0777; ③ 十六进制数,如0x234,0x9A。 整型数又分为基本整型、短整型、长整型(后加l或L) 和无符 号整型数(后加u或U) 。 前缀、后缀可同时使用以表示不同类型不同进制的整型数。 如03456LU表示八进制无符号长整型数。
int
short int long int unsigned int unsigned short unsigned long
2
2 4 2 2 4
-32768(-215)~32767(215-1)
-32768(-215)~32767(215-1)
-2147483648(231)~2147483647(231-1)
阶 符
指数部分
数 符
尾数部分
2. 实型变量的定义
float f,f1; double d; /* 定义f、f1为单精度实型变量 */ /* 定义d为双精度实型变量 */
0~65535(216-1) 0~65535(216-1) 0~4294967295(232-1)
任何一种数据类型都有常量和变量之分
2、整型变量的定义
例如:int long
C++程序设计(谭浩强完整版)

a=0.01 b=0.03=9.7654e-005
Press any key to continue
cout<<"a="<<a<<'\t'<<"b="<<b<<endl; cout<<"c="<<c<<'\t'<<"d="<<d<<endl;
0
1
0
0
0
0
0
1
在程序中表示为: char grade ;//定义一个字符型的变量空间(1个字节) grade=„A‟; //必须用‘ ’表示,否则易与标识符混同 „ ‟内括起来的字符表示该字符的ASCII码。
17
进一步,由于在内存中的形式与整型数据相同,所以,可以直接用 其整型值给变量赋值。 char grade; grade=65; 以下的赋值形式均是等同的。 grade='A'; grade=65 ; grade=0x41; 输出: a=A b=A 即在内存中的表示均是相同的 grade=0101;
实型变量分单精度 float 和双精度 double 两种形式: float:占四个字节,提供7~8位有效数字。 double: 占八个字节,提供15~16位有效数字。 举例说明
14
#include<iostream.h>
void main(void)
{ float a, b;
double c, d;
C 程序设计(谭浩强完整版)第二章解析

一般变量都是用匈牙利命名法命名的。 int nCount; char chChoice;
整型数据
整型常量:
常量是根据其表面形式来判定,整型量即是没有小数点的 整数,范围:-231~(231-1) ,有三种形式: 1)十进制(默认方式)
2)八进制 以0开头
43 1345 87654
043, 056, 011
1
0
0
0
0
0
1
非打印字符
有些ASCII的字符代表某些操作,不能打印出来, 如回车、退格等,可用两种方式表示这些字符。 1)用ASCII码的形式 2)用转义字符 char re=13; char re=‘\n’;(p15)
转义字符 \a \n \t \b \r \f \v
含 响铃
义
ASCII代码 7 10 9 8 13 12 8
不同类型的整型数据间 { unsigned short a;的赋值归根到底就是一 short int b= -1; 条:按存储单元中的存 储形式直接传送。
void main() a=b; cout<<"a="<<a<<endl; unsigned short a;
}
结果:65535
a 1111111111111111
3)十六进制 以0x开头 0xdf(举例说明)
0x12
0xa3
0x34
#include<iostream.h>
void main(void)
{ int int10,int8,int16; //定义3个整型变量 int10=10; int8=010; int16=0x10; //默认为十进制 //八进制 //十六进制 输出 int10=10 int8=8 int16=16
c语言程序设计第三版谭浩强课后习题及答案

c语言程序设计第三版谭浩强课后习题及答案C语言程序设计是一门基础而重要的编程课程,谭浩强教授的《C语言程序设计》第三版是许多高校计算机专业学生的必修教材。
课后习题是检验学生对课程内容掌握程度的重要手段,以下是部分习题及答案的示例。
# 第一章:C语言概述习题1:简述C语言的特点。
答案: C语言是一种结构化编程语言,具有以下特点:1. 简洁、紧凑、贴近硬件。
2. 丰富的运算符和数据类型。
3. 具有结构化控制语句。
4. 支持模块化程序设计。
5. 可移植性好。
习题2:为什么说C语言具有“高级语言”的特点?答案: C语言被称为高级语言,因为它:1. 抽象了机器语言的复杂性。
2. 允许使用变量名代替内存地址。
3. 提供了丰富的控制结构和数据类型。
4. 支持高级的编程概念,如函数、数组和指针。
# 第二章:数据类型、运算符和表达式习题3:写出C语言中的基本数据类型。
答案: C语言中的基本数据类型包括:- 整型:`int`- 浮点型:`float` 和 `double`- 字符型:`char`习题4:解释赋值运算符的右结合性。
答案:赋值运算符的右结合性意味着当多个赋值运算符出现在同一个表达式中时,它们将从右向左进行计算。
例如,在表达式 `a = b = c;` 中,首先计算 `b = c`,然后将结果赋值给 `a`。
# 第三章:控制语句习题5:描述if语句的基本用法。
答案: if语句用于基于条件执行代码块。
基本语法如下:```cif (条件) {// 条件为真时执行的代码} else {// 条件为假时执行的代码}```其中条件是一个表达式,如果其值为真(非零),则执行if块中的代码;如果为假(零),则执行else块中的代码。
习题6:举例说明for循环的使用。
答案: for循环用于重复执行一段代码,直到给定条件不再满足。
基本语法如下:```cfor (初始化表达式;条件表达式;更新表达式) {// 循环体}```例如,打印0到9的数字:```cfor (int i = 0; i < 10; i++) {printf("%d ", i);}```以上是部分习题及答案的示例。
C语言第3章(谭浩强)

void 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); } 运行结果:a+u=22,b+u=-14 结论:不同类型的整型数据可以进行算 术运算。
位数 16
取值范围 -215-(215-1) -32768—+32767 -32768—+32767
Short [int] Long [int]
短整型 长整型
16 32
16 16 32
Unsinged int 无符号整型 Unsinged short [int] Unsinged long [int] 无符号短整 型 无符号长整 型
8
④大写字母与小写字母意义不同, 被认为是两个不同的字符。一般变 量名用小写字母表示。 注意:常量名常用大写、变量名常 用小写!
year Day a_12 _abcdef #123 .com $100 1999Y a=b 1_2_3 +abcedfghi ∏ -5 等
9
3、变量要先定义后使用
可以改为double型) void main( ) {float x;double y; x=123456.789;y=123456.789; printf(“%f, %f”,x,y);} 结果为: 123456.789062, 123456.789000
29
§3.5
字符型数据
一、字符常量 1、在C语言中字符型常量是用单引号括 起来的一个字符。 如:’a‟、’A‟、’3‟、’?‟、’ ’、 ’$‟等。 2、以‚\”开头的转义字符,如\n不代表 字母n,而是代表换行。
谭浩强C语言全书word版

2.4 变量
变量定义的语句格式: 类型符 变量名1,变量名2,„ 变量定义的意义:
系统给每一个变量名分配一个内存地址; 编译时根据变量的类型分配一定的内存单元; 根据变量的类型检查该变量所进行的运算是否合法 例:int num1,num2,total; num1 num2 total
存储器地址
1652
2.3.4 字符串常量
字符串常量:由一对双引号括起的字符序列。 例如:"Computer"及"program-1"。 程序主要用于输入、输出。 例如:printf("World,hello!\n"); 字符串常量与字符常量之间主要有以下区别: 引用符号不同:字符常量由单引号括起来,字符串常量由 双引号括起来。 容量不同:字符常量只能是单个字符,字符串常量则可以 含一个或多个字符。 字符串结束的标志:字符"\0"(ASCII码为0)。 例如,字符串"CHINA"的长度是6个字符。
格式为:
类型说明符 变量名1=初值1,变量名2=初值2,...;
2.4.1 整型变量
整型变量:只能保存整型值的变量。 整型变量的分类(按照分配的内存单元)
整型变量可分为以下几类:
基本型(类型说明符为int) 在内存中占2个字节(C++中占4个字节),其取值为基 本整常数(-32768~32767)。 短整型(short int):(占2个字节)
2.3.3 字符常量
字符型数据与整型数据的关系 【例2.5】写出下列程序的运行结果。 #include <stdio.h> void main() 运行结果如下: { A,B int i,j; 65,66 i=65; j=i+1; printf("%c,%c\n",i,j); /*以字符形式输出*/ printf("%d,%d\n",i,j); /*以整数形式输出*/ }
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
00000000 01111111~ 10000000 (-128~+127)
• 纯整数的补码最小可以表示到-2^n 。这时在[-2^n]中,符号位的1既 表示符号“-”,也表示数值2^n 。
• 若要一个负数变补码,其方法是符号位置1,其余各位0变1,1变0,然后在最 末位上加1 。
10 01.03.2021
2.2 常量与变量
变量命名的规定:C语言规定标识符只能由 字母、数字和下划线三种字符组成,且第一 个字符必须为字母或下划线。
例:sum,_total, month, Student_name,
lotus_1_2_3,BASIC, li_ling
M.D.John, ¥123,3D64,a>b
13 01.03.2021
2.3 整型数据
(3)十六进制整数。以0x开头的数是16进制数。 如:0x123,代表16进制数123,等于十进制数
291。 -0x12等于十进制数-10。
2.3.2 整型变量 (1)整型数据在内存中的存放形式
数据在内存中是以二进制形式存放的。
如: int i; /* 定义为整型变量 */
– 数值的表示方法——原码、反码和补码
• 原码:最高位为符号位,其余各位为数值本身 的绝对值
• 反码:
– 正数:反码与原码相同
– 负数:符号位为1,其余位对原码取反
• 补码:
– 正数:原码、反码、补码相同
01.03.2021
– 负数:最高位为1,其余位为原码取反,再 对整个数加1
5
+7 -7 +0 -0
第二章
本章要点
数据的描述规则 数据的操作规则
主要内容 2.1 C的数据类型 2.2 常量与变量 2.3 整型数据 2.4 浮点型数据运行 2.5 字符型数据
主要内容
2.6变量赋初值 2.7 各类数值型数据间的混合运算 2.8 算术运算符和算术表达式 2.9 赋值运算符和赋值表达式 2.10 逗号运算符和逗号表达式
代符表号常常量量3的0,值此在后其凡作在用本域文内件不中能出改现变的,
P也RI不CE能都再代被表赋30值,可。以和常量一样进行运算
9 01.03.2021
2.2 常量与变量
2.2.2 变量 • 变量代表内存中具有特定属性的一个存储单
元,它用来存放数据,这就是变量的值,在 程序运行期间,这些值是可以改变的。 • 变量名实际上是一个以一个名字对应代表一 个地址,在对程序编译连接时由编译系统给 每一个变量名分配对应的内存地址。从变量 中取值,实际上是通过变量名找到相应的内 存地址,从该存储单元中读取数据。
数的范围
(用一字节表示数)
原码 00000111
反码 00000111
10000111 00000000
11111000 00000000
10000000
11111111
01111111~ 11111111 (-127~ (-127~+127)
补码 00000111
i=10; /* 给i赋以整数10 */
14 01.03.2021
2.3 整型数据 注意:
• 十进制数10的二进制形式为1010, Turbo C 2.0和Turbo C++ 3.0为一个整 型变量在内存中分配2个字节的存储单元( 不同的编译系统为整型数据分配的字节数 是不相同的,VC++ 6.0则分配4个字节) 。
基本类型 字符型 char 单精度实型
float 实型(浮点型)
数据类型
构造类型
数组类型 结构类型 联合类型
双精度实型
struct
double
union
指针类型 枚举类型 enum
空类型(无值类型) void
7 01.03.2021
2.2 常量与变量
2.2.1 常量和符号常量
• 在程序运行过程中,其值不能被改变的量称为常量 • 常量区分为不同的类型:
整型 100,125,-100,0
直接
实型 3.14 , 0.125,-3.789
常量
字符型 ‘a’, ‘b’,‘2’
字符串 〝a〞, 〝ab〞,〝1232〞
8 01.03.2021
例2.1 符号常量的使用 #define PRICE 30
运行结果: total=300
#include <st说di明o.:h>如再用赋值语句给PRICE赋值是错的
• 负数补码转换成十进制数:最高位不动,其余位取反加1
01.03.2021
例 补码:11111001
取反:10000110
加1: 10000111=-7
6
2.1 C的数据类型
数据类型决定: 1. 数据占内存字节数;
C语言提供了以下一些数据类型。2. 数据取值范围; 3. 其上可进行的操作
整型 int
11 01.03.2021
2.2 常量与变量
注意:
• 编译系统将大写字母和小写字母认为是两 个不同的字符。
• 建议变量名的长度最好不要超过8个字符 。
• 在选择变量名和其它标识符时,应注意做 到“见名知意”,即选有含意的英文单词 (或其缩写)作标识符。
• 要求对所有用到的变量作强制定义,也就 是“先定义,后使用” 。
• 数值是以补码(complement) 表示的。
15 01.03.2021
2.3 整型数据
(2)整型变量的分类
有符号基本整型 (signed)int 有符号短整型 (signed)short (int )
共六种 有符号长整型 (signed) long (int)
无符号基本整型 unsigned int 无符号短整型 unsigned short (int) 无符号长整型 unsigned long (int) 注意:括号表示其中的内容是可选的.
void main ( )PRICE=40; {
/* 错误,不能给符号常量赋值
int num, total;
num=10;
total=num * PRICE;
printf(″total=%d\n″,total);
}
说符明号:常量程: 用序一中个用标#d识ef符in代e命表令一行个定常义量P。RICE
12 01.03.2021
2.3 整型数据
2.3.1整型常量的表示方法 整型常量即整常数。在C语言中,整常数
可用以下三种形式表示:
(1)十进制整数。 如:123, -456, 4。
(2)八进制整数。以0开头的数是八进制数。 如:0123表示八进制数123,等于十进制数
83,-011表示八进制数-11,即十进制数-9。