C课件:第04章顺序结构程序设计.ppt

上传人:工**** 文档编号:571266202 上传时间:2024-08-09 格式:PPT 页数:24 大小:147KB
返回 下载 相关 举报
C课件:第04章顺序结构程序设计.ppt_第1页
第1页 / 共24页
C课件:第04章顺序结构程序设计.ppt_第2页
第2页 / 共24页
C课件:第04章顺序结构程序设计.ppt_第3页
第3页 / 共24页
C课件:第04章顺序结构程序设计.ppt_第4页
第4页 / 共24页
C课件:第04章顺序结构程序设计.ppt_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《C课件:第04章顺序结构程序设计.ppt》由会员分享,可在线阅读,更多相关《C课件:第04章顺序结构程序设计.ppt(24页珍藏版)》请在金锄头文库上搜索。

1、C+第第4 4章章 顺序结构程序设顺序结构程序设计计n n主要内容主要内容n nC C的语句的语句n n简单的输入输出简单的输入输出n n顺序结构程序设计顺序结构程序设计n n要求:熟练掌握用合适的格式输入要求:熟练掌握用合适的格式输入/ /输出不输出不同类型的数据;会编写简单的程序。同类型的数据;会编写简单的程序。4.1 C语句语句n n了解了解C C的基本语句的基本语句:1. 1.简单语句简单语句简单语句简单语句:又称表达式语句。:又称表达式语句。 在一个表达式的后面加上分号即构成表达式语句,例如在一个表达式的后面加上分号即构成表达式语句,例如 x=0; k+; x=0; k+; prin

