大学C语言第3章 顺序结构_第1页
大学C语言第3章 顺序结构_第2页
大学C语言第3章 顺序结构_第3页
大学C语言第3章 顺序结构_第4页
大学C语言第3章 顺序结构_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、第第3 3章章 顺序结构程序设计顺序结构程序设计Hi, everyone!3.13.1C C程序的基本结构及程序的基本结构及C C语句的种类语句的种类3.23.2数据输入数据输入/ /输出的实现输出的实现3.33.3标准输出函数标准输出函数printfprintf函数函数3.43.4标准输入函数标准输入函数scanfscanf函数函数3.5 3.5 字符输入字符输入/ /输出函数输出函数3.63.6顺序结构程序设计举例顺序结构程序设计举例第3章 顺序结构程序设计3.1 C3.1 C程序的基本结构及程序的基本结构及C C语句的种类语句的种类 顺序结构顺序结构:是由若干条按先后顺序执行的语句构是由

2、若干条按先后顺序执行的语句构成的。成的。 选择结构选择结构:是由一个或多个条件来确定所要执行是由一个或多个条件来确定所要执行的语句,又称为分支结构。根据实际情况可分为的语句,又称为分支结构。根据实际情况可分为二支或多支。二支或多支。 循环结构:循环结构:是当满足某种循环条件时反复执行某是当满足某种循环条件时反复执行某段程序,直到不满足循环条件为止。段程序,直到不满足循环条件为止。3.1.1 3.1.1 结构化程序的三种基本结构结构化程序的三种基本结构1表达式语句和空语句表达式语句和空语句表达式语句是由表达式语句是由表达式加分号(表达式加分号(;)构造的一种简单语句。构造的一种简单语句。任何一种

3、合法的表达式加分号都可构成表达式语句。例如:任何一种合法的表达式加分号都可构成表达式语句。例如:int a=1,b=2;a*b+5; (算术表达式语句)(算术表达式语句)a!=b*2; (关系表达式语句)(关系表达式语句)!b|a& b; (逻辑表达式语句)(逻辑表达式语句)b=a-2; (赋值表达式语句)(赋值表达式语句)ba?a:b; (条件表达式语句)(条件表达式语句)a=5,b=7,a+b; (逗号表达式语句)(逗号表达式语句)空语句是一种空语句是一种只有分号只有分号而无表达式的特殊语句。而无表达式的特殊语句。空语句的功空语句的功能是不做任何操作,它只是形式上的语句,它是能是不

4、做任何操作,它只是形式上的语句,它是C语句中最简语句中最简单的语句。单的语句。3.1.2 C3.1.2 C语句的种类语句的种类3.1.2 C3.1.2 C语句的种类语句的种类2 2复合语句复合语句复合语句是由两条或两条以上的语句用花括号复合语句是由两条或两条以上的语句用花括号()括起来的语句序列。复合语句是相对于单)括起来的语句序列。复合语句是相对于单条语句而言的。复合语句通常可以出现在允许单条语句而言的。复合语句通常可以出现在允许单语句出现的地方,复合语句可以等价于一条语句。语句出现的地方,复合语句可以等价于一条语句。 a=a+b; a=a*15; b=10;3 3分支语句分支语句分支语句可

5、以实现选择结构,分支语句可以实现选择结构,C C语言提供了两语言提供了两种分支语句,一种是条件语句,另一种是开关语种分支语句,一种是条件语句,另一种是开关语句,使用它们可以实现多种分支结构。句,使用它们可以实现多种分支结构。3.1.2 C3.1.2 C语句的种类语句的种类4 4循环语句循环语句循环语句可以实现循环结构。循环语句可以实现循环结构。C C语言提供了三语言提供了三种循环语句:种循环语句:whilewhile循环语句、循环语句、do-whiledo-while循环语循环语句和句和forfor循环语句。循环语句。5 5转向语句转向语句执行转向语句时,系统转去执行指定的语句。执行转向语句时

6、,系统转去执行指定的语句。C C语言提供的转向语句有推出语句语言提供的转向语句有推出语句breakbreak,继续语,继续语句句continuecontinue,无条件转向语句,无条件转向语句gotogoto。使用这些语。使用这些语句将给程序增加灵活性和方便性。句将给程序增加灵活性和方便性。 3.2 3.2 数据输入输出的实现数据输入输出的实现 C C语言的输入输出是由输入和输出语言的输入输出是由输入和输出函数函数实现的,如实现的,如printfprintf和和scanfscanf函数函数,putchar,putchar和和getchargetchar函数函数,gets,gets和和putsp

