C语言课件 第4章.ppt

上传人:本田雅阁 文档编号:3479780 上传时间:2019-09-01 格式:PPT 页数:69 大小:176.52KB
返回 下载 相关 举报
C语言课件 第4章.ppt_第1页
第1页 / 共69页
C语言课件 第4章.ppt_第2页
第2页 / 共69页
C语言课件 第4章.ppt_第3页
第3页 / 共69页
C语言课件 第4章.ppt_第4页
第4页 / 共69页
C语言课件 第4章.ppt_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《C语言课件 第4章.ppt》由会员分享,可在线阅读,更多相关《C语言课件 第4章.ppt(69页珍藏版)》请在三一文库上搜索。

1、第4章 最简单的C程序设计 顺序程序设计,4.1 C语句概述,1、C语句 C语句是用来完成一定操作任务的。一个函数的执行部分是由语句组成的。 但声明部分的内容不能称为语句,因为它只是对变量进行定义,并不产生机器操作,4.1 C语句概述,2、C语句的分类 (1)控制语句 C有9种控制语句: if()else (条件语句) for() (循环语句) while() (循环语句) dowhile() (循环语句) continue (结束本次循环语句) break (中止执行switch或循环语句) switch (多分支选择语句) goto (转向语句) return (从函数返回语句),4.1

2、C语句概述,(2)函数调用语句 由一次函数调用加一个分号构成。 如:printf(“good!”); (3)表达式语句 由一个表达式加上一个分号构成。 最常见的是赋值语句。 如:a=3为赋值表达式,a=3;为赋值语句。,4.1 C语句概述,注意:任何表达式都可以加上分号而成为语句。 如:i+;x+y;都是合法的语句,只是并不把运算结果赋给另一个变量。,4.1 C语句概述,(4)复合语句 用 括起来的多个语句,又称分程序。 如: a=b+c; c=x/y; printf(“%d,%d“,a,c); 注意:复合语句中最后一个语句的分号不能缺少。 (5)空语句 只有一个分号的语句。它什么也不做,有时

3、用来做被转向点,或循环语句中的循环体,用来表示循环体什么也不做。,4.2赋值语句,赋值表达式可以包含在表达式中,但赋值语句则不可以。 如:if(a=b)0) t=a;不能写成if (a=b;)0) t=a;,4.3 数据输入输出在C语言中的实现,C语言中输入和输出操作是通过函数来实现的。 C语言的函数库中有一批“标准输入输出函数”,其中包括:putchar(输出字符)、getchar(输入字符)、printf(格式输出)、scanf(格式输入)、puts(输出字符串)、gets(输入字符串)。 注意:以上这些都是函数名,而不是C语言的关键字。,4.3 数据输入输出在C语言中的实现,在使用库函数

4、时,要用预编译命令“#include”将有关的“头文件”包括到用户源文件中。 “头文件”的后缀为.h,是head的缩写 #include命令都是放在程序的开头,因此这类文件被称为“头文件”。 如:在调用标准输入输出库函数时,文件开头应有以下预编译命令: #include 或#include “stdio.h” 说明:使用printf和scanf这两个函数可不加#include命令。,4.4 字符数据的输入输出,4.4.1 putchar函数(字符输出函数) putchar函数的作用:向终端输出一个字符,可以是普通字符,也可以是控制字符和其他转义字符。,4.4.1 putchar函数(字符输出函

5、数),如:#include main() char a; int i; i=65; a=B; putchar(a); putchar(i); putchar(n); putchar(101); ,4.4.2 getchar函数(字符输入函数),getchar的作用:从终端输入一个字符。 getchar的一般形式:getchar() getchar函数没有参数。 getchar函数的值就是从输入设备得到的字符,可以将这个字符赋给一个字符变量或整型变量,也可以不赋给任何变量,而作为表达式的一部分。,4.4.2 getchar函数(字符输入函数),例:将输入的字符赋给字符变量 #include ma