2、tf(nprintf(n welcome); welcome);2. 2.复合语句复合语句复合语句复合语句: : 用一对花括号用一对花括号 括起来的多个语句序列,括起来的多个语句序列,有时称为分程序。(见下页例有时称为分程序。(见下页例4.24.2) 注意:复合语句以注意:复合语句以“ “”结束,后面不需再加分号。结束,后面不需再加分号。3. 3. 流程控制语句流程控制语句流程控制语句流程控制语句:用来控制程序中语句的执行顺序。:用来控制程序中语句的执行顺序。C C语言中提供了语言中提供了9 9中流程控制语句(下面的章节将要学中流程控制语句(下面的章节将要学习)习)n n例例例例4. 24.

3、2重复(重复(1010次):输入两个整数,输出两数之和。次):输入两个整数,输出两数之和。main()main() intint a, b, c, n; /* a, b, c, n; /*定义变量语句定义变量语句* */ / for(n=1; n=10; n+) /*for for(n=1; n=10; n+) /*for语句控制重复语句控制重复1010次次* */ / printf(nprintf(n input 2 integers:); /* input 2 integers:); /*提示用户输入提示用户输入* */ / scanf(%d%dscanf(%d%d, &a, &b); /

4、*, &a, &b); /*输入两个整数分别赋给输入两个整数分别赋给a, a, b*/ b*/ c=a+b; /* c=a+b; /*求和并赋给求和并赋给c*/c*/ printf(sumprintf(sum: %dn, c); /*: %dn, c); /*输出和输出和* */ / 4.2 输入输入/输出概述输出概述n n输入输出输入输出输入输出输入输出: :是相对于计算机的主机而言的。是相对于计算机的主机而言的。是相对于计算机的主机而言的。是相对于计算机的主机而言的。 输入输入输入输入是指从计算机的外部设备将数据读入主机,是指从计算机的外部设备将数据读入主机,是指从计算机的外部设备将数据读

5、入主机,是指从计算机的外部设备将数据读入主机,输出输出输出输出是指将是指将是指将是指将数据从主机送到外设(显示器、打印机、磁盘等)。数据从主机送到外设(显示器、打印机、磁盘等)。数据从主机送到外设(显示器、打印机、磁盘等)。数据从主机送到外设(显示器、打印机、磁盘等)。n nC C语言本身没有专门的输入输出语句,输入输出操作是通过语言本身没有专门的输入输出语句,输入输出操作是通过语言本身没有专门的输入输出语句,输入输出操作是通过语言本身没有专门的输入输出语句,输入输出操作是通过函数调用来实现的。编程时必须先将输入输出函数所在的函数调用来实现的。编程时必须先将输入输出函数所在的函数调用来实现的。

6、编程时必须先将输入输出函数所在的函数调用来实现的。编程时必须先将输入输出函数所在的头头头头文件:文件:文件:文件:stdio.hstdio.h 包含进本程序中。使用命令:包含进本程序中。使用命令:包含进本程序中。使用命令:包含进本程序中。使用命令: #include #include stdio.hstdio.h 或或或或 #include #include n n C C语言中的标准输入输出设备约定为用户终端,即键盘和显语言中的标准输入输出设备约定为用户终端,即键盘和显语言中的标准输入输出设备约定为用户终端,即键盘和显语言中的标准输入输出设备约定为用户终端,即键盘和显示器。示器。示器。示器。

7、n n特别说明特别说明特别说明特别说明:调用输入函数时应该明确:数据从哪儿输入(省调用输入函数时应该明确:数据从哪儿输入(省调用输入函数时应该明确:数据从哪儿输入(省调用输入函数时应该明确:数据从哪儿输入(省略为键盘)、以什么格式输入、输入的数据存放在哪里;调略为键盘)、以什么格式输入、输入的数据存放在哪里;调略为键盘)、以什么格式输入、输入的数据存放在哪里;调略为键盘)、以什么格式输入、输入的数据存放在哪里;调用输出函数时应该明确:要输出什么内容、按什么格式输出、用输出函数时应该明确:要输出什么内容、按什么格式输出、用输出函数时应该明确:要输出什么内容、按什么格式输出、用输出函数时应该明确:

8、要输出什么内容、按什么格式输出、输出到哪个设备(省略为显示器)。输出到哪个设备(省略为显示器)。输出到哪个设备(省略为显示器)。输出到哪个设备(省略为显示器)。 4.3 字符输入字符输入/输出函数:输出函数:getchar( ) 和和 putchar( )1. 1.putcharputchar() ()函数:函数: 调用格式:调用格式: putchar(cputchar(c); ); 其中,其中,c c是要输出的字符,它可以是字符型或整型的常是要输出的字符,它可以是字符型或整型的常量和变量。当量和变量。当c c为整型时,其值应是要输出的字符为整型时,其值应是要输出的字符的的ASCIIASCII

9、码,范围是码,范围是0255.0255. 函数功能:函数功能:输出一个字符到显示屏的当前光标处。输出一个字符到显示屏的当前光标处。例例4.3 4.3 输出三个字符:输出三个字符:A*BA*B。#include “#include “stdio.hstdio.h” ” main()main() char c1; char c1; intint c2; c2; c1=A; c2=66; /* c1=A; c2=66; /*给变量给变量c1,c2c1,c2赋值赋值* */ / putcharputchar( n ); /*( n ); /*输出字符输出字符n*/n*/ putchar(c1); pu

10、tchar(c1); /*/*输输出出变变量量c1c1中中的的字字符符:A*/A*/ putcharputchar( * ); /*( * ); /*输出字符输出字符* */* */ putchar(c2); putchar(c2); /*/*输输出出变变量量c2c2中中的的字字符符:B*/:B*/ n n2. 2. getchar()函数:函数: 调用格式:调用格式:调用格式:调用格式: getchar() 函数功能:函数功能:从标准输入设备(一般指键从标准输入设备(一般指键盘)读取一个字符,返回该字符的盘)读取一个字符,返回该字符的ASCIIASCII码码。例例例例4. 4 4. 4 输入

11、两个字符,输出每个字符及其输入两个字符,输出每个字符及其ASCIIASCII码。码。#include #include stdio.hstdio.h main()main() char c, d; char c, d; printf(nprintf(n enter two characters:); /* enter two characters:); /*提示用户提示用户* */ / c= c=getchargetchar( );( ); d= d=getchargetchar( );( ); printf(%c:%dnprintf(%c:%dn, c, c); /*, c, c); /*输

12、出输出c c中的字符及中的字符及ASCIIASCII码码* */ / printf(%c:%dprintf(%c:%d, d, d);, d, d); n n运行结果运行结果: : (在(在TCTC中演示其执行过程)中演示其执行过程) enter two characters:AB enter two characters:AB A:65 A:65 B:66 B:66n n特别提示特别提示特别提示特别提示:从键盘输入数据时,并不是键入一个字从键盘输入数据时,并不是键入一个字符后立即将其送入主机,而是等到按下回车键后,符后立即将其送入主机,而是等到按下回车键后,才能把这一行字符送入计算机的数据缓

13、冲区,然后才能把这一行字符送入计算机的数据缓冲区,然后输入函数从缓冲区的第一个字符开始逐个读取数据。输入函数从缓冲区的第一个字符开始逐个读取数据。只有当缓冲区中无数据可读时,才等待用户输入。只有当缓冲区中无数据可读时,才等待用户输入。 n n思考:思考:(1) (1) 若输入:若输入:a ba b ,结果如何?(注结果如何?(注: ::a, ba, b之间有一个之间有一个空格,空格也是一个字符,与空格,空格也是一个字符,与nn一样是不可见字一样是不可见字符)符)4.4 格式输入格式输入/输出函数输出函数n n1. 1. PrintfPrintf() ()函数的一般调用格式:函数的一般调用格式:

14、 printfprintf( (格式控制字符串格式控制字符串格式控制字符串格式控制字符串 , , 输出表列);输出表列);输出表列);输出表列);例如:例如: printf(nprintf(n enter name:); enter name:);printf(nprintf(n a=%d,b=%f , a, b); a=%d,b=%f , a, b); /* /* 设设intint a=3;float b=5;*/ a=3;float b=5;*/printf(%fprintf(%f, a*b);, a*b);明确:格式控制符、普通字符的作用。明确:格式控制符、普通字符的作用。n n2. 2

15、. ScanfScanf() ()的一般调用格式:的一般调用格式: scanfscanf( (格式控制串,格式控制串,格式控制串,格式控制串, 地址表列);地址表列);地址表列);地址表列); 例如:例如: scanf(%d%fscanf(%d%f ,&a , &b); ,&a , &b); scanf(ascanf(a=%d , b=%f ,&a ,&b); /*=%d , b=%f ,&a ,&b); /*不常用不常用* */ /1. 格式输出函数格式输出函数printf()n n例例4.54.5:打印华氏温度到摄氏:打印华氏温度到摄氏温度的对应表:温度的对应表:华氏温度华氏温度- -摄氏

16、温度摄氏温度 0 -170 -17 20 -6 20 -6 40 4 40 4 60 15 60 15 80 26 80 26 100 37 100 37 120 48 120 48 320 148 320 148分析任务:从华氏温度0到320,每隔20度转换一次,转换的公式为:c = (5/9)(f-32)其中,f为华氏温度,c为摄氏温度#include #include main()main()float float celsiuscelsius; ; intint fahrenheitfahrenheit; ; printf(nprintf(n F C ); F C ); fahrenh

17、eitfahrenheit = 0; = 0; while( while( fahrenheitfahrenheit =300 ) =300 ) celsiuscelsius = 5*( = 5*(fahrenheitfahrenheit 32)/9; 32)/9; printf(nprintf(n %dt%f , %dt%f , fahrenheitfahrenheit , , celsiuscelsius); ); fahrenheitfahrenheit +=20; +=20; n n若要使输出更整齐些(比如若要使输出更整齐些(比如右对齐右对齐右对齐右对齐),可将语句),可将语句 pri

18、ntf(nprintf(n %dt%f , %dt%f , fahrenheitfahrenheit , , celsiuscelsius); );改为:改为: printf(nprintf(n %3dt %6.2f , %3dt %6.2f , fahrenheitfahrenheit , , celsiuscelsius); );其中,其中,%3d%3d的含义为:按整型格式输出,域宽为的含义为:按整型格式输出,域宽为3 3,并且右对齐。并且右对齐。 %6.2f%6.2f的含义为:按实型格式输出,域宽为的含义为:按实型格式输出,域宽为6 6,且小,且小数点后保留数点后保留2 2位小数,右对齐

19、。位小数,右对齐。若将若将%3d%3d改为改为%-3d%-3d则在域宽范围内实现左对齐。则在域宽范围内实现左对齐。具体的格式说明符参见表具体的格式说明符参见表4.14.1和表和表4.24.2例例例例4. 74. 7 输出字符和字符串。输出字符和字符串。 main()main() char char chch=Y;=Y; /* /*定义一个字符数组定义一个字符数组定义一个字符数组定义一个字符数组 s s, 并保存字符串并保存字符串并保存字符串并保存字符串very good*/ very good*/ char s =very good; char s =very good; printf(nch

20、printf(nch: %c, s: %s, : %c, s: %s, chch, s);, s); Result:Result:chch: Y, s: very good: Y, s: very good程序中,输出项程序中,输出项chch、s s与控制项与控制项%c%c、%s%s一一对应,且类型一一对应,且类型匹配匹配。 2. 格式输入函数 Scanf()n n例例例例4. 10 4. 10 用用scanfscanf输入整型数据、实型数据。输入整型数据、实型数据。#include #include main()main() intint a, b; float x, y; a, b; fl

21、oat x, y; scanf(%d%dscanf(%d%d, &a, &b); , &a, &b); scanf(%f,%f,&xscanf(%f,%f,&x, &y); , &y); printf(naprintf(na=%d,b=%d,x=%f,y=%f, a, b, x, y);=%d,b=%d,x=%f,y=%f, a, b, x, y); n n运行结果运行结果: : 12 24 12 24 (1212与与与与2424之间用空格分开)之间用空格分开)之间用空格分开)之间用空格分开) 15,3015,30 ( (注意两数间的逗号)注意两数间的逗号)注意两数间的逗号)注意两数间的逗号)

