第2章 数据类型、运算符和表达式_第1页
第2章 数据类型、运算符和表达式_第2页
第2章 数据类型、运算符和表达式_第3页
第2章 数据类型、运算符和表达式_第4页
第2章 数据类型、运算符和表达式_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 2.1.1 二进制数、八进制数与十六进制数二进制数、八进制数与十六进制数 u十进制数有10个数码:09,加法运算采 用“逢十进一”的进位法则 u二进制数有2个数码:0和1,加法运算采用 “逢二进一”的进位法则 u八进制数有8个数码:07,加法运算采用 “逢八进一”的进位法则。 u十六进制数有16个数码:09和AF,加 法运算采用“逢十六进一”的进位法则 2.1.2 二进制数、八进制数、十进制数和十六二进制数、八进制数、十进制数和十六 进制数之间的换算进制数之间的换算 采用按权展开逐个相加的方法 十进制数的整数部分采用除以二取余数, 直到商为零;十进制数的小数部分采用乘以二 取整(即十分位向个

2、位的进位),直到小数部 分为零(或者精确到小数点后规定的位数)。 转换时以小数点为分界线,整数部分从低 到高,小数部分从高到低按位数分组,每3位 二进制数对应1位八进制数;分组时若不足3 位数时,整数部分要在前面补0、小数部分要 在后面补0。 转换时以小数点为分界线,整数部分从低 到高,小数部分从高到低按位数分组,每4位 二进制数对应1位十六进制数;分组时若不足 4位数时,整数部分要在前面补0、小数部分 要在后面补0。 u 机器数和真值 u 原码、反码与补码 u 定点数与浮点数 u ASCII编码 2.2.1 机器数与真值机器数与真值 计算机只能识别“0”和“1”两种数码。数的 正、负符号也可

3、以用“0”和“1”来表示,具体 地,把一个数的最高位作为符号位,称为数符, 用“0”表示正,“1”表示负,其余位仍然表示 数值。 注意:机器数表示的范围受到字长的限制,例 如,如果表示一个整数,字长是16位,那么最大 值是0111111111111111,因此16位整数的最 大值是32767。如果超过32767,就要“溢出”。 带符号位的机器数对应的数值称为机器 数的真值。 写出带符号位的机器数 (00100001)2和(10100011)2的真值。 (00100001)2= +33 (10100011)2= -35 当计算机字长的所有二进位都用来表示 数值时,称为无符号数。一般在不出现负数

4、的情况下,可以使用无符号数。这样可以将 最大数增大一倍。例如16位无符号数的最大 值是(1111111111111111)2,也就是 65535。 2.2.2 原码、反码和补码原码、反码和补码 整数X的原码是指:其数符位0表示正,1表示 负,其数值部分是X的绝对值的二进制表示。 +1原 = 00000001 +127原 = 01111111 -1原 = 10000001 -127原 = 11111111 整数X的反码是指:对于正数,与原码相同; 对于负数,数符位为1,其数值部分是X的绝 对值取反,即1变0,0变1。例如: +1反 = 00000001 +127反 = 01111111 -1 反

5、 = 11111110 -127 反 = 10000000 整数X的补码是指:对于正数,与原码相同;对于 负数,数符位为 1,其数值部分是X的绝对值取 反后最低位加1,即负数的补码等于其对应的反码 加1。 例如: +1补 = 00000001,+127补 = 01111111 -1 补 = 11111111,-127 补 = 10000001 2.2.3 定点数和浮点数定点数和浮点数 计算机处理的数多数带有小数点,小数 点在计算机中不占二进位,那么如何表示小数 点的位置,反映数值的大小? l 第一种是约定机器数的小数点隐含在某 一固定位置上的定点表示法 l 第二种是小数点位置可以任意移动的浮

6、点表示法 当约定小数点位置固定在机器数的最低位之后时, 称为定点整数。当约定小数点位置固定在符号位之后, 有效数值部分最高位之前时,称为定点小数。 定点小数在计算机中的格式表示如图2-3所示: 任何一个二进制的浮点数(也称为实数)都可以表 示成如下的形式: 其中,。例如: 在计算机中规定浮点数的尾数采用纯小数形式,上 例中的0.100011和0.0100011。 如果尾数的最高位为1,则称为规格化数,因此上例 中的 就是规格化数。 浮点数在计算机内部的表示形式如下图2-4所示。 例:二进制数 在计算机中的存储方式如图2-5 所示(阶符一位,阶码两位原码,数符一位,尾数四位原码)。 数的定点表示

