第4章 输入输出和简单的顺序结构Word下载.docx
- 文档编号:19326696
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:18
- 大小:58.80KB
第4章 输入输出和简单的顺序结构Word下载.docx
《第4章 输入输出和简单的顺序结构Word下载.docx》由会员分享,可在线阅读,更多相关《第4章 输入输出和简单的顺序结构Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
u2=-182,u2=4294967114
%c
字符
charch='
a'
;
ch=%c,ch=%x\n"
ch,ch);
ch=a,ch=61
%s
字符串
ninetimes%s."
"
outoften."
);
ninetimesoutoften.\n"
ninetimesoutoften.
%f
定点浮点数
floatf=123.1;
doubled=123.1;
f=%f,d=%f\n"
f,d);
f=f=123.099998,d=123.100000
转换符f打印一个浮点数的整数部分和6位小数。
%e或%E
指数浮点数
f=%e,d=%E\n"
f=1.231000e+002,d=1.231000E+002
转换符e按规范化指数形式(科学记数法)打印
浮点数,共13位,其中字母“e”占1位,指数部分
占4位(1位是符号位),小数部分占据6位,整数数
字和小数点各占1位。
%g或%G
通用浮点数(e和f中较短的)
%p(相当于%X)
打印变量的地址
inta;
&
a=%#p,&
a=%#X\n"
&
a,&
a);
a=0X0012FF7C,&
a=0X12FF7C
%%
打印%
inta=15,b=-2;
%d%%%d=%d\n"
a,b,a%b);
15%-2=1
3.标志
表4-2用于printf的标志
标志
目的
-
使数据左对齐,默认情况下数据右对齐
+
打印正数的符号(不管是否使用+,负数打印时总带符号)
inta=12;
a=%+d,a=%d\n"
a,a);
a=+12,a=12
宽度m
打印的数据(包括整数、字符和字符串)占m个位置,当数据的实际位数不足m,根据对齐情况打印空格;
否则按数据的实际位数打印
inta=123,b=1234,c=-123;
a=%6d,b=%3d,c=%-6d.\n"
a,b,c);
a=123,b=1234,c=-123.
当打印整数、字符和字符串时,数据的
实际位数小于指定宽度时,在左边的空位上
补0(此时标志0和-冲突);
否则按数据的实
际位数打印
inta=-123,b=1234,c=123;
a=%-06d,b=%03d,c=%06d\n"
a=-123,b=1234,c=000123
精度.n
(1)当打印整数时,如果整数的位数比n少,就在左边的空位上补0;
否则按实际位数打印
(2)当打印浮点数时,如果浮点数的位数比n少,就在右边的空位上补0;
(3)当打印字符串时,如果字符串中字符个数比n少,就按实际字符数输出该串;
否则就截断取字符串前n个字符打印
inta=-123456;
a=%9d,a=%.9d\n"
a=-123456,a=-000123456
doublea=-123.1,b=123.1;
a=%f,a=%.8f,b=%.4f\n"
a,a,b);
a=-123.100000,a=-123.10000000,b=123.1000
l
打印long数据或double数据,默认情况下用%f也能打印double数据
longa=1234567;
a=%d,a=%ld\n"
a=1234567,a=1234567
h
打印短整型数据
shorta=12345;
longb=123456;
%hd,a=%hd,b=%hd\n"
12345,a,b);
12345,a=-7616,b=-10617
续表4-2
#
(1)#对于转换符x(X)、o添加前缀0x(0X)
或0
(2)#对于转换符f包含小数点
inta=123;
doubled=123.5;
a=%#o,a=%#X\n"
d=%.0f,d=%#.0f\n"
d,d);
a=0173,a=0X7B
d=124,d=124.
【例4.1】宽度标志和精度标志用于打印整数。
#include<
stdio.h>
main()
{
inta=-123,b=123;
printf("
a=%8d,b=%-8d,a=%3d\n"
a,b,a);
/*a=-123,b=123,a=-123*/
a=%8.5d,b=%-8.5d,a=%3.5d\n"
}
【例4.2】宽度标志和精度标志用于打印字符和字符串。
charch='
ch=%-5c,ch=%5c\n"
%-7s,%7s\n"
CHINA"
%-7.3s,%7.2s\n"
【例4.3】使用多种标志格式化输出浮点数。
floatf=-1.2345675f;
doubled=-153.4567885;
doubleaf=123.456e12;
f=%-11f,d=%6f\n"
f=%-11.3f,d=%6.9f\n"
d=%e,d=%E\n"
d=%18.6e,d=%2.4E\n"
f=%f,f=%e,f=%g\n"
f,f,f);
af=%f,af=%e,af=%g\n"
af,af,af);
4.printf格式说明符的语法图
二、格式化输入
1.scanf函数的使用格式
scanf("
变量名1,&
变量名2,&
变量名3,…,&
变量名n);
(1)格式字符串的说明同printf,由普通字符和格式说明符组成,普通字符原样输入。
(2)scanf格式字符串后面要列出若干变量的地址,每个变量用于保存用户在对应的格式说明符的位置上输入的数据。
(3)转换符将指示用户在该格式说明符的位置上输入的数据的数值类型:
表4-3用于scanf的转换符(实例均在VC6.0环境下运行)
输入十进制整数
inta,b;
%d%d"
b);
a=%d,b=%d\n"
输入:
-365365
a=-365,b=365
输入十六进制整数
%x,%X"
a=%d,a=%x\nb=%d,b=%x\n"
a,a,b,b);
a4,-a4
a=164,a=a4
b=-164,b=ffffff5c
用户输入八进制整数
a=%o"
a=%d,a=%o\n"
a=-244
a=-164,a=37777777534
输入十进制无符号整数
unsignedu1,u2;
u1=%u,*u2=%u"
u1,&
u2);
u1=%d,u2=%u\n"
u1,u2);
u1=182,*u2=-182
u1=182,u2=4294967114
输入字符
charch;
ch:
%c"
ch);
ch=%c\n"
ch);
A
ch=A
输入字符串
需要用字符数组来保存输入串
输入定点浮点数
floatf;
doubled;
%f%lf"
f,&
d);
f=%f\nd=%f\n"
123.456789-123.456789
f=123.456787
d=-123.456789
输入指数浮点数
doubled1,d2;
%le%le"
d1,&
d2);
d1=%f\nd2=%e\n"
d1,d2);
12.34e1123.4
d1=123.400000
d2=1.234000e+002
等价于%f、%e或%E
表4-4用于scanf的标志
指定输入数据所占位数,遇空格或不可转换字符结束
%3d%2d"
12345678
a=123,b=45
12345678
a=123,b=4
*
表示跳过输入
%3d%*2d%2d"
123456789
a=123,b=67
123456789
用于转换符d、u、o、x(X)表示输入long整数;
用于e(E)、f表示输入double实数
longli;
li:
%ld"
li);
li=%d\n"
li);
-1234
li=-1234
-1234L
li=1234
用于d、u、o、x(X)表示输入short整数
【例4.4】输入字符数据时要注意的问题。
charc1,c2,c3;
scanf("
%c%c%c"
c1,&
c2,&
c3);
c1=%c,c2=%c,c3=%c\n"
c1,c2,c3);
4.scanf格式说明符的语法图
4.2常用库函数简介
一、字符数据输入/输出函数
C语言针对字符数据的输入/输出,向用户提供使用更为方getchar和putchar等函数。
【例4.5】getchar与putchar。
\101'
putchar(ch);
putchar(0x61);
putchar('
\n'
ch=getchar();
【例4.6】getche和getch。
charch1,ch2;
pleasepresstwokey:
\n"
ch1=getche();
ch2=getch();
you\'
vepressed%cand%c\n"
ch1,ch2);
(1)getche与getchar函数的作用基本相似,都用于输入字符。
差别在于,getche直接从键盘获取用户输入的字符,不等待用户按回车键,且getche还能将用户输入的字符回显在屏幕上。
(2)getch函数与getche类似,差别在于,getche要回显输入字符,而getch不回显输入字符。
二、常用数学函数简介
1.绝对值函数
【例4.7】abs和fabs函数。
math.h>
doubled=-3.1415926;
floatf=3.1416f;
inti=-3;
doubleresult;
d=%f,|d|=%f\n"
d,fabs(d));
f=%f,|f|=%f\n"
f,fabs(f));
result=fabs(d+3.0);
%f\n"
result);
i=%d,|i|=%d\n"
i,abs(i));
|-2010|=%d\n"
abs(-2010));
(1)要使用数学库函数,必须用#include指令包含头文件math.h。
(2)abs返回一个整型表达式的结果的绝对值。
(3)fabs返回一个浮点表达式的结果的绝对值。
【课内思考题4.1】假设a、b、c都是double变量,如何用函数fabs表示||a+b|-|c||?
2.平方根函数
【例4.8】sqrt函数。
inti=3;
doubled=3.0;
doubleresult=sqrt(d);
%f的平方根是%f\n"
d,result);
%d的平方根是%f\n"
i,sqrt(i));
无论整数还是浮点数的平方根一律可以用sqrt函数计算。
【课内思考题4.2】假设a、b、c都是double变量,如何用函数sqrt表示
?
3.三角函数
【例4.9】符号常量的使用。
#definePI3.1416
doubler;
doublelength,area;
%lf"
r);
length=2*PI*r;
area=PI*r*r;
length=%f,area=%f\n"
length,area);
可以将一个程序中多次用到的常量通过#define指令用符号来表示。
【例4.10】sin、cos和tan函数。
#definePI3.1415926
doubleangle=30.0;
doublex;
sin(%.0f)=%f\n"
angle,sin(PI/180*angle));
angle=60.0;
cos(%.0f)=%f\n"
angle,cos(PI/180*angle));
angle=45.0;
tan(%.0f)=%f\n"
angle,tan(PI/180*angle));
使用三角函数求值时,需向这些函数提供弧度值,而非角度。
例如求30度的正弦值,必须将30度转换成弧度,即
。
4.反三角函数
【例4.11】asin、acos和atan函数。
x=0.5;
result=asin(x);
asin(%.1f)=%f\n"
x,result*180/PI);
result=acos(x);
acos(%.1f)=%f\n"
atan(%.1f)=%f\n"
1.0,atan(1.0)*180/PI);
反三角函数的计算结果是弧度值,在程序中将弧度结果转换成了角度数。
5.对数函数和自然对数函数
【例4.11】log10和log函数。
#defineE2.71828183
doubled=10.0;
log10(%.1f)=%f\n"
d,log10(d));
log(e)=%f\n"
log(E));
函数log10表示以10为底的对数函数,log表示以e为底的对数函数,即自然对数函数。
5.幂函数
【例4.12】pow函数。
doublen=-2.0;
pow(2.0,n));
提供给函数pow的第一个参数是底数,第二个参数表示指数,两个参数均为double。
4.3简单的顺序程序设计
一、C语言程序的结构
由于C编译器采用一种称为分段编译的技术,所以我们可以将C语言代码分解到多个程序文件中,这些程序文件分为两类,一类是以.h作为扩展名的头文件,还有一类是以.c作为文件扩展名的源程序文件(每个源程序文件也称为一个编译单元)。
二、语句分类
1.声明语句
变量声明、类型声明和函数原型声明。
通常将变量定义语句视为变量声明语句的一类。
区别在于定义变量将引起系统对变量分配内存字节,而声明变量只是对定义在别处的变量进行引用性说明。
2.流程控制语句
(1)条件语句
i语句、if-else语句和switch语句。
(2)循环语句
wile语句、do-while语句和for语句。
(3)流程转移语句
break、continue、return和goto。
3.表达式语句(包括函数调用语句)
4.空语句
5.复合语句
用{}把上述语句(包括复合语句本身)括起来构成复合语句,也叫语句块。
例如:
inttemp=x;
x=y;
y=temp;
一个复合语句也可以包括在另一个复合语句中。
复合语句的作用在于把多条语句变成语法上的一条语句!
二、顺序程序设计
【例4.13】编写程序,键盘输入一个三位整数,逆序输出之。
intnum;
intbw,sw,gw;
%d"
num);
gw=num%10;
sw=num/10%10;
bw=num/100;
%d\n"
gw*100+sw*10+bw);
【例4.14】交换两个变量的值。
intx,y;
inttemp;
x=%d,y=%d"
x,&
y);
temp=x;
x=%d,y=%d\n"
x,y);
【例4.15】输入三角形的三边长,求三角形的面积。
为简单起见,设输入的三边长a、b、c能构成三角形。
根据海伦公式求三角形面积。
海伦公式为:
area=
,s=
doublea,b,c;
doubles;
doublearea;
%lf,%lf,%lf"
b,&
c);
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
area=%.2f\n"
area);
【课后作业2】
(1)用C语言的数学函数表示下式:
(2)输入一个华氏温度,要求输出摄氏温度。
公式为
输出要有文字说明,取2位小数。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第4章 输入输出和简单的顺序结构 输入输出 简单 顺序 结构
![提示](https://static.bdocx.com/images/bang_tan.gif)