资源预览内容
第1页 / 共25页
第2页 / 共25页
第3页 / 共25页
第4页 / 共25页
第5页 / 共25页
第6页 / 共25页
第7页 / 共25页
第8页 / 共25页
第9页 / 共25页
第10页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
4.1 c语句 4.2 数据输出 4.3 数据输入 4.4 程序举例第四章 最简单的c程序设计4.1 c语句说明部分(声明部分)例 int a;float x, y=3.8, z;int max( int x, int y); 控制语句(完成一定的控制功能)if()else 条件语句for() while() dowhile() 循环语句switch 多分支选择语句 continue break goto return函数调用语句例 printf (“this is max”);max (a, b);表达式语句例 x=23 x=23;a*b a*b;i=i+14.1 c语句是表达式,不是语句4.1 c语句空语句例 ; 复合语句(用括起来)例 c=a+b;printf(“%d”,c);例 a=2;b=6;c=a+b;格式: putchar( c ) 参数: c为字符常量、变量或表达式 功能:把字符c输出到显示器上 返值:正常,为显示的代码值;出错,为EOF(-1)4.2 数据输出 #include 字符输出函数/*ch4_1.c*/ #include main() int c;char a;c=65; a=B;putchar(c); putchar(n); putchar(a); 运行结果:AB例 ch4_1.c格式:printf(“格式控制串”,输出表) 功能:按指定格式向显示器输出数据 返值:正常,返回输出字节数;出错,返回EOF(-1)格式输出函数v输出表:要输出的数据(可以没有,多个时以 “,”分隔)v格式控制串:包含两种信息 l格式说明: %修饰符格式字符 ,用于指定输出 格式 l普通字符或转义序列:原样输出 v格式字符d,i x,X o u c s e,E f g %格式字符:十六进制无符号整数不带符号十进制整数十进制整数指数形式浮点小数单一字符字符串八进制无符号整数小数形式浮点小数 e和f中较短一种百分号本身int a=567;printf ( “%d”,a);int a=255;printf(“%x”,a);int a=65;printf(“%o”,a);int a=567;printf(“%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);float a=567.789;printf(“%g”,a);printf(“%”);567ff101567AABC5.677890e+02567.789000567.789%l说明u格式字符要用小写 u格式字符与输出项个数应相同,按先后顺序一一对应 u输出转换:格式字符与输出项类型不一致,自动按指定 格式输出例 main() unsigned int u=65535;printf(”u=%dn“,u);输出结果:u=-1例 int a=3,b=4;printf(“%d %dn”,a,b); printf(“a=%d , b=%dn”,a,b); 例 int a=3,b=4;printf(“%d %dn”,a,b); printf(“a=%d , b=%dn”,a,b); 输出结果: 3 4a=3, b=411 11 11 11 11 11 11 1165535v附加格式说明符(修饰符).n对实数,指定小数点后位数(四舍五入) 对字符串,指定实际输出位数修饰符功 能 m输出数据域宽,数据长度 main() int c;printf(“Enter a character:“);c=getchar();printf(“%c-hex%xn“,c,c); 运行结果: Enter a character:A A-hex41格式输入函数格式: scanf(“格式控制串”,地址表) 功能:按指定格式从键盘读入数据,存入地址表指定的存储单元中,并按回车键结束 返值:正常,返回输入数据个数v地址表:变量的地址,常用取地址运算符输入:10 则 a=10例 scanf(“%x”,输入:11 则 a=17v附加格式说明符(修饰符)l修饰符功 能 hm*用于d,o,x前,指定输入为short型整数用于d,o,x前,指定输入为long型整数用于e,f前,指定输入为double型实数指定输入数据宽度,遇空格或不可转换字符则结束抑制符,指定输入项读入后不赋给变量例 scanf(“%4d%2d%2d”,输入 19991015 则1999yy, 10 mm, 15 dd例 scanf(“%3d%*4d%f”,输入 12345678765.43则123k, 8765.43f例 scanf(“%2d%*3d%2d”,输入 1234567 则12a, 67b例 scanf(“%3c%2c”,输入 abcde 则ac1, d c2v输入分隔符的指定 l一般以空格、TAB或回车键作为分隔符l其它字符做分隔符:格式串中两个格式符间字符例 scanf(“%d%o%x”,printf(“a=%d,b=%d,c=%dn”,a,b,c);输入 123 123 123 输出 a=123,b=83,c=291例 scanf(“%d:%d:%d”,输入 12:30:45 则12 h, 30 m, 45 s例 scanf(“%d,%d”,输入 a=12,b=24,c=36 v说明: l用“%c”格式符时,空格和转义字符作为有效 字符输入 如 scanf(“%c%c%c”,若输入abc 则ac1, c2, b c3l输入数据时,遇以下情况认为该数据结束: u遇空格、TAB、或回车u遇宽度结束 u遇非法输入如 scanf(“%d%c%f”,若输入1234a123o.26 则 1234 a, a b, 123 cl输入函数留下的“垃圾”: 例 int x;char ch;scanf(“%d”,ch=getchar();printf(“x=%d,ch=%dn”,x,ch); 执行:123 输出:x=123,ch=10例 int x;char ch;scanf(“%d”,scanf(“%c”,printf(“x=%d,ch=%dn”,x,ch); 执行:123 输出:x=123,ch=10解决方法: (1)用getchar()清除 (2)用函数fflush(stdin)清除全部剩余内容(3) 用格式串中空格或“%*c”来“吃掉”例 int x;char ch;scanf(“%d”,scanf(“ %c”, 或 scanf(“%*c%c”,4.4 程序举例/*ch3_12.c*/ #include #include main() float a,b,c,s,area;scanf(“%f,%f,%f“,s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf(“a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2fn“,a,b,c,s);printf(“area=%7.2fn“,area); 例 输入三角形边长,求面积输入:3,4,6 输出:a= 3.00, b= 4.00, c= 6.00 s= 6.50area= 5.33文件包含预处理命令变量定义 输入数据输出数据例 从键盘输入大写字母,用小写字母输出/*ch3_13.c*/ #include “stdio.h“ main() char c1,c2;c1=getchar();printf(“%c,%dn“,c1,c1);c2=c1+32;printf(“%c,%dn“,c2,c2); 输入:A 输出:A,65a,97/*ch3_14.c*/ #include #include main() float a,b,c,disc,x1,x2,p,q;scanf(“a=%f,b=%f,c=%f“,disc=b*b-4*a*c;p=-b/(2*a); q=sqrt(disc)/(2*a);x1=p+q; x2=p-q;printf(“nnx1=%5.2fnx2=%5.2fn“,x1,x2); 输入:a=1,b=3,c=2 输出:x1=-1.00x2=-2.00习 题4.1 C语言中的语句有哪几类?C语句与其他语 言中的语句有哪些异同?4.2 怎样区分表达式和表达式语句?C语言为 什么要设表达式语句?什么时候用表达式,什 么时候用表达式语句?4.3 C语言为什么要把输入输出的功能作为函 数,而不作为语言的基本部分?4.4 若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=a, c2=b。想得到以下的输出格式和结果,请写 出程序(包括定义变量类型和设计输出)。要求输出的结果如下:a= 3 b= 4 c= 5x=1.200000,y=2.400000,z=-3.600000x+y= 3.60 y+z=-1.20 z+x=-2.40u= 51274 n= 128765c1=a or 97(ascii)c2=b or 98(ascii)4.5 请写出下面程序的输出结果:main()int a=5,b=7;float x=678564, y=-789124;char c=a;long n=1234567;unsigned u=65535;printf(“%d%dn“,a,b);printf(“%3d%3dn“,a,b);printf(“%f,%fn“,x,y);printf(“%-10f,%-10fn“,x,y); printf(“%8.2f, %8.2f,%.4f,%.4f,%3f,%3fn“,x,y,x,y,x,y);printf(“%e,%102en“,x,y);printf(“%c,%d,%o,%xn“,c,c,c,c);printf(“%ld,%lo,%xn“,n,n,n);printf(“%u,%o,%x,%dn“,u,u,u,u);printf(“%s,%5.3sn“,“coMputer“, “coMputer“);4.6 用下面的scanf函数输入数据,使a=10,b=20, c1=a,c2=a,x=1.5,y=-3.75,z=67.8,请问在键 盘上如何输入数据? scanf(“%5d%5d%c%c%f%f%*f,%f“, 4.7设圆半径r=15,圆柱高h=3,求圆周长、圆面 积、圆球表面积、圆球体积、圆柱体积。用scanf输 入数据,输出计算结果,输出时要求有文字说明, 取小数点后2位数字。请编程序。4.8 输入一个华氏温度,要求输出摄氏温度。公式 为 c=5/9(f-32) 输出要有文字说明,取2位小数。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号