7、和浮点表示各有优缺点,在不同的场合 都得到使用。当所占用的位数相同时,浮点数所表示的数 的范围要比定点数大,运算精度一般比定点数要高,但浮 点数的运算规则比定点数运算规则要复杂,所以相应的计 算机运算部件也比较复杂。 所谓(constant),是指在程序运行过 程中,其值不可改变的量。在C语言中常量具 有整型、实型和字符型。 例如:1234、-12为整型常量,1234. , 123.4 和-123.4为实型常量,a与A都 为字符型常量。 程序中,这种能够从字面上看出数值的常 量称为,另外可以使用 一个标识符来代表一个常量,称为。 2.3.1 整型常量整型常量 :如2001,-18,0。 :在八

8、进制整数的前面加一 个0。如02001表示(2001)8、-017表示- (17)8,而019则是错误的,因为八进制数不可 能出现数码9。 :在十六进制整数的前面 加一个0 x。如0 x2001表示(2001)16, 0 xAB12表示(AB12)16。 Visual C+ 6.0中的整型常量可分为: 一个基本型常量占用 32比特的内存单元, 按补码形式存储,取值范围为-231231-1。 一个长整型常量占用32比特的内存单元,取 值范围为-231231-1 。在书写长整型常量时, 要以英文字母l或L结尾,如123456L。 无符号型是指内存单元中只存数据位而不存符 号位。无符号基本型整数(u

9、nsigned int)的取 值范围与无符号长整型数(unsigned long)的 取值范围相同,都为0232-1。 无符号基本整型常量要以字母u或U结尾,如 123u,无符号长整型常量要以字母ul或UL结尾, 如123456UL。 2.3.2 实型常量实型常量 实型数据也称为浮点数,在C语言中的实型 常量具有以下两种表示方法: (1)。这是最普通的表示 方式。要注意,一定要有小数点,例如: 2002.,.2002,-3.14,0.0。 (2)。由数字部分、小写字母e(或 大写字母E)和作为指数的整数组成。例如:要将 2002.168写成指数形式,可以有多种形式: 2002.168e0,20

10、0.2168e1,20.02168e2, 2.002168e3等。其中的2.002168e3称为“规 范化的指数形式”。一个实数在按指数格式输出 时,是按规范化指数形式输出的。 2实型常量的分类 单精度实型数的有效数字为67位,数值的 范围为10-371038 。 (2) 双精度实型数是另外一种类型的实数。在 Visual C+ 6.0中,双精度实型数占用内存单元 为64比特,数值范围是10-30710308 ,有效数字 是1516位。 2.3.3 字符常量字符常量 字符常量是一个整数,写成用一对单引号括住的 单个字符的形式,例如a,A,x,$都是字 符常量 字符在内存中以ASCII码值的形式

11、存储。例如从 ASCII码表中可以查出字符a的ASCI码值是97,它 在计算机内部的存储形式如图2-7所示。 字符常量的存储形式与整数的存储形式类似, 所以字符常量的值就是该字符的ASCII码值,例 如字符0的值是48,而不是数值0。 在实际编程时,应该记住一些常用字符的 ASCII值,由此可以推导出其它字符的值。 字符A的ASCII值是65 字符a的ASCII值是97 字符0的ASCII值是48 空格字符 的ASCII值为32 写出下列程序的运行结果。 #include void main() int i,j; i=65; /*字符A的ASCII码值*/ j=i+1; /*字符B的ASCII

12、码值*/ printf(%c,%cn,i,j);/*以字符形式输出*/ printf(%d,%dn,i,j); /*以整数形式输出*/ A,B 65,66 2.3.4 字符串常量字符串常量 也叫字符串字面值,是用一对双引号 括住的由0个或者多个字符组成的字符序列。例如,“I am a student.”、“Windows XP”和“”(空字符串) 等 C语言规定:在每一个字符串的结尾系统自动加 上一个字符串结束标志符0,以便判断字符串是否结 束。所以字符串“China”在内存中的存储形式如图2-8 所示, 从图中能看出存储该串所需的字符数不从图中能看出存储该串所需的字符数不 是是5而是而是6。

