C语言第三章课件.ppt

上传人:sccc 文档编号:5382168 上传时间:2023-07-01 格式:PPT 页数:63 大小:547.51KB
返回 下载 相关 举报
C语言第三章课件.ppt_第1页
第1页 / 共63页
C语言第三章课件.ppt_第2页
第2页 / 共63页
C语言第三章课件.ppt_第3页
第3页 / 共63页
C语言第三章课件.ppt_第4页
第4页 / 共63页
C语言第三章课件.ppt_第5页
第5页 / 共63页
点击查看更多>>
资源描述

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

1、大学实用教程,C语言,C语言中的语句字符输入函数getchar()字符输出函数putchar()格式输入函数scanf()格式输出函数printf()格式控制问题难点,第3章 简单的C程序设计,3-1 C语言中的语句,变量声明语句表达式语句空语句复合语句控制语句,1、控制语句,if()else、for()、while()、do while continue、break、switch、goto、return,2、函数调用语句,由一次函数调用加一个分号构成,如:,printf();,函数,分号,表达式末尾加分号,如:,A=9,A=9;,4、空语句:,仅有一个分号的语句,如:;,3、表达式语句:,空

2、语句,空语句有什么作用?什么也不做,只表示语句的存在自顶向下程序设计时用在那些未完成的模块中,main()DataInitialze();DataProcess();DataOutput();,DataInitialze();,5、复合语句:,用一对 号括起的语句组,如:,z=x+y;t=z/100;printf(%f,f);,注意:在复合语句中声明的变量只 在该复合语句内部有效。(参见P.50),如何进行数据的输入输出?输入:从标准输入设备上输入数据到计算机内存输出:将计算机内存中的数据送到标准输出设备C语言中输入输出操作通过调用标准库函数来实现,3-2 基本输入输出的实现,#include

3、 stdio.h 在当前目录或指定的目录中找该文件#include 在指定的文件目录中找该文件,一、字符输入输出函数,字符输出函数putchar(ch)输出一个字符ch字符输入函数getchar()无参数函数值为从输入设备接收的字符,1、字符输出函数putchar(),作用:向终端输出一个字符。,格式:,其中:C 可为字符型/整型的常、变量表达式。,#include/*必须使用该命令*/main()int a=98;char b=a;putchar(a);putchar(b);putchar(65+32);putchar(n);,例1:,运行结果:,baan,例2:,#include main

4、()char a=B,b=o,c=k;putchar(a);putchar(b);putchar(b);putchar(c);putchar(t);putchar(a);putchar(b);putchar(n);putchar(b);putchar(c);,注意:使用putchar()函数前一定使用#include“stdio.h”,2、字符输入函数getchar(),作用:接收由键盘输入的一个字符。,格式:,如:,char ch;ch=getchar();,通常把输入的字符赋予一个字符变量,构成赋值语句。,使用getchar()函数需要注意:,(1)输入数字按字符处理,输入多个字符 仅接收

5、第一个字符。,(2)使用getchar()函数时,必须包含“stdio.h”文件,(3)函数执行时暂停程序运行,等待用 户输入数据,#include main()char ch;printf(Press a key and then press Enter:);ch=getchar();printf(You pressed);putchar(ch);putchar(n);,Press a key and then press Enter:,A,You pressed,A,例,二、格式输入输出函数,格式输出函数printf()格式输入函数scanf(),1.格式输出函数,格式输出函数printf

6、(格式控制字符串,输出项表列);输出若干个任意类型的数据printf(a=%d b=%f,a,b);,函数名,输出表列,普通字符,说明:,(1)格式控制字符用双引号括起来。,三种字符:,格式说明%+格式字符,转义字符+字符,普通字符 原样输出的字符,(2)输出表列中各量用逗号分开,常量、变量、表达式均可。,d 以带符号十进制整数输出o 以八进制无符号整数输出(无前导0)x 以十六进制无符号整数输出(无前导0 x)u 以十进制无符号整数输出c 以字符形式输出单个字符s 输出一个字符串f 以小数形式输出浮点数(6位小数)e 以标准指数形式输出(6位小数)g 选用%f,%e中输出宽度较小的一种格式,

7、printf格式转换说明符字符及含义,l 长整型整数,加在d、o、x、u前L long double型数,加在f、e、g前m 表示数据占用的最小宽度 数据宽度大于m,按实际宽度输出 数据宽度小于m时,补空格n 对实数表示输出n位小数 对字符串表示最多输出的字符个数,printf附加格式说明符,关于格式控制字符,一般形式:%标志输出最小宽度.精度长度说明:(1)中的内容为可选项,printf(格式控制字符串,输出项表列);,2)标志:为+、#等,含义如下:+输出符号(+、-)如i=3;printf(“%+dn”,i);#对c、s、d、u无影响,对o类输出时加前缀0 对x类输出时加前缀0 x,对e

