版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3讲输入输出函数
和顺序程序
(第3章)湖南工业大学计算机与通信学院湖南省普通高等学校省级精品课程《C语言程序设计》上讲要点复习(快速提问1)各种数据类型之间主要在哪三方面不同?了解C语言常用的三种基本数据类型。表达式的作用、构成、二种用法?(重点)什么是符号常量?使用符号常量的优点?什么是变量?(重点、难点)什么是赋值运算?
(重点、难点)标识符的命名规则?运算的优先级和结合性的概念。本讲内容1.函数和标准函数2.字符输出函数putchar()3.字符输入函数getchar()4.格式输出函数printf()5.格式输入函数scanf()6.简单程序设计基本要求掌握四个常用标准函数的用法难点是格式输出函数printf()掌握程序设计的基本步骤(三部曲)进一步了解语句的概念和分类进一步了解C语言程序的结构1.函数和标准函数C语言:逻辑上,C程序由一组函数组成函数由语句组成,构成一个相对独立功能的程序。标准函数自定义函数(第6章)输入输出函数常用的标准输入输出函数字符输出函数:putchar()键盘输入函数:getchar()格式输出函数:printf()格式输入函数:scanf()使用这组函数前必须要用“文件包含命令”:#include<stdio.h>或#include“stdio.h”功能简单。容易使用功能较强。容易较繁3.1问题提出顺序结构是最简单的一种结构,即按书写的先后顺序执行它所包含的内容。循环结构选择结构顺序结构3种基本结构BA顺序结构中的语句只执行一次3.1问题提出计算机完成一个任务的具体步骤设计程序,也就是设计解题步骤算法01将描述好的算法输入计算机程序输入03编写程序02利用一种计算机能理解的语言来描述算法3.1问题提出图3-1C程序的构成
C程序的构成C语言有九种控制语句。可分成以下三类:(1).条件判断语句:if语句、switch语句;(2).循环执行语句:dowhile语句、while语句、for语句;(3).转向语句:break语句、goto语句(此语句尽量少用)、continue语句、return语句。3.2C语言的基本语句C程序的执行部分是由语句组成的。程序的功能也是由执行语句实现的。C语句:以“;”作分隔符,编译后产生机器指令。控制语句用于控制程序的流程,以实现程序的各种结构方式。它们由特定的语句定义符组成。由表达式加上分号“;”组成。其一般形式为:表达式;执行表达式语句就是计算表达式的值。表达式语句任何表达式都可以加上分号而成为语句。例如:y+z是一个加法表达式y+z;加法运算语句,但计算结果不能保留,无实际意义;i++;自增1语句,i值增1。x=y+z;赋值语句3.2C语言的基本语句由函数调用加上分号“;”组成。其一般形式为:函数名(实际参数表);只有分号“;”组成的语句称为空语句。空语句是什么也不执行的语句。在程序中空语句可用来作空循环体或程序流程的转向点。把多个语句用括号{}括起来组成的一个语句称复合语句。在程序中应把复合语句看成是单条语句,而不是多条语句。函数调用语句空语句复合语句例如:printf(“hello”);scanf(“%d”,&a);复合语句在什么情况下使用复合语句?条件语句和循环语句在语法上只允许带一条语句当分支和循环中需要进行多项操作时{t=x;x=y;y=t;}被当作一条语句来处理2.字符输出函数
(§3.3.1)
程序结果
#include<stdio.h>voidmain(){chara=‘Y';putchar(‘A’);putchar('\n');putchar(a);}AY控制字符,表示换行字符输出函数格式:putchar(字符变量或常量);功能:在显示器上输出单个字符。3.字符输入函数
(§3.3.1)说明:1)没有参数。
2)函数值为接收的字符。通常的用法:作为赋值语句的右部表达式,如,#include<stdio.h>main(){charc;c=getchar();putchar(c);}注意格式:getchar()功能:从标准输入设备(键盘)上输入一个字符假设输入A,则输出结果为:A使用getchar函数应注意几个问题getchar函数只能接受单个字符输入多于一个字符时,只接收第一个字符。输入数字也按字符处理。charc;c=getchar();putchar(c);假设输入123,则输出结果为:14.格式输出函数printf()函数(§3.3.2)功能:向缺省输出设备(显示器)输出数据语法:
printf(格式控制,输出表列)格式控制:包括:普通字符(可打印字符、转义字符):原样输出格式说明:由%符号接格式字符组成,格式字符是含有特定含义的单个字符,它决定数据以何种类型输出。如:%f,%d等。输出表列:是用“,”号隔开的变量或表达式序列,也可以没有。例:printf("a=%d'\n'b=%f",a,b);格式说明个数与输出表达式的个数要一致
可打印字符一组用逗号分隔的表达式转义字符格式说明printf()函数的格式控制字符串printf("a=%d'\n'b=%f",a,b);普通字符:可打印字符(非控制字符):原样输出转义字符(控制字符):执行控制功能
格式说明:说明输出表达式的输出格式格式:%[<修饰符>]
<格式字符>(修饰符:可省略)如要输出可打印字符%,则要用两个%表示:%%。printf()函数的格式字符(表3-2)字符说明举例结果d,i按带符号的十进制整数输出inta=567;printf(“%d”,a);567c按字符型输出chara=65;printf(“%c”,a);Af按小数形式输出实数floata=567.789;printf(“%f”,a);567.789000s按字符串输出printf(“%s”,“ABC”);ABCE,e按指数形式输出实数floata=567.789;printf(“%e”,a);5.677890e+02u按无符号十进制整数输出inta=2;printf(“%u”,a);inta=-2;printf(“%u”,a);265534o按八进制无符号整数输出inta=65;printf(“%o”,a);101X,x按十六进制无符号整数输出inta=255;printf(“%x”,a);ffg按e和f格式中较短的一种输出floata=567.789;printf(“%g”,a);567.789%%输出百分号(%)printf(“%%”);%printf()函数的修饰符用于确定数据输出的宽度、精度、小数位数、对齐方式等,产生更规范整齐的输出修饰符是可选的当没有修饰符时,按系统缺省设定显示。20数据输出类型按长整型输出
对实数,表示小数位数,对字符串,表示截取的字符个数
输出数据总宽度,若小于实际宽度,则按实际宽度输出输出数据总宽度大于实际宽度时,用0补足按左对齐方式输出格式说明开始%-0m.nl<格式字符>3.3.2printf()函数%d按整型数据的实际长度输出。m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。输出长整型数据。%d:用来输出十进制整数。具体用法如下:%md%ldprintf(“%d”,567);输出结果为:567inta=1234;printf(“%8d\n”,a);printf(“%08d\n”,a);printf(“%0+8d\n”,a);输出结果:123400001234+0001234longa=65536;printf(“%d,%8ld\n”,a,a);
输出结果:0,6553616位系统中的运行结果主要修饰符%m.nf:至少输出m列,其中有n位小数若数值宽度小于m,则左端补空格。%-m.nf:至少输出m列,其中有n位小数若数值宽度小于m,则右端补空格。例:整型数据的输出:
inta=1234,c=-1;longb=2269978;printf("%dA\n",a);printf("%8dA\n",a);printf("%-8dA\n",a);printf("%8ldA\n",b);printf("%u,%d\n",c,c);输出结果1234A□□□□1234A1234□□□□A□2269978A65535,-1
3.3.2printf()函数
%c:输出一个字符。也可以指定字段宽度用"%mc"格式输出。printf(“%c\n%3c”,’a’,’a’);输出结果为:aa(此行a之前有2个空格)例:字符型数据的输出。
charc='b';printf("%c,%d",c,c);输出结果:b,98
3.3.2printf()函数
%s:例如:printf("%s","CHINA")输出"CHINA"字符串(不包括双引号)。%ms:输出的字符串占m列,如字符串本身长度大于m,则突破获m的限制,将字符串全部输出。若串长小于m,则左补空格。
%-ms:如果串长小于m,则在m列范围内,字符串向左靠,右补空格。
%m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。
%-m.ns:其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果n>m,则自动取n值,即保证n个字符正常输出。
%s:用来输出一个字符串。具体用法如下:3.3.2printf()函数举例说明
staticchara[]=“Hello,word!”;printf(“%s\n%15s\n%10.5s\n%2.5s\n%.3s\n”,a,a,a,a,a);运行结果:Hello,world!
Hello,world!
HelloHelloHel
3.3.2printf()函数%f:不指定宽度,整数部分全部输出并输出6位小数。%m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。%-m.nf:输出共占n列,其中有n位小数,如数值宽度小于m右端补空格。
%f:用来输出实型数,以小数形式输出。例:实型数据的输出。floatf=123.456;printf("%f\n",f);printf("%10.2f\n",f);printf("%0.2f\n",f);printf("%12.3e\n",f);输出结果:123.456000□□□□123.46123.46□□1.235e+002
3.3.2printf()函数
%e:以指数形式输出实型数。floatf=123.456;printf(“%e,%.2e\n”,f,f);
输出结果:1.234560e+002,1.23e+002%e:数字部分(又称尾数)输出6位小数,指数部分占5位或4位。%m.ne和%-m.ne:m、n和”-”字符含义与前相同。此处n指数据的数字部分的小数位数,m表示整个输出数据所占的宽度。
%g:自动选f格式或e格式中较短的一种输出,且不输出无意义的零。
举例思考(写出程序结果)#include<stdio.h>main(){ floatf1=100.15799,f2=12.55,f3=1.7; intn1=123,n2=45,n3=6;
printf("printfWITHOUTwidth:\n"); printf("%f\n%f\n%f\n",f1,f2,f3); printf("%d\n%d\n%d\n",n1,n2,n3);printf("printfWITHwidth:\n"); printf("%5.2f\n%6.1f\n%3.0f\n",f1,f2,f3); printf("%5d\n%6d\n%3d\n\n",n1,n2,n3);}5.格式输入函数scanf()(§3.3.3)最常用格式:
scanf(格式控制,地址表列)功能:
在标准输入装置(键盘)上按指定格式输入各种类型的数据,分别存放到地址表列给出的变量地址中。地址表列是变量的地址或字符串首地址,因此要加上&符号。格式控制与printf格式输出函数基本相同。scanf("%d,%f”,&a,&b);格式说明地址列表3.3.3scanf()函数普通字符scanf("%d,%f”,&a,&b);格式说明地址列表3.3.3scanf()函数普通字符scanf()的格式字符(表3–3)d输入一个十进制整数常用f输入一个十进制实数常用c输入一个字符常用s输入一个字符串(用于字符数组,第5章)常用o输入一个八进制整数x输入一个十六进制整数e输入一个指数形式的浮点数亲,请注意(6点)哦:
(1)输入数据的间隔用↙、Tab或空格,不能用“,”,系统会自动忽略空格,识别出每一个数据。
scanf(“%d%d”,&a,&b);输入如下:5
6
(5和6中间可以是一个或多个空格的哦!)(2)scanf函数使用地址量接受数据,因而变量前面要加&,表示将键盘输入的数据存放到变量所在的存储单元中。(3)允许在格式控制部分使用%格式字符和普通字符,但普通字符要照原样输入。scanf()的格式控制字符串中普通字符是不显示的,而是规定了输入时必须输入的字符3.3.3scanf()函数中的普通字符scanf("%d,%d",&a,&b);当输入为:1,2。即:a=1,b=2若输入为1
2呢?则将1传给a,因缺少普通字符“,”,对b赋值将以失败告终。亲,普通字符在输入数据也要输入哦!比较好的方法是:printf("pleaseinputaandb:/n");scanf("%d%d",&a,&b);第2章简单的C程序设计注意(6点):(4)指定数据长度时,系统自动截取数据长度。(5)在%后加“*”表示跳过相应的数据。(6)输入数据不能规定精度如scanf("%7.2f",&a);是错误的。例:scanf("%2d%2d",&a,&b);例:scanf("%2d%*3d%2d",&a,&b);当输入123456↙时,12→a,34→b当输入1234567↙时,12→a,67→b用“%c”格式符时,空格和转义字符作为有效字符输入。
例如:scanf(“%c%c%c”,&c1,&c2,&c3);若输入a
b
c,则a传送给c1,空格传送给c2,b传送给c3。6.简单程序设计(§3.4)复习:第1,2讲顺序结构程序:按书写的先后顺序执行各语句
程序设计的三个主要步骤:
分析问题、算法设计、编程调试例1求梯形面积的程序求梯形面积的程序,梯形的上底、下底和高由键盘输入。解题三部曲1.分析输入:梯形的上底a、下底b和高h计算方法(数学知识):梯形面积s=(a+b)×h÷22.算法(顺序结构可以不用流程图)2.1先定义四个实型变量:上底a、下底b、高h、梯形面积s2.2处理过程(顺序结构)输入上底a、下底b和高h;计算s=(a+b)×h÷2输出梯形面积s3编码程序main(){floata,b,h,s;printf("pleaseinputa,b,h:");scanf("%f%f%f",&a,&b,&h);s=0.5*(a+b)*h;printf("a=%5.2fb=%5.2fh=%5.2f",
a,b,h);printf("s=%7.4f",s);}定义变量数据输入结果输出计算面积小结一般,程序包含三部分输入数据计算处理输出数据小结:程序设计三部曲分析(分析问题):根据专业知识,确定解题方案;不要考虑C语言的语法细节流程(算法设计):将解题方案细化出各个处理步骤细化到能用C语言的语句(包括函数)实现注意输入、处理和输出三个环节的逻辑性分析数据,采用合适数据类型表示;无二义性地描述上述处理步骤如,流程图(特别是选择程序段,见第四章)要了解C语言,但也不要考虑C语言的语法细节编码(编程调试):严格遵循语法(要考虑C语言的语法细节),
用C语言的说明和语句描述数据和处理过程例2:已知某同学三门课程的成绩,求平均分1.分析输入:三门课的成绩computer、math、english计算(数学知识):
平均分average=(computer+math+english)/3数据类型:实型2.算法2.1先定义四个实型变量:
computer、math、english、average2.2处理过程(顺序结构)输入三门课成绩;计算average=(computer+math+english)/3输出平均分average3.编程
3.4算法与程序实现已知某同学三门课程的成绩,求平均分。#include<stdio.h>voidmain(){floatyu,shu,wai,average;printf("pleaseinputyu,shu,wai:");scanf("%f,%f,%f",&yu,&shu,&wai);average=(yu+shu+wai)/3.0;printf("theaverageis:%7.2f\n",average);}分析程序亲,请注意:输入分数时要输入,哦!
3.4算法与程序实现根据求根公式,先求b*b-4*a*c的值存入变量d,再调用求平方根函数sqrt(),求出sqrt(d)/(2*a)的值存入q;求出-b/(2*a)的值存入p求方程ax2+bx+c=0的实根。分析完成了,你会编程序吗?分析定义变量a,b,c,x1,x2,d,p,q调用scanf函数输入实数a,b,c,且要求满足a不等于0,b2-4ac>0求方程的根x1、x2,x1=p+q;,x2=p-q;编程调用printf函数输出方程的根
3.4算法与程序实现#include<stdio.h>#include<math.h>main(){floata,b,c,d,x1,x2,p,q;scanf("a=%f,b=%f,c=%f",&a,&b,&c);d=b*b-4*a*c;p=-b/(2*a);q=sqrt(d)/(2*a);x1=p+q;x2=p-q;printf("\n\nx1=%5.2f\nx2=%5.2f\n",x1,x2);}求方程ax2+bx+c=0的实根。你写对了吗?小结:学写简单的顺序结构程序最简单的顺序结构程序的组成一组编译预处理命令一个主函数编译预处理命令如果要使用库函数(标准函数),scnaf()、printf()、getchar()、putchar()等应该使用编译预处理命令,将相应的头文件包含进来:#include<stdio.h>/*注意后面没有“;”*/主函数说明部分:主要定义函数中要用到的一些变量。数据提供部分:主要有scanf()、g
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度建筑设计版权许可合同
- 2024年度物业管理服务合同(含园林绿化)
- 2024年度北京长城旅游区旅游服务合同
- 2024年度环保工程合同标的及服务内容详细描述
- 2024年度学校教室照明改造合同
- 借贷居间合同
- 2024年度网络安全及数据保护合同
- 手术案例宣传
- 2024年度租赁合同:仓库租赁及物流配送合同
- 金融科技区块链投资合同三篇
- 校园足球指导服务投标方案(技术方案)
- 清雪服务合同范本
- DL∕T 1909-2018 -48V电力通信直流电源系统技术规范
- 人教版PEP英语三年级上册 Unit 5 Let's eat!Part A Lets learn 教案
- QB-T 5797-2023 眼镜架 醋酸纤维素板材
- 2024-2030年中国模架租赁行业市场发展现状及投资策略咨询报告
- DB61∕T 400-2016 地理标志产品 富平柿饼
- 2024油茶林承包抚育合同
- 《认知觉醒》- 周岭 - 读书笔记
- 易燃液体持续燃烧试验仪校准规范
- 《内蒙古自治区国土空间规划(2021-2035年)》
评论
0/150
提交评论