22、 a=12,b=24,x=15.000000,y=30.000000a=12,b=24,x=15.000000,y=30.000000 n n例例4.124.12:输入某商品的编号(整型)、类别(:输入某商品的编号(整型)、类别(AZAZ字字符型)、价格(实型),并输出该信息。符型)、价格(实型),并输出该信息。n n#include #include main() main() intint num ; char class ; float price ; num ; char class ; float price ; printf(nprintf(n enter number(AZ):)

23、; enter number(AZ):); scanf(%dscanf(%d , &num); , &num); getchargetchar( );( ); printf(nprintf(n enter class: ); enter class: ); class = class = getchargetchar( ); ( ); getchargetchar( );( ); printf(nprintf(n enter price: ); enter price: ); scanf(%fscanf(%f , &price); , &price); getchargetchar();();

24、 printfprintf( no=%d, class = %c, price=%6.2f , no, class, ( no=%d, class = %c, price=%6.2f , no, class, price );price ); 特点:混合输入,有两种处理方法:一是在一个特点:混合输入,有两种处理方法:一是在一个scanfscanf() ()函数中实现所有数据的输入;二是将数值与字符函数中实现所有数据的输入;二是将数值与字符分别输入,而不是用一个分别输入,而不是用一个scanfscanf() ()函数。通常采用第函数。通常采用第二种方法,用第一种方法输入时容易出错。二种方法,用第

