第二章数据对象与计算甘锐北京大学数学科学学院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实数类型转为整型时丢掉小数部分.
讨论:类型转换的有关问题
今天CloudCone发布了最新的消息,推送了几款特价独立服务器/杜甫产品,美国洛杉矶MC机房,分配100Mbps带宽不限流量,可以选择G口限制流量计划方案,存储分配的比较大,选择HDD硬盘的话2TB起,MC机房到大陆地区线路还不错,有需要美国特价独立服务器的朋友可以关注一下。CloudCone怎么样?CloudCone服务器好不好?CloudCone值不值得购买?CloudCone是一家成立于2...
ZJI原名维翔主机,是原来Wordpress圈知名主机商家,成立于2011年,2018年9月更名为ZJI,提供香港、日本、美国独立服务器(自营/数据中心直营)租用及VDS、虚拟主机空间、域名注册业务。ZJI今年全新上架了台湾CN2线路服务器,本月针对香港高主频服务器和台湾CN2服务器提供7折优惠码,其他机房及产品提供8折优惠码,优惠后台湾CN2线路E5服务器月付595元起。台湾一型CPU:Inte...
ZJI怎么样?ZJI是一家成立于2011年的商家,原名维翔主机,主要从事独立服务器产品销售,目前主打中国香港、日本、美国独立服务器产品,是一个稳定、靠谱的老牌商家。详情如下:月付/年付优惠码:zji??下物理服务器/VDS/虚拟主机空间订单八折终身优惠(长期有效)一、ZJI官网点击直达香港葵湾特惠B型 CPU:E5-2650L核心:6核12线程内存:16GB硬盘:480GB SSD带宽:5Mbps...
什么是32位系统为你推荐
哈利波特罗恩升级当爸哈利波特最后当了当了傲罗么 ps因为在第五部里我看到他说他要当一个傲罗微信回应封杀钉钉微信大封杀什么时候结束杰景新特萨克斯吉普特500是台湾原产的吗www.haole012.comhttp://fj.qq.com/news/wm/wm012.htm 这个链接的视频的 第3分20秒开始的 背景音乐 是什么?51sese.com谁有免费看电影的网站?avtt4.comCOM1/COM3/COM4是什么意思??/www.kaspersky.com.cn卡巴斯基杀毒软件有免费的吗?稳定版的怎么找?kb123.netwww.zhmmjyw.net百度收录慢?www.1diaocha.com手机网赚是真的吗888300.com请问GXG客服电话号码是多少?
www二级域名 电信服务器租赁 工信部域名备案 免费动态域名解析 highfrequency 免费主机 便宜建站 主机屋免费空间 卡巴斯基官方免费版 怎么测试下载速度 根服务器 阿里云官方网站 广州虚拟主机 杭州电信宽带优惠 实惠 免费php空间 免费网络空间 cc加速器 卡巴斯基免费版 卡巴斯基官方下载 更多