13、另外,字符串。另外,字符串“a”包括了包括了 两个字符两个字符a和和0,故,故a不同于不同于a。 2.3.5 符号常量符号常量 (也称为),它是用一个标 识符来代表的常量,C语言中用#define来定 义一个符号常量,符号常量一般用大写字母来 表示。(有关内容在第四章中有详细论述) 例如:通过使用以下形式定义了一个符号 常量PI,在预编译程序时将代码中所有的PI都 用3.1415926来代替。 下面一段程序是按华氏温度与摄氏温度的转换公式: C=(5/9) (F-32) 打印出0F,10F,20F,直到100F之间的华氏温 度与摄氏温度的对照表。 #include #define LOWER

14、0 /*表的下限*/ #define UPPER 100 /*表的上限*/ #define STEP 10 /*步长*/ void main() int f; float c; for(f=LOWER;f=UPPER;f+=STEP) c=5.0f/9.0f*(f32); printf(%3d,%6.1fn,f,c); 简单地说,是指其值在程序运行过程 中会发生改变的量。 在程序设计中,必须通过变量名来使用变 量。在给变量命名时,必须用来表示, 不能把关键字当作变量名来使用。 在C语言中,对所有的变量均要求“ ”,而且在定义变量名时,尽量做 到“见名知意”。 2.4.1 整型变量整型变量 在C

15、语言中具有以下6种整型变量: :signed int :unsigned int : signed short int : unsigned short int : signed long int : unsigned long int C语言规定程序中使用的变量必须“先定义,后使用”,一般放 在一个函数开头的说明部分,它的作用域仅限于该函数内部(关于 变量与其作用域的内容将在第4章中介绍)。 同一类型的变量可以任何方式分散在多个说明中,例如: int lower,upper,step; float x,y; 变量在说明时可以同时初始化。例如: int i=0; int limit=MAXLI

16、NE+1;/*MAXLINE是符号常量*/ int j,k=10;/*可以对变量的一部分初始化*/ int lower=0,upper=100,step=20;*对几个变量初始化*/ char c=s; 写出下列程序的运行结果。 #include void main() int a=1; int b=-1; unsigned c,d; c=a; d=b; printf(a=%d,b=%d,c=%d,c=%u,d=%d, d=%un,a,b,c,c,d,d); a=1,b=-1,c=1,c=1,d=-1,d=4294967295 为什么d为作有符号数(%d)输出时是-1,而作为 无符号数(%u)

17、输出时却是4294967295?这是因为 b赋值为-1,在内存中按补码形式存储为32个1,即: 当把b赋值给d时,d在内存中的存储也变为32个1。 (1)将包含符号位在内的所有二进制补码的各位数字全部 取反,即1变0、0变1; (2)将上述得到的结果转换为十进制整数; (3)加上负号; (4)上述结果最后再减去1。 通过上述介绍可知, ,由于补码的最高位(即符号位) 为1,说明了原来的十进制整数应该是负数, 经过上述四步计算得到的结果就是-1; ,则按照二进制整 数转换为十进制整数的方法,最后得到的结果 就是4294967295(即232-1)。 写出下列程序的运行结果。 #include v

18、oid main() short int a,b; unsigned short i,j; a=32767; b=a+1; i=65535; j=i+1; printf(a=%d,b=%d,i=%u,j=%un,a,b,i,j); 运行结果如下运行结果如下: a=32767,b=-32768,i=65535,j=0 (1)一个取值范围为-32768, 32767的整数应 被看作是short int型常量,允许给int型和long int型变 量赋值;同样,一个取值范围为2147483648, 2147483647的整数,应被看作是int型或者long型常 量可以给long int型变量赋值。

19、(2)由于int型与long int型的数据均占据相同长 度的内存单位(即32比特),则int型常量同时也是 long int型常量,可以赋给int型或long int型变量。 (3)若要说明某个常量是long int类型的常量,可 以在该常量的后面加上尾符大写字母L或者小写字母l。 例1234是int型常量,而1234L或者1234l则是long int型常量。 (4)在函数调用中,如果形参是long int型,那么 实参也必须是long int型,如果实参与形参的类型不一 致可以用强制类型转换来表示。 2.4.2 实型变量实型变量 与实型常量相一致,实型变量也分为以下 三种类型: (单精度

20、实型) (双精度实型) (长双精度实型) #include void main() float x1,x2,x3; double y1,y2; x1=1.234567899e8f; x2=1234567.899e2f; x3=x1+1; printf(x1=%fnx2=%fnx3=%fn,x1,x2,x3); y1=1.234567899e8f; y2=y1+1; printf(y1=%fny2=%fn,y1,y2); x1=123456792.000000 x2=123456792.000000 x3=123456793.000000 y1=123456792.000000 y2=12345