25、一种方法输入时容易出错。本程序中分别用本程序中分别用本程序中分别用本程序中分别用scanfscanf() ()和和和和getchargetchar() ()输入编号、价格和输入编号、价格和输入编号、价格和输入编号、价格和类别。类别。类别。类别。并且每次输入后用并且每次输入后用并且每次输入后用并且每次输入后用getchargetchar() () 读取多余的回车符,以免读取多余的回车符,以免读取多余的回车符,以免读取多余的回车符,以免影响后面的正确输入。影响后面的正确输入。影响后面的正确输入。影响后面的正确输入。4.5 顺序结构程序设计举例顺序结构程序设计举例例例例例4. 154. 15 交换两

26、个整型变量的值。交换两个整型变量的值。分析:首先定义程序中要用到的变量,设两个整型变分析:首先定义程序中要用到的变量,设两个整型变量为量为a a、b b。然后设计算法:然后设计算法:输入两个整数输入两个整数a a、b b 交换交换a a、b b的的值值 输出交换后的输出交换后的a a、b b的值。的值。其中,实现其中,实现 的方法有两种:的方法有两种:n n一是用第三个变量一是用第三个变量c c暂存其中一个数,如程序暂存其中一个数,如程序1 1。n n二是不使用第三个变量,利用其中一个变量保存两二是不使用第三个变量,利用其中一个变量保存两数之和,通过减法来实现,如程序数之和,通过减法来实现,如

