




已阅读5页,还剩63页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
3.1C语言的基本语句3.2数据输入与输出3.3顺序结构程序设计举例,第3章顺序结构程序设计,3.1C语言的基本语句,3.1.1语句的概念,语句是算法实现的程序表示,是算法实现的最小单位。语句说明了一种行为,它是用计算语言编写的控制计算机完成确定操作的句子。,C语言的语句概述:,程序对数据的处理是通过“语句”的执行来实现的。,一条语句完成一项操作(或功能)。,一个为实现特定目的的程序应包含若干条语句。,语句的标志-;,一个c程序可以有若干个源程序文件组成一个源文件可以有若干个函数和预处理命令以及全局变量声明部分组成一个函数有函数首部和函数体组成函数体由数据声明和执行语句组成C语句分为,(一)控制语句完成一定的控制功能1if()else条件语句6break间断语句2for()循环语句7switch()开关语句3while()循环语句8goto转向语句4dowhile();循环语句9return返回语句5continue继续语句,3.1C语言的基本语句,3.1C语言的基本语句,(三)表达式语句有一个表达式加一个分号构成一个语句a=3;,3.1C语言的基本语句,(四)空语句只有一个分号的语句(什么也不做)用来做流程的转向点用来作为循环语句中的循环体,;,3.1C语言的基本语句,表达式语句(表达式;)函数调用语句(函数名(参数表);)空语句(;)C语言数据操作复合语句(一条或多条语句)语句条件语句(if语句,switch语句)结构化语句while语句循环语句do_while语句for语句流程控制语句break语句限定转向语句continue语句非结构化语句return语句非限定转向语句(goto语句),小结:C语言的语句分类:,3.2数据输入与输出,3.2.1数据输入输出的概念概念(一).所谓输入输出是以计算机主机为主体而言的输出:从计算机向外部输出设备(显示器,打印机)输出数据输入:从输入设备(键盘,鼠标,扫描仪)向计算机输入数据.,(二).C语言本身不提供输入输出语句,输入和输出操作是由C函数库中的函数来实现的例如:字符输入函数:getchar字符输出函数:putchar格式输入函数:scanf格式输出函数:printf字符串输入函数:gets字数穿输出函数:puts,(三).在使用系统库函数时,要用预编译命令“#include”将有关的“头文件”包括到用户源文件中.例如:#include“stdio.h”或:#include,头文件,C语言的输入输出系统包括了许多函数,这些函数位于一个名为stdio.h(标准输入输出库)的头文件里。因此,每一个C语言程序的开始都要用预编译命令“include”将“stdio.h”包括到用户源文件中。格式如下:,1、字符输入函数,(1)函数原型,intgetchar(void);,函数返回值类型,函数的名称,无参数,(2)函数功能,正常,则从标准输入设备(一般为键盘)读入一个字符,返回该字符的ASCII码值,并且将敲入的字符“回显”到屏幕上。出错,返回EOF(-1),3.2.2字符输入与输出函数,例:,#include/*说明函数getchar的原型包含在哪个文件中*/,voidmain()inta;charb;a=getchar();b=getchar();printf(a=%cta=%dtb=%ctb=%dn,a,a,b,b);,从键盘输入字符,该字符的ASCII编码值赋给a,程序运行情况如下:13a=1a=49b=3b=51,注意:,调用函数getchar时,程序执行被中断,等待用户从键盘输入数据。当用户键入字符并敲回车键以后,程序继续运行。若用户输入字符后未按回车键,则键入的内容一直保留在键盘缓冲区中,只有用户键入回车键后,字符输入函数getchar才进行处理。,函数getchar将回车键作为一个字符读入。如果程序中有两个以上函数getchar时,应该一次性输入所需字符,最后再按回车键。,无论输入的是英文字母或标点符号还是数字,都是作为字符输入。,2、字符输出函数格式:intputchar(c)参数:c为字符常量、变量或表达式功能:把字符c输出到显示器上返值:正常,向标准输出设备(一般为显示器)输出一个字符,并返回输出字符的ASCII码值。出错,为EOF(-1),例:,#include,程序运行结果为:ABBC,包含函数putchar的头文件,main()inta=65;charb=B;putchar(a);putchar(65+1);putchar(b);putchar(B+1);,3.3.2格式输出函数,1.函数原型,intprintf(char*format,argument,.);,2.函数功能,函数printf将一组参数,由format给定的格式规定输出格式,把数据格式化并且输出到标准输出设备。,若出错,则返回负数。,可以有多个参数,一printf()函数,函数调用的一般形式:,printf(格式控制字符串,输出项列表);,必须用英文的双引号括起来。,作用是控制输出项的格式和输出一些提示信息。,要输出的表达式。,常量、变量、运算符表达式、函数返回值等,每个输出项之间用逗号(,)分隔。,格式控制字符:,(1)组成:,普通字符、转义字符、格式说明。,普通字符:,按原样输出,主要用于输出提示信息。,转义字符:,指明特定的操作。,格式说明:,由%和格式字符串组成:%格式字符串。它表示按规定的格式输出数据。,例:,#includestdio.hvoidmain()inta=97,b=98;printf(1:%d%dn,a,b);/*普通字符,原样输出*/printf(2:%d,%dn,a,b);/*a,b以十进制整数形式输出*/printf(3:%c,%cn,a,b);/*a,b以字符形式输出*/printf(4:a=%d,b=%d,a,b);,程序运行结果为:1:97982:87,983:a,b4:a=97,b=98,(2)格式说明的形式:,%flagswidth.precF|N|h|Ltype,方括号表示该项可有可无,可选的标志字符-:左对齐输出,缺省为右对齐输出+:正数输出加号(+),负数输出减号(-)空格:正数输出空格代替加号(+),负数输出减号(-)如:+d,-d,d。,十进制整数,指定输出宽度。指定宽度实际宽度,补空格。指定宽度实际宽度,按实际输出。不指定宽度,按实际输出。如:10d,输出精度指示符。对实数,表示小数点后至多输出的数字个数,不足补数字,多出则舍入处理。对字符串,表示最多输出的字符个数,不足补空格,多出则丢弃。,输出长度修饰符:F:输出远指针存放的地址。N:输出近指针存放的地址。H或h:输出短整型数据的值。L或l:输出长整型或双精度值。,格式字符,用来进行格式转换。(重点掌握),l:用于长整型整数,可加在格式符d,o,x,u前面m(代表一个正整数):数据最小宽度n(代表一个正整数):对实数,表示输出n位小数;对字符串,表示截取的字符个数-:输出的数字或字符在域内向左靠,()格式字符(type)一鉴表:,格式符。用来输出十进制整数。几种用法::按十进制整型数据的实际长度输出。m:为指定的输出字段的宽度。如果数据的位数小于,则左端补以空格,若大于,则按实际位数输出。例:rintf(,);若123,b12345,则输出结果为123,12345l:输出长整型数据。例:long135790;/*定义a为长整型变量*/rintf(ld,);内部存储:,例如:,printf(%dn,100);,printf(%5dn,100);,printf(%8dn%8d,100,100*100);,(2)格式符。以八进制整数形式输出。输出的数值不带符号,符号位也一起作为八进制数的一部分输出。例:inta=-1;printf(%d,%o,a,a);在内存单元中的存放形式(以补码形式存放)如下:1111111111111111输出为:,177777不会输出带负号的八进制整数。对长整数(long型)可以用“lo”格式输出。还可以指定字段宽度,例:rintf(8o,);输出为:177777。(数字前有2个空格),(3)格式符。以十六进制数形式输出整数。同样不会出现负的十六进制数。例:inta=-1;rintf(,);输出结果为:ffff,177777,可以用“l”输出长整型数,也可以指定输出字段的宽度例:“12l”,(4)格式符,用来输出unsigned型数据.一个有符号整数(int型)也可以用格式输出;一个unsigned型数据也可以用格式输出。unsigned型数据也可用或格式输出。,例如:,printf(%on,-1);,printf(“%x,%Xn”,-1,-1);,printf(“%u,%d”,-1,-1);,(5)格式符,用来输出一个字符。如:chard;printf(,d);输出字符.一个整数,只要它的值在范围内,可以用“”使之按字符形式输出,在输出前,系统会将该整数作为ASCII码转换成相应的字符;一个字符数据也可以用整数形式输出。,例3.4字符数据的输出。#includevoidmain()charc=a;inti=97;printf(“%c,%dn”,c,c);printf(“%c,%dn”,i,i);,运行结果:a,97a,97,(6)s格式符输出字符串.。例如:(,)输出字符串“”(不包括双引号)。%ms,输出的字符串占m列,若串长大于m,则全部输出,若串长小于m,则左补空格。%-ms,若串长小于m,字符串向左靠,右补空格。%m.ns,输出占m列,只取字符串中左端n个字符,输出在m列的右侧,左补空格。%-m.ns,n个字符输出在m列的左侧,右补空格,若nm,m自动取n值。,例3.5字符串的输出。#includevoidmain()printf(“%3s,%7.2s,%.4s,%-5.3sn”,“CHINA”,“CHINA”,“CHINA”,“CHINA”);,printf(%4c,%cn,A,A);,printf(%-8s,%8.2s,Name,Name);,例如:,(7)格式符。用来以小数形式输出实数(包括单双精度)有以下几种用法:。不指定字段宽度,由系统自动指定字段宽度,使整数部分全部输出,并输出位小数。应当注意,在输出的数字中并非全部数字都是有效数字。单精度实数的有效位数一般为位。.。指定输出的数据共占列,其中有位小数。如果数值长度小于,则左端补空格。.与.基本相同,只是使输出的数值向左端靠,右端补空格。,例3.6输出实数时的有效位数。#includevoid()float,;x111111.111;y222222.222;printf(%f,x+y);,运行结果:.,例3.7输出双精度数时的有效位数。#includevoid()double,;x=1111111111111.111111111;y=2222222222222.222222222;printf(“%f”,x+y);,运行结果:3333333333333.333010,例3.8输出实数时指定小数位数。#includevoid()floatf=123.456;printf(“%f%10f%10.2f%.2f%-10.2fn”,f,f,f,f,f);,运行结果:123.455994123.455994123.46123.46123.46,(8)格式符,以指数形式输出实数。可用以下形式:e。不指定输出数据所占的宽度和数字部分的小数位数.例:printf(,);输出:8列5列所输出的实数共占列宽度。(注:不同系统的规定略有不同),m.ne和-m.ne。、和“”字符的含义与前相同。此处指拟输出的数据的小数部分(又称尾数)的小数位数。若,则:printf(%e%10e%10.2e%.2e%-10.2e,f,f,f,f,f);输出如下:1.234560e+0021.234560e+0021.23e+0021.23e+00213列13列10列9列1.23e+00210列,说明:未指定,自动使.超过给定的列,乃突破列的限制,按实际长度输出。第3个数据共占列,小数部分占列。只指定,未指定,自动使等于数据应占的长度。第5个数据应占列,数值只有列,由于是“”,数值向左靠,右补一个空格。(注:有的C系统的输出格式与此略有不同),printf(%fn%10.3fn,100.765432,100.7654321);,printf(%en%10.9e,100.7654321,100.7654321);,例如:,(9)格式符,用来输出实数.它根据数值的大小,自动选格式或格式(选择输出时占宽度较小的一种),且不输出无意义的零。例:若,则(,);输出如下:123.4680001.234680e+002123.46810列13列10列,说明:用格式输出占列,用格式输出占列,用格式时,自动从上面两种格式中选择短者(今以格式为短)故占列,并按格式用小数形式输出,最后3个小数位为无意义的,不输出,因此输出123.468,然后右补3个空格。格式用得较少。,说明:除了X,E,G外,其他各式字符必须用小写。可以在printf函数中的“格式控制”字符串中包含转义字符。一个格式说明必须以“%”开头,以9个格式字符之一为结束,中间可以插入附加格式字符。想输出%,则应该在格式控制字符串中用连续两个%表示,#includestdio.hvoidmain()inti=8;printf(%dt%dt%dn,+i,-i,i-);,例:,输出结果为:768,注意:使用函数printf时要注意一个问题,那就是输出表列中的求值顺序。不同的编译系统不一定相同,可以从左到右,也可从右到左。TurboC是按从右到左进行的。,#includestdio.hvoidmain()inta=3,b=4;printf(%dn,(a=b,b,a+3);printf(%dn,a=b,b,a+3);,例:,输出结果为:74,二.scanf()函数,1.函数原型,intscanf(char*format,argument,.);,2.函数功能,按规定格式从键盘输入若干任何类型的数据给argument所指的单元;返回读入并赋给argument的数据个数;遇文件结束返回EOF;出错返回0。,可以有多个参数,3.函数调用的一般形式:,scanf(格式控制字符串,地址列表);,必须用英文的双引号括起来。,由普通字符和格式说明字符组成。,由若干个地址组成的列表。,变量的地址、字符串的首地址、指针变量等,以逗号(,)间隔。,4.格式控制字符:,(1)组成:,普通字符、格式说明。,普通字符:,格式说明:,键盘输入时,要按原样输入,一般起分隔或提示作用。,但分隔或提示作用若由用户输入,就失去了本来的意义,一般采用printf来实现。,%*widthF|Nh|ltype,(2)格式说明的形式:,%*widthF|Nh|ltype,输入赋值抑制字符:表示该格式说明要求输入数据,但不赋值,即在地址列表中没有对应有地址项。,宽度指示符:表示该输入项最多可输入的字符个数。如遇空格或不可转换的字符,读入的字符将减少。,地址大小修饰符:F:表示地址列表项中对应的地址为远指针;N:表示地址列表项中对应的地址为近指针。,数据输入类型:h:短整型l:长整型或双精度类型,必需的格式字符,表示输入数据转换后的数据类型。,()格式字符(type)一鉴表:,scanf(“i=%d,scanf(“%c%c”,运行时输入ab/*上机*/,例:,#includestdio.hvoidmain()inta,b;printf(input
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个体工商户职业健康安全管理责任合同
- 商铺租赁合同终止及原租户租赁权益保护协议
- 集团内部贷款业务风险控制及防范措施协议
- 鲁珍离婚协议书中的房产分割与租金收益处理
- 聘用制院长任期医院内部激励机制合同
- 香港劳务派遣与劳务派遣人员派遣及人力资源配置合同
- 鱼塘承包生态保护与资源利用合同范本
- 退休返聘教师与学校签订的教育服务合同
- 个人外汇管理办法框图
- 郑州租赁市场房屋租赁信用评估合同
- 工程利润分红协议书范本
- 高空外墙维修合同协议
- 粉尘定期清扫制度
- 踢毽子社团活动方案
- DBJ33-T 1152-2025 《建筑工程建筑面积计算和竣工综合测量技术规程》
- 项目部施工质量管理体系及管理制度
- 人教版2024-2025学年九年级化学上册教学计划(含进度表)
- 仁爱版七年级英语上册教学工作计划(含进度表)
- 2025年国防知识竞赛题库及答案(共100题)
- 2025年数据质量考试试题及答案
- TJPMA 022-2024 疾病预防控制业务档案管理规范
评论
0/150
提交评论