简单程序和选择语句.ppt

上传人:cl****1 文档编号:568397085 上传时间:2024-07-24 格式:PPT 页数:32 大小:301.51KB
返回 下载 相关 举报
简单程序和选择语句.ppt_第1页
第1页 / 共32页
简单程序和选择语句.ppt_第2页
第2页 / 共32页
简单程序和选择语句.ppt_第3页
第3页 / 共32页
简单程序和选择语句.ppt_第4页
第4页 / 共32页
简单程序和选择语句.ppt_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《简单程序和选择语句.ppt》由会员分享,可在线阅读,更多相关《简单程序和选择语句.ppt(32页珍藏版)》请在金锄头文库上搜索。

1、第三章第三章 简单程序和选择语句简单程序和选择语句1三种流程三种流程结构构顺序、分支、循序、分支、循环2C语句概述句概述(1)表达式表达式语句句(2)复合复合语句句(3)选择语句(句(if和和switch)(4)循循环语句(句(while,do-while和和for)(5)转移移语句(句(break,continue,goto和和return)(6)标号号语句句31流程控制和流程控制和语句句3 32 2 表达式语句表达式语句语法格式:语法格式: 表达式表达式 ;(赋值语句,函数调用语句等)(赋值语句,函数调用语句等)3 33 3 复合语句复合语句语法格式:语法格式: 语句语句 语句语句 复合语

2、句在语法上等同于一条语句。复合语句在语法上等同于一条语句。如:如:#include #include C C语言没有输入输出语句,其输入输出语言没有输入输出语句,其输入输出均采用标准函数来实现。均采用标准函数来实现。 要使用标准输入输出函数,必须在使用要使用标准输入输出函数,必须在使用前加以说明,其说明方式是在程序的开头使前加以说明,其说明方式是在程序的开头使用包含编译预处理命令把标准输入输出头文用包含编译预处理命令把标准输入输出头文件包含到本文件中即可。件包含到本文件中即可。3 34 4 输入输出函数调用输入输出函数调用3 34 41 1 字符输出函数字符输出函数 putcharputcha

3、r()()3 34 42 2 字符输入函数字符输入函数 getchargetchar()()3 34 43 3 格式输出函数格式输出函数 printfprintf()()3 34 44 4 格式输入函数格式输入函数 scanfscanf()()3 34 41 1 字符输出函数字符输出函数 putcharputchar()()1函数原型为:函数原型为:intint putchar(intputchar(int c) c);功能:功能: 将要输出的字符码转换为将要输出的字符码转换为unsigned charunsigned char送到标准输送到标准输出设备中去。出设备中去。 返回值是被输出的字符

4、,如果出错则返回返回值是被输出的字符,如果出错则返回EOFEOF。调用格式为:调用格式为:putchar(cputchar(c) ) 其中其中c c为实参。为实参。3 34 42 2 字符输入函数字符输入函数 getchargetchar()()1 1函数原型为:函数原型为:intint getchar(voidgetchar(void) );功能:功能: 从键盘缓冲区读一个字符。从键盘缓冲区读一个字符。 返回值是读入的字符,如读到文件尾则返回返回值是读入的字符,如读到文件尾则返回EOFEOF。 此函数无参数此函数无参数调用格式为:调用格式为:getchargetchar()()3 34 43

5、 3 格式输出函数格式输出函数 printfprintf()()函数原型为:函数原型为:intint printf(constprintf(const char *format char *format,);); formatformat为格式字符串,为格式字符串, “ “”为输出的表达式表,为输出的表达式表,它的项数是可变的。它的项数是可变的。调用格式为:调用格式为: printfprintf( (格式字符串,输出表达式表格式字符串,输出表达式表););此函数至少必须给出第一个参数。此函数至少必须给出第一个参数。格式字符串中可以包含普通字符和格式字符,普通字格式字符串中可以包含普通字符和格式

6、字符,普通字符照原样输出,格式字符说明输出数据所需的格式,格式符照原样输出,格式字符说明输出数据所需的格式,格式字符也叫转换字符,转换说明的形式为:字符也叫转换字符,转换说明的形式为: %flagswidth.precF|N|h|l|Ltypeflagswidth.precF|N|h|l|Ltype 每种格式均以每种格式均以% %开头,以格式字符结尾。开头,以格式字符结尾。printfprintf函数的格式字符串函数的格式字符串转换字符转换字符参数类型参数类型输出格式输出格式d,iint有符号十进制整数有符号十进制整数oint无符号八进制整数(无前导无符号八进制整数(无前导0)X,xint无无

7、符符号号十十六六进进制制整整数数(无无前前导导0x或或0X)X表表示示大大写写字字母,母,x表示小写字母表示小写字母uint无符号十进制整数无符号十进制整数cint有符号字符有符号字符schar*输出字符直到输出字符直到0或或.precfdouble浮点浮点-dddd.dddE,edouble浮点浮点-d.ddde+/-dddG,gdouble有给定值和精度确定是用有给定值和精度确定是用e或或f格式格式pvoid*指针值指针值Nyyyy;Fxxxx:yyyynint*计数到此为止已经输出的字符的个数到对应的指针型参数中计数到此为止已经输出的字符的个数到对应的指针型参数中%不转换参数不转换参数输

8、出一个输出一个选项选项符号说明符号说明意义意义flagflag在输出宽度内左对齐右填空格(缺省为右对齐)在输出宽度内左对齐右填空格(缺省为右对齐)在正数前冠以在正数前冠以“”号号空格空格输出的第一个不是符号时输出一个空格作前缀输出的第一个不是符号时输出一个空格作前缀0 0在输出宽度内用前导在输出宽度内用前导0 0填充填充在在八八进进制制数数前前加加前前导导0 0,在在十十六六进进制制数数前前加加0x0x或或0X0X,对对g g格格式不删除尾部式不删除尾部0 0widthwidth和和. .precprecwidthwidth给给定定总总宽宽度度,如如果果实实际际数数值值的的宽宽度度大大于于给给

9、定定的的宽宽度度,则则按按实际宽度输出实际宽度输出. .分隔分隔widthwidth和和precprecprecprec指指出出输输出出数数的的精精度度对对实实型型数数为为小小数数部部分分的的位位数数,对对整整数数为为至至少少应应输输出的位数(前面添出的位数(前面添0 0),对字符串为至多输出的字符的个数。),对字符串为至多输出的字符的个数。* *代代表表一一个个整整数数,其其值值由由对对应应的的参参数数决决定定,用用于于代代替替widthwidth和和precprec,表示可变的。表示可变的。h,l,Lh,l,Lh h指出输出参数是短整型指出输出参数是短整型l l指出输出参数是长整型,也可用

10、于指出输出参数是长整型,也可用于doubledouble类型的参数前类型的参数前L L指出输出参数是指出输出参数是long doublelong double类型类型3 34 44 4 格式输入函数格式输入函数 scanfscanf()()函数原型为:函数原型为:intint scanf(constscanf(const char *format char *format,);); formatformat为格式字符串,它与为格式字符串,它与printfprintf函数中的格函数中的格式相似。式相似。 “ “”为为地址表,它的项数是可变的。地址表,它的项数是可变的。调用格式为:调用格式为: s

11、canfscanf( (格式字符串,地址表格式字符串,地址表););此函数除必须给出第一个参数外,至少需要读入一个此函数除必须给出第一个参数外,至少需要读入一个数据。数据。格式字符串中可以包含普通字符和格式字符,普通字格式字符串中可以包含普通字符和格式字符,普通字符照原样输入,格式字符说明输入参数所需的格式和类型,符照原样输入,格式字符说明输入参数所需的格式和类型,格式字符也叫转换字符,转换说明的形式与格式字符也叫转换字符,转换说明的形式与printfprintf函数类函数类似,格式为:似,格式为: % width h|l|Ltype% width h|l|Ltype 每种格式均以每种格式均以

12、% %开头,以格式字符结尾。开头,以格式字符结尾。scanfscanf函数的格式字符串函数的格式字符串转换字符转换字符参数类型参数类型输入格式输入格式d dintint * *有符号十进制整数有符号十进制整数i iintint * *整数,可以是整数,可以是1010,8 8,1616进制数,有前导进制数,有前导0 0和和0x0x或或0X0Xo ointint * *无符号八进制整数(有无前导无符号八进制整数(有无前导0 0均可)均可)x xintint * *无符号十六进制整数(有无前导无符号十六进制整数(有无前导0x0x或或0X0X均可)均可)u uunsigned unsigned int

13、int * *无符号十进制整数无符号十进制整数c cchar *char *字字符符,如如果果给给定定一一个个字字段段宽宽度度w(w(如如%5c)%5c),将将为为指指向向含含有有w w个个字符的数组的指针字符的数组的指针(char (char argwargw)s schar *char *无空白字符的字符串(不加引号)无空白字符的字符串(不加引号)f f,e e,g gfloat *float *浮点数,可以是小数形式也可以是指数形式浮点数,可以是小数形式也可以是指数形式p pvoid *void *指针值指针值 N Nyyyyyyyy;F Fxxxx:yyyyxxxx:yyyyn nin

14、tint * *计计数数到到此此为为止止已已经经读读入入的的字字符符的的个个数数到到对对应应的的指指针针型型参数中参数中% %不转换参数不转换参数字符,不赋值字符,不赋值注:整型还可以使用大写的注:整型还可以使用大写的D,I,O,U,X表示长整型,表示长整型,E,G同同e,g选项选项符号说明符号说明意义意义widthwidthwidthwidth给定总宽度给定总宽度* *抑制赋值。输入域被跳过,不赋值(虚读)抑制赋值。输入域被跳过,不赋值(虚读)h,l,Lh,l,Lh h指出输入参数是短整型指出输入参数是短整型l l指指出出输输入入参参数数是是长长整整型型,也也可可用用于于doubledoub

15、le类类型型的参数前的参数前L L指出输入参数是指出输入参数是long doublelong double类型类型3 35 5 流程图流程图常用的流程图有传统流程图、结构化流程图和PAD图。这里主要介绍传统流程图和结构化流程图。一、传统流程图处理框判断框流向开始结束A连接点用传统流程图来表示三种基本结构步骤1步骤2步骤n顺序结构条件语句1语句2分枝结构TF条件T循环体F当型(while) 循环条件T循环体F直到型循环(do循环的反条件)循环结构二、结构化流程图步骤1步骤2步骤n顺序结构条件TF语句1语句2(可以没有)(可以没有)分枝结构条件循环体当型循环循环体条件直到型循环循环结构3 36 i

16、f 6 if 语句语句语法:1、if(if(表达式)语句表达式)语句2、if(if(表达式)语句表达式)语句1 else 1 else 语句语句2 2 表达式语句非00表达式语句1语句2非00例例1 1:任意输入一个整数如果为正数,则输出,否则不输出。:任意输入一个整数如果为正数,则输出,否则不输出。输入一个整数x开始打印输出xx=0吗是否结束#includemain()intx;scanf(“%d”,&x);if(x=0)printf(“%dn”,x);例例2 2:任意输入两个整数,输出其中最大的。:任意输入两个整数,输出其中最大的。输入两个整数x,y开始打印输出xxy吗是否结束#inclu

17、demain()intx,y;scanf(“%d%d”,&x,&y);if(xy)printf(“%dn”,x);elseprintf(“%dn”,y);打印输出y例例3 3:求分段函数:求分段函数y= y= 。输入实数x开始y=sin(x)+cos(x)x=5吗是否结束#include#includemain()floatx,y;scanf(“%f”,&x);if(x=5)y=sin(x)+cos(x);elsey=x*x+x+1;printf(“x=%f,y=%fn”,x,y);y=x2+x+1sin(x)+cos(x)x=5x2+x+1x5输出y3 37 if 7 if 嵌套嵌套ifif

18、语句格式:语句格式: if(if(表达式)语句表达式)语句1 else 1 else 语句语句2 2 在在ifif语句中的语句中的语句语句1 1和和语句语句2 2处还可以写处还可以写ifif语句,此时语句,此时称为称为ifif嵌套嵌套如:如:if(if(表达式表达式1)1) if(if(表达式表达式2)2) 语句语句1 1 else else 语句语句22elseelse if(if(表达式表达式3)3) 语句语句3 3 else else 语句语句44如:如:if(if(表达式表达式1)1) if(if(表达式表达式2)2) 语句语句1 1 elseelse if(if(表达式表达式3)3)

19、 语句语句3 3 else else 语句语句44如:如:if(if(表达式表达式1)1) if(if(表达式表达式2)2) 语句语句1 1 else else 语句语句22elseelseifif( (表达式表达式3)3) 语句语句3 3 else else 语句语句44例例: :编程计算下列分段函数编程计算下列分段函数: :y=2x-2(1x10)x(x1)2x-20(x10)#include#includemain()floatx,y;scanf(%f,&x);if(x1)y=x;elseif(x0d0吗吗计算两个不相等的实根计算两个不相等的实根x1x1,x2x2并输出并输出是是D D0

20、 0吗吗是是计算两个相等的实根计算两个相等的实根x1x1,x2x2并输出并输出否否计算两个共轭的复实根计算两个共轭的复实根x1x1,x2x2并输出并输出否否#include#include#include#defineEPS1.0e-5main()doublea,b,c,d,x,x1,x2,r,im;scanf(%lf%lf%lf,&a,&b,&c);if(fabs(a)EPS)if(fabs(b)EPS)if(fabs(c)EPS)x1=(-b+sqrt(d)/(2*a);x2=(-b-sqrt(d)/(2*a);printf(x1=%.2f,x2=%.2fn,x1,x2);elseif(f

21、abs(d)EPS)x=-b/(2*a);printf(x1=x2=%.2fn,x);elser=-b/(2*a);im=fabs(sqrt(-d)/(2*a);printf(x1=%.2f+%.2fin,r,im);printf(x2=%.2f-%.2fin,r,im);getch();3 38 switch8 switch语句语句( (开关语句开关语句) )switch switch 语句格式语句格式: : switch(switch(表达式表达式) case case 常量表达式常量表达式1 1 : 【语句块语句块1 1】 case case 常量表达式常量表达式2 2 : 【语句块语句

22、块2 2】 case case 常量表达式常量表达式n n : 【语句块语句块n n】 【default default : 语句块语句块n+1n+1】 表达式必须是整型表达式必须是整型或字符型,常量表、或字符型,常量表、达式的类型和表达达式的类型和表达式的类型一致。式的类型一致。【】中的内容可以省中的内容可以省略。略。为了实现分支可以为了实现分支可以在语句块的最后加在语句块的最后加上上breakbreak语句语句例如:任意给一个百分制成绩将其转化为五分制成绩。例如:任意给一个百分制成绩将其转化为五分制成绩。#include #include #include #include main()m

23、ain() intint score; score; char grade; char grade; scanf(%d,&scorescanf(%d,&score);); switch(score/10) switch(score/10) case 10 : case 10 : case 9 : grade=A; break; case 9 : grade=A; break; case 8 : grade=B; break; case 8 : grade=B; break; case 7 : grade=C; break; case 7 : grade=C; break; case 6 : grade=D; break; case 6 : grade=D; break; default : grade=E; default : grade=E; printf(scoreprintf(score=%=%d,Graded,Grade=%=%cn,score,gradecn,score,grade);); getchgetch();();

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号