版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式第三章 顺序程序设计3.1 顺序程序举例顺序程序举例3.2 数据的表现形式及其运算数据的表现形式及其运算 3.2.1 常量与变量常量与变量 3.2.2 数据类型数据类型 3.2.3 整型数据整型数据 3.2.4 字符型数据字符型数据 3.2.5 浮点型数据浮点型数据 3.2.6 常量类型常量类型 3.2.7 运算符和表达式运算符和表达式3.3 C语句语句 3.3.2 赋值语句赋值语句3.4 数据的输入输出数据的输入输出 3.4.3 printf 3.4.4 scanf C语言程序设计 测绘工程学院 第三章第三章 数据类型、运
2、算符与表达式3.1 3.1 顺序程序举例顺序程序举例- -度分秒转换度分秒转换#include int main(int argc, char *argv)int a,b,c;double d; printf(“Input ddmmss(Format:10 39 59 ):); scanf(%d%d%d,&a,&b,&c);d = (a + b/60.0 + c/3600.0);printf(%d%d%d = %lfn,a,b,c,d);return 0; C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式3.1 3.1 顺序程序举例顺序程序举例- -坐标转换坐标转换 inc
3、lude int main()double N,H,B,L,e=1/298.25;double X,Y,Z; printf(“Input N,H,B,L); scanf(%f%f%f%f,&N,&H,&B,&L);X=(N+H)*cos(B)*cos(L);Y=(N+H)*cos(B)*cos(L); Z=(N*(1-e*e)+H)*sin(B); printf(%f%f%d = %lfn,X,Y,Z); C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式3.2 数据类型v数据类型总表C C数数据据类类型型基本类型基本类型构造类型构造类型指针类型指针类型空类型空类型void自
4、定义类型自定义类型typedef字符类型字符类型char整整 型型实型实型单精度型单精度型float双精度型双精度型double数组数组结构体结构体struct共用体共用体union短整型短整型short长整型长整型long整型整型int数据类型决定:1. 数据占内存字节数2. 数据取值范围3. 其上可进行的操作枚举类型枚举类型enum C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式基本数据类型类型符号关键字数的表示范围所占位数整型字符型实型有无(signed)int16-3276832767(signed)short16-3276832767(signed)long32
5、-2147483648214748364716unsigned int0655353204294967295unsigned longunsigned short16065535有float323.4e-383.4e38有double641.7e-3081.7e308有char8-128127无unsigned char80255说明:数据类型所占字节数随机器硬件不同而不同,上表以IBM PC机为例: C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式3.2.1 常量与变量标识符v定义:用来标识变量、常量、函数等的字符序列v组成:l只能由字母、数字、下划线组成,且第一个字母必
6、须是字母第一个字母必须是字母或下划线或下划线l大小写敏感l不能使用关键字v长度:最长32个字符v命名原则:l见名知意l不宜混淆 如l与I, o与0 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式例:判断下列标识符号合法性sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab _above $123M.D.John3days#33char$123ab C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式 直接常量:u整型常量 u实型常量 u字符常量 u字符串常量3.2.1 常量
7、v定义:程序运行时其值不能改变的量(即常数)v分类:l符号常量:用标识符代表常量u定义格式: #define 符号常量 常量u一般用大写字母u是宏定义预处理命令,不是C语句 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式例如: #define RO 206265例 符号常量#define RO 206265main() long int num,total; num=2; total=num*RO; printf(total=%d,total);运行结果:total=412530 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式&整型常量(整常数)v三
8、种形式:l十进制整数:由数字09和正负号表示.如 123,-456,0l八进制整数:由数字0开头,后跟数字07表示.如0123,011l十六进制整数:由0 x开头,后跟09,af,AF表示. 如0 x123,0Xff C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式例 30000 为int型 65536 为long int 型v整型常量的类型l根据其值所在范围确定其数据类型l在整常量后加字母l或L,认为它是long int 型常量例 12 与 12L C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式问题:0123 = ( )100 x123 = ( )1
9、00Xff = ( )1083291255问题:0123 = ( )100 x123 = ( )100Xff = ( )10 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式&实型常量(实数或浮点数)v表示形式:l十进制数形式:(必须有小数点) 如0.123, .123, 123.0, 0.0, 123.l指数形式:(e或E之前必须有数字;指数必须为整数)如12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5 v实型常量的类型l默认double型l在实型常量后加字母f或F,认为它是float 型 C语言程序设计 测绘工程学院 第三章第三章 数据类型、
10、运算符与表达式&字符常量v定义:用单引号括起来的单个普通字符或转义字符. v字符常量的值:该字符的ASCII码值转义字符及其含义:转义字符含义nvradddtbf“xhh转义字符含义换行垂直制表回车响铃单引号3位8进制数代表的字符水平制表退格换页反斜线双引号2位16进制数代表的字符如 101 -A 012 -n 376 - x61 -a 60 -0 483 -()例:A-101-x41-65如 A65, a97, 048 , n10如 a A ? n 101v转义字符:反斜线后面跟一个字符或一个代码值表示例 转义字符举例(ch2_001.c,ch2_004.c) main() printf(1
11、01 x42 Cn); printf(I say:How are you?n); printf(C Programn); printf(Turbo C);运行结果:(屏幕显示)A B CIsay:”How are you?”C ProgramTurbo C例 main() printf(“Yb=n”); 运行结果:屏幕显示:=打印机输出: C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式v字符常量与字符串常量不同&字符串常量v定义:用双引号(“”)括起来的字符序列v存储:每个字符串尾自动加一个 0 作为字符串结束标志h e l l o 0例 字符串“hello”在内存中a
12、a 0例 a“a”例 空串 “”0例: char ch; ch=“A”; 例: char ch; ch=A; C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式编译程序根据变量定义为其分配指定字节的内存单元.地址int a=1, b=-3,c;abc2字节2字节2字节地址地址.内存1-3随机数3.2.2 变量v概念:其值可以改变的量v变量名与变量值v变量定义的一般格式: 数据类型 变量1,变量2,变量n;v变量初始化:定义时赋初值 例: int a,b,c; float data;决定分配字节数和数的表示范围合法标识符例: int a=2,b,c=4; float data=
13、3.67; char ch=A; int x=1,y=1,z=1; int x=y=z=1;v变量的使用:先定义,后使用例1 int student; stadent=19; /Undefined symbol statent in function main 例2 float a,b,c; c=a%b; /Illegal use of floating point in function main v变量定义位置:一般放在函数开头main() int a,b=2; float data; a=1; data=(a+b)*1.2; printf(“data=%fn”,data);变量定义可执行
14、语句main() int a,b=2; a=1; float data; data=(a+b)*1.2; printf(“data=%fn”,data); C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式&整型变量v占字节数随机器不同而不同,一般占一个机器字vshortintlongv可用sizeof(类型标识符)测量&实型变量vfloat:占4字节,提供7位有效数字vdouble:占8字节,提供1516位有效数字&字符型变量v字符变量存放字符ASCII码vchar与int数据间可进行算术运算例 float a;a=111111.111; /* a=111111.1*/do
15、uble b;b=111111.111; /* b=111111.111*/例 a=D; /* a=68; */ x=A+5; /* x=65+5; */ s=!+G /* s=33+71; */没有字符串变量,用字符数组存放 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式例 /*ch2_003.c*/ #define PI 3 main() int rad =3; float area; char ch1,ch2=D; area=rad*rad*PI; ch1=ch2-A+a; printf(“Area=%f,ch1=%cn”,area,ch1); 宏定义变量定义输出结
16、果运行结果:area=27.000000, ch1=d C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式3.2.7 不同类型数据间的转换隐式转换v什么情况下发生l运算转换-不同类型数据混合运算时l赋值转换-把一个值赋给与其类型不同的变量时l输出转换-输出时转换成指定的输出格式l函数调用转换-实参与形参类型不一致时转换v运算转换规则:不同类型数据运算时先自动转换成同一类型 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式doublefloatlongunsignedintchar,short低高说明:必定的转换运算对象类型不同时转换例 char ch; i
17、nt i; float f; double d;ch/i + f*d - (f+i)intintdoubledoubledoubledoubledoubledoubleintintdoubledoubledoubledoubledoubledouble10+a +i*f - d/l例 int i; float f; double d; long l; C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式显式转换(强制转换)v一般形式:(类型名)(表达式)例 (int)(x+y) (int)x+y (double)(3/2) (int)3.6 v说明:强制转换得到所需类型的中间变
18、量,原变量类型不变 例 main() float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); 结果:x=3.600000,i=3精度损失问题较高类型向较低类型转换时可能发生 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式3.2.7 运算符和表达式C运运算算符符算术运算符:(算术运算符:(+ - + - * * / % + - / % + -)关系运算符:(关系运算符:( = != = !=)逻辑运算符:(!逻辑运算符:(! & |& |)位运算符位运算符 :(:( | & | &)赋值运算符:(赋值运算符:(=
19、= 及其扩展)及其扩展)条件运算符:(条件运算符:(?:?:)逗号运算符:(逗号运算符:(, ,)指针运算符:(指针运算符:(* * & &)求字节数求字节数 :(:(sizeofsizeof)强制类型转换:(类型)强制类型转换:(类型)分量运算符:(分量运算符:(. -. -)下标运算符:(下标运算符:()其它其它 :(:(( ) -( ) -) C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式学习运算符应注意:v运算符功能v与运算量关系l要求运算量个数l要求运算量类型v运算符优先级别v结合方向v结果的类型 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表
20、达式3.2.7 算术运算符和表达式v基本算术运算符: + - * / %l结合方向:从左向右l优先级: - -* / % - + - (2) (3) (4)说明:l“-”可为单目运算符时,右结合性l两整数相除,结果为整数l%要求两侧均为整型数据例 5/2 = -5/2.0 =例 5%2 = -5%2 = 1%10 = 5%1 = 5.5%2例 5/2 = 2 -5/2.0 = -2.5例 5%2 = 1 -5%2 = -1 1%10 = 1 5%1 = 0 5.5%2 () C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式v自增、自减运算符+ -l作用:使变量值加1或减1l
21、种类:u前置 +i, -i (先执行i+1或i-1,再使用i值)u后置 i+,i- (先使用i值,再执行i+1或i-1)例 j=3; k=+j; j=3; k=j+; j=3; printf(“%d”,+j); j=3; printf(“%d”,j+); a=3;b=5;c=(+a)*b; a=3;b=5;c=(a+)*b; /k=4,j=4/k=3,j=4/4/3/c=20,a=4/c=15,a=4 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式v自增、自减运算符+ -l作用:使变量值加1或减1l种类:u前置 +i, -i (先执行i+1或i-1,再使用i值)u后置 i
22、+,i- (先使用i值,再执行i+1或i-1)l说明:u+ - 不能用于常量和表达式,如5+,(a+b)+u+ -结合方向: 自右向左u优先级:- + - -* / % -+ - (2) (3) (4)例 -i+ -(i+) i=3; printf(“%d”,-i+); /-3 例 j+k; (j+)+k;例 -i+ i=3; printf(“%d”,-i+); C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式3.3 C程序结构程序结构 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式1.数据描述: 由声明语句完成,如int a; 它不产生机器操作,只是
23、对变量做定义。2. 数据操作: 由语句完成。语句分为: (1).控制语句:共九种。 (2).函数调用语句:如输出函数。 (3).表达式语句:表达式加上分号。 (4).空语句:只有一个分号。 (5).复合语句:用括起来的一段语句。 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式C语句: 以“;”作分隔符,编译后产生机器指令.C语句分类(5类)v1、控制语句 (9种)if( )else switchfor( )while( )dowhile( )continuebreakgotoreturn分支循环辅助控制 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式
24、例如 total=total+limit; a=3; func( ); printf(“Hello,world!n”);2、函数调用语句 a=func(x,y);3、表达式语句: 表达式加分号构成。 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式4、空语句: ; 什么也不做,有时用来做被转向点,或循环语句中的循环体例如 : for(I=0;I3;I+) ; C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式5、复合语句(分程序) :用 括起来的一组语句l一般形式: 数据说明部分; 执行语句部分; l说明:u“”后不加分号u语法上和单一语句相同u复合语句可
25、嵌套 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式3.3.2 赋值运算符和表达式v简单赋值运算符l符号: =l格式: 变量标识符=表达式l作用:将一个数据(常量或表达式)赋给一个变量v复合赋值运算符l种类:+= -= *= /= %= = = &= = |=l含义: exp1 op= exp2 exp1 = exp1 op exp2a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3例 a=3; d=func(); c=d+2; C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式v说明:l结合方向:自右向左l优先级: 14l左侧必须是变量
26、,不能是常量或表达式l赋值表达式的值与变量值相等,且可嵌套l赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型例 3=x-2*y; a+b=3;例 float f; int i; i=10; f=i;则 f=10.0例 int i; i=2.56; /结果i=2;例: a=b=c=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2)/表达式值为5,a,b,c值为5/ b=5;a=5/表达式值11,c=6,a=11/表达式值10,a=10,b=4,c=6/表达式值5,a=5,b=10,c=2 C语言程序设计 测绘工程学院 第三章第三章 数据类
27、型、运算符与表达式v说明:l结合方向:自右向左l优先级: 12l左侧必须是变量,不能是常量或表达式l赋值表达式的值与变量值相等,且可嵌套l赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型例: a=12; a+=a-=a*a例: int a=2; a%=4-1; a+=a*=a-=a*=3; /a=-264 等价于a=a+(a=a-(a*a)/a=0 等价于a=a+(a=a*(a=a-(a=a*3) C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式3.3.3 逗号运算符和表达式v形式:表达式1,表达式2,表达式nv结合性:从左向右v优先级: 15v逗号表达式的值:
28、等于表达式n的值v用途:常用于循环for语句中例 a=3*5,a*4 a=3*5,a*4,a+5例 x=(a=3,6*3) x=a=3,6*a例 a=1;b=2;c=3; printf(“%d,%d,%d”,a,b,c); printf(“%d,%d,%d”,(a,b,c),b,c); /a=15,表达式值60/a=15,表达式值20/赋值表达式,表达式值18,x=18/逗号表达式,表达式值18,x=3/1,2,3/3,2,3 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式3.3.3 逗号运算符和表达式v形式:表达式1,表达式2,表达式nv结合性:从左向右v优先级: 15
29、v逗号表达式的值:等于表达式n的值v用途:常用于循环for语句中例:/*ch2_6.c*/#include main() int x,y=7; float z=4; x=(y=y+6,y/z); printf(x=%dn,x);运行结果:x=3 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式3.3.4 关系运算符和表达式v关系运算符l种类: = !=l结合方向:自左向右l优先级别:=!=优先级6(高)优先级7(低)例 ca+b /c(a+b) ab!=c /(ab)!=c a=bc /a=(bc /a=(bc)l关系表达式的值:是逻辑值“真”或“假”,用1和0表示例 in
30、t a=3,b=2,c=1,d,f; ab (ab)=c b+cb f=abc/表达式值1/表达式值1/表达式值0/d=1/f=0 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式l关系运算注意:例 若a=0; b=0.5; x=0.3; 则 a=x278在C中是允许的, 值为0例 int i=1, j=7,a; a=i+(j%4!=0); 则a=2例 a0 结果为 A100 结果为10 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式l关系运算注意:例 注意区分“=”与“= =” int a=0,b=1; if(a=b) printf(“a equal
31、 to b”); else printf(“a not equal to b”);例 应避免对实数作相等或不等的判断如 1.0/3.0*3.0= =1.0 结果为0,可改写为: fabs(1.0/3.0*3.0-1.0)1e-6 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式ab!a!ba&ba|b真假真假假假真真逻辑运算符和表达式v逻辑运算符l种类: ! & |l逻辑运算真值表lC语言中,运算量: 0表示“假”, 非0表示“真”, 运算结果: 0表示“假”, 1表示“真”,真假假假假假真真假假真真真假真真 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表
32、达式! (2)& (11)| (12)高低例 a=x & xb&xy a=b|x=y !a|abl优先级:l结合方向:! :从右向左& :从左向右| :从左向右/ (a=x) & (xb)&(xy)/(a=b)|(x=y)/(!a)|(ab) C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式! (2)& (11)| (12)高低l优先级:l结合方向:! :从右向左& :从左向右| :从左向右例 a=4;b=5; !a a&b a|b !a|b 4&0|2 53&2|83)&2|(8(4-(!0) 值为1 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式!
33、 (2)& (11)| (12)高低l优先级:l结合方向:! :从右向左& :从左向右| :从左向右l短路特性:逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符例 a&b&c /只在a为真时,才判别b的值; 只在a、b都为真时,才判别 c的值例 a|b|c /只在a为假时,才判别b的值; 只在a、b都为假时,才判别 c的值例 a=1;b=2;c=3;d=4;m=1;n=1; (m=ab)&(n=cd)/结果m=0,n=1 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式条件运算符与表达式v一般形式: expr
34、1 ? expr2 : expr3v执行过程v功能:相当于条件语句,但不能取代一般if语句例 if (ab) printf(“%d”,a); else printf(“%d”,b);printf(“%d”,ab?a:b);例 求 a+|b| printf(“a+|b|=%dn”,b0?a+b:a-b);expr1取expr2值取expr3值非0=0例 (a=b)?Y:N (x%2=1)?1:0 (x=0)?x:-x (c=a & c0?1:(xb?a:cd?c:d ab?a:(cd?c:d)vexpr1、expr2、expr3类型可不同,表达式值取较高的类型例 x?a:b /x=0,表达式值为
35、b; x0,表达式值为a xy?1:1.5 /xy ,值为1.0; x0) t=a;例: if (a=b;)0) t=a; (错误) C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式51、以计算机主机为主体而言。52、C本身不提供输入输出语句,输入输出由函数实现。5使用库函数时要用#include 包含命令。 #include #include “stdio.h”3.4 数据的输入输出 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式5C语言无I/O语句,I/O操作由函数实现5 #include 3.4.1 数据输出字符输出函数 putchar(int
36、c)3.4.1 字符数据的输入输出格式: putchar( c )参数: c为字符常量、变量或表达式功能:把字符c输出到显示器上返值:正常,为显示的代码值;出错,为EOF(-1) C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式/*ch4_1.c*/#include main() int c; char a; c=65; a=B; putchar(c); putchar(n); putchar(a);运行结果:A B例 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式3.4.2 数据输入字符输入函数 例 /*ch3_4.c*/#include main(
37、) int c; printf(Enter a character:); c=getchar(); printf(%c-hex%xn,c,c);运行结果:Enter a character:AA-hex41格式:getchar( )功能:从键盘读一字符返值:正常,返回读取的代码值;出错,返回EOF(-1) C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式格式:printf(“格式控制串”,输出表)功能:按指定格式向显示器输出数据返值:正常,返回输出字节数;出错,返回EOF(-1)3.4.3格式输出函数 printf( )v输出表:要输出的数据(可以没有,多个时以“,”分隔)
38、v格式控制串:包含两种信息l格式说明: %修饰符格式字符 ,用于指定输出格式l普通字符或转义序列:原样输出v格式字符 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式d,ix,Xoucse,Efg%格式字符:十六进制无符号整数不带符号十进制整数十进制整数指数形式浮点小数单一字符字符串八进制无符号整数小数形式浮点小数e和f中较短一种百分号本身int a=567;printf ( “%d”,a);int a=255;printf(“%x”,a);int a=65;printf(“%o”,a);int a=567;printf(“%u”,a);char a=65;printf(“
39、%c”,a);printf(“%s”,“ABC”);float a=567.789;printf(“%e”,a);float a=567.789;printf(“%f”,a);float a=567.789;printf(“%g”,a);printf(“%”);567ff101567AABC5.677890e+02567.789000567.789%l说明u格式字符要用小写u格式字符与输出项个数应相同,按先后顺序一一对应u输出转换:格式字符与输出项类型不一致,自动按指定格式输出例 main() unsigned int u=65535; printf(”u=%dn,u); 输出结果:u=-1例
40、 int a=3,b=4; printf(“%d %dn”,a,b); printf(“a=%d , b=%dn”,a,b); 例 int a=3,b=4; printf(“%d %dn”,a,b); printf(“a=%d , b=%dn”,a,b);输出结果: 3 4 a=3, b=411 11 11 11 11 11 11 1165535 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式v附加格式说明符(修饰符).n.n对实数对实数, ,指定小数点后位数指定小数点后位数( (四舍五入四舍五入) )对字符串对字符串, ,指定实际输出位数指定实际输出位数修饰符修饰符功功
41、 能能m m输出数据域宽输出数据域宽, ,数据长度数据长度m,m,左补空格左补空格; ;否则按实际输出否则按实际输出输出数据在域内左对齐(缺省右对齐输出数据在域内左对齐(缺省右对齐) )- -指定在有符号数指定在有符号数的正数前显示正号的正数前显示正号(+)(+)+ +输出数值时指定左面不使用的空位置自动填输出数值时指定左面不使用的空位置自动填0 00 0在八进制和十六进制数前显示前导在八进制和十六进制数前显示前导0 0,0 0 x x# #在在d,o,x,ud,o,x,u前,指定输出精度为前,指定输出精度为longlong型型在在e,f,ge,f,g前,指定输出精度为前,指定输出精度为dou
42、bledouble型型l l C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式例 int a=1234; float f=123.456; char ch=a; printf(“%8d,%2dn”,a,a); printf(“%f,%8f,%8.1f,%.2f,%.2en”,f,f,f,f,f); printf(“%3cn”,ch);运行 1234,1234结果: 123.456000,123.456000, 123.5,123.46,1.23e+02 a例 static char a=“Hello,world!” printf(“%sn%15sn%10.5sn%2.5sn
43、%.3sn”,a,a,a,a,a);运行结果:Hello,world! Hello,world! Hello Hello Hel 例 m.n C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式例 int a=1234; float f=123.456; static char c=“Hello,world!”; printf(“%8d,%-8dn”,a,a); printf(“%10.2f,%-10.1fn”,f,f); printf(“%10.5s,%-10.3sn”,c,c);运行结果: 1234,1234 123.46,123.5 Hello,Hel 例 - C语言程序
44、设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式例 int a=1234; float f=123.456; printf(“%08dn”,a); printf(“%010.2fn”,f); printf(“%0+8dn”,a); printf(“0+10.2fn”,f); 例 0 、+例 int a=123; printf(“%o,%#o,%X,%#Xn”,a,a,a,a); 例 #例 long a=65536; printf(“%d,%8ldn”,a, a); 例 l/00001234/0000123.46/000+1234/000+123.56/173,0173,7B,0X7B
45、/0, 65536 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式3.4.4格式输入函数 scanf( )格式: scanf(“格式控制串”,地址表)功能:按指定格式从键盘读入数据,存入地址表指定的存储单元中,并按回车键结束返值:正常,返回输入数据个数v地址表:变量的地址,常用取地址运算符&v格式字符:d,i,o,x,u,c,s,f,e例 scanf(“%d”,&a); 输入:10 则 a=10例 scanf(“%x”,&a); 输入:11 则 a=17 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式v附加格式说明符(修饰符)l修饰符功 能hm*用于
46、d,o,x前,指定输入为short型整数用于d,o,x前,指定输入为long型整数用于e,f前,指定输入为double型实数指定数据宽度,遇空格或不可转换字符则结束抑制符,指定输入项读入后不赋给变量例 scanf(“%4d%2d%2d”,&yy,&mm,&dd); 输入 19991015 则1999yy, 10 mm, 15 dd例 scanf(“%3d%*4d%f”,&k,&f); 输入 12345678765.43 则123k, 8765.43f例 scanf(“%2d %*3d %2d”,&a,&b); 输入 12 345 67 则12a, 67b例 scanf(“%3c%2c”,&c1
47、,&c2); 输入 abcde 则ac1, d c2 C语言程序设计 测绘工程学院 第三章第三章 数据类型、运算符与表达式v输入分隔符的指定l一般以空格、TAB或回车键作为分隔符l其它字符做分隔符:格式串中两个格式符间字符例 scanf(“%d%o%x”,&a,&b,&c); printf(“a=%d,b=%d,c=%dn”,a,b,c); 输入 123 123 123 输出 a=123,b=83,c=291例 scanf(“%d:%d:%d”,&h,&m,&s); 输入 12:30:45 则12 h, 30 m, 45 s例 scanf(“%d,%d”,&a,&b) 输入 3,4 则3a, 4 b例 scanf(“a=%d,b=%d,c=%d”,&a,&b,&c); 输入 a=12,b=24,c=36
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 玉石检验员变更管理强化考核试卷含答案
- 溴化丁基橡胶装置操作工岗前实操知识水平考核试卷含答案
- 中渝保安考试题库及答案
- 企业目标规划与执行策略指南
- 资源高效利用强化承诺书6篇
- 与研发团队合作开发新产品商洽函(5篇)
- 软件工程师数据库优化指导书
- 产品质量控制点清单及执行标准模板
- 招聘与人力资源配置系统模板
- 2024年软件开发定制合同三篇
- 2026年发展对象考试测试题库附答案
- (三模)合肥市2026届高三年级5月教学质量检测政治试卷(含答案及答案)
- 2026安徽芜湖创环水务有限公司社会招聘操作岗人员11人笔试模拟试题及答案解析
- 2026年细胞治疗监管政策演变与临床试验进展分析
- 银发经济养老新产业
- 2026届湖南省长沙市教科所重点名校中考联考语文试卷含解析
- 2026中国气象专利技术布局与知识产权保护策略分析报告
- 体育心理学运动损伤的心理致因和康复测试题及答案
- 2026年上海市静安区高三下学期二模数学试卷和答案
- (2026版)贪污贿赂司法解释(二)培训纲要课件
- 生物分离与纯化技术说课课件
评论
0/150
提交评论