第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”两种数码。数的正、负符号也可以用“0”和“1”来表示,具体地,把一个数的最高位作为符号位,称

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

4、111111111111)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 反 = 11111110 -127 反 = 10000000整数X的补码是指:对于正数,与原码相同;对于负数,数符位为 1,

5、其数值部分是X的绝对值取反后最低位加1,即负数的补码等于其对应的反码加1。例如:+1补 = 00000001,+127补 = 01111111-1 补 = 11111111,-127 补 = 100000012.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。:在八进制整数的前面加一个0。如02001表示(2001)8、-017表示-(17)8,而019则是错误的,因为八进制数不可能出现数码9。:在十六进制整数的前面加一个0 x。如0 x2001表示(2001

8、)16,0 xAB12表示(AB12)16。Visual C+ 6.0中的整型常量可分为: 一个基本型常量占用 32比特的内存单元,按补码形式存储,取值范围为-231231-1。一个长整型常量占用32比特的内存单元,取值范围为-231231-1 。在书写长整型常量时,要以英文字母l或L结尾,如123456L。 无符号型是指内存单元中只存数据位而不存符号位。无符号基本型整数(unsigned int)的取值范围与无符号长整型数(unsigned long)的取值范围相同,都为0232-1。 无符号基本整型常量要以字母u或U结尾,如123u,无符号长整型常量要以字母ul或UL结尾,如123456U

9、L。2.3.2 实型常量实型常量实型数据也称为浮点数,在C语言中的实型常量具有以下两种表示方法:(1)。这是最普通的表示方式。要注意,一定要有小数点,例如:2002.,.2002,-3.14,0.0。 (2)。由数字部分、小写字母e(或大写字母E)和作为指数的整数组成。例如:要将2002.168写成指数形式,可以有多种形式:2002.168e0,200.2168e1,20.02168e2,2.002168e3等。其中的2.002168e3称为“规范化的指数形式”。一个实数在按指数格式输出时,是按规范化指数形式输出的。2实型常量的分类单精度实型数的有效数字为67位,数值的范围为10-371038

10、 。(2)双精度实型数是另外一种类型的实数。在Visual C+ 6.0中,双精度实型数占用内存单元为64比特,数值范围是10-30710308 ,有效数字是1516位。2.3.3 字符常量字符常量字符常量是一个整数,写成用一对单引号括住的单个字符的形式,例如a,A,x,$都是字符常量字符在内存中以ASCII码值的形式存储。例如从ASCII码表中可以查出字符a的ASCI码值是97,它在计算机内部的存储形式如图2-7所示。 字符常量的存储形式与整数的存储形式类似,所以字符常量的值就是该字符的ASCII码值,例如字符0的值是48,而不是数值0。 在实际编程时,应该记住一些常用字符的ASCII值,由

11、此可以推导出其它字符的值。 字符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码值*/ printf(%c,%cn,i,j);/*以字符形式输出*/ printf(%d,%dn,i,j); /*以整数形式输出*/A,B65,662.3.4 字符串常量字符串常量也叫字符串字面值,是用一对双引号括住的由0个或者多个字符组成的字符序列。例如,“I am a student.”

12、、“Windows XP”和“”(空字符串)等 C语言规定:在每一个字符串的结尾系统自动加上一个字符串结束标志符0,以便判断字符串是否结束。所以字符串“China”在内存中的存储形式如图2-8所示, 从图中能看出存储该串所需的字符数不从图中能看出存储该串所需的字符数不是是5而是而是6。另外,字符串。另外,字符串“a”包括了包括了两个字符两个字符a和和0,故,故a不同于不同于a。2.3.5 符号常量符号常量(也称为),它是用一个标识符来代表的常量,C语言中用#define来定义一个符号常量,符号常量一般用大写字母来表示。(有关内容在第四章中有详细论述)例如:通过使用以下形式定义了一个符号常量PI

13、,在预编译程序时将代码中所有的PI都用3.1415926来代替。下面一段程序是按华氏温度与摄氏温度的转换公式: C=(5/9) (F-32) 打印出0F,10F,20F,直到100F之间的华氏温度与摄氏温度的对照表。#include #define LOWER 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); 简单地说,是指其值在程

14、序运行过程中会发生改变的量。在程序设计中,必须通过变量名来使用变量。在给变量命名时,必须用来表示,不能把关键字当作变量名来使用。在C语言中,对所有的变量均要求“”,而且在定义变量名时,尽量做到“见名知意”。 2.4.1 整型变量整型变量在C语言中具有以下6种整型变量:signed int:unsigned int: signed short int: unsigned short int: signed long int: unsigned long intC语言规定程序中使用的变量必须“先定义,后使用”,一般放在一个函数开头的说明部分,它的作用域仅限于该函数内部(关于变量与其作用域的内容将在

15、第4章中介绍)。同一类型的变量可以任何方式分散在多个说明中,例如:int lower,upper,step;float x,y;变量在说明时可以同时初始化。例如:int i=0;int limit=MAXLINE+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,

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

17、结果就是-1;,则按照二进制整数转换为十进制整数的方法,最后得到的结果就是4294967295(即232-1)。写出下列程序的运行结果。#include void 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型变量赋值;同样,