21、6793.000000 #include void main() float x1,x2,x3,x4; double y1,z1,z2,z3; x1=1234.567899f; x2=99876.54321f; x3=x1*x2; x4=1234.567899f*99876.54321f; printf(x3=%fnx4=%fn,x3,x4); y1=1234.567899*99876.54321; printf(y1=%fn,y1); z1=1234.567899; z2=99876.54321; z3=z1*z2; printf(z3=%fn,z3); : x3=123304376.000

22、000 x4=123304376.000000 y1=123304374.110152 z3=123304374.110152 分析运行结果,可以看出系统将实型常量1 234.567 899和99 876.543 21按双精度数据处理, 这样可以提高计算的精度。如果在实型常量后面加上f (或F),系统就会按单精度数据处理。 2.4.3 字符型变量字符型变量 字符型变量用来存储字符常量。一个字 符变量在内存中只占一个字节,只能存储一个 字符。 下表2-5列出了Visual C+ 6.0中字符 类型的取值范围。 写出下列程序的运行结果。 #include void main() char c1,c

23、2; c1=A;/*字符A*/ c2=c1+1; /*字符B*/ printf(%c,%cn,c1,c2); /*以字符形式输出*/ printf(%d,%dn,c1,c2); /*以整数形式输出*/ A,B 65,66 写出下列程序的运行结果。 #include void main() int i; char c; c=0 x41; i=B; printf(%c,%dn,c,i); A,66 写出下列程序的运行结果。 #include void main() char c; unsigned char d; c=255; d=255; printf(c=%dnd=%dn,c,d); : c=

24、-1 d=255 C语言的运算符非常丰富,根据运算符的性 质可以分为算术运算符、关系运算符、逻辑运 算符、赋值运算符、位运算符、条件运算符、 自增和自减运算符、逗号运算符、指针运算符、 强制类型转换运算符、分量运算符、下标运算 符、求字节数运算符、函数调用运算符等。 根据所需要的操作数个数,运算符又可以 分成单目运算符、双目运算符和三目运算符。 2.5.1 算术运算符与算术表达式算术运算符与算术表达式 +(加法运算符,或正值运算符) -(减法运算符,或负值运算符) *(乘法运算符) /(除法运算符) %(求余运算符或模运算符) 用算术运算符和括号将运算对象连接起来的式子称 为。运算对象包括常量

25、、变量和函数等。例 如: x*y/z+2002.16815%(-7)+A C语言规定算术运算符的优先级为先做*,/,%; 后做+,-。即“*,/,%”属同一优先级,“+,-”属 同一优先级,而且前者优先级高于后者。 2.5.2 赋值运算符与赋值表达式赋值运算符与赋值表达式 。它的作用是将一个表达式的值赋给 一个变量,而不是数学中的等号。由赋值运算符将一个变量和一个 表达式连接起来的式子称为“”。它的一般形式为: 凡是双目(二元)运算符,都可以与赋值符一起组成复合赋值 符。它的一般形式为: 等价于: 变量名变量 双目运算符 表达式 例如: x+=3等价于x=x+3 x%=3+a等价于x=x%(3

26、+a) 解答解答: 先进行“x-=x*(y=11)”的运算,相当于 x=x-x*(y=11),经计算得到x=-20 再进行x+=-20,相当于 x=x+(-20)=(-20)+(-20)=-40 因此最后表达式的值为-40 2.5.3 强制类型转换运算符强制类型转换运算符 当两种不同类型的数据进行运算时, C语言会自动 按规则进行类型的转换(譬如将int类型的数据赋值给 float类型的变量),此外,程序员还可以利用强制类型 转换运算符将一个表达式转换成所需要的类型。 例如:表达式(int)(x + y)表示先对x+y求和,再 将和值转换成int类型,此时就不能误写成(int)(x)+y。 2

27、.5.4 自加、自减运算符自加、自减运算符 加一运算符用于使其运算分量加1 减一运算符用于使其运算分量减1 +与-这两个运算符既可以用作前缀运算符(即用在变 量名前面,如+n),也能用作后缀运算符(即用在变量名 后面,如n+),虽然都能使n加1,但二者存在差别: :如果已知int n=5,那么 情况I: x=n+; 最后的结果:x=5,n=6 情况II:x=+n; 最后的结果:x=6,n=6 2.5.5 逗号运算符与逗号表达式逗号运算符与逗号表达式 用逗号运算符将两个表达式连接起来所形成的表达 式称为其格式为: 逗号表达式的过程:先求解表达式1,再求解 表达式2,则整个逗号表达式的值就是表达式

