【文档说明】第2章C语言程序设计基础_基本输入输出课件.ppt,共(34)页,150.107 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-44637.html
以下为本文档部分文字说明:
第2章C语言程序设计基础_基本输入输出格式输入输出函数格式输出函数–printf()格式输入函数–scanf()格式输出函数格式printf(格式控制字符串,输出项表列);printf("a=%db=%f",a,b);可以输出若干任意类型的数据函数名输出表列普通字符格式说明关于格式
控制字符1.一般形式:2.%[标志][输出最小宽度][.精度][长度]<类型>3.说明:4.(1)[]中的内容为可选项printf(格式控制字符串,输出项表列);2)标志:为+、-、#等,含义如下:+输出符号(+)如i=3;printf(“%+d\n”,i);-输出结果左对齐(
缺省右对齐)#对c、s、d、u无影响,对o类输出时加前缀0;对x类输出时加前缀0x,对e、g、f类当结果有小数时才给出小数点。如:i=3;printf(“%#x\n”,i);%[标志][输出最小宽度][.精度][长度]<
类型>0x3+3(3)输出最小宽度(域宽m,m必须是整数)域宽m是输出项在输出设备上所占的列数。•若m是正整数——当实际位数多于定义宽度m,则按实际位数输出;若实际位数少于定义宽度,则用定义宽度输出,默认在域内向右对齐,左边多余位补以空格。如:int
a=-23,b=4;printf("%5d,%-5d",a,b);%[标志][输出最小宽度][.精度][长度]<类型>-23,4(4)精度.n(n为正整数)对于浮点数,表示输出的小数的位数;对于字符串,指定从字符串左侧所截取的子串字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。
如:floatk=65.678;printf("%.2f",k);输出结果为%[标志][输出最小宽度][.精度][长度]<类型>65.68(5)长度长度格式符为h、l两种,h表示按短整型量输出,l表示按长整型量输出(6)类型是指输出数据的类型%[
标志][输出最小宽度][.精度][长度]<类型>%ccharacter以字符形式输出单个字符%sstring输出一个字符串%ddecimal以带符号十进制整数输出%ffloat以小数形式输出浮点数(6
位小数)%eexponent以标准指数形式输出(6位小数)%g选用%f,%e中输出宽度较小的一种格式%ooctal以八进制无符号整数输出(无前导0)%xhex以十六进制无符号整数输出(无前导0x)%uunsign
ed以十进制无符号整数输出printf格式字符printfFunction-CharacterFormatforcharacter:%cExample:printf(“%c%c%c”,„U‟,„K‟,„M‟);UKM_printf
Function-CharacterExample:printf(“%c%c%c”,„U‟,„K‟,„M‟);UKM_Formatforcharacter:%cprintfFunction-CharacterExa
mple:char1=„U‟;char2=„K‟;char3=„M‟;printf(“%c%c%c”,char1,char2,char3);UKM_char1Uchar2?char3?char1Uchar2Kchar3?char1Ucha
r2Kchar3MExample:printf(“Name:%s\nStudentNo:%s”,“AliBakar”,“A92333”);Name:AliBakarStudentNo:A92333_OutputformatprintfFuncti
on-StringprintfFunction-StringExample:printf(“Name:%s\nStudentNo:%s”,“AliBakar”,“A92333”);Name:AliBakarStudentNo:A92333_printfFunction-Floa
tFormatforfloat:%fGeneralformat:%[<最小域宽>.<小数位数>]fExample:printf(“Valueis:%10.4f”,32.6784728);Valueis:32.67854digits10charactersprintfFunctio
n-FloatExample:printf(“Valueis:%10f”,32.6784728);Valueis:32.67847310characters6digits(default)printfFunction-FloatExample:printf(“Valueis:%1
0.5f”,32.6784);Valueis:32.6784010characters5digitsExample:printf(“Valueis:%5f”,32.6784728);Valueis:32.6784736digits(default)printfFunction-Flo
at9charactersMin5charactersExample:printf(“Valueis:%.3f”,32.6784728);Valueis:32.6783digitsprintfFunction-FloatprintfF
unction-Float#include<stdio.h>voidmain(){intage;floatheight;age=21;height=1.73;printf(“Aliis%dyearsoldandhisheightis%.5fmeters\n”,age,height);}
Aliis21yearsoldandhisheightis1.73000meters_age?height?211.73Example:d,ix,Xoucse,Efg%%小结十六进制无符号整数不带符号十进制整数十进制整数指数形式浮点小数单一字符字符串八进制无符号整数小数形式浮点小数
e和f中较短一种百分号本身inta=567;printf(“%d”,a);inta=255;printf(“%x”,a);inta=65;printf(“%o”,a);inta=567;printf(“%u”,a);chara=65;printf(“%c”,a);printf(“%s”
,“ABC”);floata=567.789;printf(“%e”,a);floata=567.789;printf(“%f”,a);floata=567.789;printf(“%g”,a);printf(“%%”);567ff101567AABC5.677890e+00
2567.789000567.789%说明–格式字符要用小写–格式字符与输出项个数应相同,按先后顺序一一对应–格式字符与输出项类型不一致,自动按指定格式输出格式输入函数格式scanf(格式控制字符串,地址
表列);scanf("%d,%f”,&a,&b);输入数据地址表列格式控制字符一般格式:%[*][输入数据宽度][长度]<类型>说明:(1)“*”号:表示该输入项读入后,不赋予相应的变量,即跳过该输入值。如:scanf("%d%*
d%d",&a,&b);当输入123时,1—>a3—>b,2被跳过(2)输入数据宽度:用十进制整数指定输入的宽度。如:scanf("%5d",&a);输入12345678后仅把12345赋予a,其余截去。又如:scanf("%4d%4d",&a,&b);输入123456
78后1234赋予a,5678赋予b,按宽度自动截取。%[*][输入数据宽度][长度]<类型>(3)长度长度格式符为l、hl表示长整型和双精度浮点数h表示短整型数据。%[*][输入数据宽度][长度]<类型>(4)类型——输入数据的类型.格式字符含义d以十进制整
数形式输入o以八进制整数形式输入x以十六进制整数形式输入u以十进制无符号整数形式输入f/e以实数形式输入c输入单个字符s输入字符串%[*][输入数据宽度][长度]<类型>scanfFunctionExample:
printf(“Key-inacharacterandanumber:”);scanf(“%c%d”,&char,&num);printf(“Character:%c\n”,char);printf(
“Number:%d\n”,num);Key-inacharacterandanumber:char?num?mKey-inacharacterandanumber:m103103Key-inacharacterandanumber:m103Character:m_Key-inach
aracterandanumber:m103Character:mNumber:103_#include<stdio.h>voidmain(){intday,month,year;scanf(“%d%d%d”,&day,&mon
th,&year);printf(“Day:%d,Month:%d,Year:%d”,day,month,year);}16122005month?year?day?1612200516122005Day:16,Month:12,Year:2005_scanfFunction#
include<stdio.h>voidmain(){inta,b,c;scanf(“%d%d%d”,&a,&b,&c);printf(“%d,%d,%d\n”,a,b,c);}345(输入a,b,c的值)3,4,5(输出a
,b,c的值)a在内存中的地址&是地址运算符用scanf函数输入数据使用scanf函数时应注意的问题:(1)scanf函数中的“格式控制”后面应当是变量地址,而不应是变量名。(2)如果在“格式控制”字符串中除了格式说明以外还有其他字符,则在输入数据时在对应位置
应输入与这些字符相同的字符。scanf(“%d,%d,%d”,&a,&b,&c);输入应为:5,6,7scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);输入应为:a=5,b=6,c=7使用scanf函数时应注意
的问题:(3)在用“%c”格式输入字符时,空格字符和“转义字符”都作为有效字符输入(4)在输入数据时,遇以下情况时认为该数据结束。①遇空格,或按“回车”或“跳格”(Tab)键;②按指定的宽度结束,如“%3d
”,只取3列;③遇非法输入。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格式输入函数常见错误–scanf("%d,%f\n”,&a,&b);–scanf("%d,%f”,a
,b);–scanf("%7.2f",&a);几点忠告–不要拘泥于细节–不要死记硬背–在使用中慢慢掌握【练习题】:仔细观察下面程序的输出结果程序运行结果#include<stdio.h>voidmain()
{inta=55;doubleb=1200.5;printf("%d%f\n",a,b);printf("%d,%5.3f\n",a,b);printf("a=%5d,b=%8.2f\n",a,b);printf("a=%-5d,b=%-8.2f\n",a,b);printf("%s\n
","Howareyou!");printf("%-20s\n","Howareyou!");printf("%+20s\n","Howareyou!");}