




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章 格式化输入/输出和简单的顺序结构4.1 格式化输入和输出一、格式化输出1. printf函数的使用格式printf(格式字符串,参数1,参数2,参数n);说明:(1) 格式字符串中包含了普通字符和格式说明符。每个格式说明符以%开始,以一个转换符结束,在%和转换符之间可以使用一个或多个标志。(2) 参数是表达式(包括常量、变量、带运算符的表达式和有返回值的函数的调用)。(3) 每个格式说明符都用相应的参数值替换。格式说明符结尾的转换符将指示被格式化的数值类型:例如,f表示浮点数,c表示字符,d表示十进制整数。2. 转换符 表4-1 用于printf的转换符(实例均在VC6.0环境下运行)转换符类型举例%d或%i有符号十进制整数int a=-2009,b=-0x123;printf(a=%i,b=%d,%dn,a,b,0123);输出:a=-2009,b=-291,83%x或%X十六进制整数int a=164,b=-164;printf(a=%x,b=%Xn,a,b);输出:a=A4,b=ffffff5c%o八进制整数int a=164,b=-164;printf(a=%o,b=%on,a,b);输出:a=244,b=37777777534%u无符号十进制整数int a=164,b=-164;printf(a=%u,b=%un,a,b);输出:a=164,b=4294967132unsigned u1=182,u2=-182;printf(u1=%d,u1=%un,u1,u1);printf(u2=%d,u2=%un,u2,u2);输出:u1=182,u1=182u2=-182,u2=4294967114%c字符char ch=a;printf(ch=%c,ch=%xn,ch,ch);输出:ch=a,ch=61%s字符串printf(nine times %s.,out of ten.);printf(nine times out of ten.n);输出:nine times out of ten.nine times out of ten.%f定点浮点数float f=123.1;double d=123.1;printf(f=%f,d=%fn,f,d);输出:f= f=123.099998,d=123.100000说明:转换符f打印一个浮点数的整数部分和6位小数。%e或%E指数浮点数float f=123.1;double d=123.1;printf(f=%e,d=%En,f,d);输出:f=1.231000e+002,d=1.231000E+002说明:转换符e按规范化指数形式(科学记数法)打印浮点数,共13位,其中字母“e”占1位,指数部分占4位(1位是符号位),小数部分占据6位,整数数字和小数点各占1位。%g或%G通用浮点数(e和f中较短的)%p(相当于%X)打印变量的地址int a;printf(&a=%#p,&a=%#Xn,&a,&a);输出:&a=0X0012FF7C,&a=0X12FF7C%打印%int a=15,b=-2;printf(%d%d=%dn,a,b,a%b);输出:15%-2=13. 标志 表4-2 用于printf的标志标志目的举例-使数据左对齐,默认情况下数据右对齐+打印正数的符号(不管是否使用+,负数打印时总带符号)int a=12;printf(a=%+d,a=%dn,a,a);输出:a=+12,a=12宽度m打印的数据(包括整数、字符和字符串)占m个位置,当数据的实际位数不足m,根据对齐情况打印空格;否则按数据的实际位数打印 int a=123,b=1234,c=-123;printf(a=%6d,b=%3d,c=%-6d.n,a,b,c);输出:a= 123,b=1234,c=-123 .0当打印整数、字符和字符串时,数据的实际位数小于指定宽度时,在左边的空位上补0(此时标志0和-冲突);否则按数据的实际位数打印int a=-123,b=1234,c=123;printf(a=%-06d,b=%03d,c=%06dn,a,b,c);输出:a=-123 ,b=1234,c=000123精度.n(1) 当打印整数时,如果整数的位数比n少,就在左边的空位上补0;否则按实际位数打印(2) 当打印浮点数时,如果浮点数的位数比n少,就在右边的空位上补0;否则按实际位数打印(3) 当打印字符串时,如果字符串中字符个数比n少,就按实际字符数输出该串;否则就截断取字符串前n个字符打印int a=-123456;printf(a=%9d,a=%.9dn,a,a);输出:a= -123456,a=-000123456double a=-123.1,b=123.1;printf(a=%f,a=%.8f,b=%.4fn,a,a,b);输出:a=-123.100000,a=-123.10000000,b=123.1000l打印long数据或double数据,默认情况下用%f也能打印double数据long a=1234567;printf(a=%d,a=%ldn,a,a);输出:a=1234567,a=1234567h打印短整型数据short a=12345;long b=123456;printf(%hd,a=%hd,b=%hdn,12345,a,b);输出:12345,a=-7616,b=-10617续表4-2#(1) #对于转换符x(X)、o添加前缀0x(0X)或0(2) #对于转换符f包含小数点int a=123;double d=123.5;printf(a=%#o,a=%#Xn,a,a);printf(d=%.0f,d=%#.0fn,d,d);输出:a=0173,a=0X7Bd=124,d=124.【例4.1】 宽度标志和精度标志用于打印整数。#include main()int a=-123,b=123;printf(a=%8d,a=%-8d,a=%3dn,a,b,a);printf(a=%8.5d,a=%-8.5d,a=%3.5dn,a,b,a);【例4.2】 宽度标志和精度标志用于打印字符和字符串。#include main()char ch=a;printf(ch=%-5c,ch=%5cn,ch,ch);printf(%-7s,%7sn,CHINA,CHINA);printf(%-7.3s,%7.2sn,CHINA,CHINA);【例4.3】 使用多种标志格式化输出浮点数。#include main()float f=-1.2345675f;double d=-153.4567885;double af=123.456e12;printf(f=%f,d=%fn,f,d);printf(f=%-11f,d=%6fn,f,d);printf(f=%-11.3f,d=%6.9fn,f,d); printf(d=%e,d=%En,d,d); printf(d=%18.6e,d=%2.4En,d,d);printf(f=%f,f=%e,f=%gn,f,f,f);printf(af=%f,af=%e,af=%gn,af,af,af);4. printf格式说明符的语法图%标志宽度精度.转换符二、格式化输入1. scanf函数的使用格式scanf(格式字符串,&变量名1, &变量名2, &变量名3, &变量名n);说明:(1) 格式字符串的说明同printf,由普通字符和格式说明符组成,普通字符原样输入。(2) scanf格式字符串后面要列出若干变量的地址,每个变量用于保存用户在对应的格式说明符的位置上输入的数据。(3) 转换符将指示用户在该格式说明符的位置上输入的数据的数值类型:例如,f表示浮点数,c表示字符,d表示十进制整数。2. 转换符 表4-3 用于scanf的转换符(实例均在VC6.0环境下运行)转换符类型举例%d或%i输入十进制整数int a,b;scanf(%d%d,&a,&b);printf(a=%d,b=%dn,a,b);输入:-365 365输出:a=-365,b=365%x或%X输入十六进制整数int a,b;scanf(%x,%X,&a,&b);printf(a=%d,a=%xn b=%d,b=%xn,a,a,b,b);输入:a4,-a4输出:a=164,a=a4b=-164,b=ffffff5c%o用户输入八进制整数int a;scanf(a=%o,&a);printf(a=%d,a=%on,a,a);输入:a=-244输出:a=-164,a=37777777534%u输入十进制无符号整数unsigned u1,u2;scanf(u1=%u, *u2=%u,&u1,&u2);printf(u1=%d, u2=%un,u1,u2);输入:u1=182, *u2=-182输出:u1=182, u2=4294967114%c输入字符char ch;scanf(ch: %c,&ch);printf(ch= %cn,ch);输入:ch: A输出:ch= A%s输入字符串需要用字符数组来保存输入串%f输入定点浮点数float f;double d;scanf(%f%lf,&f,&d);printf(f=%fnd=%fn,f,d);输入:123.456789 -123.456789输出:f=123.456787d=-123.456789%e或%E输入指数浮点数double d1,d2;scanf(%le %le,&d1,&d2);printf(d1=%fnd2=%en,d1,d2);输入:12.34e1 123.4 输出:d1=123.400000d2=1.234000e+002%g或%G等价于%f、%e或%E3. 标志表4-4 用于scanf的标志标志目的举例宽度m指定输入数据所占位数,遇空格或不可转换字符结束int a,b;scanf(%3d%2d,&a,&b);printf(a=%d,b=%dn,a,b);输入:12345678输出:a=123,b=45输入:1234 5678输出:a=123,b=4*表示跳过输入int a,b;scanf(%3d%*2d%2d,&a,&b);printf(a=%d,b=%dn,a,b);输入:123456789输出:a=123,b=67输入:123 456789输出:a=123,b=67l用于转换符d、u、o、x(X)表示输入long整数;用于e(E)、f表示输入double实数long li;scanf(li: %ld,&li);printf(li=%dn,li);输入:li: -1234输出:li=-1234输入:li: -1234L输出:li=1234h用于d、u、o、x(X)表示输入short整数【例4.4】 输入字符数据时要注意的问题。 #include main()char c1,c2,c3;scanf(%c%c%c,&c1,&c2,&c3);printf(c1=%c,c2=%c,c3=%cn,c1,c2,c3);4. scanf格式说明符的语法图%*宽度转换符lh4.2 常用库函数简介一、字符数据输入/输出函数C语言针对字符数据的输入/输出,向用户提供使用更为方getchar和putchar等函数。【例4.5】 getchar与putchar。#include main()char ch=101;putchar(ch); putchar(0x61);putchar(n);ch=getchar();putchar(ch);【例4.6】 getche和getch。#include main()char ch1,ch2;printf(please press two key:n);ch1=getche();ch2=getch();printf(youve pressed %c and %cn,ch1,ch2);说明:(1) getche与getchar函数的作用基本相似,都用于输入字符。差别在于,getche直接从键盘获取用户输入的字符,不等待用户按回车键,且getche还能将用户输入的字符回显在屏幕上。(2) getch函数与getche类似,差别在于,getche要回显输入字符,而getch不回显输入字符。二、常用数学函数简介1. 绝对值函数【例4.7】 abs和fabs函数。#include #include main()double d=-3.1415926;float f=3.1416f;int i=-3;double result;printf(d=%f, |d|=%fn,d,fabs(d);printf(f=%f, |f|=%fn,f,fabs(f); result=fabs(d+3.0);printf(%fn,result);printf(i=%d, |i|=%dn,i,abs(i); printf(|-2010|=%dn,abs(-2010);说明:(1) 要使用数学库函数,必须用#include指令包含头文件math.h。(2) abs返回一个整型表达式的结果的绝对值。(3) fabs返回一个浮点表达式的结果的绝对值。【课内思考题4.1】 假设a、b、c都是double变量,如何用函数fabs表示|a+b|-|c|?2. 平方根函数【例4.8】 sqrt函数。#include #include main()int i=3;double d=3.0;double result=sqrt(d);printf(%f的平方根是%fn,d,result);printf(%d的平方根是%fn,i,sqrt(i);说明:无论整数还是浮点数的平方根一律可以用sqrt函数计算。【课内思考题4.2】 假设a、b、c都是double变量,如何用函数sqrt表示?3. 三角函数【例4.9】 符号常量的使用。#include #define PI 3.1416main()double r;double length,area;scanf(%lf,&r);length=2*PI*r;area=PI*r*r;printf(length=%f,area=%fn,length,area);说明:可以将一个程序中多次用到的常量通过#define指令用符号来表示。【例4.10】 sin、cos和tan函数。#include #include #define PI 3.1415926main()double angle=30.0;double x;double result;printf(sin(%.0f)=%fn,angle,sin(PI/180*angle);angle=60.0;printf(cos(%.0f)=%fn,angle,cos(PI/180*angle);angle=45.0;printf(tan(%.0f)=%fn,angle,tan(PI/180*angle);说明:使用三角函数求值时,需向这些函数提供弧度值,而非角度。例如求30度的正弦值,必须将30度转换成弧度,即 。4. 反三角函数【例4.11】 asin、acos和atan函数。#include #include #define PI 3.1415926main()double x;double result;x=0.5;result=asin(x);printf(asin(%.1f)=%fn,x,result*180/PI);result=acos(x);printf(acos(%.1f)=%fn,x,result*180/PI);printf(atan(%.1f)=%fn,1.0,atan(1.0)*180/PI);说明:反三角函数的计算结果是弧度值,在程序中将弧度结果转换成了角度数。5. 对数函数和自然对数函数【例4.11】 log10和log函数。#include #include #define E 2.71828183main()double d=10.0;printf(log10(%.1f)=%fn,d,log10(d);printf(log(e)=%fn,log(E);说明:函数log10表示以10为底的对数函数,log表示以e为底的对数函数,即自然对数函数。5. 幂函数【例4.12】 pow函数。#include #include main() double n=-2.0; printf(%fn,pow(2.0,n);说明:提供给函数pow的第一个参数是底数,第二个参数表示指数,两个参数均为double。4.3 简单的顺序程序设计一、C语言程序的结构由于C编译器采用一种称为分段编译的技术,所以我们可以将C语言代码分解到多个程序文件中,这些程序文件分为两类,一类是以.h作为扩展名的头文件,还有一类是以.c作为文件扩展名的源程序文件(每个源程序文件也称为一个编译单元)。C语言程序头文件1头文件2头文件n源程序文件源程序文件n类型声明全局变量声明函数原型声明预处理指令全局变量定义函数1函数n函数头函数体二、语句分类1. 声明语句变量声明、类型声明和函数原型声明。通常将变量定义语句视为变量声明语句的一类。区别在于定义变量将引起系统对变量分配内存字节,而声明变量只是对定义在别处的变量进行引用性说明。2. 流程控制语句(1)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 24690:2025 EN Glass reinforced thermosetting plastic (GRP) pipes - Test method for the determination of long-term pressure endurance strength
- 2025华润啤酒管培生招聘持续热招中笔试题库历年考点版附带答案详解
- 2025中铁十五局集团公司办公室(党委办公室)工作人员招聘2人笔试题库历年考点版附带答案详解
- 2025中广核新能源春季校园招聘笔试题库历年考点版附带答案详解
- 2025年冷链物流行业冷链物流技术创新报告
- 2025中国东航东航食品校园招聘笔试题库历年考点版附带答案详解
- 2025年体育赛事行业体育大数据应用案例研究报告
- 曹明华《美》课件
- 校园班级安全员培训课件
- 2025年自主插电式混合动力车行业研究报告及未来发展趋势预测
- 2025年合肥市社会化工会工作者招聘34人笔试备考试题及答案解析
- 非婚生子女法律抚养权协议范本
- 2025年新版中层副职面试题及答案
- 校长校园安全教育课件
- 化工企业物料编码规则培训课件
- 粉条检测报告
- 污水处理厂污泥处理处置投标方案
- 车灯LED封装DFMEA范例
- 《全国医疗服务价格项目规范》(2022版)
- 2023年贵州茅台机场第二次招聘笔试参考题库附带答案详解
- 【告知牌】污水池有限空间作业告知牌模版
评论
0/150
提交评论