28、2的值。 例如,z=(x=10,10+20),z的值为30,x的值为10。 逗号表达式中的表达式又可以是一个逗号表达式, 这样逗号表达式的一般形式就可以扩展成: 整个逗号表达式的值就是表达式 n 的值。 2.5.6 位运算位运算 所谓,就是指对一个数的二进制位的运算。在汇编语言 中有位操作的指令,不过C语言也提供了位运算功能,可用于单片 机的开发领域,因此C语言既具有高级语言的特点,同时又具有低 级语言的特点。 C语言提供了6个用于位操作的运算符,这些运算符只能作用于 各种整型数据(如char 型、int 型、unsigned 型、long型)。 按位与按位与AND(二元运算符)(二元运算符)

29、 按位或按位或OR(二元运算符)(二元运算符) 按位异或按位异或XOR(二元运算符)(二元运算符) 按位左移(二元运算符)按位左移(二元运算符) 按位右移(二元运算符)按位右移(二元运算符) 按位取反(一元运算符)按位取反(一元运算符) 参加运算的两个操作数按二进制位进行“与”运算,规则如下: 参加运算的两个操作数,按二进制位进行 “或”运算。运算规则如下: 0 | 0=0 0 | 1=1 1 | 0=1 1 | 1=1 |运算经常用于设置某些位。 如果想要1楼、3楼与5楼的照明 灯都打开,则可以这样运算: switch = switch | 0 x0015; 参加运算的两个操作数,按二进制位

30、进行“异或” 运算。运算规则如下: 0 0=0 0 1=1 1 0=1 1 1=0 从运算规则可以看出,与“1”异或位取反,与“0” 异或位保留。按位异或还有一个特点:在一个数据上两 次异或同一个数,结果变回到原来的数。这个特点常常 使用在动画程序设计中。 将short 型变量x的低5位都取反(即1 变0、0变1),可以这样运算: x=x (00000000 00011111)2 即 x=x 0 x001f 运算符是一个单目运算符,它用来对一个 二进制数按位取反,即1变0、0变1。运算符 的优先级比算术运算符、关系运算符和其他的 位运算符都要高。 将short型变量x的低6位全部置 为0,可以

31、这样运算: x = x 则x对应的二进制表示为00000000 01000000。将x 左移一 位可以由语句x=x1;实现,其运算过程如下: 而(00000000 10000000)2对应的十进制整数是128,也就 是说641相当于642=128。 在一定范围内的按位左移n位,相当于原数的十进制数乘以2n 但要注意这里所说的范围限制,例如: (01000000 00000000)2 n表示把x的每一位向右移动n位,移到右端的 低位被丢弃。 例如,无符号数15右移2位,即 152,相当于 (00000000 00001111)22,结果为 (00000000 00000011)2; 而对有符号数

32、6右移2位,即(6)2,相当于 (11111111 11111010)22,结果就应该是 (11111111 11111110)2 此时得到的结果就仍然是有符号数。 在C语言中,输入/输出操作是通过函数调 用来实现的。用户只要直接调用C语言标准函数 库中的标准输入/输出函数,就可以完成输入/输 出操作。由标准库提供的输入/输出模型非常简 单。 在使用标准输入/输出函数时,要在程序的 开头加上文件包含命令: 2.6.1 字符的输入和输出字符的输入和输出 标准库中的getchar( )和putchar( )函数通 常用于在终端设备上一次读取/写入一个字符。实际上 在使用终端设备时,系统会自动打开三

33、个标准文件: 标准输入、标准输出和标准错误输出文件,而标准输 入和标准输出可以通过重定向手段重定向到某一数据 文件。 使用getchar( )函数时,从输入设备(即键盘) 上读入一个字符,并将其作为结果值返回。 使用putchar( )函数时,在输出设备(即命令 提示符窗口或称MS-DOS窗口)上显示一个字符。 下面的程序运行时,会把从键盘 上输入的任意字符全部显示在屏幕上。如果键入 组合键【Ctrl+Z】或者功能键【F6】,则运行结 束。 #include void main() int c; while(c=getchar()!=EOF)putchar(c); 程序分析: (1)从键盘上键