7、uts函数。函数。 C C函数库是由函数库是由c c语言自带的语言自带的,并已编译成目标文件。,并已编译成目标文件。连接时会与源程序编译得到的目标文件相连接,生连接时会与源程序编译得到的目标文件相连接,生成目标程序。成目标程序。 使用使用C C函数库时,用预编译命令函数库时,用预编译命令#include#include将相关的将相关的“头文件头文件”包括到用户的源文件中,放在程序的开包括到用户的源文件中,放在程序的开头。头。 #include #include 或或 #include #include “stdio.hstdio.h” 标准输入输出库函数的头文件是标准输入输出库函数的头文件是“

8、stdio.hstdio.h”3.3 3.3 标准输出函数标准输出函数printfprintf函数函数printfprintf函数函数(格式输出函数):按指定的格式向输出设备(格式输出函数):按指定的格式向输出设备输出指定的数据,可以是输出指定的数据,可以是若干个任意类型若干个任意类型的数据。的数据。1. printf的一般格式的一般格式 printf(“格式控制字符串格式控制字符串”,输出项列表输出项列表); 格式控制字符串格式控制字符串总是由总是由% %和和格式字符串格式字符串构成并用双引号括构成并用双引号括起来,它指定了与其对应的输出表列项的输出格式,如数起来,它指定了与其对应的输出表列

9、项的输出格式,如数据类型、形式、长度、小数位数。形式为据类型、形式、长度、小数位数。形式为: : %格式字符串格式字符串例如,例如, “%d” ,“%0.3f” ,“%ld” 非格式字符串在输出时原样照印,在显示中起提示作用。非格式字符串在输出时原样照印,在显示中起提示作用。3.3 3.3 标准输出函数标准输出函数printfprintf函数函数1. printf的一般格式的一般格式 printf(“格式控制字符串格式控制字符串”,输出项列表输出项列表);输出表列输出表列中给出了各个输出项,中给出了各个输出项, 要求格式字符和各输出要求格式字符和各输出项在数量、类型上应该一一对应项在数量、类型

10、上应该一一对应 。例如例如: printf(“%d %d”, a, b);10 66 printf(“a = %d, b =%c”, a, b); a=10,b=B2. Printf 常用格式字符串常用格式字符串格式字符形式:格式字符形式: %标志标志输出最小宽度输出最小宽度.精度精度长度长度类型类型例:例:%d %3c %-10.2f %5ld 方括号方括号中的项为可选项。对不同类型的数据用不同的格式中的项为可选项。对不同类型的数据用不同的格式字符。字符。格式字符形式:格式字符形式: % 标志标志输出最小宽度输出最小宽度.精度精度长度长度 类型类型(1 1)类型)类型类型字符用以表示输出数据

11、的类型,其格式符和意义如下:类型字符用以表示输出数据的类型,其格式符和意义如下:格式字符格式字符字符意义字符意义 d 以十进制形式输出带符号整数以十进制形式输出带符号整数(正数不输出符号正数不输出符号) o 以八进制形式输出无符号整数以八进制形式输出无符号整数(不输出前缀不输出前缀O) x 以十六进制形式输出无符号整数以十六进制形式输出无符号整数(不输出前缀不输出前缀OX) u 以十进制形式输出无符号整数以十进制形式输出无符号整数 f 以小数形式输出单、双精度实数以小数形式输出单、双精度实数 e 以指数形式输出单、双精度实数以指数形式输出单、双精度实数 g 以以%f%e中较短的输出宽度输出单、

12、双精度实数中较短的输出宽度输出单、双精度实数 c 输出单个字符输出单个字符 s 输出字符串输出字符串 3.3 printf3.3 printf函数常用格式字符函数常用格式字符#include void main() printf(%d,%ldn,10,10); printf(%o,%xn,10,10); printf(%#o,%#xn,10,10); printf(%f,%lfn,12.5,12.5); printf(%g,%en,12.5,12.5); printf(1234567890n); printf(-n); printf(%s,%c,%dn,abcd,A,A);格式字符形式:格式字

13、符形式: % 标志标志输出最小宽度输出最小宽度.精度精度长度长度 类型类型(2 2)标志)标志 标志字符标志字符 标标 志志 意意 义义 - 结果左对齐,右边填空格结果左对齐,右边填空格 + 输出符号输出符号 # 对对c c,s s,d d,u u类无影响;对类无影响;对o o类,在输出类,在输出时加前缀时加前缀0 0;对;对x x类,在输出时加前缀类,在输出时加前缀0 x0 x;对;对e,g,f e,g,f 类当结果有类当结果有小数时才给出小数点小数时才给出小数点(3 3)输出最小宽度)输出最小宽度 用十进制整数来表示输出的最少位数。用十进制整数来表示输出的最少位数。 若实际位数多于若实际位

