




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章顺序结构1、基本结构2、执行过程:先执行A操作,再执行B操作顺序结构程序ABAB4.1赋值语句1、构成:由赋值表达式加上一个分号(;)构成。如:a=12;2、使用要点:(1)在赋值表达式中,“=”作为赋值运算符;(2)区别赋值表达式与赋值语句是两个不同的概念。如:if((a=b)>0)t=a;(正确)if((a=b;)>0)t=a;(错误)4.2数据输出在C语言中,本身不提供用于输入和输出的语句C语言的输入/输出功能通过调用标准库函数提供的输入和输出函数来实现数据的输入和输出。C语言的输入输出库函数名称不是关键字(保留字)。如printf、putchar、puts,scanf、getchar、gets格式字符串定界符一、格式输出函数printf1.printf函数格式与功能a.一般格式printf(“格式控制字符串”,输出表项列表)如:printf(函数名格式控制字符串输出项列表x)%10.3“x=\n”,非格式字符串宽度精度f输出项数据类型b.功能:按指定的格式向终端输出若干任意类型的数据。#include<stdio.h>voidmain(){inti=2598;floatj=3.1415;printf(“i=%d,j=%f,i*j=%e\n”,i,j,i*j);}输出结果为:i=2598,j=3.141500,i*j=8.161617e+003例4.12.printf函数中常用的格式控制字符串
格式控制字符串是用双引号括起来的字符串,用来确定确定输出项的格式和需要原样输出的字符串。其组成形式为:[普通字符串]%[附加格式][输出最小宽带][.精度][长度]格式字符其中方括号[]中的项为可选项
格式字符用来表示输出数据的类型,格式字符所代表的意义,如表4.1所示(1)格式字符(2)附加格式
附加格式字符为:+、-、#和数字0,其意义如表4.2所示格式字符说明d或i输出带符号的十进制整型数(正数不输出符号)u无符号十进制形式输出整型数o无符号八进制形式输出整型数(不输出前导符0)x或X无符号十六进制形式输出整型数(不输出前导符0x或0X)。用x则输出十六进制数的a~f时以小写形式输出;X时用大写形式输出c输出一个字符s输出字符串,直到遇到“\0”或输出有精度指定的字符数f以小数形式输出单、双精度数,隐含输出六位小数e或E以标准指数形式输出单、双精度数,数字部分六位小数。用e时指数以e表示(1.8e+004),用E时指数以E表示(1.8E+004)g或G系统选用%f或%e格式中输出宽度较短的一种格式输出,不输出无意义的0p输出变量的内存地址%打印一个%格式控制字符附加格式字符意义-在指定输出宽度的同时,指定数据左对齐,右边填空格+输出符号(正号或负号),输出值为正时在数据前加“+”,负数时在数据前加“-”#对c,s,d,u类无影响;对o,x类,在输出时加前导符;对e,g,f类当结果有小数是才给出小数点0在指定输出宽度的同时,在数据前面的多余处填数字0附加格式字符例4.2给出了未指附加格式和指定附加格式时的输出结果#include<stdio.h>voidmain(){printf("%dr\n",123);printf("%5dr\n",123);printf("%-5dr\n",123);printf("%+5dr\n",123);printf("%#5dr\n",123);printf("%05dr\n",123);printf("%fr\n",123.45);printf("%12fr\n",123.45);printf("%-12fr\n",123.45);printf("%+12fr\n",123.45);printf("%#12fr\n",123.45);printf("%012fr\n",123.45);printf("%or\n",0123);printf("%-5or\n",0123);printf("%+5or\n",0123);printf("%#5or\n",0123);printf("%05or\n",0123);}程序运行若实际位数多于定义的宽带,则按实际位数输出。若实际位数少于定义的宽度,则在左边补以空格。(3)输出最小宽带
用十进制整数来表示输出的最少位数。若无特别指明,系统默认右对齐方式。例4.3给出了未指定宽度和指定输出宽度时的输出结果#include<stdio.h>voidmain(){printf("%d\n",123);printf("%5d\n",123);printf("%2d\n",123);printf("%f\n",123.45);printf("%e\n",123.45);printf("%12f\n",123.45);printf("%12e\n",123.45);printf("%g\n",123.45);printf("%2g\n",123.45);}程序运行(4)精度精度格式符以“.”开头,后跟十进制整数,形如“.m”。针对不同的格式字符,其意义不同,如表下所示。格式字符精度格式符.m的意义d用于指定输出的数字格式,若数字少于m,则前面补0,若大于m,按数据的实际宽度输出e、E或f用于指定小数位数,若小数位数大于m,则四舍五入截去右边多余位数,若小数位数小于m,则在小数位右边补0g、G指定输出的有效数字s指定最多输出的字符个数例4.4给出了未指定精度和指定输出宽度时的输出结果#include<stdio.h>voidmain(){printf("%dr\n",123);printf("%.5dr\n",123);printf("%.0dr\n",123);printf("%fr\n",123.45);printf("%12.3fr\n",123.45);printf("%12.1fr\n",123.45);printf("%12.0fr\n",123.45);printf("%er\n",123.45);printf("%12.3er\n",123.45);printf("%12.1er\n",123.45);printf("%12.0er\n",123.45);printf("%gr\n",123.45);printf("%12.3gr\n",123.45);printf("%12.1gr\n",123.45);printf("%12.0gr\n",123.45);printf("%sr\n",”thisistest!”);printf("%.5sr\n",”thisistest!”);printf("%.0sr\n",”thisistest!”);}程序运行(5)长度长度格式符为h和l两种,h表示按短整型量输出,l表示长整型量输出,或者按double类型输出。输出长整型数时,必须加l,但对于double型数据%f与%lf意义相同。例4.5#include<stdio.h>voidmain(){inta=15;longb=65536;floatc=123.4567890;doubled=12345678.987654321;printf(“a=%d,%o,%x\n”,a,a,a);printf(“b=%d,%ld\n”,b);printf(“c=%f,%e,%g\n”,c,c,c);printf(“d=%lf,%f,%g\n”,d,d,d);}程序运行3.printf函数的使用说明(1)除了x、e、g这3个格式符既可以用小写也可以用大写外,其它的格式符必须用小写字母。如%d不能写成%D。(2)格式符d可用i代替,d和i作为格式符使用时,两者作用一样。(3)介绍过的d、o、x、u、c、f、e、g等字符,如在%后面则作为格式符,如不在%后面则仅是一个普通字符而已如:printf(“a=%df,b=%fe”,a,b);则输出结果应为:
a=15f,b=12.600000e(4)格式控制字符串中,格式说明与输出项的个数应该相同。若格式说明符的个数少于输出项列表时,多余的输出项不予输出。若格式说明符的个数多于输出项列表时,对于多余的格式将输出不定值。#include<stdio.h>voidmain(){inta=15,b=50,c=66;printf("%d,%d,%d\n",a,b,c);printf("%d,%d,%d\n",a,b);printf("%d,%d\n",a,b,c);}(5)在输出数据时,格式说明与输出项从左至右在类型上必须一一对应匹配。如数据的数据类型和格式控制字符的类型不同,系统将输出项中数据的类型强制转换成对应格式控制字符所指定的类型。这种转换与3.9中所讨论的赋值表达式中的类型转换规则类似。(6)若项输出%,应在格式控制字符串中用两个连续的%%表示,如:
printf(“%f%%\n”,1.0/3.0);
输出结果为:
0.333333%(7)在使用f格式符输出实数时,并非全部数字都是有效数字。单精度实数的有效位数一般为7位,双精度实数的有效位数一般为15位。如:
floatx=111111.111,y=222222.222printf(”%f”,x+y);则运行结果为:333333.328125(8)在使用printf函数时还要注意一个问题,那就是输出列表中的求值顺序。不一样的编译系统不一定相同,可用自左至右,也可以自右至左。(9)printf函数的返回值是本次调用过程中输出的字符个数。二、输出字符putchar函数在C语言中,除了可用通过printf函数对字符进行格式输出,还提供了字符输出的专用函数putchar函数。1.putchar函数的一般格式:putchar(ch)其中,ch可以是字符变量、字符常量或整型表达式。当ch为字符型变量或常量时,它输出参数ch的值当ch为取值不大于255的整型变量或整型表达式时,它输出ASCII代码值等于参数ch的字符2.注意:在该函数调用之后加“;”,就构成了字符输出语句。使用putchar函数时必须要用文件包含命令:#include<stdio.h>例4.7putchar函数的应用#include<stdio.h>main(){intx=97;chara='A';printf("x的值:%d,x的值对应的字符为:%c\n",x,x);printf("a的值:%c,a的ASCii为:%d\n",a,a);putchar(x);putchar('\n');putchar(a);
putchar('\n');}三、字符串输出puts函数1.puts函数的一般格式:puts(字符数组)2.功能:把字符数组中所存放的字符串,输出到标准输出设备中去,并用‘\n’取代字符串的结束标志‘\0’。puts函数的定义包含在头文件string.h字符串中允许包含转义字符,输出时产生一个控制操作。该函数一次只能输出一个字符串,而printf()函数也能用%s来输出字符串,且一次能输出多个。3.注意:例:scanf(“”,&x,&y)4.3数据输入一、格式输入scanf函数
1.scanf函数的格式与功能
a.scanf函数的一般格式为:scanf(“格式控制字符串”,输入项地址列表)函数名格式控制字符串输入项地址列表%%dd,格式字符定界符格式字符非格式字符串b.功能:从终端按照“格式控制字符串”中规定的格式输入若干个数据,按“输入项地址列表”中变量的顺序,依次存入对应的变量中。2.scanf函数中的常用格式说明
格式字符串的一般形式为:%[*][输入数据宽度][长度]格式字符其中方括号[]中的项为可选项。
(1)格式字符格式字符用于表示输入数据的类型,格式字符和所代表的意义如表4.4所示。(2)“*“符%后跟着一个*号,用以表示该输入项读入后不赋予相应的变量,即跳过该输入值。如:scanf(“%d%*d%d“,&a,&b);当输入为:123↙时,把1赋给a,跳过2,把3赋给b。格式字符说明d/i用了输入有符号的十进制整数u用了输入无符号的十进制整数o用了输入无符号的八进制整数x/X用来输入无符号的十六进制整数(不区分大小写)c用来输入单个字符s用来输入字符串,并将字符串送到一个字符数组中,在输入时以非空格字符开始,遇到回车或空格结束f用来输入实数,可用以小数形式也可以用指数形式输入e/E,g/G与f作用相同,e、f、g可用相互替换使用格式控制字符(3)宽度用十进制整数指定输入的宽度(即字符数)。若输入数据的宽度大于指定的宽度,则多余的被舍去若输入数据的宽度小于指定的宽度,则按输入数据的宽度取值如
scanf(“%5d”,&i);输入:123456789↙i的值被赋为12345,其余的被截去。又如:
scanf(“%3d”,&a);输入:12↙i的值被赋为12。(4)长度长度格式符为l和h,l表示输入长整型数据(如%ld)和双精度实型数(如%lf),h则表示输入短整型数据。TC环境下:ld与d表示不同的数据类型且取值范围不同,而f与lf也表示不同的数据类型和不同的取值范围。VC环境下:ld与d表示不同的数据类型但取值范围相同,而f与lf表示不同的数据类型和不同的取值范围。如(在TC环境下):longinta=0;scanf("%d",&a);printf(“a=%ld”,a);输入:123456789↙a的值为52501;而把输入语句改为:scanf("%ld",&a);后,输入:123456789↙这是a的值为123456789。又如(在VC环境下):longinta=0;scanf("%d",&a);printf(“a=%ld”,a);输入:123456789↙a的值为123456789;而把输入语句改为:scanf("%ld",&a);后,输入:123456789↙这是a的值为123456789。3.scanf函数的使用说明
(1)在格式控制字符串中,格式说明的类型、个数与输入项的类型、个数必须一一对应。如果类型不匹配,系统并不给出出错信息,但不可能得到正确的数据。(2)从终端输入数值数据时,遇下述情况系统将认为该项数据结束:空格、回车符、制表符(TAB)遇到宽度结束遇到非法输入(3)若在scanf函数中的格式控制字符串中除了格式字符外还有其它字符,则在输入时应原样输入。(4)在输入字符数据时:若无非格式字符串,则认为所以输入的字符均为有效字符。若有非格式字符串,则认为空格、回车和横向跳格符(TAB)作为间隔符而不能读入如:scanf(“%c%c%c”,&a,&b,&c);运行时,若输入:d□e□f↙则把d赋给了变量a,空格赋给了变量b,e赋给了c。只有输入:def↙才能把d赋给a,e赋给b,f赋给c。如把scanf函数改成如下形式:
scanf(“%c%c%c”,&a,&b,&c);运行时如输入:d□e□f↙和输入:def↙效果相同,都是把d赋给a,e赋给b,f赋给c。例4.8字符与数值型数据的混合输入#include<stdio.h>Voidmain(){ charc1,c2,c3,c4;
intn1,n2; floatf1,f2; printf("pleaseinputdatatoc1,n1,c2,n2,f1,f2,c3,c4:\n"); scanf("%c%d%c%d",&c1,&n1,&c3,&n2);
scanf("%f%f%c%c",&f1,&f2,&c3,&c4);
printf("c1=%c,c2=%c,c3=%c,c4=%c\n",c1,c2,c3,c4); printf("n1=%d,n2=%d\n",n1,n2); printf("f1=%f,f2=%f\n",f1,f2);}(5)在格式控制字符串中,格式说明的个数应该与输入项的个数相同。若格式说明的个数少于输入项的个数时,则多余的数据并不消失,而是将多余的数据留在缓冲区作为下一次输入操作的输入数据。若格式说明的个数多于输入项的个数时,则程序等待输入,直到满足要求或遇到非法字符为止。(6)在标准C中不使用%u格式符,对unsigned型数据以%d、%x、%o格式输入。(7)输入实型数据时,用户不能规定小数点后的位数。若无小数部分,可按整型数据输入。(8)每次调用scanf函数后,函数将得到一个整型函数值,此值等于正常输入数据的个数。二、字符输入getchar函数
1.字符输入getchar的一般格式:getchar()其中getchar后的括号内没有参数,但是不可以省略。2.功能:getchar函数从终端(或系统默认的输入设备)读入一个字符作为函数值。3.注意必须在程序的开头出现包含头文件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年云南省怒江州贡山三中高三毕业班教学质量检测试题物理试题含解析
- 杭州市萧山区2025届初三下学期第一次质量检查英语试题含答案
- 宁夏师范学院《篆刻临摹》2023-2024学年第二学期期末试卷
- 北京石景山2025届下学期期末初三教学质量检测试题物理试题含解析
- 广东省高州市大井中学2025届高三下学期第一次摸拟试化学试题含解析
- 西安交通大学《美容化学》2023-2024学年第二学期期末试卷
- 广东省广州市石楼镇第二中学2024-2025学年初三第三次质量检测试题英语试题含答案
- 2025年湖南省长沙市雨花区雅礼教育集团初三9月月考化学试题试卷含解析
- 单县2025届数学四下期末经典模拟试题含解析
- 浙江省宁波市慈溪市2025年初三下学期期末模拟英语试题含答案
- 第二章 微生物多样性
- 船舶机舱自动化4.4 主机遥控系统的转速与负荷控制
- 主题班会教案理解时尚,追求真美
- 《秤的发展史》课件
- 医疗机构风险评估报告
- 《Wps 2019简介》教学设计
- 初二英语-现在完成时课件
- 2022年工程机械设备租赁服务方案(含应急处理方案、保障措施)
- 水泥采购投标方案(技术标)
- 加工工艺改善表
- 10月份企业网上银行电子回单
评论
0/150
提交评论