




已阅读5页,还剩61页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章最简单的C程序设计顺序程序设计,C语句概述赋值语句数据输入输出的概念及在c语言中的实现字符数据的输入输出格式输入与输出顺序结构程序设计举例,回顾,常量在程序中不能被更改,而变量在程序中可以被更改C语言中的基本数据类型包括整型、单精度浮点型、双精度浮点型和字符型整型分为短整型、整型、长整型,每种整型又可分为有符号型和无符号型单精度浮点型和双精度浮点型变量可以存储实数字符型变量可以存储单个字符,其值是该字符的ASCII码算术运算符提供运算功能,包括+、-、*、/、%、+、-,目标,掌握字符数据输入输出函数用法熟练使用printf和scanf函数理解顺序结构程序的设计思路,4.1C语句概述,程序的结构,返回,C语句可分为以下五类:控制语句函数调用语句表达式语句空语句复合语句,1、控制语句有9种:if()else条件语句for()循环语句while()循环语句dowhile()循环语句continue结束本次循环语句break终止执行switch或循环语句switch多分支选择语句goto转向语句return从函数返回语句其中,()表示是条件,表示内嵌的语句。,2、函数调用语句:由函数名、实际参数加上分号“;”组成。其一般形式为:函数名(实际参数表);例如:printf(CProgram);调用库函数,输出字符串。,3、表达式语句:表达式语句由表达式加上分号“;”组成。其一般形式为:表达式;例如a=3是一个赋值表达式a=3;是一个赋值语句,4、空语句:只有分号“;”组成的语句称为空语句。5、复合语句:把多个语句用括号括起来组成的一个语句称复合语句。例如:x=y+z;a=b+c;printf(“%d%d”,x,a);是一条复合语句。,4.2赋值语句,赋值语句是程序中使用最多的语句之一。,赋值语句是由赋值表达式再加上分号构成的表达式语句。,其一般形式为:变量=表达式;,返回,在赋值语句的使用中需要注意以下几点:由于在赋值符“=”右边的表达式也可以又是一个赋值表达式,因此,下述形式变量=(变量=表达式);是成立的,从而形成嵌套的情形。其展开之后的一般形式为:变量=变量=表达式;例如:a=b=c=d=e=5;结果是a、b、c、d、e的值均为5。,注意在变量说明中给变量赋初值和赋值语句的区别。例如:inta=5,b,c;,是,不能是;,给变量赋初值是变量说明的一部分,赋初值后的变量与其后的其它同类变量之间仍必须用逗号间隔,而赋值语句则必须用分号结尾。,在变量说明中,不允许连续给多个变量赋初值。如下述说明是错误的:inta=b=c=5;必须写为inta=5,b=5,c=5;而赋值语句允许连续赋值。a=b=c=5;是允许的。,注意赋值表达式和赋值语句的区别。下述语句是合法的:if(x=y+5)0)z=x;语句的功能是,若表达式x=y+5大于0则z=x。下述语句是非法的:if(x=y+5;)0)z=x;因为x=y+5;是语句,不能出现在表达式中。,赋值表达式是一种表达式,它可以出现在任何允许表达式出现的地方,而赋值语句则不能。,4.3数据输入输出的概念及在C语言中的实现,所谓输入输出是以计算机为主体而言的。本章介绍的是向标准输出设备显示器输出数据的语句。在语言中,所有的数据输入输出都是由库函数完成的。因此都是函数语句。,返回,在使用语言库函数时,要用预编译命令#include将有关“头文件”包括到源文件中。使用标准输入输出库函数时要用到“stdio.h”文件,因此源文件开头应有以下预编译命令:#include或#include”stdio.h”stdio是standardinput(输出大写字母A)putchar(x);(输出字符变量x的值)putchar(101);(也是输出字符A)putchar(n);(换行)使用本函数前必须要用文件包含命令:#include或#include“stdio.h”,例4.1输出单个字符。,结果:Boy,#includemain()chara=B,b=o,c=y;putchar(a);putchar(b);putchar(c);,例4.1输出单个字符。,结果:Boy,#includemain()chara=B,b=o,c=y;putchar(a);putchar(n);putchar(b);putchar(n);putchar(c);putchar(n);,4.4.2getchar函数(字符输入函数)getchar函数的功能是从键盘上输入一个字符。其一般形式为:getchar();,通常把输入的字符赋予一个字符变量,构成赋值语句,如:charc;c=getchar();,例4.2输入单个字符。,#includevoidmain()charc;printf(inputacharactern);c=getchar();putchar(c);,程序最后两行可用下面两行的任意一行代替,结果相同:putchar(getchar();printf(“%c”,getchar();,使用getchar函数还应注意几个问题:getchar函数只能接受单个字符,输入数字也按字符处理。输入多于一个字符时,只接收第一个字符。使用本函数前必须包含文件“stdio.h”。,#includevoidmain()chara,b;printf(请输入两个字符:n);a=getchar();fflush(stdin);b=getchar();fflush(stdin);putchar(a);putchar(b);putchar(n);,getchar()和putchar()示例,O,K,输出:请输入两个字符:OKOKPressanykeytocontinue_,4.5格式输入与输出,4.5.1printf函数(格式输出函数)printf函数的作用是按用户指定的格式,输出若干任意类型的数据。,返回,1、printf函数调用的一般形式printf(“格式控制字符串”,输出表列)其中“格式控制字符串”用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。,格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。如:“%d”表示按十进制整型输出;“%ld”表示按十进制长整型输出;“%c”表示按字符型输出等。非格式字符串在输出时原样照印,在显示中起提示作用。,2、格式字符(1)d格式符。用来输出十进制整数。有几种用法:%d,按整型数据的实际长度输出。%md,m为指定的输出字段的宽度。如果数据的位数小于m,则左端补空格,若大于m,则按实际位数输出。如:a=123;d=12345printf(“%4d,%4d”,a,b);结果:123,12345,%ld,输出长整型数据。如longa=135790;printf(“%ld”,a);(2)o或lo或mo格式符,以八进制形式输出整数。(3)x或lx或mx格式符,以八进制形式输出整数。(4)u格式符,用来输出unsigned型数。,(5)c格式符,用来输出一个字符。如:charc=a;printf(“%c”,c);输出:a也可以指定输出宽度,如:printf(“%3c”,c);输出:a,(6)s格式符,用来输出一个字符串。有几种用法:%s,例如:printf(“%s”,”CHINA”);输出CHINA%ms,输出的字符串占m列,如字符串长度大于m,则按字符串实际长度输出;若字符串长度小于m,则左补空格。%-ms,同上,右补空格。,%mns,输出占m列,但只取字符串中左端n个字符,左补空格。%-mns,输出占m列,但只取字符串中左端n个字符,右补空格。例4.5字符串的输出。,main()printf(“%3s,%7.2s,%.4s,%-5.3s,n”,”CHINA”,”CHINA”,”CHINA”,”CHINA”);,结果为:CHINA,CH,CHIN,CHI,(7)f格式符,用来输出实数(包括单、双精度),以小数形式输出。有以下几种用法:%f,不指定字段宽度,由系统自动指定,使整数部分全部如数输出,并输出6位小数。例4.6输出实数时的有效位数。,x,y整数部分6位,main()floatx=111111.111,y=222222.222;printf(“%f”,x+y);,结果:333333.328125单精度只有7位有效数字。,例4.7输出双精度数时的有效位。main()doublex,y;x=1111111111111.111111111;y=2222222222222.222222222;printf(“%f”,x+y);结果为:3333333333333.333010双精度只有16位有效数字。,整数部分13位,main()floatf=123.456;printf(“%f%10f%10.2f%.2f%-10.2fn”,f,f,f,f,f);,%mnf指定输出的数据占m列,其中有n位小数。如果数值长度小于m位,则左端补空格。%-mnf同上,右端补空格。例4.8输出实数时指定小数位数。,结果:123.456001123.456001123.46123.46123.46,(9)g格式符,用来输出实数,它根据数值的大小,自动选f格式或e格式(选择输出时占宽度较小的一种),且不输出无意义的0。f=123.456printf(“%f%e%g”,f,f,f);结果:,123.4560011.23456e+02123.456001,在使用printf函数时,还有几点要说明:(1)除了X,E,G外,其他格式符必须用小写字母。(2)可以在printf函数中的“格式控制”字符串内包括“转移字符”,如n,t,r等。(3)上面介绍的“d,o,x,u,c,s,f,e,g”等字符,用在“%”后面是格式符,不在“%”后面就是普通字符。例如:printf(“c=%cf=%fs=%s”,c,f,s);,普通字符,()如果想输出字符“”,则在“格式控制”字符串中用“”表示。如:printf(“%f%”,1.0/3);输出:0.333333%,4.5.2scanf函数(格式输入函数)1、一般形式scanf(“格式控制字符串”,地址表列);其中,格式控制字符串的作用与printf函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。地址表列中给出各变量的地址。地址是由地址运算符“printf(inputa,b,cn);scanf(%d%d%d,输入分隔符的指定一般以空格、TAB或回车键作为分隔符其它字符做分隔符:格式串中两个格式符间字符,运行:3,4,5a=3,b=4,c=5,main()inta,b,c;printf(inputa,b,cn);scanf(%d,%d,%d,2、格式说明,说明:(1)对unsigned型变量所需的数据,可以用%u,%d,%o,%x格式输入。(2)用十进制整数指定输入的宽度(即字符数),系统自动按它截取所需数据。如:scanf(%5d,输入:12345678将把1234赋予a,而把5678赋予b。,(3)在%后面加一个“*”符,表示该输入项,读入后不赋予相应的变量,即跳过该输入值。如:scanf(%d%*d%d,当输入为:123时,把1赋予a,2被跳过,3赋予b。(4)长度:长度格式符为l和h,l表示输入长整型数据(如%ld)和双精度浮点数(如%lf)。h表示输入短整型数据。,(5)scanf函数中没有精度控制,如:scanf(%5.2f,是非法的。不能企图用此语句输入小数为2位的实数。,3、使用scanf函数时应注意的问题(1)scanf中要求给出变量地址,如给出变量名则会出错。如scanf(“%d”,a);是非法的,应改为scnaf(“%d”,输入时:3,4,343:4都不对。scanf(“%d%d”,输入时,两个数据之间应空2个或更多的空格:10341034,scanf(“%d:%d:%d”,输入时:a,b,c=12,24,36,(3)在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。例如:scanf(%c%c%c,输入为:def则把d赋予a,赋予b,e赋予c。只有当输入为:def时,才能把d赋于a,e赋予b,f赋予c。,(4)在输入数据时,遇到以下情况时该数据认为结束:遇空格,TAB或回车作间隔。按指定宽度结束,如“%3d”,只取3列。遇非法输入。scanf(“%d%c%f”,若输入:1234a123o.26abc,格式输入输出的规定比较烦琐,但又是最基本的。学习时不必花很多的时间去死记硬背、死扣细节,重点掌握常用的一些规定,如“%d”,”%f”,”%c”的使用方法,通过多上机、多调试程序来逐步深入、自然地掌握格式输入输出的应用。,4.6顺序结构程序设计举例,学习了赋值、输入和输出语句,我们就可以编写简单的顺序结构程序了。,返回,例4.10输入三角形的三边长,求三角形面积。已知三角形的三边长a,b,c,则该三角形的面积公式为:其中s=(a+b+c)/2源程序如下:,#includemain()floata,b,c,s,area;scanf(“%f,%f,%f”,#include#includemain()floata,b,c,s,area;scanf(%f,%f,%f,例4.10输入三角形的三边长,求三角形面积。,输入:3,4,6输出:a=3.00,b=4.00,c=6.00s=6.50area=5.33,例4.11从键盘输入大写字母,用小写字母输出。,#includestdio.hmain()charc1,c2;c1=getchar();printf(%c,%dn,c1,c1);c2=c1+32;printf(%c,%dn,c2,c2);,输入:A输出:A,65a,97,例4.12求ax2+bx+c=0方程的根,a,b,c由键盘输入,设b2-4ac0。求根公式为:,#include#includemain()floata,b,c,disc,x1,x2,p,q;scanf(a=%f,b=%f,c=%f,总结,printf()和scanf()函数属于格式输入输出函数getchar()和putchar()函数用来输入输出单个字符的函数理解顺序结构程序的编程思路,习题:,1.a=1234,b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 推广产品合作协议书范本5篇
- 个人房屋租赁续签合同5篇
- 返修质保协议书4篇
- 砂石转运居间合同范本
- 桌椅家具租赁合同范本
- 单位餐饮协议合同范本
- 查找身边安全隐患之工作场所篇
- 青少教育培训推广推广推广项目推广案
- 环境评价公众参与机制在2025年建设项目审批中的应用报告
- 农网考试试题讲解题及答案
- 固化剂安全技术说明书(MSDS)
- 学术规范与论文写作讲述课件
- 水磨石地面施工技术交底(工程科)
- 手拉葫芦室内钢梁吊装方案
- DB15T 2416-2021蒙餐 风干羊背子
- 中国文化概论 第1章 中国文化的历史地理环境课件
- 危险源登记检查及记录表
- 科研诚信课件
- 2021版特种设备目录
- 中南大学2021年《结构力学(下)》期末考试试卷
- Q∕SY 01747-2020 热力采油过热蒸汽锅炉运行规程
评论
0/150
提交评论