14、数多于定义的宽度,则按实际位数输出,定义的宽度,则按实际位数输出, 若实际位数少于定义的宽若实际位数少于定义的宽度则补以空格或度则补以空格或0 0。3.3 printf3.3 printf函数常用格式字符函数常用格式字符格式字符形式:格式字符形式: % % 标志标志输出最小宽度输出最小宽度. .精度精度长度长度 类型类型(4 4)精度)精度 精度格式符以精度格式符以“. .”开头,后跟十进制整数。本项的意义是:开头,后跟十进制整数。本项的意义是: 如果输出数字,则表示小数的位数;如果输出数字,则表示小数的位数; 如果输出的是字符,如果输出的是字符, 则表示输出字符的个数;若实际位数大则表示输出

15、字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。于所定义的精度数,则截去超过的部分。(5 5)长度)长度长度格式符为长度格式符为h,lh,l两种,两种,h h表示按短整型量输出,表示按短整型量输出,l l表示按长整型表示按长整型量输出。量输出。如:如:%d,%5d,%o,%x,%f,%lf,%5.4lf,%e,%c,%8c 3.3 printf3.3 printf函数常用格式字符函数常用格式字符例例3.1 3.1 printfprintf函数应用举例函数应用举例#include void main()printf(a=%-3d,a=%+3dn,2+3,5); printf(%6.3

16、s,%3sn,abcde,KKK); printf(%-6.3s,%3sn,abcde,KKK); printf(%.3s,%3sn,abcde,KKK); printf(%-.3s,%3sn,abcde,KKK); printf(x=%4.2f%n,0.5);1 1格式控制字符串中,格式说明与输出项从左到右在类型上格式控制字符串中,格式说明与输出项从左到右在类型上必须一一对应匹配。如不匹配,将使数据不能正确输出,且必须一一对应匹配。如不匹配,将使数据不能正确输出,且此时系统并不报错。特别要注意长整型数据输出时,一定要此时系统并不报错。特别要注意长整型数据输出时,一定要使用使用%ld%ld格式

17、说明,不能遗漏字母格式说明,不能遗漏字母“l l”。2 2在格式控制字符串中,格式说明与输出项的个数应该相同。在格式控制字符串中,格式说明与输出项的个数应该相同。如果格式说明的个数少于输出项的个数,多余的输出项不予如果格式说明的个数少于输出项的个数,多余的输出项不予输出;如果格式说明的个数多于输出项的个数,则对于多余输出;如果格式说明的个数多于输出项的个数,则对于多余的格式将输出不定值(或的格式将输出不定值(或0 0值)。值)。3 3在格式控制字符串中,除了合法的格式说明外,可以包含在格式控制字符串中,除了合法的格式说明外,可以包含任意的合法字符(包括转义字符),这些字符在输出时将任意的合法字

18、符(包括转义字符),这些字符在输出时将“原样输出原样输出”。3. 3. 调用调用PrintfPrintf函数时注意事项函数时注意事项4printf中各输出表达式的求值是从右向左进行的。例如,中各输出表达式的求值是从右向左进行的。例如,有以下语句:有以下语句:int i=0;printf(%d,%d,%dn,i+=3,i+=2,i+=1);i先赋值为先赋值为0,由于,由于printf中各输出表达式的求值是从右向左中各输出表达式的求值是从右向左进行,所以输出为:进行,所以输出为:6,3,1 3. 3. 调用调用PrintfPrintf函数时注意事项函数时注意事项scanf函数函数(格式输入函数)(

19、格式输入函数):按用户指定的格式从键盘上把:按用户指定的格式从键盘上把数据输入到指定的变量之中。数据输入到指定的变量之中。格式格式: scanf(“格式控制字符串格式控制字符串”,输入项地址列表),输入项地址列表)“格式控制字符串格式控制字符串”通常只包含格式转换说明符,含义与通常只包含格式转换说明符,含义与printf类似。类似。输入项地址列表输入项地址列表中给出各变量的地址。地址是由地址运算符中给出各变量的地址。地址是由地址运算符“&”后跟变量名组成的。后跟变量名组成的。 3.4 3.4 标准输入函数标准输入函数scanfscanf函数函数3.4 3.4 标准输入函数标准输入函数s