34、入的字符在计算机内部是按位模式存储 的,所以任何整数类型也可以存储字符数据。 (2)while循环语句的执行过程:首先检测圆括号内的 条件,如果为真,则执行循环体;然后重新检测条件,为真, 再执行循环体,直到条件为假,循环结束。 (3)EOF:为了区分文件的正常字符与文件的结束标记。 C语言在头文件stdio.h中定义了一个整数EOF,此处代表文 件结束符。 (4)利用重定向手段将输入指向一个文本文件,运行程 序,在屏幕上显示该文本文件。如果不做输入重定向,则输 入为键盘,运行程序,输入一个字符,显示该字符,直到按 【Ctrl+Z】组合键或功能键【F6】键结束。 2.6.2 带格式数据的输入与

35、输出带格式数据的输入与输出 上一节介绍的两个函数putchar( )和 getchar( )只能够输入/输出一个字符,如果 要求输入/输出任意类型的数据,并且按照指 定的数据格式进行输入/输出,则需要用到格 式化输出函数printf( )和格式化输入函数 scanf( )。 printf()函数是有格式的输出函数,它能够对任意类 型的内部数值按照指定格式的字符形式显示。 printf()函数的一般格式如下: 其中格式控制字符串和输出值参数表是printf()函数 的参数。 例如: 格式控制字符串包括两部分:按照原样不动输出的普通字符和 用于控制printf()函数中形参转换的转换规格说明。转换

36、规格说明 由一个“%”开头到一个格式字符结尾,表2-8列出了常用的 printf()函数格式转化说明符。 如果只输出字符串时,则输出值参数表可以省略,例: printf(This is a C program.); 在字符 %和转换字符中间可以指定输出域宽和精度。 写出下列程序的运行结果。 #include void main() short x=-1; printf( %d: %dn %u: %un %o: %on %x: %xn,x,x,x,x); 运行结果如下: %d: -1 %u: 4294967295 %o: 37777777777 %x: ffffffff 程序分析: short类

37、型的变量x的值为-1,它在内存中按补码形 式的存储格式为16个1,即: 1111 1111 1111 1111 1111 1111 1111 1111 采用%d格式输出时,是按照十进制int类型的整数 (32位)来输出,得到的结果仍然是-1; (1)将包含符号位在内的所有二进制补码的各位数 字全部取反,即1变0、0变1; (2)将上述得到的结果转换为十进制整数; (3)加上负号; (4)上述结果最后再减去1。 程序继续分析: 采用%u格式时,是按照十进制unsigned int类型 (32位)来输出,原来存储时的符号位1,被当作数值 位来处理,直接把二进制转换为十进制,得到的结果为 42949

38、67295 ; 采用%o格式输出时,是按照八进制int类型的整数 (32位)来输出,得到的结果为37777777777 ; 采用%x格式输出时,是按照十六进制int类型的整 数(32位)来输出,得到的结果为ffffffff; 另外,此例子中格式符“ %d”的输出结果为%d, 注意它与“ %d”的输出结果不同。 写出下列程序的运行结果,其中格式符 %s用于字符串的输出。 #include void main() printf(%c%sn,T,his is a string.); 运行结果如下: This is a string. 写出下列程序的运行结果。 #include void main()

39、 float x=12.3456789f; double y=1234567891234.123456789; printf(%fn%fn%en%gn,x,y,y,y); 运行结果如下: 12.345679 1234567891234.123500 1.234568e+012 1.23457e+012 %f格式符以小数形式输出时,默认6位小数;单精度的有 效位数一般为7位,而双精度的有效位数一般为15位。 写出下列程序的运行结果。 #include void main() int x=123; printf(%6dn%06dn%-6dn%2dn,x,x,x,x); 运行结果如下: 123 占6列宽,域宽值大于实际位数时,右对齐,左补空格 000123 有前导0时,左补0 123域宽为负数,左对齐,右补空格 123域宽值小于实际位数时,按实际位数输出 本例中的%6d中的6是域宽指示,它必须为整数,指定了 对应的输出项所占的字符个数。 写出下列程序的运行结果。 #include void main() float x=12.345f; printf(%.2fn%.2sn,x,abcde); 运行结果如下: 12.35 ab 程序分析: .n(n为正整数),对于浮点数,指定输出的小数位数,对 于字符串,指定从字符串左侧所截取的字符串个数。 (2)输出值

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论