- 1、本文档共81页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章
基本数据类型、运算符和表达式
;本章内容;§2.1 C语言的数据类型
§2.1.1 概述
#include stdio.h
main()
{
int x,y,z;
float sum;
printf(input x,y,z:);
scanf(%d%d%d,x,y,z);
sum=x+y+z;
printf(\nsum=%f\n,sum);
}
;
程序设计主要解决两个问题:
一个是动作(操作步骤,算法),即怎样做的问题,这由语句来实现;
另一个是动作的对象,即数据的存放问题,这由数据类型来决定。
世界上著名的计算机科学家沃斯(N.Wirth)提出这
样一个公式:程序=数据结构+算法
思考:计算100个数之和。
算法
数据结构(数据类型)
;
为什么要规定数据类型呢?
不同数据类型的数据在内存中占据不同长度的存储区
一种数据类型对应着一个值的范围。
一种数据类型对应着一个运算集。
;
【例】已知三角形三边的长度为3,4,5,求面积并将面积值输出。
海伦公式:假设有一个三角形,边长分别为a、b、c,三角形的面 积S 可由以下公式求得。
算法分析:
而公式里的p:
;程序如下:
#include stdio.h
#include math.h
main()
{
float a,b,c,p,s;
a=3.0;
b=4.0;
c=5.0;
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf(“s=%f\n,s);
}
;§2.1.2 数据类型;§2.2 常量
常量:程序运行过程中其值不发生变化的量。
三类常量:数值、字符和字符串。
§2.2.1 数值常量
一、整数常量的表示
有十进制、八进制、十六进制表示
比如:十进制数123、-23、+99; 计算机的语言——二进制;
一、整数常量的表示
1、十进制表示
基数:10 (所含数码的个数)
权:10x (表明数码所在的位置)
数码:0 ~ 9
例如:123.45=1×102+2×101+3×100+4×10-1+5×10-2
;
注:计算机中使用二进制编码表示数据,且只存在二进制
二进制数:
基数:2
权:2x
数码:0 ~ 1
例如:1010.11=1×23+0×22+1×21+0×20
+1×2-1+1×2-2=10.75
二进制数权值:128 64 32 16 8 4 2 1
;
2、八进制表示
基数:8
权:8x
数码:0 ~ 7
例如:023=2×81+3×80 =19
注:C语言中八进制数第一个数字必须为0(八进制标志)
例如:0213 -030 +056 -0123
;
3、十六进制表示
基数:16
权:16X
数码:0 ~ 9,A,B,C,D,E,F
例如:0XBF3C=11×163+15×162+3×161+12×160
=48956
注:十六进制数前两个数字必须为0X(十六进制标志)
例如:0X213 -0X30 +0X56 -0X12A
;105;八进制;三、整数常量的取值范围
短整型数:
基本整型数:
长整型数:
四、溢出 整数的值超出了所能表示的范围
;二、实数
实数只使用十进制形式表示
两种表示方法:小数形式与指数形式
1、小数形式:由整数部分、小数点、小数部分组成
2.718 0.123 123.0 .123 123. 0.0 0. .0
2、指数形式:[+][整数部分][.][小数部分] e[+]n
e前部分称为尾数,表示实数的有效值,符号表示整体
的正负。
e后部分称为阶码(必须是整数常量),表示小数点在
尾数基础上的移动位数,符号表示移动的方向
例如:-3.14e2, 3.14e-2,-.12e2,23e+5,5e0,
5e,e4,1e1.2;
实数又分为单精度(float)、双精度(double)和长双精度(long double)三类。
实数的缺省类型为双精度数(double型);
在实数后面加后缀字母f或F表示单精度数(float型),例如3.14159F;
在实数后面加后缀字母l或L表示长双精度数(long double型),例如1.7e+309L.;
单精度实数具有6 ~ 7位十进制有效数字;
文档评论(0)