8、、g、f类当结果 有小数时才给出小数点。如:i=3;printf(“%#xn,i);,%标志输出最小宽度.精度长度,(3)输出最小宽度(域宽m,m必须是整数),域宽m是输出项在输出设备上所占的列数。若m是正整数当实际位数多于定义宽度m,则按实际位数输出;若实际位数少于定义宽度,则在域内向右对齐,左边多余位补以空格;若m有前导0,则左边多余位补0。若m是负整数则输出数据在域内向左对齐,如:int a=23,b=4;printf(%5d,%5d,a,b);,%标志输出最小宽度.精度长度,(4)精度.n(n为正整数),对于浮点数,表示输出的小数的位数;对于字符串,指定从字符串左侧所截取的子串字符的个

9、数;若实际位数大于所定义的精度数,则截去超过的部分。,如:float k=65.678;printf(%.2f,k);输出结果为 65.68,%标志输出最小宽度.精度长度,(5)长度,长度格式符为h、l两种,h表示按短整型量输出,l表示按长整型量输出,(6)类型是指输出数据的类型.,%标志输出最小宽度.精度长度,printf 函数中主要的格式字符:,(1)d 格式符:输出带符号的十进制整数,正数 的符号省略,%d,按整型数据的实际长度输出%md,m为指定的输出字段的宽度,若实际位数多于定义宽度m,则按实际位数输出;若实际位数少于定义宽度m,则左端补以空格。如:printf(“%4d,%4d”,

10、a,b);若 a=123,b=12345 则输出为:123,12345%ld,输出长整型数据如:long a=135790;printf(“%ld,%4d”,a,a);,(3)O格式符:以无符号八进制形式输出整数,(2)u 格式符:以十进制形式输出无符号整数,如:int k1;printf(%d,%u,k,k);输出结果为 1,65535,如:int k1;printf(%d,%o,k,k);输出结果为 1,177777,(4)x 格式符:以无符号十六进制形式输出整数,如:int k1;printf(%x,k);输出结果为 ffff,(5)c格式符:用来输出一个字符,如:char ca;pri

11、ntf(%c,c);输出字符a,(6)f 格式符:以小数形式输出单、双精度实数,%f 不指定字段宽度,由系统自动指定,整数部分全部输出,小数部分输出6位。单精度实数的有效位数是7位,双精度实数的有效位数是16位%m.nf 指定输出的数据共占m列,其中有n位小数,若实际位数少于定义宽度m,则左端补以空格。,如:float x,y;x=11111.111;y=22222.222 printf(%f,x+y);输出结果为 33333.333984,只有前7位是有效数字,(7)e 格式符:以指数形式输出单、双精度实数要求小数点前必须有且只有一个非0数字,不指定域宽m和精度.n时,系统自动给出6位小数,

12、指数部分占5位,其中e占1位。指数符号占1位,指数占3位。,如:float x 123.4;printf(%e,x);输出结果为 1.23400e+02,(8)s格式符:用来输出字符串,如:printf(%s,abc);输出字符串 abc,(9)g格式符:用来输出实数,并根据数值的大小,自动选取f格式或e格式中输出宽度较小的一种,且不输出无意义的0。,如:float x123.40;printf(%g,x);输出结果为 123.4,例:printf(%d,%d,%d,(a,b,c),b,c);,逗号表达式,设:a=3 b=4printf(a=%d b=%d,a,b);结果为:a=3 b=4,使

13、用printf()函数的几点说明:,1、格式字符要小写。2、可在格式控制字符串中包含转义字符3、格式控制字符串中可插入附加字符。4、若输出字符“%”,则应在字符串中连 续两个“%”号。,例:读程序,写运行结果。,main()char c1=a,c2=b,c3=c,c4=101,c5=116;printf(a%cb%ct%ccabcn,c1,c2,c3);printf(tb%c%c,c4,c5);,运行结果:,aabb ccabc AN,2、格式输入函数scanf(),scanf()称为格式输入函数。是一个标准的库函数,函数原形在“stdio.h”文件中。其作用是由终端输入若干个任意类型的数据,

14、送给相应的变量。,格式输入函数,格式输入函数scanf(格式控制字符串,地址表列);scanf(%d,%f”,格式:scanf(“格式控制字符串”,地址表列),其中:格式控制字符串的作用与printf()函数相同。不能显示提示信息 地址表列中要给出各变量的地址。地址是由地址运算符”&”加上变量名组成的。注意区分变量的值和变量的地址这两个不同的概念。不能用scanf()在屏幕上显示提示信息。,格式控制字符,一般格式:%*输入数据宽度长度,说明:(1)“*”号:表示该输入项读入后,不赋予相应的变量,即跳过该输入值。如:scanf(%d%*d%d,当输入1 2 3时,1a 3b,2被跳过,(2)输入

15、数据宽度:用十进制整数指定输入 的宽度。如:scanf(%5d,输入12345678后仅把12345赋予a,其余截去。,又如:scanf(%4d%4d,输入12345678后 1234赋予a,5678赋予b,按宽度自动截取。,%*输入数据宽度长度,(3)长度 长度格式符为l、h l表示长整型和双精度浮点数 h表示短整型数据。,%*输入数据宽度长度,(4)类型输入数据的类型.,格式字符 含义d 以十进制整数形式输入o 以八进制整数形式输入x 以十六进制整数形式输入u 以十进制无符号整数形式输入f/e 以 实数形式输入c 输入单个字符s 输入字符串,%*输入数据宽度长度,使用scanf()函数需注

16、意:,(1)scanf()函数中没有精度控制。如:scanf(%4.2f,对,(3)输入多个数据时,格式控制串中没有非 格式字符,则输入时数据间的分隔符可 用空格、TAB键、回车键。,(4)输入字符数据时,若格式控制符中无非 格式符,则认为所有输入的字符均为有 效字符。scanf(%c%c%c,输入:A,B,C 输出:a=A,b=,c=B,(5)如果格式控制字符串中有非格式字符,则输入时也要输入非格式字符。,scanf(“%d,%d,%d”,输入应为:a=5,b=6,c=7,如:,(6)输入、输出格式符不相符,则输出数据错误。,格式输入函数,常见错误scanf(%d,%fn”,#include

17、 main()int a,b;printf(Please input a and b:);scanf(%2d%*2d%2d,Please input a and b:,a=12,b=56,a+b=68,123456,例3.9,#include main()int a,b;printf(Please input a and b:);scanf(%2d%*2d%2d,Please input a and b:,a=12,b=5,a+b=17,12345a,例3.9,#include main()int a,b;scanf(%d%d,问题1:当要求程序输出结果为 a=12,b=34时,用户应该如何输

18、入数据?,12 34,输入数据的格式控制例3.10,#include main()int a,b;scanf(%d%d,问题2:当限定用户输入数据以逗号为分隔符,即输入数据格式为:12,34时,应修改程序中的哪条语句?怎样修改?,scanf(%d,%d,输入数据的格式控制例3.10,#include main()int a,b;scanf(%d%d,问题3:语句scanf(%d%d,时,用户应该如何输入数据?,a=12,b=34,输入数据的格式控制例3.10,#include main()int a,b;scanf(%d%d,问题4:限定用户输入数据为以下格式为 1234 同时要求程序输出结果

19、为a=12,b=34 应修改程序中的哪条语句?怎样修改?,scanf(%2d%2d,输入数据的格式控制例3.10,#include main()int a,b;scanf(%d%d,问题5:限定用户输入数据为以下格式为1234 同时要求程序输出结果为a=12,b=34,scanf(%d%d,输入数据的格式控制例3.10,#include main()int a,b;scanf(%d%d,问题6:设计程序使得用户可以以任意字符(回车、空格、制表符、逗号、其它)作为分隔符进行数据的输入,scanf(%d%*c%d,输入数据的格式控制例3.10,#include main()int data1,da

20、ta2,sum;char op;printf(Please enter the expression data1+data2n);scanf(%d%c%d,Please enter the expression data1+data2,第1次测试,12+3,12 64=76,C格式符存在的问题及其解决例3.11,Please enter the expression data1+data2,第2次测试,12 3,12 3=15,C格式符存在的问题及其解决例3.11,#include main()int data1,data2,sum;char op;printf(Please enter th

21、e expression data1+data2n);scanf(%d%c%d,Please enter the expression data1+data2,第3次测试,12+3,12+3=15,C格式符存在的问题及其解决例3.11,#include main()int data1,data2,sum;char op;printf(Please enter the expression data1+data2n);scanf(%d%c%d,#include main()int a;char b;float c;printf(Please input an integer:);scanf(%d

22、,Please input an integer:,希望得到的运行结果,12,Please input an character:,a,Please input a float number:,3.5,integer:12,character:a,float:3.500000,C格式符存在的问题及其解决例3.12,#include main()int a;char b;float c;printf(Please input an integer:);scanf(%d,Please input an integer:,结果好像很奇怪嘛!,12,Please input a character:,

23、a,Please input a float number:,3.5,integer:12,float number:3.500000,C格式符存在的问题及其解决例3.12,#include main()int a;char b;float c;printf(Please input an integer:);scanf(%d,Please input an integer:,程序修改后得到的运行结果,12,Please input an character:,a,Please input a float number:,3.5,integer:12,character:a,float:3.500000,C格式符存在的问题及其解决例3.12,#include main()int data1,data2,sum;char op;printf(Please enter the expression data1+data2n);scanf(%d%1s%d,12+3,12+3,12+3,再回头来看例3.11,想以任意分割符输入加法算式,可能吗?,这一章我们学习了,字符输入函数getchar()字符输出函数putchar()格式输入函数scanf()格式输出函数printf()格式控制问题难点,作业,P6466习题3.2,3.3,3.4,3.6,

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号