18、一个取值范围为2147483648, 2147483647的整数,应被看作是int型或者long型常量可以给long int型变量赋值。(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型,如果实参与形参的类型不

19、一致可以用强制类型转换来表示。2.4.2 实型变量实型变量 与实型常量相一致,实型变量也分为以下三种类型:(单精度实型)(双精度实型)(长双精度实型)#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.00

20、0000 x3=123456793.000000y1=123456792.000000y2=123456793.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.5432

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

22、序的运行结果。#include void main() char c1,c2; c1=A;/*字符A*/ c2=c1+1; /*字符B*/ printf(%c,%cn,c1,c2); /*以字符形式输出*/ printf(%d,%dn,c1,c2); /*以整数形式输出*/A,B65,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

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

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

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

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

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

28、算符)(二元运算符) 按位左移(二元运算符)按位左移(二元运算符) 按位右移(二元运算符)按位右移(二元运算符) 按位取反(一元运算符)按位取反(一元运算符)参加运算的两个操作数按二进制位进行“与”运算,规则如下:&运算经常用于屏蔽某些二进制位。假设办公楼有16层,每层过道里都装了照明灯。已知第1层过道中的灯是开着的,其它楼层里的灯有的开有的关。为了节电的需要,现在要求只保留第1层过道里的灯照明,其它楼层的灯全部要熄灭,请问如何实现?:本题可以用一个数字开关来控制。这里定义一个short类型的变量switch,规定它的每一个二进制位自右向左分别对应着第1层至第16层的开关,其中若某位是

29、0,表示那一层的灯是关着的,为1则表示开灯。此时的控制语句写为:switch = switch & 0 x0001;参加运算的两个操作数,按二进制位进行“或”运算。运算规则如下:0 | 0=0 0 | 1=11 | 0=1 1 | 1=1|运算经常用于设置某些位。如果想要1楼、3楼与5楼的照明灯都打开,则可以这样运算:switch = switch | 0 x0015;参加运算的两个操作数,按二进制位进行“异或”运算。运算规则如下:0 0=0 0 1=1 1 0=1 1 1=0从运算规则可以看出,与“1”异或位取反,与“0”异或位保留。按位异或还有一个特点:在一个数据上两次异或同一个数

30、,结果变回到原来的数。这个特点常常使用在动画程序设计中。将short 型变量x的低5位都取反(即1变0、0变1),可以这样运算:x=x (00000000 00011111)2 即 x=x 0 x001f运算符是一个单目运算符,它用来对一个二进制数按位取反,即1变0、0变1。运算符的优先级比算术运算符、关系运算符和其他的位运算符都要高。将short型变量x的低6位全部置为0,可以这样运算:x = x & 077相当于x = x & (077)xn表示把x的每一位向左移动n位,右边空出的位置补0,同时原来的高位经过左移之后丢弃不用。例如: 对于变量 short x=64;则x对应

31、的二进制表示为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;而对有符号数6右移2位,即(6)2,相当于(11111111 11

32、111010)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)从键盘上键入的字符在计算机内部是按位模式存储的,所以任何整数类型也可以存储字符数据。(2)while循环语句的执行

34、过程:首先检测圆括号内的条件,如果为真,则执行循环体;然后重新检测条件,为真,再执行循环体,直到条件为假,循环结束。(3)EOF:为了区分文件的正常字符与文件的结束标记。C语言在头文件stdio.h中定义了一个整数EOF,此处代表文件结束符。(4)利用重定向手段将输入指向一个文本文件,运行程序,在屏幕上显示该文本文件。如果不做输入重定向,则输入为键盘,运行程序,输入一个字符,显示该字符,直到按【Ctrl+Z】组合键或功能键【F6】键结束。2.6.2 带格式数据的输入与输出带格式数据的输入与输出 上一节介绍的两个函数putchar( )和getchar( )只能够输入/输出一个字符,如果要求输入

35、/输出任意类型的数据,并且按照指定的数据格式进行输入/输出,则需要用到格式化输出函数printf( )和格式化输入函数scanf( )。printf()函数是有格式的输出函数,它能够对任意类型的内部数值按照指定格式的字符形式显示。printf()函数的一般格式如下:其中格式控制字符串和输出值参数表是printf()函数的参数。例如:格式控制字符串包括两部分:按照原样不动输出的普通字符和用于控制printf()函数中形参转换的转换规格说明。转换规格说明由一个“%”开头到一个格式字符结尾,表2-8列出了常用的printf()函数格式转化说明符。如果只输出字符串时,则输出值参数表可以省略,例:pri

36、ntf(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类型的变量x的值为-1,它在内存中按补码形式的存储格式为16个1,即:1111 1111 1111 1111 1111 1111 1111 1111采用%d格式输出时,是按照十进制in

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

38、ff;另外,此例子中格式符“ %d”的输出结果为%d,注意它与“ %d”的输出结果不同。写出下列程序的运行结果,其中格式符 %s用于字符串的输出。#include void main() printf(%c%sn,T,his is a string.);运行结果如下:This is a string.写出下列程序的运行结果。#include void main() float x=12.3456789f; double y=1234567891234.123456789; printf(%fn%fn%en%gn,x,y,y,y);运行结果如下:12.3456791234567891234.12

39、35001.234568e+0121.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时,左补0123域宽为负数,左对齐,右补空格123域宽值小于实际位数时,按实际位数输出本例中的%6d中的6是域宽指示,它必须为整数,指定了对应的输出项所占的字符个数。写出下列程序的运行结果。#include void main() float x=12.345f; printf(%.2fn%.2sn,x,abcde);运行结果如下:12.35ab程序分析:.n(n为正整数),对于浮点数,指定输出的小数位数,对于字符串,指定从字符串左侧所截取的字符串个数。(2)输出值参数表。输出值参数表可以是常量、变量和表达式,它们之间用逗号隔开,输出值的数据类型和个数应该与格式转换符相匹配。scanf()函数是有格式的输入函数,可以按照格式字符串指定的格式读入若干个数据,并把它们存入参数地址表指定的地址单元。scanf()函数的一般格式为:其中,格式控制

温馨提示

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

评论

0/150

提交评论