第二章数据对象与计算甘锐北京大学数学科学学院2010-3-24计算概论第二章2主要内容基本数据的描述形式表达式的形式和意义(所表示的计算过程)一个基本概念:类型学习写最简单的C程序计算概论第二章32.
1基本字符/标识符/关键字基本字符,C程序是基本字符的序列数字字符:0~9大小写字母:a~z,A~Z其他可打印字符:标点符号、运算符号、括号等特殊字符:空格、换行、制表符(空白字符)等起分隔作用;利用空白字符排列程序格式.
计算概论第二章42.
1基本字符/标识符/关键字标识符(Identifier):程序中的名字用于命名各种对象;建立定义和使用的联系.
形式:字母和数字字符构成的连续序列,要求以字母开头.
规定:将下划线"_"看作字母.
不可出现非字母/非数字/非下划线字符.
标识符对字母大小写敏感.
例1:ABC,Abc,AbC,abc,a3b06,a3b400n,while,_f2048,sx211_12a,abc__,____例2:x3+5、ab_400+xy__/x要求:尽量采用能说明程序对象意义的标识符.
计算概论第二章52.
1基本字符/标识符/关键字关键字(Keywords)特殊标识符集(共32个);有特定意义,不能用于其他用途(C99有扩充).
计算概论第二章62.
2数据与类型类型是计算机科学的一个核心概念.
一个类型是程序里可用的一个数据对象集合.
同类型所有数据对象的性质相同:采用统一书写形式;同样编码方式;能做同样操作.
基本类型用定长二进制编码表示;确定了该类型的可能范围.
数据都属于特定类型.
C基本数据类型包括字符/整数/实数类型等.
计算概论第二章72.
2数据与类型C的数据类型数据类型数据类型构造类型构造类型指针类型指针类型空类型(空类型(无值类型)无值类型)voidvoid枚举类型枚举类型enumenum数组类型数组类型结构类型结构类型structstruct联合类型联合类型unionunion基本类型基本类型整型整型intint字符型字符型charchar实型(浮点型)实型(浮点型)单精度实型单精度实型floatfloat双精度实型双精度实型doubledouble计算概论第二章82.
2数据与类型文字量:程序里直接写出的数据.
整数类型的文字量(简称整数):写在程序里的整数类型的数据.
其他情况类似.
类型名:基本类型的类型名由一个或几个关键字组成.
例:intlongdouble计算概论第二章92.
3C的基本类型整数类型C语言里有多个整数类型;不同整数类型所用编码位数可能不同;常用的整数类型一般整数类型(整型):int长整数类型(长整型):longint(简称long)long的表示范围可能大于int;由C系统确定.
计算概论第二章102.
3C的基本类型整数的表示整型字面量(整数)写法十进制:首字符非0的数字序列.
例:1234、0;八进制:以0开始的数字序列,只允许用0~7.
例:0123;十六进制:以0x或0X开头的数字序列,用字母a~f或A~F表示其余6个数字.
例:0x2073、0xA3B5;长整数写法:加后缀l或L(不能有间隔).
例:123L、0765432L、0xF0F0000L;整数可以加正负号.
计算概论第二章112.
3C的基本类型整数表示范围编码长度(表示范围)由具体C系统确定.
C语言规定:long的范围不小于int,但允许相同.
Turbo-C系统整数用16位,表示范围是:-32768~32767;长整数用32位表示,范围是:-2147483648~2147483647VC系统中整数和长整数均用32位.
计算概论第二章122.
3C的基本类型三种实数类型单精度浮点数类型(浮点类型):float32位表示,约7位十进制有效数字;双精度浮点数类型(双精度类型):double64位表示,约16位十进制有效数字;长双精度类型:longdouble.
64位表示,或80位表示约19位十进制有效数字(系统确定);对应的字面量:浮点数/双精度数/长双精度数.
计算概论第二章132.
3C的基本类型实数的表示双精度数(double)的写法十进制形式:数字序列,需包含小数点".
"(可以是首/末字符).
例:0.
123、.
123、123.
0、123.
、0.
0指数形式:数字序列后有指数部分(以e/E开头数字序列,可带符号,以10为底).
可同时有小数点和指数;e/E之前须有数字,且之后的指数须有整数;例:1e3、1.
8E-3、-123e-6、-.
1e-3不合法的写法:e3、2.
1E3.
5、.
e3、e计算概论第二章142.
3C的基本类型实数的表示双精度数(double)的写法规范化的指数形式:e/E之前的小数部分中,小数点左边应有一位且只能有一位非零的数字.
例,123.
456可表示为:123.
456e0、12.
3456e1、1.
23456e2、0.
123456e3、0.
0123456e4、0.
00123456e浮点数(float)的写法:与双精度数类似,在数后加后缀f或F;长双精度数的写法:在数后后加后缀l或L.
整数类型和实数类型统称算术类型.
计算概论第二章152.
3C的基本类型字符类型字符类型用于输入输出(I/O)或文字处理.
常用字符类型:char包括所用机器的字符集的所有字符.
字符在机器内部用对应编码表示.
一个char一个字节.
微机常用ASCII字符集,包含128个字符.
有些机器用扩展ASCII字符集,256个字符.
计算概论第二章162.
3C的基本类型字符字面量:单引号括起的一个字符只能包含一个字符,如:'1','a','D';特殊字符(以"\"开头的字符序列,转义序列)换行字符'\n'双引号字符'\"'单引号字符'\''反斜线字符'\\'计算概论第二章172.
3C的基本类型字符串:表示一串字符的数据描述形式用一对双引号包含起来的字符序列.
例:"CHINA""Welcome\n""Hesaid:\"Ok.
\"\n"特殊字符用转义序列表示.
主要用于输入输出;字符串里的空格是实际内容("有意义");规定:字符串中不能实际换行.
计算概论第二章182.
3C的基本类型C函数的调用形式函数名(参数1,参数2,…,参数n)语句:程序基本单位,以分号为结束符.
printf("Goodmorning!
\n");函数名函数参数括号分号(语句)计算概论第二章19格式输出函数printf功能:将信息按照指定的格式送到标准输出(一般送到屏幕或特定窗口)使用形式printf(格式描述串,其他参数1,…,其他参数k);参数"格式描述串":字符串;指定输出的格式;如果"格式描述串"里没有%,则没有"其他参数",printf输出"格式描述串"本身;其他参数的数目必须匹配"格式描述串",可以是0,1,2….
2.
3C的基本类型计算概论第二章202.
3C的基本类型转换描述形式:以%开始的一段字符序列,如%d,%f等;功能:指定数据的转换和输出方式;每个转换描述对应一个"其他参数".
转换描述实现的转换对应参数的类型%d整数转换输出int%ld长整数转换输出long%f实数转换输出double%Lf实数转换输出longdouble%s输出字符串字符串%c输出字符字符(编码)%%输出%输出整数:printf("%d",2);2输出实数:printf("%f",2.
0);2.
000000计算概论第二章212.
3C的基本类型printf的功能按照"格式描述串"的格式输出,即控制输出的格式.
直接输出"格式描述串"中非转换描述(普通字符);转换描述用对应的"其他参数"的转换结果替代输出.
printf("Test:%d+%d=%d\n",2,3,5);Test:2+3=5printf("len:%f,width:%f,area:%f\n",2.
2,3.
5,7.
7);len:2.
200000,width:3.
500000,area:7.
700000计算概论第二章222.
3C的基本类型关于printf的说明转换描述和"其他参数"个数一致;转换描述和对应参数的类型必须一致.
在%和转换字符之间可加其他限制性描述,如%md,%ms,%mf等:指定输出数据的宽度是m;%m.
nf表示输出数据的宽度是m列,其中有n位小数.
如果数值长度小于m,则左侧补空格.
printf("%10s:%4d%8.
1f\n","LiMing",2,88.
4);LiMing:288.
4如调用printf,最前面应当写:#include计算概论第二章232.
3C的基本类型问题:下面程序的输出结果#includeintmain(){printf("%d\n",5.
0);printf("%f\n",5);return0;}计算概论第二章242.
4运算符、表达式与计算运算符:描述数据运算的特殊符号,由一个或两个特殊字符表示.
表达式:描述计算的最基本结构.
由计算对象(如字面量)和运算符"按一定规则"构成.
例:237+23*37-14printf("len:%f,width:%f,area:%f\n",2.
2,3.
5,7.
7);=2.
2*3.
5计算概论第二章252.
4运算符、表达式与计算算术运算符运算符使用形式意义+一元和二元运算符一元正号,二元加法-一元和二元运算符一元负号,二元减法*二元运算符乘法运算/二元运算符除法运算%二元运算符取模运算(求余数)由+/–的上下文可确定是"一元"还是"二元".
%只能用于整型,其余可用于各种算术类型.
计算概论第二章262.
4运算符、表达式与计算算术表达式形式:与数学的算术表达式类似;由计算对象,运算符,和圆括号构成.
-(28+32)+(16*7-4)25*(3-6)+234同类型值的运算结果仍是该类型的值.
例:3+5计算结果是int类型的8;3L+5L的结果是long;3.
2+2.
88的结果是double.
可在运算对象和运算符间加空格调整格式.
计算概论第二章272.
4运算符、表达式与计算例:计算半径为6.
5厘米的圆球体积.
用printf输出计算结果,程序:#includeintmain(){printf("V=%fcm^3\n",(3.
1416*6.
5*6.
5*6.
5)*4.
0/3.
0);return0;}V=1150.
349200cm^3简单程序框架计算概论第二章282.
4运算符、表达式与计算表达式的计算过程表达式计算又称"表达式求值".
表达式的意义就是求出的值.
语言明确规定了表达式计算过程(计算顺序).
包括几方面:优先级;结合方式;(多个)运算对象的求值顺序;括号.
计算概论第二章292.
4运算符、表达式与计算优先级:运算符在表达式中相邻出现时,先算优先级高的运算符.
(附录A运算符表)算术运算符分三个优先级:一元+,-(高)中)二元+,-(低)例:5/-3+4*6(符合数学习惯)结合方式:同优先级运算符相邻时的计算顺序规则:一元算术运算符自右向左结合,二元算术运算符自左向右结合.
(符合数学习惯)例:166/8*5/3计算概论第二章302.
4运算符、表达式与计算括号:改变计算顺序,括号括起的部分先算.
-(((2+6)*4)/(3+5))括号是控制计算顺序的手段.
(符合数学习惯)运算对象的求值顺序(5+8)*(6+4)(5+8)和(6+4)中哪个先做C对此问题无规定.
程序中不应写依赖特殊计算顺序的表达式,否则将无法保证得到的结果.
计算概论第二章312.
4运算符、表达式与计算算术计算的溢出每个类型都有明确取值范围;计算结果都有确定的类型;计算中结果超出类型表示范围称为溢出.
C程序对溢出不报错,溢出后的计算没有意义.
例,若int由16位表示,下面表达式有问题:32766+18应选择合适类型,如改为:32766L+18L实数计算也可能发生溢出(上溢和下溢).
计算概论第二章322.
4运算符、表达式与计算计算和类型14/8*12vs.
14*12/8int数据计算得到int结果;int采用整除,商是整数,余数丢掉;long类型和其他所有整数类型都如此;各种实数类型的情况类似(未必精确).
=1*12=12=168/8=21计算概论第二章332.
4运算符、表达式与计算混合类型计算和类型转换混合类型计算:运算符的运算对象类型不一致3.
27+201不同算术类型的加法都用+表示,编译程序是根据运算对象类型来确定怎样做:3+2用int类型的加法运算3.
0+2.
0用double类型的加法运算如出现混合类型计算,程序自动将运算对象转换到相同类型值,而后计算.
是自动类型转换;不需要在程序里明确写.
计算概论第二章342.
4运算符、表达式与计算自动类型转换原则:把表示范围小的类型的值转换为表示范围大的类型的值int,long,float,double,longdouble混合类型计算中自动插入数值转换动作,由原类型的值产生出新值后参与计算.
32767+2L计算概论第二章352.
4运算符、表达式与计算例:表达式2L+3*4.
5的计算过程2L2.
033.
04.
5*13.
515.
5+计算概论第二章362.
4运算符、表达式与计算显式类型转换如果自动转换不符合需要,可要求做特定类型转换,称为强制转换或类型强制.
写法:表达式前写括起的类型名.
例:(int)(3.
6*15.
8)+4实数类型转为整型时丢掉小数部分.
讨论:类型转换的有关问题
RepriseHosting是成立于2012年的国外主机商,提供独立服务器租用和VPS主机等产品,数据中心在美国西雅图和拉斯维加斯机房。商家提供的独立服务器以较低的价格为主,目前针对西雅图机房部分独立服务器提供的优惠仍然有效,除了价格折扣外,还免费升级内存和带宽,商家支持使用支付宝或者PayPal、信用卡等付款方式。配置一 $27.97/月CPU:Intel Xeon L5640内存:16GB(原...
华纳云双11钜惠出海:CN2海外物理服务器终身价688元/月,香港/美国机房,免费送20G DDos防御,50M CN2或100M国际带宽可选,(文内附带测评)华纳云作为一家专业的全球数据中心基础服务提供商,总部在香港,拥有香港政府颁发的商业登记证明,APNIC 和 ARIN 会员单位。主营香港服务器、美国服务器、香港/美国OpenStack云服务器、香港高防物理服务器、美国高防服务器、香港高防I...
Friendhosting发布了针对“系统管理日”(每年7月的最后一个星期五)的优惠活动,针对VPS主机提供55%的优惠(相当于四五折),支持1-6个月付款使用,首付折扣非永久,优惠后最低套餐首半年7.18欧元起。这是一家保加利亚主机商,成立于2009年4月,商家提供VDS和独立服务器租用等,数据中心目前可选美国洛杉矶、保加利亚、乌克兰、荷兰、拉脱维亚、捷克和波兰等8个地区机房。下面以最低套餐为例...
什么是32位系统为你推荐
75ff.com开机出现www.ami.com是什么?怎么解决啊冯媛甑谁知道怎么找到冯媛甄的具体资料?冯媛甑尸城女主角叫什么名字777k7.comwww.777tk.com.怎么打不 开同一服务器网站服务器建设:一个服务器有多个网站该如何设置?郭泊雄郭佰雄最后一次出现是什么时候?haole16.com玛丽外宿中16全集在线观看 玛丽外宿中16qvod快播高清下载haole10.com空人电影网改网址了?www.10yyy.cn是空人电影网么斗城网女追男有多易?喜欢你,可我不知道你喜不喜欢我!!平安夜希望有他陪我过www.zhiboba.com上什么网看哪个电视台直播NBA
联通vps 申请免费域名 vpsio 轻博客 网站实时监控 国内php空间 免费smtp服务器 100x100头像 我爱水煮鱼 工信部icp备案号 吉林铁通 如何建立邮箱 smtp虚拟服务器 海外空间 防盗链 ssd 9929 瓦工工具 大容量存储方案 好看的空间头像 更多