ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:133.37KB ,
资源ID:8131078      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-8131078.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第3章 顺序结构Word文件下载.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

第3章 顺序结构Word文件下载.docx

1、printf函数的调用形式如下:printf(格式控制,输出项1,输出项2,) 格式控制是字符串形式。在printf函数调用之后加上“;”,则构成输出语句。例如:printf(“a=d,b=d”,a,b);以上输出语句中,printf是函数名,用双引号括起来的字符串部分“a=d,b=d”是输出格式控制,决定了输出数据的内容和格式。a,b称为输出项,是printf函数的实参。printf函数中格式控制的作用是:1给输出项提供输出格式说明 输出格式说明的作用是将要输出的数据按照指定的格式输出。格式说明由“”符号和紧跟在其后的格式描述字符组成。当输出项为int类型时,用d作为格式描述字符,其形式为d

2、;当输出项为float或double类型时,用f或e作为格式描述字符,其形式为f或e(对于double类型也可用lf或le)。2提供需要原样输出的文字或字符 除了格式转换说明外,字符串中的其他字符(包括空格)将按原样输出。这样使得输出结果具有可读性。printf的各输出项之间用逗号隔开(函数的各个参数之间必须用逗号隔开)。输出项可以是任意合法的常量、变量或表达式。printf可以没有输出项,此时函数的调用形式为printf(格式控制),输出结果就是格式控制中的字符串。printf(“OK!”);将输出字符串:OK!。例1 main() inti=2518;doublea=3.1415;prin

3、tf(“i=%d,a=%f,a*10=%en”,i,a,a*10);/n为转义字符换行 运行后的输出结果为:i=2518,a=3.141500,a*10=3.141500e+01printf函数中常用的格式说明3.2.2printf函数中常用的格式说明 格式控制中,每个格式说明都必须用“”开头,以一个格式字符作为结束,在此之间可以根据需要插入“宽度说明”、左对齐符号“-”、前导零符号“0”等。1格式字符 后允许使用的格式字符和它们的功能如下表所示。在某些系统中,可能不允许使用大写字母的格式字符,因此为了使程序具有通用性,写程序时应尽量不用大写字母的格式字符。2长度修饰符 在和格式字符之间,可以

