《C语言第三章顺序结构程序设计.pptx》由会员分享,可在线阅读,更多相关《C语言第三章顺序结构程序设计.pptx(58页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 3.1 C语句概述 C语句分为5类控制语句函数调用语句表达式语句空语句复合语句第1页/共58页 3.1 C语句概述(一)控制语句 完成一定的控制功能1 if()else 条件语句 6 break 间断语句 2 for()循环语句 7 switch()开关语句3 while()循环语句 8 goto 转向语句 4 do while();循环语句 9 return 返回语句5 continue 继续语句第2页/共58页 3.1 C语句概述(二)函数调用语句 有一个函数调用加一个分号构成一个语句 函数名(参数列表);printf(“%dn”,a);printf(“hello!”);第3页/共58页
2、 3.1 C语句概述(三)表达式语句 有一个表达式加一个分号构成一个语句 表达式表达式;a =3 ;分号赋值表达式表达式语句第4页/共58页 3.1 C 3.1 C语句概述语句概述 (四)空语句 只有一个分号的语句 ;(什么也不做)不执行任何操作,用来产生延迟第5页/共58页 3.1 C语句概述(五)复合语句 用一对括起来的语句 语句序列 z=x+y;t=z/100;printf(“%f”,t);例3.1:第6页/共58页(六)声明语句 用来对变量、函数、类型声明的语句 int a,b;float c;char d;数据声明语句必须安排在函数体和复合语句的首部或函数的外部。3.1 C 3.1
3、C语句概述语句概述 第7页/共58页注意:除复合语句外,所有语句均以分号结尾复合语句内部可以有数据定义语句空语句虽然不产生任何动作,但它也是一条语句,随意使用会造成逻辑错误数据声明语句必须位于函数体和复合语句或函数外部一条语句可以分若干行写,多条语句可以写在一行 3.1 C 3.1 C语句概述语句概述 第8页/共58页main()inta,b,c;scanf(“%d,%d”,&a,&b);c=max(a,b);intt;t=a;a=b;b=t;printf(“a=%d,b=%d,max=%dn”,a,b,c);intmax(intx,inty)intz;if(xy)z=x;elsez=y;re
4、turnz;数据声明语句数据声明语句数据声明语句函数调用语句函数调用语句控制语句表达式语句表达式语句表达式语句第9页/共58页 3.2 字符数据输入输出函数(一).所谓输入输出是以计算机主机为主体而言的输出输出:从计算机向外部输出设备(显示器,打印机)输出数据输入输入:从输入设备(键盘,鼠标,扫描仪)向计算机 输入数据.第10页/共58页(二).C语言本身不提供输入输出语句,输入和输出操作是由C语言中的函数来实现的例如例如:字符输入函数:getchar 字符输出函数:putchar格式输入函数:scanf 格式输出函数:printf字符串输入函数:gets 字数串输出函数:puts 3.2 字
5、符数据输入输出函数第11页/共58页(三).在使用系统库函数时,要用预编译命令“#include”将有关的“头文件”包括到用户源文件中.例如:在调用标准输入输出库函数时,文件开头应该有:#include“stdio.h”或:#include 头文件 3.2 字符数据输入输出函数第12页/共58页 3.2 字符数据的输入输出函数3.2.1字符输出函数形式:putchar(char型表达式)函数作用:向终端输出一个字符 字符型变量整型变量第13页/共58页 3.2 字符数据的输入输出函数例3.输出单个字符。#include main()char a,b,c;a=B;b=O;c=Y;putchar(
6、a);putchar(b);putchar(c);putchar(n);运行结果:BOYputchar(a);putchar(n);putchar(b);putchar(n);putchar(c);putchar(n);运行结果:B O Y第14页/共58页 3.2 字符数据的输入输出函数3.2.2字符输入函数形式:getchar()函数作用:从终端(或系统隐含指定的输入设备)输入一个字符。函数值:从输入设备得到的字符。第15页/共58页 3.2 字符数据的输入输出函数例3.输入单个字符。#include main()char c;c=getchar();putchar(c);putchar(
7、n);运行程序:从键盘输入字符a按Enter键屏幕上将显示输出的字符aaa第16页/共58页 3.3 格式输入与输出(一).格式输出函数函数作用:向终端(或系统隐含指定的输出设函数作用:向终端(或系统隐含指定的输出设备)输出若干个任意类型的数据。备)输出若干个任意类型的数据。一般格式:一般格式:printfprintf(格式控制,输出表列)(格式控制,输出表列);说明:说明:1)1)输出表列是要输出的数据列表,输出多个数据输出表列是要输出的数据列表,输出多个数据时用逗号分隔时用逗号分隔eg:printf(%d%d,a,b);第17页/共58页2)输出表列可是任何数据元素(常量、变量、表达式、函
8、数)eg:printf(%d%d%d%d“,a,25,a+b,max(a,b);3)格式控制是字符串形式,里面有格式说明、转义字符和普通字符组成。格式说明由“”开头,后跟格式字符作用是将输出数据转换为指定格式注意:格式控制中的格式说明个数应与输出表列个数一一对应。转义字符;以“”开头。普通字符:按原样输出eg:printf(“a=%d,b=%dn,a,b);%d%d:以带符号的十进制形式输出整数以带符号的十进制形式输出整数%o%o:以八进制无符号形式输出整数(不输出前导符以八进制无符号形式输出整数(不输出前导符0 0)%x%x:以十六进制无符号形式输出整数以十六进制无符号形式输出整数(不输出前
9、导符0 x)3.3 格式输入与输出第18页/共58页 3.3 格式输入与输出%u%u:以无符号十进制形式输出整数以无符号十进制形式输出整数%c%c:以字符形式输出,只输出一个字符以字符形式输出,只输出一个字符%s%s:输出字符串输出字符串%f%f:以小数形式输出单,双精度数,隐含输出六位小数以小数形式输出单,双精度数,隐含输出六位小数%e%e:以指数形式输出实数以指数形式输出实数%g%g:选用选用%f%f或或%e%e格式中输出宽度较短的一种格式,不输格式中输出宽度较短的一种格式,不输 出无意义的出无意义的0 0第19页/共58页 3.3 格式输入与输出1)1)格式符,用来输出一个字符。格式符,
10、用来输出一个字符。如:如:char dchar dAA;printfprintf(,d d););结果:结果:A A一个字符数据也可以用整数形式输出。一个字符数据也可以用整数形式输出。printfprintf(dd,d d););结果:结果:6565第20页/共58页 3.3 格式输入与输出2)d或i十进制整数int a=25,b=38;printf(printf(a=%d,b=%da=%d,b=%d,a,b,a,b););第21页/共58页 3.3 格式输入与输出3)3)格式符。以八进制整数形式输出。格式符。以八进制整数形式输出。输出的数值不带符号,符号位也一起作为八进输出的数值不带符号,符
11、号位也一起作为八进制数的一部分输出。制数的一部分输出。例:例:int a=-1;int a=-1;printf(%d printf(%d,%o%o,a a,a);a);在内存单元中的存放形式(以补码在内存单元中的存放形式(以补码形式存放)如下:形式存放)如下:11111111111111111111111111111111 输出为输出为:,不会输出带负号的八进制整数。不会输出带负号的八进制整数。第22页/共58页 3.3 格式输入与输出4)格式符。以十六进制数形式输出整数。同样不会出现负的十六进制数。例:;(,);输出结果为:ffff,第23页/共58页 3.3 格式输入与输出5)5)格式符,
12、用来输出格式符,用来输出unsignedunsigned型数据型数据.一个有符号整数(型)也可以用格一个有符号整数(型)也可以用格式输出;式输出;一个型数据也可以用格一个型数据也可以用格式输出。式输出。型数据也可用或格型数据也可用或格式输出。式输出。;(d,%ud,%u,a a););结果结果:-1,65535:-1,65535第24页/共58页 3.3 格式输入与输出)格式符。用来以小数形式输出实数(包括单双精度)整数部分全部输出,默认输出位小数。如果多于6位小数,多余位数四舍五入,小于则补考应当注意,在输出的数字中并非全部数字都是有效数字。单精度实数的有效位数一般为位。双精度实数的有效位数
13、一般为位。超出有效数字部分随机输出第25页/共58页 3.3 格式输入与输出例例3.5 3.5 输出单精度时的有效位数。#include (),;(,);运行结果:.第26页/共58页 3.3 格式输入与输出例例3.63.6输出双精度数时的有效位数。#include (),;x=1111111111111.111111111;y=2222222222222.222222222;printf(“%f”,x+y);运行结果:3333333333333.3330103333333333333.333010 第27页/共58页 3.3 格式输入与输出(7)格式符格式符,以指数形式输出实数。小数位数6位
14、,指数部分占位,其中e占1位,指数符号占1位,指数占3位例3.7:printf(,);输出:8列 5列所输出的实数共占列宽度。(注:不同系统的规定略有不同)结果第28页/共58页 3.3 格式输入与输出()格式符,用来输出实数格式符,用来输出实数.它根据数值的大小,自动选格式或格式(选择输出它根据数值的大小,自动选格式或格式(选择输出时占宽度较小的一种),且不输出无意义的零。时占宽度较小的一种),且不输出无意义的零。例例:若,则若,则(,);,);输出如下:输出如下:123.468000123.468000 1.234680e+0021.234680e+002 123.468 123.468
15、10 10列列 1313列列 1010列列结果说明:用格式输出占列,用格式输出占列,用格式时,自动从上面两种格式中选择短者(今以格式为短)故占列,并按格式用小数形式输出,最后3个小数位为无意义的,不输出,因此输出123.468,然后右补3个空格。格式用得较少。第29页/共58页 3.3 格式输入与输出()s s格式符格式符 输出字符串.例如:(,)结果:(不包括双引号)。第30页/共58页 3.3 格式输入与输出10)p p格式符格式符输出16进制格式地址.例如:int a;printf(“%p”,a);结果第31页/共58页 3.3 格式输入与输出1)输出.例如:printf(“%d%”,8
16、5);第32页/共58页 3.3 格式输入与输出几种常见的格式符的修饰符:L:用于长整型整数,可加在格式符d,o,x,u前面M(代表一个正整数):数据最小宽度N(代表一个正整数):对实数,表示输出n位小数;对字符串,表示截取的字符个数:输出的数字或字符在域内向左靠第33页/共58页 3.3 格式输入与输出(1)l长整型。用来输出长整数。例:;(,);(2):为指定的输出字段的宽度。如果数据的位数小于,则左端补以空格,若大于,则按实际位数输出。例:(,);若,则输出结果为 ,第34页/共58页 3.3 格式输入与输出例3.8 字符数据的输出。#include main()char c=a;int
17、 i=97;printf(“%c,%dn”,c,c);printf(“%c,%dn”,i,i);运行结果:a,97a,97a,97a,97指定输出字数的宽度,指定输出字数的宽度,printf(printf(“%3c%3c”,c);,c);则输出:则输出:a a(3)c:为指定的输出字段的宽度。如果数据的位数小于,则左端补以空格,若大于,则按实际位数输出。第35页/共58页 3.3 格式输入与输出(4)%ms,输出的字符串占m列,若串长大于m,则全部输出,若串长 小于m,则左补空格。%-ms,若串长小于m,字符串向左靠,右补空格。%m.ns,输出占m列,只取字符串中左端n个字符,输出在m列的 右
18、侧,左补空格。%-m.ns,n个字符输出在m列的左侧,右补空格,若nm,m自 动取n值。第36页/共58页 3.3 格式输入与输出例例3.93.9字符串的输出。#includemain()printf(“%3s,%7.2s,%.4s,%-5.3sn”,“CHINA”,“CHINA”,“CHINA”,“CHINA”);运行结果:CHINACHINA,CH,CHIN,CHI CH,CHIN,CHI 第37页/共58页 3.3 格式输入与输出(7).。指定输出的数据共占列,其中有位小数。如果数值长度小于,则左端补空格。.与.基本相同,只是使输出的数值向左端靠,右端补空格。第38页/共58页 4.5
19、格式输入与输出 例3.10 输出实数时指定小数位数。#include()float f=123.456;printf(“%f%10f%10.2f%.2f%-10.2fn”,f,f,f,f,f);运行结果:123.456994 123.456994 123.46 123.46 123.46123.456994 123.456994 123.46 123.46 123.46123.456994 123.456994 123.46 123.46 123.46123.456994 123.456994 123.46 123.46 123.46 第39页/共58页 3.3 格式输入与输出(8)m.ne和
20、-m.ne。、和“”字符的含义与前相同。此处指拟输出的数据的小数部分(又称尾数)的小数位数。若,则:printf(%e%10e%10.2e%.2e%-10.2e,f,f,f,f,f);输出如下:1.234560e+002 1.234560e+002 1.23e+002 1.23e+002 13列 13列 10列 9列 1.23e+002 10列说明:未指定,自动使.超过给定的列,乃突破列的限制,按实际长度输出。第3个数据共占列,小数部分占列。只指定,未指定,自动使等于数据应占的长度。第5个数据应占列,数值只有列,由于是“”,数值向左靠,右补一个空格。(注:有的C系统的输出格式与此略有不同)第4
21、0页/共58页 3.3 格式输入与输出(9)输出数据左对齐系统隐含输出数据右对齐,如想左对齐,在域宽前加“”eg:int i=12345;print(“%7d,%-7d”,i,i);结果:12345,12345 第41页/共58页 3.3 格式输入与输出(10)数值型数据带符号 每个数字前代正负号,可在域宽前加“”部分类型有效。eg:inti=12345;charc=A;printf(“%+d,%+c”,i,c);第42页/共58页 3.3 格式输入与输出(11)数值型数据前加前导0eg:int i=12345;float f=12.345;printf(“%07d,%012f”,i,f);结
22、果:0012345,000123.345000第43页/共58页 3.3 格式输入与输出说明:除了X,E,G外,其他各式字符必须用小写。eg:%d不能写成%D一个格式说明必须以“%”开头,以9个格式字符之一为结束。第44页/共58页 3.3 格式输入与输出(一).格式输入函数函数作用:按照变量在内存的地址将变量值存 进去。一般格式:scanf(格式控制,地址表列)同printf函数是由若干个地址组成的表列,可以是变量的地址第45页/共58页 3.3 格式输入与输出例4.9 用scanf函数输入数据。#includemain()int a,b,c;scanf(“%d%d%d”,&a,&b,&c)
23、;printf(“%d,%d,%dn”,a,b,c);运行情况:3 4 5 (3 4 5 (输入a,b,ca,b,c的值)3 3,4 4,5 5 (输出a,b,ca,b,c的值)a a在内存中的地址在内存中的地址&是地址运算符是地址运算符第46页/共58页 3.3 格式输入与输出 使用函数时应注意的问题使用函数时应注意的问题:(1)scanf函数中的“格式控制”后面应当是变量地址(&),而不应 是变量名。(2)如果在“格式控制”字符串中除了格式说明以外还有其他字符,则在输入数据时在对应位置应输入与这些字符相同的字符。(3)在用“”格式输入字符时,空格字符和“转义字符”都作为 有效字符输入。(4
24、)在输入数据时,遇以下情况时认为该数据结束。遇空格,或按“回车”或“跳格”(Tab)键;按指定的宽度结束,如“”,只取列;遇非法输入。第47页/共58页 3.3 格式输入与输出#include“stdio.h”main()chara,b,c;scanf(“%c%c%c”,&c1,&c2,&c3);printf(“%c,%c,%c”,c1,c2,c3);第48页/共58页 3.3 格式输入与输出(5)输入long型和double型数据时,应使用长度修饰符l.#include“stdio.h”main()long l=0;double f=0;scanf(“%d%f”,&l,&f);printf(
25、“%ld,%lf”,l,f);第49页/共58页 3.3 格式输入与输出说明:对unsigned型变量所需要的数据,可以用%u,%d或%o,%x格式输入。可以指定输入数据所占的列数,系统自动按它截取所需数据。如果在%后有一个“*”附加说明符,表示跳过它指定的列数。输入数据时不能规定精度。第50页/共58页 3.3 格式输入与输出#include“stdio.h”main()inta,b,c;scanf(“%1d%2d%3d”,&a,b,c);printf(“%d,%d,%d”,a,b,c);第51页/共58页#includemain()inti1=0,i2=0,i3=0;scanf(“%d%*
26、d%d”,&i1,&i2,&i3);printf(“%d,%d,%d”,i1,i2,i3);第52页/共58页#includemain()floatf;scanf(“%5.2f”,&f);printf(“%fn”,f);第53页/共58页 3.4 顺序结构程序设计举例例3.10 输入三角形的三边长,求三角形面积。假设:三个边长a,b,c能构成三角形。s为周长,area为面积已知面积公式:area=s=(a+b+c)*0.5开始输入三边长计算s计算面积结束第54页/共58页 3.4 顺序结构程序设计举例#include#includemain()float a,b,c,s,area;scanf(
27、“%f,%f,%f,&a,&b,&c);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);数学函数库因为要用到其中的sqrt函数运行情况:3 3,4 4,6 6a=3.00,b=4.00,c=6.00,s=6.50a=3.00,b=4.00,c=6.00,s=6.50area=5.33area=5.33第55页/共58页 3.4 顺序结构程序设计举例 例#include”stdio.h”main()int x,y,t;printf(“enter x&yn:”);scanf(“%d%d”,&x,&y);printf(“x=%d y=%d”,x,y);t=x;x=y;y=t;printf(“x=%d y=%d”,x,y);第56页/共58页考试重点1、表达式语句,空语句,复合语句。2、数据的输入与输出,输入输出函数的调用。3、复合语句。分析:这部分主要讨论基本语句,是编程的基础,一般会出1-2个选择题和1-2个填空题。注意:1、表达式语句的格式,2、数据的输入与输出和函数的调用。第57页/共58页感谢您的欣赏!第58页/共58页
限制150内