程序设计基础(C语言版)课件 第3章 顺序结构程序设计_第1页
程序设计基础(C语言版)课件 第3章 顺序结构程序设计_第2页
程序设计基础(C语言版)课件 第3章 顺序结构程序设计_第3页
程序设计基础(C语言版)课件 第3章 顺序结构程序设计_第4页
程序设计基础(C语言版)课件 第3章 顺序结构程序设计_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章顺序结构程序设计顺序结构一般而言,顺序结构程序涉及如下三个基本操作:(1)输入数据(2)处理数据通常对应赋值操作(3)输出数据顺序结构的特点按照解决问题的顺序写出相应的语句执行顺序是自上而下,依次按顺序执行2【例】顺序结构#include<stdio.h>intmain(){floatp,q,t;printf("请输入苹果的价格和重量:\n");scanf("%f%f",&p,&q);t=q*p;printf("苹果的总价是:");printf("%f",t);return0;}3顺序结构程序的基本操作输入数据从标准输入设备上输入数据到计算机内存输出数据将计算机内存中的数据送到标准输出设备实现方法:通过调用标准库函数来实现

如:

#include<stdio.h>stdio.h:标准输入输出函数43.1

数据的输入/输出3.2数学库函数3.3顺序结构程序设计本章主要内容printf(格式控制字符串,输出项列表);printf("a=%db=%f",a,b);

函数名可选输出项列表普通字符格式说明63.1数据的输入/输出3.1.1格式化输出函数printf()1.一般格式2.格式字符%ccharacter

以字符形式输出单个字符%sstring

输出一个字符串%ddecimal 以带符号十进制整数输出%ffloat

以小数形式输出浮点数(6位小数)%ooctal 以八进制无符号整数输出(无前导0)%xhex

以十六进制无符号整数输出(无前导0x)%uunsigned 以十进制无符号整数输出%eexponent 以标准指数形式输出(6位小数)%g、%G 选用%f%e中输出宽度较小的一种格式7printf附加格式说明符m表示数据占用的最小宽度数据宽度大于m,按实际宽度输出数据宽度小于m时,补空格n对实数表示输出n位小数对字符串表示最多输出的字符个数l长整型整数,加在d、o、x、u前Llongdouble型数,加在f、e、g前-

改变输出内容的对齐方式,缺省为右对齐经常见到:%5.2f%-8d%lf%8.2s?82.格式字符

1)输出整型数据的格式字符2)输出实型数据的格式字符3)输出字符型数据的格式符4)输出字符串的格式符1)输出整型数据的格式字符%d:按十进制数据的实际长度输出基本整型数据(有符号数)%mdm:可以为整数或负数,|m|为指定输出字段的宽度。当数据位数<|m|时m>0:数据靠右输出,左边补空格(即右对齐)m<0:数据靠左输出,右边补空格(即左对齐)当数据位数>|m|时,按数据的实际位数输出(等同于%d)。intx=12345;printf(“%3d,%6d,%-6d”,x,x,x);10【例1】整型输出#include<stdio.h>intmain(){inta,b;a=123,b=12345;printf("*%d*,*%d*\n",a,b);printf("*%5d*,*%4d*\n",a,b);printf("*%-5d*,*%-4d*\n",a,b);return0;}11整型———不常用(2)%ld:用于输出长整型(long)数据。(3)%o:输出八进制正整数。注意:无论是正是负,输出的都是不带符号的整数,即将符号位也作为数值位输出。用户如何得知是八进制数?使用%#o(4)%x:输出十六进制正整数。注意:x可以是大写X,则输出的数据中的字母A~Z为大写。用户如何得知是十六进制数?使用%#x(5)%u:输出无符号的十进制的正整数。注意:长整型数据可以用以下格式符:

