您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > C/C++资料 > C语言-3简单运算与输入输出
C语言程序设计——第二章数据类型、运算符和表达式SCS-SWPU2sizeof运算符含义:求某数据类型所占存储单元的字节个数运算对象:变量名或数据类型标识符例如:sizeof(char)floatm;sizeof(m);#includestdio.h/*文件包含*/#definePI3.141592653/*宏定义*/voidmain(){floatarea,length;/*定义实型变量*/intradius;/*定义整型变量*/scanf(%d,&radius);area=PI*radius*radius;length=2*PI*radius;printf(area=%f\tlength=%f\n,area,length);}%f是输出实型数据时必须使用的格式符C语言程序设计——算法的描述SCS-SWPU4例如:printf(“a=%d,b=%f,a,b);◦调用格式:printf(“格式控制字符串”,输出表列);◦格式控制:格式说明(%格式字符)+普通字符◦输出表列:即需要输出的数据,可以是表达式函数名输出表列普通字符格式说明:%格式说明符C语言程序设计——算法的描述SCS-SWPU5━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━符号作用─────────────────────────────────────────────────%c单个字符%s输出字符串%d十进制有符号整数%u输出无符号十进制整数%o无输出无符号八进制整数(不输出前缀0)%x,%X输出无符号十六进制整数(不输出前缀0x)%f输出十进制float数,不带域宽时,保留6位小数%lf输出十进制double数,不带域宽时,保留6位小数%le以“科学记数法”的形式输出double数如2.4e+02%e以“科学记数法”的形式输出float数如2.4e+02%g选用e或f格式中较短的一个输出浮点数,不输出无效零%p指针的值━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━C语言程序设计——算法的描述SCS-SWPU6若实际位数多于定义的宽度:则按实际位数输出。若实际位数少于定义的宽度:默认右对齐,有负号左对齐n:精度m:域宽,即输出项在输出设备上所占的宽度输出实型数据,n指定实型数据所占的小数位数输出字符串,n指定最多输出的字符个数C语言程序设计——算法的描述SCS-SWPU7#includestdio.hvoidmain(){floatf,g;f=1.27;g=23.2;printf(%f+%f=%f\n,f,g,f+g);}在输出的数字中并非全部数字都是有效数字单精度实数的有效位数一般为7位;双精度实数的有效位数一般为16位printf(%2.2f+%2.2f=%4.2f\n,f,g,f+g);C语言程序设计——算法的描述SCS-SWPU8例1:printf(“%d,%4d,%-4d,%4d”,a,a,a,b);若a=123,b=12345则输出结果是:123,□123,123□,12345例2:printf(%lf,%8.2lf\n,b,b);若b=123.4567则输出结果是:123.456700,□□123.46例3:printf(“%s,%8s,%8.3s”,“china”,“china”,“china”);则输出结果是:china,□□□china,□□□□□chiC语言程序设计——算法的描述SCS-SWPU9printf函数的注意事项①格式控制必须与输出项匹配,否则不能正确输出请判断下列输出是否正确:main(){inta=65;printf(%f,a);}main(){inta=65;printf(%d\n,a);}main(){inta=65;printf(%c,a);}C语言程序设计——算法的描述SCS-SWPU10例如:main(){intx,y;x=11/3;y=5;printf(%%d,%%%d\n,x,y);}程序的运行结果为:%d,%3②C语言规定,在格式控制字符串中若连续出现两个“%”,系统视为一个“%”字符输出。C语言程序设计——算法的描述SCS-SWPU11“格式控制”的含义同printf函数;“地址表列”是由若干个地址组成的表列scanf(%d,%f”,&a,&b);格式输入函数–scanf(格式控制字符串,地址表列);C语言程序设计——算法的描述SCS-SWPU12━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━符号作用─────────────────────────────────────────────%c输入单个字符%s输入字符串%d输入十进制有符号整数%u输入无符号十进制整数%o无输入无符号八进制整数(不输出前缀0)%x,%X输入无符号十六进制整数(不输出前缀0x)%f,%e以小数或指数形式输入float型数据%lf,%le以小数或指数形式输入double型数据━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━C语言程序设计——算法的描述SCS-SWPU13例用scanf函数输入数据。#includestdio.hvoidmain(){inta,b,c;scanf(“%d%d%d”,&a,&b,&c);printf(“%d,%d,%d\n”,a,b,c);}a在内存中的地址&是地址运算符C语言程序设计——算法的描述SCS-SWPU14(1)scanf()函数可以设置输入宽度,不能设置精度floata;scanf(“%4f”,&a);正确scanf(“%4.2f”,&a);是非法的(2)scanf()函数中一定给出变量地址,不可是变量名,否则出错。如:scanf(“%d”,a);错scanf(“%d”,&a);对(3)输入多个数据时,格式控制串中没有非格式字符,则输入时数据间的分隔符可用空格、TAB键、回车键。如:scanf(“%d%d%f”,&a,&b,&c);C语言程序设计——算法的描述SCS-SWPU15(4)用连续%c输入字符数据时,任意字符都有效scanf(“%c%c%c”,&a,&b,&c);printf(“a=%c,b=%c,c=%c”,a,b,c);输入:A,B,C输出:a=A,b=,,c=B(5)如果格式控制字符串中有非格式字符,则输入时也要输入非格式字符。scanf(“%d,%d,%d”,&a,&b,&c);输入应为:5,6,7若为:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);输入应为:a=5,b=6,c=7C语言程序设计——算法的描述SCS-SWPU16(6)输入输出格式控制符必须匹配,否则不能正确输出设:从键盘输入:1020.5CR,分析各程序的输出main(){inta;floatb;scanf(%d%d,&a,&b);printf(%d,%f,a,b);}main(){inta;floatb;scanf(%d%f,&a,&b);printf(%d,%f\n,a,b);}main(){inta;floatb;scanf(%d%d,&a,&b);printf(%d,%d,a,b);}C语言程序设计——算法的描述SCS-SWPU17(7)遇到宽度设置,认为数据输入结束123.000000,456voidmain(){intx;doublem;scanf(%4lf%d,&m,&x);printf(%lf,%d\n,m,x);}若输入123.456□23,则输出结果是?18基本数据类型2.1标识符2.2常量与变量2.3运算符与表达式2.4C语言程序设计——第一章C语言概述SCS-SWPU数据类型转换2.519运算符分类◦按照运算对象的个数:◦单目运算符双目运算符三目运算符◦按照功能:赋值运算符算术运算符自加、自减运算符逗号运算符逻辑运算符位运算符关系运算符等C语言程序设计——第二章数据类型、运算符和表达式SCS-SWPU211、双目运算符(Binaryarithmeticoperators)+(加)-(减)*(乘)/(除)%(取余)注意事项:①“/”对于两个整型数相除,商取整。如:5/2=25.0/2=2.5②“%”取余数,参与运算的两个数必须为整数如:5%2=1-27%8=-3C语言程序设计——第二章数据类型、运算符和表达式SCS-SWPU23常用的标准数学函数(math.h)函数名功能函数名功能sqrt(x)计算x的平方根,x应大于等于0exp(x)计算ex的值fabs(x)计算x的绝对值pow(x,y)计算xy的值log(x)计算lnx的值sin(x)计算sinx的值,x为弧度值log10(x)计算lgx的值cos(x)计算cosx的值,x为弧度值用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子,称算术表达式。例如:a*b/c-1.5+'a'优先级:先*、/、%后+、-结合性:左结合性。即表达式从左向右进行计算。圆括号运算符:又叫优先运算符,其优先级别最高前置运算:++n,--n◦先运算,再使用后置运算:n++,n--◦先使用,再运算2.4.1算术运算符和算术表达式C语言程序设计——第二章数据类型、运算符和表达式SCS-SWPU24例自加、自减运算的应用#includestdio.hvoidmain(){inti,j,x,y;i=5;x=i++;printf(“i=%d,x=%d\n”,i,x);j=5;y=++j;printf(“j=%d,y=%d\n”,j,y);}程序运行结果:i=6,x=5j=6,y=6#includestdio.hvoidmain(){inta=3,b=5,c;c=(++a)*b;printf(“a=%d,c=%d\n”,a,c);a=3;c=(a++)*b;printf(“a=%d,c=%d\n”,a,c);}程序运行结果:a=4,c=20a=4,c=15C语言程序设计——第二章数据类型、运算符和表达式SCS-SWPU251.赋值运算符:“=”(赋值)右结合性2.复合赋值运算符:(“=”之前加上其他运算符)“+=”加赋值运算符“-=”减赋值运算符“*=”乘赋值运算符“/=”除赋值运算符“%=”模赋值运算符3.赋值表达式:变量=运算表达式将x*=……看作x=x*(……),其余类推。例1:c=b*=a+3;按自右向左原则,相当于三步⑴a+3⑵b=b*(a+3)⑶c=bintk=3,m=3,n=3;intk=m=n=3;正确错误C语言程序设计——第二章数据类型、运算符和表达式SCS-SWPU27例:inta=12;问:a+=a-=a*=a之后,a的值是多少?解:a=a*a=144;a=a-a=144-144=0;a=a+a=0+0=0许多人都对树的高度感兴趣,如果将树砍倒,量出它的高度就可以确定离树多远才是安全的。如果树很高就不能用梯子了。。。能不能想个办法找个朋友,帮你量出大树的高度?。。。编程实现吧C语言程序设计——第二章数据类型、运算符和表达式SCS-SWPU2829基本数据类型2.1标识符2.2常量与变量2.3运算符与表达式2.4C语言程序设计——第一章C语言概述SCS-SWPU数据类型转换2.5C语言程序设计——第二章数据类型、运算符和表达式SCS-SWPU30不同类型的数据要先转换成同一类型,然后才进行运算转换的规则:1.图中横向向左的箭头表示必定的转换2.图中纵向的箭头表示当运算对象为不同类型时转换的方向例如:表达式:20+1.5-345.678*‘a’C语言程序设计——第二章数据类型、运算符和表达式SCS-SWPU31例如:(double)a/*将a转换成double型*/(float)(5/2)/*将(5/2)转化成float型(=2.0)*/(float)5/2/*将5转换成实型,除以2(=2.5)*/转换格式:(类型标识符)表达式1必须把类型名放在一对括号内才能构成强制类型转换。2若要把表达式的值进行强制转换,
本文标题:C语言-3简单运算与输入输出
链接地址:https://www.777doc.com/doc-7027270 .html