4、加入长度修饰符,以保证数据输出格式的正确和对齐。对于长整型数(long)应该加l,即ld;对于短整型数(short)可以加h,即hd。3输出数据所占的宽度说明 当使用d、c、f、e、S、的格式说明时,输出数据所占的宽度(域宽)由系统决定,通常按照数据本身的实际宽度输出,前后不加空格,并采用右对齐的形式。也可以用以下三种方法人为控制输出数据所占的宽度(域宽),按照使用者的意愿进行输出。(1)在和格式字符之间插入一个整数常数来指定输出的宽度n(例如4d,11代表整数4)。如果指定的宽度n不够,数据完整输出。如果指定的宽度n超过输出数据的实际宽度,输出时将会右对齐,左边补以空格,达到指定的宽度。(2

5、)对于float和double类型的实数,可以用“nm”的形式来指定输出宽度(n和m分别代表一个整常数),其中n指定输出数据的宽度(包括小数点),m指定小数点后小数位的位数,m也称为精度(例如12.4f,n代表整数l2,m代表整数4)。对于f、e或E,实际小数位数m位时,截去右边多余的小数,并对截去部分的第一位小数做四舍五入处理;实际小数位数m时,在小数的最右边补0,使得输出数据的小数部分宽度为m。若给出的总宽度n实际宽度,输出时将会右对齐,左边补0。对于float和double类型的实数,若用“0n.m”格式输出(例如%012.4f),如果给出的总宽度n(m+整数位数+小数点(e或E格式还要

6、加上指数的5位),则数字右对齐,左边补0。对于字符串,格式“n”指定字符串的输出宽度,若n字符串的实际长度,则右对齐,左边补空格。若用“.m”格式指定字符串的输出宽度,则若m字符串的实际长度,将只输出字符串的前m个字符。注意:输出数据的实际精度并不完全取决于格式控制中的域宽和小数的域宽,而是取决于数据在计算机内的存储精度。通常系统只能保证float类型有7位有效数字,double类型有15位有效数字。若你指定的域宽和小数的域宽超过相应类型数据的有效数字,输出的多余数字是没有意义的,只是系统用来填充域宽而已。4.输出数据左对齐 由于输出数据都隐含右对齐,如果想左对齐,可以在格式控制中的“%”和宽

7、度之间加一个“-”号来实现,如%-5d。5.使输出数据总带+号或-号 通常输出的数据如果是负数,前面有符号“-”,但正数前面的“+”一般都省略了。如果要每一个数前面都带正负号,可以在“”和格式字符间加一个“+”号来实现,如%+5d。下表列举了各种输出宽度和不指定宽度情况下的输出结果(表中输出结果中的符号j代表一个空格),其中k为int型,值为l234;f为float型,值为123.456。使用printf函数时的注意事项3.2.3使用printf函数时的注意事项 (1)printf的输出格式为自由格式,是否在两个数之间留逗号、空格或回车,完全取决于格式控制,如果不注意,很容易造成数字连在一起,

8、使得输出结果没有意义。若k=1234,f=123.456,则printf(ddfn,k,k,f);语句的输出结果是:12341234123456,无法分辨其中的数字含义。而如果改为printf(dfn其输出结果是:l2341234123456,看起来就一目了然了。(2)格式控制中必须含有与输出项一一对应的输出格式说明,类型必须匹配。若格式说明与输出项的类型不一一对应匹配,则不能正确输出,而且编译时不会报错。若格式说明个数少于输出项个数,则多余的输出项不予输出;若格式说明个数多于输出项个数,则将输出一些毫无意义的数字乱码。(3)在格式控制中,除了前面要求的输出格式,还可以包含任意的合法字符(包括

9、汉字和转义符),这些字符输出时将“原样照印”。此外,还可以利用n(回车)、r(换行但不回车)、t(制表)、a(响铃)等控制输出格式。(4)如果要输出%符号,可以在格式控制中用%表示,将输出一个%符号。(5)printf函数有返回值,返回值是本次调用输出字符的个数,包括回车等控制符。(6)尽量不要在输出语句中改变输出变量的值,因为可能会造成输出结果的不确定性。k=8;printf(“%d,%dn”,k,+k);输出结果不是8,9,而是9,9.这是因为调用函数printf时,其参数是从右至左进行处理的,将先进行+k运算。(7)输出数据时的域宽可以改变。若变量m、n、i和f都已正确定义并赋值,则语句

10、printf(“%*d”,m,i);将按照m指定的域宽输出i的值,并不输出m的值。而语句printf(“%*.*f”,m,n,f);将按照m和n指定的域宽输出浮点型变量f的值,并不输出m、n的值。(2009年9月)有以下程序 #include a=1,b=0;printf(%d,b=a+b);%dn,a=2*b);程序运行后的输出结果是(D) A)0,0B)1,0C)3,2D)1,2 (2009年9月)以下程序运行后的输出结果是【8】(答案:10) x=20;printf(%d,0x20);/00|x20 x&(2009年3月)程序段:x=12;doubley=3.141593;%d%8.6f

11、,x,y);的输出结果是(AA)123.141593B)123.141593C)12,3.141593D)123.1415930数据输入3.3数据输入 scanf函数是C语言提供的标准输入函数,其作用是从终端键盘上读入数据。3.3.1scanf函数的一般调用形式 scanf函数的一般调用形式如下:scanf(格式控制,输入项l,输入项2,)在scanf函数调用之后加上“;”,则构成输入语句。例如,若k为int型变量,a为float型变量,y为double型变量,可通过以下函数调用语句进行输入:scanf(”dflf”,&k,&a,&y);其中scanf是函数名,双引号括起来的字符串部分为格式控