%ld、%lu、%lo、%lx12【例2】整型输出#include<stdio.h>intmain(){inta,b,c;a=10;b=010;c=0x10;printf("%d,%o,%x\n",a,b,c);printf("%d,%d,%d\n",a,b,c);printf("%d,%#o,%#x\n",a,b,c);return0;}%#o,%#x:输出八进制或十六进制的前缀。132)输出实型数据的格式字符——%f%f:输出单、双精度实数,6位小数float:%fdouble:%lf%m.nf%m.nf:输出数据共占m列,小数占n位,左补空格。%-m.nf%.nf14%-m.nf:输出数据共占m列,小数占n位,左补空格。%.nf:整数部分按实际输出,小数占n位。printfFunction-Float#include<stdio.h>main(){intage;floatheight;age=21;height=1.73;printf(“Aliis%dyearsoldandhisheightis%.5fmeters\n”,age,height);}Aliis21yearsoldandhisheightis1.73000meters_age?height?211.73Example:15【例】输出实数(%f)intmain(){ floata=123.456; printf("%f\n",a); printf("%10f\n",a); printf("%10.2f\n",a); printf("%-10.2f\n",a); printf("%.2f\n",a); printf("%.10f\n",a); return0;}16输出实型——%e%e:以指数形式输出实数。doulbe:%le输出数据占13列,格式为:x.xxxxxxe+xxx小数点后6位小数点前1位非0数字3位指数%m.ne:以指数形式输出实数。m是输出数据的列数,n是小数位数。%-m.ne?17【例1】输出实数(%e)#include<stdio.h>intmain(){ floata=123.456; doubleb=123.456789; printf("a=%e\n",a); printf("b=%le\n",b); return0;}18【例2】输出实数(%m.ne)intmain(){ floata=123.456; printf("a=%e\n",a); printf("a=%10e\n",a); printf("a=%10.2e\n",a); printf("a=%10.4e\n",a); printf("a=%.2e\n",a); printf("a=%-10.2e\n",a); return0;}19输出实型(3)——%g%g:自动选取e、f格式中占位较少的一种格式输出,指数输出符号是e。%G:如果输出指数,符号为E。请大家上机时自行验证%g和%G的用法。203)输出字符型数据的格式符%c:输出一个字符。%mc:当m>0,输出字符右对齐;当m<0,输出字符左对齐;用实例来验证一下!21【例】输出字符型数据#include<stdio.h>intmain(){charch1,ch2;ch1='a';ch2='b';printf("%c%c\n",ch1,ch2);printf("%c%c\n",ch1,ch2);printf("字符%5c字符\n",ch1);printf("字符%-5c字符\n",ch1);return0;}22Example:

printf(“Name:%s\nStudentNo:%s”,“AliBakar”,“A92333”);Name:AliBakarStudentNo:A92333_Outputformat234)输出字符串数据的格式符(%s)%s:输出一个字符串。string如:printf("%s","china");printfFunction-StringExample:

printf(“Name:%s\nStudentNo:%s”,“AliBakar”,“A92333”);Name:AliBakarStudentNo:A92333_24输出字符串%ms:输出一个字符串,占m列。当串长>m时,按字符串实际长度输出;当串长<m时,串靠右输出,左边补空格。%-ms?%m.ns:输出一个字符串,占m列,但只取串的左边n个字符,靠右输出,左边补空格。n>m时?%-m.ns?%.ns:只输出字符串的左边n个字符。25【例】输出字符串#include<stdio.h>intmain(){ printf("%3s\n","china"); printf("%7.2s\n","china"); printf("%2.3s\n","china"); printf("%-5.3s\n","china"); printf("%.4s\n","china"); return0;}26Printf格式控制符使用较多的格式符:%d%f

%c %s%md:数据占的宽度,通常为了对齐。%.nf:表示保留n位小数。27格式:scanf(格式控制字符串,地址参数列表);

scanf("%d,%f”,&a,&b);非格式字符输入数据以“,”

分隔,没有时可以空格、Tab或回车分隔输入数据地址列表格式字符指定输入数据格式283.1.2格式化输入函数scanf()1.一般格式2.scanf()的用法格式适用类型格式适用类型%dint%ffloat%ldlongint%efloat(指数)%uunsignedint%lfdouble%luunsignedlong%ledouble(指数)%o,%lo8进制整数%cchar%x,%lx16进制整数%sstring(字符串)29常用的scanf格式字符d以带符号十进制形式输入整型数据f以小数形式输入浮点数c以字符形式输入单个字符s输入字符串,以非空字符开始,遇第一个空白字符结束e以标准指数形式输入o以八进制无符号形式输入(无前导0)x以十六进制无符号形式输入(无前导0x)301)整型、实型数据的输入输入数据的格式与scanf的控制格式必须一致。【例2】scanf(“%d,%d”,&a,&b);正确的输入为:4,5或4,5不正确的输入为:45或4↙5【例3】scanf(“a=%d,b=%d”,&a,&b);正确的输入为:a=4,b=5不正确的输入为:4,5或45【例1】scanf(“%d%d”,&a,&b);正确的输入为:45或4↙5或4制表符5不正确的输入为:45312)字符型数据的输入当有字符输入的时候:scanf(“%d%c”,&a,&b);正确的输入为:123m不正确的输入为:123mscanf(“%c%d”,&a,&b);正确的输入为:m123或m123或m↙123此时会把空格当成字符读入,m不会被读入。32特殊情况----格式控制符加*#include<stdio.h>intmain(){ inta,b; printf("Pleaseinputaandb:"); scanf("%2d%*2d%2d",&a,&b); printf("a=%d,b=%d,a+b