27、程序2 2。 n n程序程序1 1:main()main() intint a, b, c; a, b, c; printf(nprintf(n enter 2 integers to a, b:); enter 2 integers to a, b:); scanf(%d%dscanf(%d%d, &a, &b);, &a, &b); c=a; a=b; b=c; /* c=a; a=b; b=c; /*交换交换* */ / printf(naprintf(na=%d, b=%d, a, b);=%d, b=%d, a, b); 运行结果运行结果: :enter 2 integers to

28、a, b:4 6enter 2 integers to a, b:4 6 a=6, b=4 a=6, b=4 n n思考思考: :若将三个交换语句的顺序调整,结果如何?若将三个交换语句的顺序调整,结果如何?n n程序程序 2:2:main()main() intint a, b, c; a, b, c; printf(nprintf(n enter 2 integers to a, b:); enter 2 integers to a, b:); scanf(%d%dscanf(%d%d, &a, &b);, &a, &b); a=a+b ; b= a - b ; a=a b; /* a=a+

29、b ; b= a - b ; a=a b; /*交换交换* */ / printf(naprintf(na=%d, b=%d, a, b);=%d, b=%d, a, b); 运行结果同上。运行结果同上。n n例例例例4. 174. 17 输入一个数字符号,并转换成相应的整数输入一个数字符号,并转换成相应的整数输出。如读入字符输出。如读入字符88,转换成整数,转换成整数8 8输出。输出。n n分析:首先定义程序中要使用的变量,设字符变分析:首先定义程序中要使用的变量,设字符变量量chch 存放读入的字符,整型变量存放读入的字符,整型变量d d存放转换后的存放转换后的整数。整数。n n然后设计算

30、法:然后设计算法:输入一个字符给输入一个字符给chch 将字符将字符chch转换成对应的数值转换成对应的数值d d 输出输出d d。其中第二步如何转换呢?利用其中第二步如何转换呢?利用ASCIIASCII码的编码规律:码的编码规律:0 0 ,11,2929的的ASCIIASCII码值是连续的,码值是连续的,即即4848、4949、50575057。因此,只要将数字字符与。因此,只要将数字字符与字符字符00相减,结果就是该字符对应的数值。如相减,结果就是该字符对应的数值。如8800值为值为8 8。 程序:程序:程序:程序:#include #include main()main() char char chch; ; intint d; d; printf(nprintf(n enter a character(09):); enter a character(09):); chch= =getchargetchar( ); /*( ); /*读入一个字符并赋给读入一个字符并赋给读入一个字符并赋给读入一个字符并赋给chch */*/ d=d=chch -0; -0; printf(dprintf(d=%d, d);=%d, d); 作业n n1. 上机练习 14n n2. 习题1, 3

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号