12、制部分,其后的&y为输入项。格式控制的主要作用是指定输入时的数据转换格式,即格式转换说明。scanf的格式转换说明与printf的类似,也是由“”开始,其后是格式字符。上例的d、f(或e)、lf(或le)分别用于int、float和double型数据的输入。输入项之间用逗号隔开。对于int、float和double型变量,在变量之前必须加&符号作为输入项(&是C语言中的求地址运算符,输入项必须是地址表达式,读者在此只需正确表示,不必深究)。3.3.2scanf函数中常用的格式说明 每个格式说明都必须用开头,以一个“格式字符”作为结束。通常允许用于输入的格式字符及其相应的功能如下表所示。说明:(

13、1)在格式串中,必须含有与输入项一一对应的格式转换说明符。若格式说明与输入项的类型不一一对应匹配,则不能正确输入,而且编译时不会报错。若格式说明个数少于输入项个数,scanf函数结束输入,则多余的输入项将无法得到正确的输入值;若格式转换说明个数多于输入项个数,scanf函数也结束输入,多余的数据作废,不会作为下一个输入语句的数据。(2)在VC60环境下,输入short型整数,格式控制要求用hd。要输入double型数据,格式控制必须用lf(或le)。否则,数据不能正确输入。(3)在scanf函数的格式字符前可以加入一个正整数指定输入数据所占的宽度,但不可以对实数指定小数位的宽度。(4)由于输入

14、是一个字符流,scanf从这个流中按照格式控制指定的格式解析出相应数据,送到指定地址的变量中。因此当输入的数据少于输入项时,运行程序将等待输入,直到满足要求为止。当输入的数据多于输入项时,多余的数据在输入流中没有作废,而是等待下一个输入操作语句继续从此输入流读取数据。(5)scanf函数有返回值,其值就是本次scanf调用正确输入的数据项的个数。3.3.3通过scanf函数从键盘输入数据 当用scanf函数从键盘输入数据时,每行数据在未按下回车键(Enter键)之前,可以任意修改。但按下回车键(Enter键)后,scanf函数即接受了这一行数据,不能再回去修改。1输入数值数据 在输入整数或实数