20、canfscanf函数函数格式格式: scanf(“格式控制字符串格式控制字符串”,输入项地址列表),输入项地址列表)例如:例如:scanf(%d%c%f,&x,&y,&z);void main() int a,b,c; printf(input a,b,c:n); s c a n f ( % d % d % d , & a , & b , & c ) ; p r i n t f ( a = % d , b = % d , c = % d , a , b , c ) ; 输入数据时,两个数输入数据时,两个数之间以一个或多个之间以一个或多个空空格格

21、间隔,也可以用回间隔,也可以用回车键车键EnterEnter、跳格键、跳格键TabTab。(1)scanf函数中函数中“格式控制格式控制”后面应是后面应是变量地址变量地址,而,而不仅是变量。不仅是变量。(2)如果)如果“格式控制格式控制”字符串中字符串中还有其它字符还有其它字符,输入输入时应原样输入。时应原样输入。 如语句:如语句:scanf(“a=%d, b=%d”, &a, &b); 输入:输入:a=12, b=23(3) 在用在用“%c”格式输入字符时,格式输入字符时,空格字符和空格字符和“转义转义字符字符”都作为有效字符输入。都作为有效字符输入。 scanf(“%c%c

22、%c”, &c1, &c2, &c3); a b c /*实际上只输入了实际上只输入了a b(a空格空格b)*/调用调用scanf函数时注意事项函数时注意事项 (4)在输入数据时,遇以下情况该数据认为结束:)在输入数据时,遇以下情况该数据认为结束:空格、回车或空格、回车或“跳格跳格”Tab。遇宽度结束,如遇宽度结束,如“%3d”,只取,只取3列。列。遇非法输入。遇非法输入。例:例: scanf(“%d%c%f”, &a, &b, &c);输入:输入:1234a123o.26结果:结果:1234a ab 123c(5)”*”格式符表示:本输入项在读

23、入后不赋给相应的变格式符表示:本输入项在读入后不赋给相应的变量。量。例:例:scanf(“%d%3d,%c,%*d,%f”,&a,&b,&c,&d,&e);调用调用scanf函数时注意事项函数时注意事项3.5 3.5 字符输入字符输入/ /输出函数输出函数例:例:#include void main() char a, b, c; a=B; b=O; c=Y; putchar(a); putchar(b); putchar(c); putchar(101); putchar(); putchar(015);. putchar函数函数(字符输出函数)(字符

24、输出函数) 功能:在显示器上输出功能:在显示器上输出一个一个字符。字符。 一般形式:一般形式: putchar(参数)参数); 参数可是字符型或整型变量、常量(转义符)参数可是字符型或整型变量、常量(转义符)输出结果输出结果:BOYA回车回车例:例:#includevoid main() char c; c=getchar(); putchar(c); putchar(getchar();2. getchar函数函数(字符输入函数)(字符输入函数)功能:从键盘输入功能:从键盘输入一个一个字符字符。形式:形式:getchar(); / /* *无参数无参数* */ /用法:构成赋值语句用法:构成

25、赋值语句, ,将输入的字符赋给一个变量。将输入的字符赋给一个变量。可将可将getchar()函数置于程序函数置于程序中中,实现暂停功能。如实现暂停功能。如: . . getchar(); . .3.6 3.6 顺序结构程序设计举例顺序结构程序设计举例#include void main() float C, F; printf(“请输入一个华氏温度请输入一个华氏温度n”); scanf(“%f”, &F); C=(5.0/9)*(F-32); printf (“华氏温度华氏温度%f转换为摄氏温度为:转换为摄氏温度为:%.2fn”, F,C); 不用不用5.0而用而用5会使结会使结果为果

26、为0,为什么?,为什么?例例1 1 输入一个华氏温度,输出摄氏温度。输入一个华氏温度,输出摄氏温度。公式为:公式为:C=(5/9)(F-32)3.6 3.6 顺序结构程序设计举例顺序结构程序设计举例#include void main() char c1, c2; c1=getchar(); printf(%c,%dn, c1,c1); c2=c1+32; printf(%c,%dn, c2,c2); 例例3.63.6 由键盘输入一个大写字符,要求改用小写字符输出。由键盘输入一个大写字符,要求改用小写字符输出。#include “stdio.h”void main() int a, b, temp; printf(“Input a and b:”); scanf(“%d%d”, &a, &b); printf(“old a=%d,b=%

温馨提示

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

评论

0/150

提交评论