第2章 数据的存储与运算
有效数字 6~7 位 15~16位 18~19位
2.4 字符型数据的运算
2.4.1 字符数据运算的简单例子
例题 2.4
逐个输入英文字母C,H,I,N,A。然后按反序 输出,即A,N,I,H,C。
解题思路
可以把5个字母分别放在5个变量中,第1次 按正序输出这5个字母,第2次按反序输出这5 个字母。C语言提供字符型变量,用来存放字 符数据。
}
”,不属于致命性错误,可以将r和m改定
义为double型
(3)可以在定义变量时同时赋初值
int d=32450,p=3250,double r=0.008
ห้องสมุดไป่ตู้
(4)运行结果:month=201.983404, total=655436.127930
C 数据类型
基本类型
整型 数值类型
浮点型 字符类型char
ASCII码表
高三位
b6b5b4 ASCII码表(7位)
000 001 010 011 100 101 110 111
低四位 0000 NUL DLE SP
0
@
P
、
p
b3b2b1 0001
SOH DC1
!
1
A
Q
a
q
b0
0010 STX DC2
“
2
B
R
b
r
0011 ETX DC3
#
3
C
S
c
s
0100 EOT DC4
说明:标准化指数形式:其数值部分是一个小数,小数点 前的数字是零,小数点后的第一位数字不是零。一个实数可 以有多种指数表示形式,但只有一种属于标准化指数形式
2.1 数据在计算机中是怎样存储的
3. 字符的存储方式
• 字符包括字母(如A,a,X,x)、专用字符(如$, @,%,#)等。 • 计算机并不是将该字符本身存放到存储单元中 (存储单元只能存储二进制信息),而是将字符的 代码存储到相应的存储单元中。 • 附录A是字符与代码的对照表,这是国际通用 的ASCII代码。
m=(log10(p)-log10(p-d*r))/l(og210)(1C+编r);译/*系通统过把公所式有求实m的(f值lo*a/t)型常量(如
printf("month=%f\n",m); printf("total=%f\n",m*p);
/*/*计输算出并m0据 能.输的来 会0出值0处 丧8总)*理 失和/的, 一还l在 些款og数把 精10它 度*函/ 们 ,数赋 在的给编值译f都l时o作a出t为型现双变“精量警度时告数可
2.4 字符型数据的运算
编写程序
#include <stdio.h> void main() { char a='C',b='H',c='I',d='N',e='A'; /* a,b,c,d,e定义为字符变量 */ printf("%c%c%c%c%c\n",a,b,c,d,e); /* 顺序输出CHINA */ printf("%c%c%c%c%c\n",e,d,c,b,a); /* 反序输出CHINA */ }
printf("c=%f\ns=%f\nv=%f\n",c,s,v);
}
说明:
运行结果:
c=23.059290 s=42.313797 v=155.291633
2.6 算术运算符和算术表达式
2.6.1 算术运算符
(1)基本的算术运算符:
• + (加法运算符,或正值运算符。如:3+5、+3) • - (减法运算符,或负值运算符。如:5-2、-3) • * (乘法运算符。如:3*5) • / (除法运算符。如:5/3) • % (模运算符,或称求余运算符,%两侧均应为整型
解题思路 设:x--鸡数量 y--兔数量,
h--总头数 f--总脚数
有方程式: x+y=h (1)
2x+4y=f (2)
求x和y的公式:(2)式-2x (1)式: 2y = f – 2h
f 2h
y=
2
2.2 整型数据的运算与分析
编写程序
#include <stdio.h> void main() { int h,f,x,y; /* 定义整型变量h,f,x,y */
个“二进制位”,是存储信息的最小单位。它的值
是“1”或“0”。
字节:又称“拜特”(byte)。一般将8个“二进制
位”组织成一组,称为“字节”。
地址:计算机的存储器包含许多存储单元,操作
系统把所有存储单元以字节为单位编号 。
2.1 数据在计算机中是怎样存储的
2.1.3 不同类型数据的存储方式
1. 整数的存储方式
1110
SO
RS
.
>
N
^
n
~
1111
SI
US
/
?
O
_
o
DEL
2.2 整型数据的运算与分析
2.2.1 整型数据运算程序举例和分析
例题 2.1
鸡兔同笼: 在一个笼子里同时养着一些鸡和兔子
,你想了解有多少只鸡和多少只兔,主人对你说: 我只告诉你鸡和兔的总头数是16,总脚数是40, 你能不能自己计算有多少只鸡和多少只兔?
h=16; /* 对整型变量h赋值,使h的值等于16 */ f=40; /* 对整型变量f赋值,使h的值等于40 */ y=(f-2* h)/2; /* 对表达式(f-2* h)/2进行运算,把结果赋给y */ x=h-y; /* 对表达式h-y进行运算,把结果赋给x */ printf("%d%d\n",x,y); /* 输出鸡的个数和兔的个数 */ }
例2.6 大小写字母的转换
运行结果:A B
#include <stdio.h>
void main()
{ char c1,c2;
c1=’a’;
• 说明:程序的作用是将两
c2=’b’;
个小写字母a和b转换成大
c1=c1-32;
写字母A和B。从ASCI
c2=c2-32;
I代码表中可以看到每一
printf(“%c %c″,个c1小,c写2)字;母比它相应的大
$
4
D
T
d
t
0101 ENQ NAK
%
5
E
U
e
u
0110 ACK SYN
&
6
F
V
f
v
0111 BEL ETB
‘
7
G
W
g
w
1000
BS CAN
(
8
H
X
h
x
1001
HT
EM
)
9
I
Y
i
y
1010
LF SUB
*
:
J
Z
j
z
1011
VT ESC
+
;
K
[
k
{
1100
FF
FS
,
<
L
\
l
|
1101
CR
GS
-
=
M
]
m
}
2.3 实型数据的运算与分析
2.3.3 实型变量
实型变量的分类
浮点型变量分为单精度(float型)、双精度( double型)和长双精度型(long double)三类形 式。
类型 float Double long double
位数 32 64 128
数的范围 10-37 ~ 1038 10-307~10308 10-4931~104932
第二章
主要内容
2.1 数据在计算机中是怎样存储的 2.2 整型数据的运算与分析 2.3 实型数据的运算与分析 2.4 字符型数据的运算 2.5 符号常量 2.6 算术运算符和算术表达式 2.7 C运算符和C表达式
2.1 数据在计算机中是怎样存储的
2.1.1 数据在计算机中是以二进制形式存储的
•计算机内部的信息都是用二进制来表示的。 •二进制数的特点是“逢二进一”。每一位的值只有0和1两 种可能。 例如:十进制数10,用二进制表示是1010。它的含义是:
说明:
运行结果:
c=23.059290 s=42.313797 v=155.291633
2.5 符号常量
编写程序
#define pi 3.14159
#include <stdio.h>
void main()
{double r=3.67,c,s,v;
c=2*pi*r;
s=pi*r*r;
v=4/3*pi*r*r*r;
十进制整数先转换为二进制形式。例如:整数10以二进制
形式表示是1010,直接把它存放在存储单元中。 2. 实数的存储形式
实数采用指数形式存储,例如:123.456可以写成标准化指
数形式0.123456 10,3 它包括前后两个部分,前面部分
是数值部分,后面部分是指数部分。
0.123456
103
数值部分 指数部分
编写程序
#include <stdio.h> void main() {double r=3.67,c,s,v; c=2*3.1415926*r; s=3.1415926*r*r; v=4/3*3.1415926*r*r*r; printf("c=%f\ns=%f\nv=%f\n",c,s,v); }