计算机C++C语言编程结构化程序的开发

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1第三章结构化程序的开发2提纲3.1一些常用的转义序列3.2再论C语言中的数据类型3.3混合运算时各种数据类型之间的转换3.4格式化输出3.5赋值运算符3.6自增和自减运算符3.7条件运算符和逗号运算符3.8算术运算符的优先级和结合性√√√3转义序列含义描述\n\t\r\a\b\\\换行。将光标定位到下一行的开始位置。水平制表符。把光标跳到tab键的下一个输出区。回车。把光标定位在当前行(而不是下一行)的开始位置。响铃。使系统铃发声。光标回退一个字符。反斜扛。打印一个反斜扛字符。双引号。打印一个双引号字符。3.1一些常用的转义序列转义字符:反斜杠‘\’;转义序列:反斜杠后面加上特定的一个字符;%%:打印一个百分号printf(比例是%%%f,percentage);更多转义序列见《C程序设计教程》299页4main(){printf(123456781234567812345678\n);printf(1\t12\t123\tHello!\n);/*\t的使用*/printf(\tHello!\n);printf(1234567890);printf(\b\bHello!\n);/*\b的使用*/printf(1234\r\\\%%\n);/*打印''、\和%*/printf(“\a”);/*使系统发出一声*/system(pause);return0;}转义字符举例123456781234567812345678112123Hello!Hello!12345678Hello!\%4请按任意键继续...5提纲3.1一些常用的转移序列3.2再论C语言中的数据类型掌握:数据类型的种类、取值范围和格式说明符3.3混合运算时各种数据类型之间的转换3.4格式化输出3.5赋值运算符3.6自增和自减运算符3.7条件运算符和逗号运算符3.8算术运算符的优先级和结合性√√√6C语言中只有以下几种基本数据类型:char:字符型,可以存放字符集中的一个字符int:整型float:单精度浮点型double:双精度浮点型此外,还有用于限定这些基本类型的类型限定符:short(限定int)、long(限定int和double)signed和unsigned(限定char和任何整数类型)3.2C语言中的数据类型73.2C语言中的数据类型一、short、long限定整数类型示例:shortintage;longintcounter;longlongintpopulation;shortint、longint、longlongint可分别简写为short,long和longlong。如:shortage;int数据一般为16位或32位,long数据一般为32位,longlong为64位。各个编译程序可以根据硬件情况自由选择int、short、long的长度,唯一限制是short和int数据至少要有16位,而long数据至少要有32位;short数据长度≦int数据长度≦long数据长度≦longlong数据长度。83.2C语言中的数据类型三、signed、unsigned限定char类型和任何整数类型signedchar、unsignedcharsignedshort、unsignedshortsignedint、unsignedintsignedlong、unsignedlongsignedlonglong、unsignedlonglong经unsigned限定的类型取值范围必须是正的或者为0。一般省略signed,如signedchar通常写成char。二、long可限定double类型longdouble9所以,C语言支持2种不同的字符类型:signedchar、unsignedchar转换说明符:signedchar:%cunsignedchar:%u取值范围:signedchar:-128~127(1字节)unsignedchar:0~255(1字节)3.2C语言中的两种字符类型10所以,C语言支持8种不同的整形:short、unsignedshortint、unsignedintlong、unsignedlonglonglong、unsignedlonglong转换说明符:short:%hd,unsignedshort:%huint:%d,unsignedint:%ulong:%ld,unsignedlong:%lulonglong:%lldunsignedlonglong:%llu3.2C语言中的八种整形类型11取值范围和具体硬件有关。在short是16位、int和long是32位、longlong是64位的机器上数值范围如下:signedshort:-32768~32767(16位)unsignedshort:0~65535(16位)signedint:-2147483648~2147483647(32位)unsignedint:0~4294967295(32位)signedlong:-2147483648~2147483647(32位)unsignedlong:0~4294967295(32位)signedlonglong:(64位)-9223372036854775808~9223372036854775807unsignedlonglong:(64位)0~184467440737095516153.2C语言中的八种整形类型12所以,C语言支持支持三种不同长度的浮点数据类型:float、double和longdouble。其中float一般占4字节(32位)、提供7位有效数字;double一般占8字节(64位)、提供15~16位有效数字;longdouble占12字节(96位)。转换说明符:float:%fdouble:%lflongdouble:%lf3.2C语言中的三种浮点类型133.2C语言中的三种浮点类型•取值范围:float:-3.4*1038~3.4*1038double:-1.7*10308~1.7*10308longdouble:-1.2*104932~1.2*10493214提纲3.1一些常用的转移序列3.2再论C语言中的数据类型3.3混合运算时各种数据类型之间的转换3.4格式化输出3.5赋值运算符3.6自增和自减运算符3.7条件运算符和逗号运算符3.8算术运算符的优先级和结合性√√√153.3.1隐式转换•C编译器只知道计算操作数的数据类型相同的表达式。•如果一个运算符两侧的操作数的数据类型不同,则系统按“先转换、后运算”的原则,首先将数据自动转换成同一类型,然后在同一类型数据间进行运算。•类型转换分成两种:隐式转换和显式转换。•隐式转换的基本原则是将低类型数据转换成高类型数据(数据类型提升)。•各种类型的高低顺序如下:16高低数据类型scanf函数的转换说明符printf函数的转换说明符longdoubledoublefloatunsignedlonglongunsignedintintunsignedshortshortunsignedcharchar%lf%lf%f%lu%ld%u%d%hu或%u%hd%u%c%lf%lf%f%lu%ld%u%d%hu或%u%hd%u%c数据类型提升的顺序17longdoublefloatdoubleunsignedlonglongunsignedintunsignedchar、unsignedshortintchar、short转换原则:1)所有char及shortint型变量转为int型,所有float转换为double。2)操作数中较低类型数据转换成较高类型数据后再进行运算。注意:箭头方向只表示数据类型由低向高转换,int型数据和double型数据混合运算时,int型直接转换为double型,而不是转换成unsignedint型,再转换成long型、再转换成unsignedlongint型,最后转换成double型。18类型转换实例charch=‘Q’;inti=2;floatf=12.34;doubled=15.4;result=(ch/i)+(f*d)–(f+i);19赋值中的类型转换在一个赋值语句中,如果赋值运算符左侧变量的类型和右侧表达式的类型不一致,则赋值时将进行自动类型转换,将右侧表达式的值转换成左侧变量的类型。intn;charch;floatf;doubled;则执行语句“ch=n;”后,整型变量的高位字节将被切掉;执行语句“n=f;”后,n只接收f的整数部分,相当于取整运算。203.3.2显式转换total/counter的运算结果是整型数;为了得到浮点值,使用类型转换运算符,形式为:(类型说明符)表达式或者(类型说明符)(表达式),用于将表达式的运算结果类型转换为类型说明符指定的数据类型;类型转换运算(float)建立了操作数total的浮点值拷贝;存储在total值的值仍然是一个整型值;思考:下面语句的效果average=(float)(total/counter);使用类型转换运算符将高类型数据强制转换为低类型数据时,会引起精度损失(例如浮点转换成整型)或改变数据的值(例如long转换成short)。inttotal=1230,counter=35;floataverage;average=(float)total/counter;显式转换21提纲3.1一些常用的转移序列3.2再论C语言中的数据类型3.3混合运算时各种数据类型之间的转换3.4格式化输出3.5赋值运算符3.6自增和自减运算符3.7条件运算符和逗号运算符3.8算术运算符的优先级和结合性√√√详见《C程序设计教程》第9章,自学221.类型转换字符d──以带符号的十进制整数形式输出。–可以指定输出场宽(总位数)和对齐方式(左对齐还是右对齐)。–%5d:场宽为5,右对齐,左补空格。–%-5d:场宽为5,左对齐,右补空格。–若实际位数超出指定位数,则按实际位数输出假设有变量定义如下:intnum1=123;longnum2=123456需要程序运行结果如下:num1=123,num1=□□123,num1=123□□,num1=123num2=123456,num2=□□123456,num2=1234563.4格式指示符233.4格式指示符则对应的程序为:#includestdio.h#includestdlib.hmain(){intnum1=123;longnum2=123456;printf(num1=%d,num1=%5d,num1=%-5d,num1=%d\n,num1,num1,num1,num1);printf(num2=%ld,num2=%8ld,num2=%ld\n,num2,num2,num2);system(“pause”);return0;}242.类型转换字符f──以小数形式、按系统默认的宽度,输出单精度和双精度实数。•%f:默认方式下输出小数点后6位;如:123.556000。•%12f:总共占据12位(包括小数点),其中保留小数点后面6位。不足位左补零。若实际长度超出指定场宽,按实际输出。•%12.2f:总共占据12位(包括小数点),其中保留小数点后面2位。不足位左补零,若超出则按实际输出。•%e:总共占据13位。如:1.235560e+002,分尾数(1.235560)和指数(+002)两部分。其中尾数占据8位(包括小数点),最高位不为0,小数点后面保留6位;指数占据4位,1位是符号位。•%12.2e:共占12位(包括小数点和e),其中尾数保留小数点后2位。指定输出场宽、对齐方式、小数点后位数25main(){floatf=123.556;doubled1,d2;d1=1111111111111.111111111;d2=2222222222222.222222222;printf(%f,%12f,%12.2f,%-12.2f,%.2f\n,f,f,f,f,f);printf(%e,%12e,%12.2e,%-12.2e,

1 / 48
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功