15、这类数值型数据时,输入的数据之间必须用空格、回车符、制表符(Tab键)等间隔符隔开,间隔符个数不限。即使在格式说明中人为指定了输入宽度,也可以用此方式输入。若k为int型变量,a为float型变量,y为double型变量,有以下输入语句:scanf(“dfle”,若要给k赋值10,a赋值123,y赋值l23456789,输入格式可以是(输入的第一个数据之前可有任意空格):10123123456789此处表示回车。也可以是:1012.31234567.89只要能把3个数据正确输入,就可以按任何形式添加间隔符。2指定输入数据所占的宽度 可以在格式字符前加入一个正整数指定输入数据所占有宽度。例如上例

16、中改为:scanf(“%3d%5f%5le”,&k,&a,&y);若从键盘上从第1列开始输入:123456.789.123 用printf(“%d%f%fn”,k,a,y);打印的结果是:123456.70000089.120000 可以看到,由于格式控制是%3d,因此把输入数字串的前三位123赋值给了k;由于对应于变量a的格式控制是%5f,因此把输入数字串中随后的5位数(包括小数点)456.7赋值给了a;由于格式控制是5e,因此把数字串中随后的5位(包括小数点)8912赋值给了y。由以上示例可知,数字之间不需要间隔符,若插入了间隔符,系统也将按指定的宽度来读取数据,从而会引起输入混乱。除非数

17、字是“粘连”在一起,否则不提倡指定输入数据所占的宽度。3跳过某个输入数据 可以在和格式字符之间加入“*”号,作用是跳过对应的输入数据。x,y,z;scanf(d*ddd,&x,y,z);printf(dddn,x,y,z);若是输入:12345678 则输出是:78系统将12赋给X,跳过34,把56赋给y,把78赋给2。4在格式控制字符串中插入其他字符 (1)scanf函数中的格式控制字符串是为了输入数据用的,无论其中有什么字符,也不会输出到屏幕上,因此若想在屏幕上输出提示信息,应该首先使用printf函数输出。scanf(“Pleaseinputx,y,z:ddd”,x,y,z);屏幕上不会

18、输出“Please”,而是要求输入数据时按照一一对应的位置原样输入这些字符,必须从第一列起以下面的形式进行输入:Please56 包括字符的大小写、字符间的间格等必须与scanf中的完全一致。这些字符又被称为通配符。但如果使用以下的形式:X,y,2;printf(“Pleasescanf(“ddd”,x,&y,&z);运行时,由于printf语句的输出,屏幕上将出现提示“Please”,只需按常规输入下面的数据即可:(2)如果在上面的scanf函数中,在每个格式说明之间加一个逗号作为通配符:scanf(”d,d,d”,x,y,&则输入数据时,必须在前两个数据后面紧跟一个逗号,以便与格式控制中的

19、逗号一一匹配,否则就不能正确读入数据。例如,输入:12,34,56 能正确读入。输入:12,34,也能正确读入。因为空格是间隔符,将全部被忽略掉。但输入:,34,56 将不能正确读入,因为逗号没有紧跟在输入数据后面。需要提醒的是,为了减少不必要的麻烦,尽量不要使用通配符。(习题)若变量已正确定义为int型,要给a、b、c输入数据,正确的输入语句是(A)read(a,b,c);B)scanf(“ddd”,a,b,c);C)scanf(“DDD”,a,b,c);D)scanf(“ddd”,a,&b,c);(习题)若变量已正确定义为float型,要通过输入语句:scanf(“fff”,a,&b,&c

20、);给a赋值110,b赋值220,c赋值330,不正确的输入形式是(BA)11 22 33B)110,220,330C)110 220330D)1122 333.4复合语句和空语句 341复合语句 在C语言中,一对花括号“”不仅可用作函数体的开头和结尾的标志,也可用作复合语句的开头和结尾的标志。复合语句也可称为“语句块”,其语句形式如下:语句l 语句2 语句n 用一对花括号把若干语句括起来构成一个语句组。一个复合语句在语法上视为一条语句,在一对花括号内的语句数量不限。在复合语句中,可以定义本复合语句中的局部变量。3.4.2空语句 c程序中的所有语句都必须由一个分号“;”作为结束。如果只有一个分

21、号,这个分号也是一条语句,称为“空语句”,程序执行时不产生任何动作。程序设计中有时需要加一个空语句来表示存在一条语句,但随意加分号也会导致逻辑上的错误,而且这种错误十分隐蔽,编译器也不会提示逻辑错误,初学者一定要小心,需要慎用。(习题)下列选项中不是C语句的是(CA)inti;i+;dn,i);B);C)a=5C=10D);3.5程序举例 例3.2下程序由终端输入两个整数给变量x和y;然后输出x和y;在交换中的值后,再输出x和y。验证两个变量中的数是否正确地进行了交换。Main() x,y,t;printf(“Entery:n”);/输入提示 scanf(“%d%d”,&x,&printf(“x=%dy=%dn”,x,y);t=x;x=y;y=t;/交换 以下是程序运行情况:Entery:(由第4行的printf输出) 456(从键盘输入两个整数,代表按Enter键) x=123y=456(由第6行的printf输出) x=456y=123(由第8行的printf输出) 例3.3输入一个double类型的数,使该数保留小数点后两位,对第三位小数进行四舍五入处理,然后输出此数,以便验证处理是否正确。main()x;printf(x:n);seanf(lf,x);(1)x=fn,x);x=x*100;x=x+05

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2