《C语言基础知识.ppt》由会员分享,可在线阅读,更多相关《C语言基础知识.ppt(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章 输入与输出,#includefunc1(.) .func2(.) .int main(.) .,C语言程序的结构,C语言程序,源程序文件1源程序文件2源程序文件n,预编译命令函数main函数1函数n,函数首部函数体,3.1 C语句分类,说明语句控制语句表达式语句空语句复合语句,a=3;x=y+z; i+;max(a,b);printf(%d,x);,;,t=x; x=y; y=t; ,if(ab)max=a;while(i0) i-;,int x,y;float s=3.5;,if(表达式) 语句 else 语句;for(表达式) 语句;while(表达式) 语句;do 语句 whil
2、e (表达式);continue ;break ;switch goto return,控制语句,#include int main( ) int i, num=0, word=0; char string81; gets(string); for(i=0; stringi!=0; i+) if (stringi= ) word=0; else if(word=0) word=1; num+; printf(%d n,num); return 0;,3.2 数据的输出, C本身不提供输入/出语句,输入/出操作由函数实现 C的标准库函数中提供了一些输入/出函数 stdio.h, 输入/出操作过程
3、,输入设备(键盘),输 入缓冲区,输 出缓冲区,输出设备(显示器), printf格式:printf(格式控制串,输出表列)功能:按格式控制串指定的格式输出输出表列中的内容要求:#include stdio.h,格式控制 由%、格式字符、普通字符组成, 普通字符原样输出。,doxu,feg,整数格式,无符号整数格 式,c,s,字符格式,字符串格式,实数格式,int a=3, b=4, c=12345;printf(a=%db=%dn,a,b);printf(a=%4d c=%4dn,a,c);,a=3b=4a= 3c=12345,d格式输出十进制整数%d 按数据的实际长度输出int%md 按最
4、小长度m输出int%ld 按数据的实际长度输出long%mld 按最小长度m输出long,unsigned int a;a=100;printf(%o,%8o, a, a);,o格式输出八进制无符号整数(不含前导0)%o %mo %lo %mlo,144,144,unsigned int a;a=100;printf(%x,%8x, a, a);,x(X)格式输出十六进制无符号整数%x %mx %lx %mlx,64,64,unsigned int a=65535;printf(a=%o, %x, %un, a, a, a);,u格式输出十进制无符号整数%u %mu %lu %mlu,a=17
5、7777,ffff,65535,int a=65; char c= a;printf(%d %c %4cn,c,a,c);,97Aa,c格式输出一个字符%c %mc,printf(%sn%3sn%7.2sn%.4sn%-5.3sn, china, china, china, china, china);,chinachinachchinchi,s格式输出一个字符串%s %ms %-ms %m.ns %-m.ns,float s=123.456; double x=3333333333333.333333333; printf(%fn%fn,s,x); printf(%.2f %6.1fn,s,
6、s);,float f=123.456;printf(%8.1f%8.1f%8.1fn,3.0,12.5,523.36);printf(%f %10f %10.2f %-10.2f n, f,f,f,f);,123.4560013333333333333.333500123.46 123.5,f格式以小数形式输出实数,单、双精度均可 %f%m.nf n为小数位数,实施四舍五入%-m.nf 左对齐,3.0,12.5,523.4,123.456001,123.456001,123.46,123.46,float s=123.456;printf(%en%10en%10.2en%-10.2en%.2
7、en, s,s,s,s,s);,1.234560e+0021.234560e+0021.23e+0021.23e+0021.23e+002,e(E)格式 以指数形式输出实数 %e X.XXXXXXe+XXX %m.ne n为小数位数 %-m.ne,d,x,o,u,c,s,e,f,%,格式字符:,十六进制无符号整数,不带符号十进制整数,十进制整数,指数形式浮点小数,单个字符,字符串,八进制无符号整数,小数形式浮点小数,百分号本身,int a=567;printf ( %d,a);,int a=255;printf(%x,a);,int a=65;printf(%o,a);,int a=567;p
8、rintf(%u,a);,char a=65;printf(%c,a);,printf(%s,ABC);,float a=567.789;printf(%e,a);,float a=567.789;printf(%f,a);,printf(“6%);,567,ff,101,567,A,ABC,5.677890e+002,567.789000,6%,3.3 数据的输入,int a,b,c;scanf(%d %d %d,1 2 3 ,1 2 3 ,scanf(%2d %*3d %2d,输入:1234567,scanf(%3d%3d,输入:123456CR,scanf(%3c,输入:abc, sca
9、nf格式:scanf(格式控制,地址表列)功能:根据格式控制指出的格式从键盘上输入 数据,并依次放入地址表列指定的存储 单元中,格式字符 d o x c s e f,附加的格式说明符 l %ld %lf %lo %lx %le h %hd %ho %hx m 输入长度 * 本输入项读入后不赋给任何变量 忽略输入,讨论scanf(%d,a);scanf(a=%d,数据的输入结束情况有: 空格、回车、Tab 长度结束 非法输入输入实型数据时不能规定精度, 输入double类型变量必须必须用格式符%lf 输入float类型变量必须必须用格式符%f非控制字符原样输入不要以空格或回车作为格式控制串的结束
10、符,讨论:输入12345这是几个整数?,输入字符/字符串时多余的空格如何去除?,char a,b,c; scanf(%c,输入:try,方法1:使用getchar()方法2:在%c前加空格方法3:用%*c读掉字符,该如何为如下输入数据书写输入语句:2 3 42,3,42 3 4abca=5,b=6123456(两个变量), putchar格式:putchar(字符)功能:向输出设备输出一个字符要求:在程序开头加预编译命令: #include stdio.h 或 #include ,#include stdio.hint main( )char a,b; a= B; b= O; putchar(
11、a); putchar(b); putchar(Y); return 0;,3.4 字符的输入输出, getchar格式:getchar()功能:从键盘上输入一个字符要求:#include stdio.h,#include stdio.hint main( ) char c; c=getchar( ); putchar(c); putchar(getchar( ); return 0;,华氏温度转换为摄氏温度,scanf(%f,int main() float f,c; scanf(%f,编程示例,计算存款本息。设银行一年定期存款的利息是2.25%,到期后转存。n年后本息是多少?,#inclu
12、deint main() double rate=0.0225; /rate表示年利率 double capital; /capital表示本金 double profit; / profit表示本及息 int n; /n表示存款年数 printf(请输入存款年数及本金); scanf(%d,%lf,编程示例,int main() 说明程序中所使用变量及类型 输入数据 计算 输出结果 return 0;,int main() 说明程序中所使用变量及类型 输入数据 计算 输出结果,int main() double rate=0.0225; /rate表示年利率 double capital;
13、/capital表示本金 double profit; / profit表示本及息 int n; /n表示存款年数 printf(请输入存款年数及本金); scanf(%d,%lf,#include stdio.hint main( )char c1,c2; c1=getchar( ); c2=c1+32; printf(%cn,c2); return 0;,大写改小写,编程示例,阅读以下程序#include int main( )float a,b,c,disc,x1,x2,p,q; scanf(a=%f,b=%f,c=%f,1.将数据输出到文件,FILE *fp;unsigned int a=65535;fp=fopen(data.txt, w);fprintf(fp, a=%o, %x, %un, a, a, a);fclose(fp);,3.5文件输入输出,2.从文件中读入数据,int a,b,c;FILE *fp;fp=fopen(data.txt,r);fscanf(fp,%d %d %d,从文件中读取数据示例,int main( )FILE *fp; fp=fopen(one.txt,r); fscanf(fp, %d%d%d,
限制150内