=

%d\n",a,b,a+b); return0;}Pleaseinputaandb:a=12,b=56,a+b=68123456↙跳过一个输入项33#include<stdio.h>main(){ inta,b; scanf("%d

%d",&a,&b); printf("a=%d,b=%d\n",a,b);}问题6:设计程序使得用户可以以任意字符(回车、空格、制表符、逗号、其它)作为分隔符进行数据的输入%*c34特殊情况----格式控制符加*#include<stdio.h>main(){ inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}

问题5:限定用户输入数据为以下格式为12↙34↙

同时要求程序输出结果为a="12",b="34"\"%d\",b=

\"%d\"特殊情况----输出双引号35课堂练习-11、在给整型变量i输入值之前,先提示“i=”,正确的写法是()A.scanf(“%d”,&i);B.scanf(“i=%d”,&i);C.printf(“i=%d”,&i);D.printf(“i=”);scanf(“%d”,&i);

36D课堂练习-22、下面程序的输出结果是()。#include<stdio.h>intmain(){floatx=14.2786;printf(“x=%3.2f\n”,x);return0;}A.x=14.3

B.x=14.000000C.x=14.27D.x=14.28 37D格式输入函数常见错误scanf("%d,%f\n”,&a,&b);scanf("%d,%f”,a,b);scanf("%7.2f",&a);383.1.3字符的输入输出—getchar()和putchar()字符输入函数getchar()从输入设备上输入一个字符一般形式:ch=getchar(),ch是一个字符变量。字符输出函数putchar()向输出设备输出一个字符一般形式:putchar(ch)

ch可以是字符常量、字符变量、转义字符,也可以是整形常量和整型变量(通常是0-255)391.getchar()函数一次输入一个字符例:#include<stdio.h>intmain(){

chara,b,c;

a=getchar();b=getchar();c=getchar();

printf(“%c%c%c\n”,a,b,c);return0;}要连续输入三个字符,若中间输入空格,则会把空格赋值给b402.putchar()有参数,一次输出一个字符参数可以是字符常量、字符变量、转义字符,也可以是整形常量和整型变量(通常是0-255)#include<stdio.h>intmain(){

charch;intx;

ch=‘a’;x=65;

putchar(ch);putchar(98);putchar(‘\n’);

putchar(x);putchar(66);putchar(‘\n’);return0;}程序运行结果:abAB41注意事项:putchar()当putchar()参数是整型时,它只将整数的低8位转换为字符输出。如:putchar(365),输出结果为“m”相当于输出putchar(109),对应字符m。01101101109(十进制)101101101365(十进制)42课堂练习-3写出下面程序段的运行结果:{charch1,ch2;ch1=getchar();ch2=ch1-‘a’+’A’;putchar(ch1);putchar(ch2);return0;}注:运行时输入字母b43程序运行结果:bB3.2数学库函数pow()函数:计算xydoublepow(doublex,doubley)【例3-17】我国古代著作《庄子》中记载道:“一尺之棰,日取其半,万世不竭”。其含义是:对于一尺的东西,今天取其一半,明天取其一半的一半,后天再取其一半的一半的一半总有一半留下,所以永远也取不尽。请编写一个程序,使其可以计算出一条长为m的绳子,在n天之后剩下的长度。

#include<stdio.h>#include<math.h>intmain(){intn;floatm;printf("请输入绳长和天数:");scanf("%f%d",&m,&n);printf("%d天后剩下的长度为:%.3f\n",n,m*pow(0.5,n));return0;}计算x的绝对值:intabs(intx)计算平方根时,可以调用sqrt()函数,函数的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论