6、in() char c; c=getchar(); putchar(c); 输入字符a,并按回车键,则在屏幕上会显示: a a,4.4.2 getchar函数(字符输入函数),例:将输入的字符作为表达式的一部分。 putchar(getchar(); 或printf(“%d”,getchar();,4.4.2 getchar函数(字符输入函数),注意: (1)getchar函数只能接收一个字符,putchar函数只能输出一个字符。 (2)一个函数要调用putchar,getchar函数,应该在其前面加上包含命令:#include ,4.5 格式输入与输出,4.5.1 printf函数(格式输出

7、函数) printf函数的作用:向终端输出若干个任意类型的数据。 printf与putchar的区别:printf函数可以输出多个数据,且为任意类型,而putchar只能输出字符型数据,且只能是一个字符。,4.5.1 printf函数(格式输出函数),1、printf函数的一般格式 printf(格式控制,输出表列) 如:printf(“%d,%cn“,i,c); (1)格式控制 格式控制是用双引号括起来的字符串。 包括两种信息: 格式说明,由”%”和格式字符组成,如%d,%f等。其作用是将输出的数据转换为指定的格式输出。 注意:格式说明总是由“%”字符开始的。 普通字符,即需要原样输出的字符

8、。,4.5.1 printf函数(格式输出函数),(2)输出表列 输出表列中列出需要输出的一些数据,也可以是表达式。 如: printf(“a=%d,b=%d”,a,b); 其中,两个”%d”为格式说明,“a=”、“b=”以及双引号内的逗号都是格式控制字符串中的普通字符,都将原样输出。“a,b”为输出表列。 设a=4,b=5,则输出结果为: a=4,b=5,4.5.1 printf函数(格式输出函数),说明: “格式控制”字符串和“输出表列”实际上是函数的参数。 printf函数的一般形式可以表示为: printf(参数1,参数2,.,参数n),4.5.1 printf函数(格式输出函数),2

9、、格式字符 注意:对于不同类型的数据要采用不同的格式字符来输出。 (1)d格式符 作用:用来输出十进制整数。 使用方法: %d,按整型数据的实际长度输出。 %md,m为指定的输出字段的宽度。 如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。,4.5.1 printf函数(格式输出函数),如: a=123; b=12345; printf(“%5d,%4d”,a,b); 输出结果为: 123,12345 其中,“ 123”前面补有2个空格。,4.5.1 printf函数(格式输出函数),%ld,用于输出长整型数据,也可以指定输出字段的宽度。 对long型数据应当用%ld格式输出

10、(特别要注意当整型数据的范围超出-3276832767时,必须用%ld格式输出,否则会出错),int型数据可以用%d或%ld格式输出。对于long型数据也可以指定数据长度,如“%8ld”。,4.5.1 printf函数(格式输出函数),如: long a=1234567; printf(“%ldn”,a); printf(“%10ld”,a); 输出结果为: 1234567 1234567,4.5.1 printf函数(格式输出函数),(2)对于长整数可以用”%lo”格式输出。也可以指定输出字段的宽度 如: long int a=123456; printf(“%ld,%lo,%8lo”,a,

11、a,a); 输出结果为: 123456,361100, 361100,4.5.1 printf函数(格式输出函数),(2)o格式符 作用:以八进制数形式输出整数。 注意: (1)o格式符不会输出负的八进制整数,因为其将符号位作为八进制数的一部分。 如:int a=-1; printf(“%d,%o“,a,a); 则输出: -1,177777,4.5.1 printf函数(格式输出函数),(3)x格式符 作用:以十六进制数形式输出整数。 注意: (1)与o格式符一样,x格式符也不会输出负数。 (2)也可以用”%lx”输出长整数,也可指定输出字段的宽度。 如:int a=-1; printf(“%

12、x,%o,%d,%8x”,a,a,a,a); 输出结果为: ffff,177777,-1, ffff,4.5.1 printf函数(格式输出函数),(4)u格式符 作用:以十进制形式输出unsigned型数据(无符号数)。 注意: 带符号的整数(int型)也可以用%u格式输出,unsigned型数据也可以用%d,%o,%x格式输出,按相互赋值的规则处理。,4.5.1 printf函数(格式输出函数),如: unsigned int a=65535; int b=-3; printf(“a=%d,%o,%x,%un”,a,a,a,a); printf(“b=%d,%o,%x,%un”,b,b,b

13、,b);,4.5.1 printf函数(格式输出函数),(5)c格式符 作用:用来输出一个字符。 注意: (1)如果一个整数的值在0255之间,也可以用字符形式输出。反过来,一个字符数据也可以用整数形式输出。 (2)也可以指定输出字段的宽度 如: char c=A; int b=65; printf(“%c,%d,%3cn”,c,c,c); printf(“%c,%d,%3cn”,b,b,d);,4.5.1 printf函数(格式输出函数),(6)s格式符 作用:用于输出一个字符串 使用用法: %s 如printf(“%s”,”China”);输出“China”字符串。 %ms 输出的字符串占

14、m列,如果字符串长度大于m,则将字符串全部输出,若小于m,则左补空格。,4.5.1 printf函数(格式输出函数),%-ms 如果串长小于m,则在m列范围内,字符串向左靠,右补空格。 %m.ns 输出占m列,取字符串左端n个字符,且这n个字符输出在m列的右侧,左补空格。若只指定n,不指定m,则自动使m=n。 %-m.ns 输出占m列,取字符串左端n个字符,这n个字符输出在m列的左侧,右补空格。如果n大于m,则m自动取n值,保证n个字符全部输出。,4.5.1 printf函数(格式输出函数),如: main() printf(“%3s,%7.2s,%.4s,%-5.3sn”,”CHINA”,”

15、CHINA”, ”CHINA”, ”CHINA”); 输出结果为: CHINA, CH,CHIN,CHI,4.5.1 printf函数(格式输出函数),(7)f格式符 作用:以小数形式输出实数(包括单、双精度)。 用法: %f 整数部分全部输出,小数部分输出6位。 注意:单精度实数的有效位数一般为7位,双精度为16位,用%f格式输出时,小数都占6位。,4.5.1 printf函数(格式输出函数),如: main() float x,y; double a,b; x=111111.111; y=222222.222; a=1111111111111.111111111; b=2222222222

16、222.222222222; printf(“x+y=%fn”,x+y); printf(“a+b=%fn”,a+b); ,输出结果为:: x+y=333333.328125 a+b=3333333333333.333010,4.5.1 printf函数(格式输出函数),%m.nf 指定输出的数据共占m列,其中有n位小数。如果数值长度小于m,则左端补空格。 %-m.nf 与%m.nf类似,只是输出的数值向左端靠,右端补空格。,4.5.1 printf函数(格式输出函数),如: main() float f=123.456; printf(“%f,%10f,%10.2f,%.2f,%-10.2f

17、n”,f,f,f,f,f); 输出结果为:123.456001,123.456001, 123.46,123.46,123.46,4.5.1 printf函数(格式输出函数),(8)e格式符 作用:以指数形式输出实数 用法: %e 不指定输出数据的宽度和小数位数,由系统自动给出6位小数,指数部分占5位,其中”e”占1位,指数符号占1位,指数占3位。数值按规范化指数形式输出(小数点前必须有且只有1位非零数字)。%e格式输出的实数共占13列宽。,4.5.1 printf函数(格式输出函数),如: printf(“%e,%e,%e”,12345.678,0.12345,-123.456); 输出结果

18、为: 1.234568e+004,1.234500e-001,-1.234560e+002,4.5.1 printf函数(格式输出函数),%m.ne和%-m.ne,n指拟输出的数据的小数部分的小数位数。 如: f=123.45,则: printf(“%e,%10e,%10.2e,%.2e,%-10.2e.”,f,f,f,f,f); 输出结果为: 1.234500e+002,1.234500e+002,1.23e+002,1.23e+002,1.23e+002 .,4.5.1 printf函数(格式输出函数),注意: %m.ne,-%m.ne若没有指定n,则自动给出6位小数,整个数据长度为13列

19、,若m小于13,则仍按13列输出。,4.5.1 printf函数(格式输出函数),(9)g格式符 作用:根据实数大小,自动选择f或e格式来输出实数(选择输出时占宽度较小的一种),且不输出无意义的零。 如: 若f=123.456,则 printf(“%f,%e,%g”,f,f,f); 输出结果为: 123.456001,1.234560e+002,123.456,4.5.1 printf函数(格式输出函数),3、printf格式符小结 见表4.1,4.2 注意: (1)除了X,E,G外,其他格式字符必须用小写字母。如不可以将d写成D。 (2)“格式控制”字符串内可以包含转义字符。 (3)“格式说

20、明”必须以%开头,以上述9种格式字符之一结束,中间可以插入附加格式说明字符。如:printf(“c=%cf=%fs=%s“,c,s,f); (4)要输出字符“%”,则应该在“格式控制”字符串中用连用两个%表示。,4.5.1 printf函数(格式输出函数),如: printf(“%f%”,1.0/3); 输出:0.333333%,4.5.2 scanf函数(格式输入函数),1、一般形式 scanf(格式控制,地址表列) 如: int a,b; scanf(“%d%d”, 其中,&为地址运算符,&a指a内存中的地址。变量a,b 的地址是在编译连接阶段分配的。,4.5.2 scanf函数(格式输入

21、函数),“%d%d”表示按十进制整数形式输入数据。输入数据时,在两个数据之间以一个或多个空格间隔,也可以用回车键、tab 键,但应注意不能用逗号间隔。以下输入方法均为合法: 3 4 5 3 4 5(多个空格) 3 4(回车) 5 3(按tab键)4 5,4.5.2 scanf函数(格式输入函数),2、格式说明,4.5.2 scanf函数(格式输入函数),scanf的附加说明字符,4.5.2 scanf函数(格式输入函数),说明: (1)对unsigned型变量所需的数据,可以用%u,%d或%o,%x格式输入。 (2)可以指定输入数据所占列数,系统自动截取所需数据。 如: int a,b; ch

22、ar c,d; scanf(“%5d%5d”, scanf(“%3c%3c”,&c,&d) 输入:1234523789abcdef 则:a=12345,b=23789,c=a,d=d,4.5.2 scanf函数(格式输入函数),(3)如果在%后有一个“*”附加说明符,则表示跳过它指定的列数,该输入项在读入后不赋给相应的变量。 如: scanf(“%2d %*3d %2d”, 若输入:12 345 67 则将12赋给a,将67赋给b,而345则被跳过,不赋给任何变量。 在利用现成的一批数据时,可以用此法将一些不需要的数据跳过。,4.5.2 scanf函数(格式输入函数),(4)输入数据时不能规定

23、精度。 如:scanf(“%7.2f”,&a);是不合法的。,4.5.2 scanf函数(格式输入函数),如:scanf(“a=%f”, 则输入时应用以下形式: 12:13:14,4.5.2 scanf函数(格式输入函数),如果在两个格式符之间有1个空格,则在输入数据时,应在两个数据之间空1个或更多的空格,如果有2个空格,则应空2个或更多的空格。,4.5.2 scanf函数(格式输入函数),如: int a,b; char c,d; scanf(“%d %d”, 在输入a和b时,中间应有1个以上的空格。 如输入:123 456 则a=123,b=456,4.5.2 scanf函数(格式输入函数

24、),(3)在用“%c”格式输入字符时,空格字符作为有效字符输入。 如: scanf(“%c%c%c”, 若输入:a b c 则a=a,b= ,c=b,4.5.2 scanf函数(格式输入函数),(4)在输入数据时,遇以下情况时认为该数据输入结束。 遇空格,或按“回车键”或Tab键。 按指定的宽度结束。 遇非法输入。 如:scanf(“%d%c%f”, 若输入:123a120.456 则a=123,b=a,c=120.456 如果误将120.456输成12o.456,则c=12.000000,4.6 顺序结构程序设计,1、顺序结构 顺序结构是最简单的一种基本结构。 其流程图为:,4.6 顺序结构

25、程序设计,2、顺序结构程序设计举例 例4.10,4.11,4.12。 课后作业:4.4,4.6,4.7,程序举例,例4.1 已知圆半径radius=1.5,求圆周长和圆面积。 main() float radius,length,area,pi=3.1415926; radius=1.5; length=2*pi*radius; /*求圆周长*/ area=pi*radius*radius; /*求圆面积*/ printf(“radius=%fn”,radius); /*输出圆半径*/ printf(“length=%7.2f,area=%7.2fn”,length,area); /*输出圆周

26、长、面积*/ 程序运行结果如下: radius=1.500000 length= 9.42,area= 7.07,程序举例,例3.2 类型字符d的使用 main() int num1=123; long num2=123456; printf(“num1=%d,num1=%5d,num1=%-5d,num1=%2dn“,num1,num1,num1,num1); printf(“num2=%ld,num2=%8ld,num2=%5ldn“,num2,num2,num2); printf(“num1=%ldn“,num1); 程序运行结果如下: num1=123,num1=123,num1=12

27、3,num1=123 num2=123456,num2=123456,num2=123456 num1=123,程序举例,例3.3 类型转换字符f的使用。 main( ) float f=123.456; double d1,d2; d1=1111111111111.111111111; d2=2222222222222.222222222; printf(“%f,%12f,%12.2f,%-12.2f,%.2fn“,f,f,f,f,f); printf(“d1+d2=%fn“,d1+d2); 程序运行结果如下: 123.456001,123.456001,123.46,123.46,123.

28、46 d1+d2=3333333333333.333010,程序举例,例3.4 类型转换字符c的使用。 main() char c=A; int i=65; printf(“c=%c,%5c,%dn“,c,c,c); printf(“i=%d,%c“,i,i); 程序运行结果如下: c=A,A,65 i=65,A,程序举例,例3.5 类型转换字符s的使用。 main() printf(“%s,%5s,%-10s“,“Internet“,“Internet“,“Internet“); printf(“%10.5s,%-10.5s,%4.5sn“,“Internet“,“Internet“,“In

29、ternet“); 程序运行结果如下: Internet,Internet,Internet,Inter,Inter,Inter,程序举例,例3.6 已知圆柱体的底半径radius=1.5,高high=2.0,求其体积。 main() float radius=1.5, high=2.0, pi=3.14159, vol; vol=pi*radius*radius*high; /*求体积*/ printf(“vol=%7.2fn”,vol); /*输出求出的体积*/ ,程序举例,例3.7 已知圆柱体的底半径为radius,高为high,求其体积。 main() float radius,hig

30、h,vol,pi=3.1415926; printf(“Please input radius 程序运行结果如下: Please input radius & high: 1.52.0 radius=1.50,high=2.00,vol=14.14,程序举例,例3.8 putchar() 函数的格式和使用方法。 #include “stdio.h“ main() char ch1=N, ch2=E, ch3=W; putchar(ch1); putchar(ch2); putchar(ch3); /*输出*/ putchar(n); putchar(ch1); putchar(n); /*输出

31、ch1的值,并换行*/ putchar(E); putchar(n); /*输出字符E,并换行*/ putchar(ch3); putchar(n); 程序运行结果如下: NEW N E W,程序举例,例3.9 说明getchar()函数的格式和作用。 #include “stdio.h“ /*文件包含*/ main() char ch; printf(“Please input two character: “); ch=getchar(); /*输入1个字符并赋给ch */ putchar(ch);putchar(n); putchar(getchar(); /*输入一个字符并输出*/ p

32、utchar(n); 程序运行情况如下: Please input two characters: ab a b,程序举例,例3.10 输入任意三个整数,求它们的和及平均值。 main() int num1,num2,num3,sum; float aver; printf(“Please input three numbers:“); scanf(“%d,%d,%d“, ,程序举例,例3.11 求方程ax2+bx+c=0的实数根。a,b,c由键盘输入,a0且b2-4ac0。 #include main() float a,b,c,disc,x1,x2; printf(“Input a, b, c: “); scanf(“%f,%f,%f“, ,程序举例,例3.12 从键盘输入一个小写字母,要求用大小写字母形式输出该字母及对应的ASCII码值。 #include main() char c1,c2; printf(“Input a lowercase letter: “); c1=getchar(); putchar(c1); printf(“,%dn“,c1); c2=c1-32; /*将大写字母转换成对应的小写字母*/ printf(“%c,%dn“,c2,c2); 程序运行情况如下: Input a lowercase letter: a a,97 A,65,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1