三种基本控制结构上

上传人:无*** 文档编号:153011082 上传时间:2022-09-17 格式:PPT 页数:77 大小:3.16MB
收藏 版权申诉 举报 下载
三种基本控制结构上_第1页
第1页 / 共77页
三种基本控制结构上_第2页
第2页 / 共77页
三种基本控制结构上_第3页
第3页 / 共77页
资源描述:

《三种基本控制结构上》由会员分享,可在线阅读,更多相关《三种基本控制结构上(77页珍藏版)》请在装配图网上搜索。

1、第第3章章 三种基本控制结构三种基本控制结构E3.1 算法算法 3.2 C C语句语句 3.3 数据输入与输出数据输入与输出 3.4 结构化的程序设计方法结构化的程序设计方法一、算法的概念一、算法的概念Pascal之父沃思之父沃思(Nikiklaus Wirth)提出提出一个公式:一个公式:数据结构数据结构+算法算法=程序程序数据结构:数据结构:各种数据的类型和组织形式各种数据的类型和组织形式算法:算法:处理数据的思路和步骤处理数据的思路和步骤更准确的表述:更准确的表述:程序程序=算法算法+数据结构数据结构+程序设计方法程序设计方法+语言语言环境环境灵灵魂魂加工加工对象对象工工具具结构化程序设

2、计结构化程序设计(顺序、循环、选择)(顺序、循环、选择)种种树树种树的步骤种树的步骤方法:挖坑、方法:挖坑、放树苗、填土、放树苗、填土、浇水等浇水等各种各种树苗树苗种树的规划种树的规划按行、列种树?按行、列种树?一圈圈种?一圈圈种?交叉种?交叉种?土地、土地、铁锹等铁锹等算法的实质就是解决:算法的实质就是解决:做什么?怎么做?做什么?怎么做?因此算法是指解决一个问题的方法和步骤。因此算法是指解决一个问题的方法和步骤。注意:解决同一个问题的算法有可能不唯一。注意:解决同一个问题的算法有可能不唯一。算法的特性算法的特性:有穷性:即在有限步内结束;有穷性:即在有限步内结束;确定性确定性:算法的每一个

3、步骤不能含糊;算法的每一个步骤不能含糊;有零个或多个输入;有零个或多个输入;有一个或多个输出;有一个或多个输出;有效性;算法中的每一步骤都能有效地执行,并得到有效性;算法中的每一步骤都能有效地执行,并得到确定的结果确定的结果 计算机算法可分为两类计算机算法可分为两类数值算法:数值运算的目的是求数值解,如求平方、求定积分等。研究深入,算法 成熟,“数学程序库”math.h。非数值算法:最常见的是用于事务管理领 域,如排序和检索(查找)。参考已有类 似算法,重新设计。二、算法的表示方法二、算法的表示方法自然语言自然语言(通俗易懂(通俗易懂,文字冗长文字冗长,容易有容易有“歧义性歧义性”)流程图流程

4、图(灵活(灵活,自由自由,形象形象,直观直观,易理解易理解,占篇幅大)占篇幅大)N-S图图(新型流程图(新型流程图,简洁)简洁)伪代码伪代码(介于自然语言和计算机语言之间(介于自然语言和计算机语言之间,中英文皆可,格式中英文皆可,格式自由自由,易修改易修改,不直观不直观,不容易发现逻辑错误)不容易发现逻辑错误)计算机语言计算机语言(用计算机实现算法(用计算机实现算法,可以执行出结果可以执行出结果,比如比如 C 语言)语言)问题一:有两个杯子问题一:有两个杯子a和和b,分别放有酱油和,分别放有酱油和醋,试着将两个杯子中的液体进行互换。醋,试着将两个杯子中的液体进行互换。baC醋醋酱油酱油XX酱油

5、酱油醋醋酱油酱油【例例3.1】用自然语言描述交换算法用自然语言描述交换算法 拿一个空杯子拿一个空杯子c c,将,将a a中的酱油倒入中的酱油倒入c c中。中。将将b b中的醋倒入中的醋倒入a a中。中。将将c c中暂存的酱油倒入中暂存的酱油倒入b b中。中。问题二:有三个牧师和三个野人过河,只问题二:有三个牧师和三个野人过河,只有一条能装下两个人的船,在河的任何一有一条能装下两个人的船,在河的任何一方或者船上,如果野人的人数大于牧师的方或者船上,如果野人的人数大于牧师的人数,那么牧师就会有被吃掉的危险。请人数,那么牧师就会有被吃掉的危险。请找出一种安全的渡河方案。找出一种安全的渡河方案。用自然

6、语言描述渡河算法用自然语言描述渡河算法 两个野人先过河,一个野人回来。两个野人先过河,一个野人回来。再两个野人过河,一个野人回来。再两个野人过河,一个野人回来。两个牧师过河,一个野人和一个牧师回来。两个牧师过河,一个野人和一个牧师回来。两个牧师过河,一个野人回来。两个牧师过河,一个野人回来。两个野人过河,一个野人回来。两个野人过河,一个野人回来。两个野人过河。两个野人过河。【例【例3.2】用流程图和用流程图和N-S图描述交换算法图描述交换算法流程图是在各种需要的处理流程图是在各种需要的处理框中描述要执行的操作,框中描述要执行的操作,然后使用连接线将处理框然后使用连接线将处理框连接起来的算法表示

7、方式。连接起来的算法表示方式。流程图符号有:流程图符号有:用流程图描述交换算法用流程图描述交换算法 三种基本结构三种基本结构v顺序结构 v选择(选取、分支)结构 v循环(重复)结构 当(while)型循环结构 直到型(Until)循环abAB顺序结构BAPab成立不成立APb成立不成立a选择结构P1Aba成立当型循环结构P2Aba成立不成立直到型循环开始结束年份nn能被4整除n能被100整除n能被400整除打印n“是润年”打印n“不是润年”打印n“不是润年”打印n“是润年”例:判断闰年的算法判断闰年的算法yyyN-SN-S图是将全部算法写在一个矩形框图是将全部算法写在一个矩形框内,矩形框内划分

8、成一些小框,框与内,矩形框内划分成一些小框,框与框之间可以有前后顺序关系、选择关框之间可以有前后顺序关系、选择关系和从属关系。系和从属关系。用用N-S图描述交换算法:图描述交换算法:【例例3.3】用伪代码描述交换算法用伪代码描述交换算法假设假设0 0表示酱油,表示酱油,1 1表示醋表示醋中文方式:中文方式:开始开始 定义杯子定义杯子a a,并设置初值为,并设置初值为0 0 定义杯子定义杯子b b,并设置初值为,并设置初值为1 1 定义杯子定义杯子c c a c a c b a b a c b c b 结束结束假设假设0 0表示酱油,表示酱油,1 1表示醋表示醋英文方式:英文方式:begin d

9、efine a,0 a define b,1 b define c a c b a c b end【例【例3.4】用用C语言实现交换算法语言实现交换算法#include /*文件包含文件包含*/int main()/*主函数主函数*/int a=0;/*定义变量定义变量a表示杯子表示杯子a,并初始,并初始 化为化为0,表示存放酱油,表示存放酱油*/int b=1;/*定义变量定义变量b表示杯子表示杯子b,并初始,并初始 化为化为1,表示存放醋,表示存放醋*/int c;/*定义新杯子定义新杯子*/c=a;/*c和和a中都是中都是0*/a=b;/*a和和b中都是中都是1*/b=c;/*b和和c中

10、都是中都是0*/*输出输出a和和b,检验是否完成交换,检验是否完成交换*/printf(“a:%d b:%dn”,a,b);return 0;/*返回语句返回语句*/总结两个变量的交换算法总结两个变量的交换算法不能完成交换:不能完成交换:a=b;b=a;b a43333出出 错错总结两个变量的交换算法总结两个变量的交换算法完成交换:完成交换:temp=a;a=b;b=temp;b a43temp443正正 确确 如何判断一个算法(程序)的优劣?如何判断一个算法(程序)的优劣?需要考虑两个方面的问题:需要考虑两个方面的问题:一、保证算法正确:如果一个算法对其每一个输一、保证算法正确:如果一个算法

11、对其每一个输入实例,都能输出正确的结果并停止,则称它入实例,都能输出正确的结果并停止,则称它是正确的。是正确的。二、选择高质量算法:依据时空复杂度(时间复二、选择高质量算法:依据时空复杂度(时间复杂度、空间复杂度),一般来说,希望采用简杂度、空间复杂度),一般来说,希望采用简单的和运算步骤少的方法。单的和运算步骤少的方法。课堂练习课堂练习请分别用各种方式描述以下题目要求的算法,并用请分别用各种方式描述以下题目要求的算法,并用C语言实现以下算法。语言实现以下算法。有三个整数,分别输出其中的最大值和最小值。有三个整数,分别输出其中的最大值和最小值。第第3章章 三种基本控制结构三种基本控制结构 3.

12、1 算法算法E3.2 C C语句语句 3.3 数据输入与输出数据输入与输出 3.4 结构化的程序设计方法结构化的程序设计方法C程序的结构程序的结构C语言程序由一个或多个源程序文件(简称源文件)语言程序由一个或多个源程序文件(简称源文件)构成,每个源文件又由一个或者多个函数加上相关构成,每个源文件又由一个或者多个函数加上相关的变量构成。因此源程序的基本组成单位是函数。的变量构成。因此源程序的基本组成单位是函数。函数体可分为内部变量定义部分和可执行语句(简函数体可分为内部变量定义部分和可执行语句(简称语句)两部分。称语句)两部分。可执行语句(简称语句)是程序最基本的执行单位,可执行语句(简称语句)

13、是程序最基本的执行单位,程序就是通过执行一系列语句实现其功能的。程序就是通过执行一系列语句实现其功能的。C语言中的语句有多种形式语言中的语句有多种形式(1)表达式语句:表达式加分号。)表达式语句:表达式加分号。例如例如:a=b 是一个赋值表达式,是一个赋值表达式,加上分号加上分号 a=b;就是赋值语句。就是赋值语句。(2)函数调用语句:由一次函数调用加一个分号构函数调用语句:由一次函数调用加一个分号构成一个语句。成一个语句。例如例如:printf(“HelloWorld!”);调用调用printf函数的语句。函数的语句。(3)控制语句:用于控制程序的流程,)控制语句:用于控制程序的流程,以实现

14、程序以实现程序的各种结构。主要有以下几种:的各种结构。主要有以下几种:1.选择语句,也称为分支语句:选择语句,也称为分支语句:if()else2.多分支语句:多分支语句:switch()case 3.循环语句:循环语句:for()、while()、dowhile()4.辅助控制语句(与分支和循环语句搭配使用):辅助控制语句(与分支和循环语句搭配使用):continue、break、goto5.返回语句(若函数本身需要得到一个结果,就必返回语句(若函数本身需要得到一个结果,就必须由须由return语句将结果返回):语句将结果返回):return(4)复合语句:用)复合语句:用“”将一些语意相关的

15、语句括将一些语意相关的语句括起来构成复合语句,又称为块或语句块。起来构成复合语句,又称为块或语句块。例如:例如:if(a b)a+;b+;用大括号括起来的就是用大括号括起来的就是 复合语句,表示如果复合语句,表示如果ab成立,成立,a+和和b+都要执行。都要执行。(5)空语句:只有一个分号的语句,它什么也不做。)空语句:只有一个分号的语句,它什么也不做。有时作为控制结构的某个部分。有时作为控制结构的某个部分。例如:例如:if(a b);当当ab时执行分号表示的空语句。时执行分号表示的空语句。第第3章章 三种基本控制结构三种基本控制结构 3.1 算法算法 3.2 C C语句语句E3.3 数据输入

16、与输出数据输入与输出 3.4 结构化的程序设计方法结构化的程序设计方法数据输入和输出示意图数据输入和输出示意图显示器打印机计算机输 出键盘扫描仪输 入.光盘鼠标输 出输 出输 入输 入一、一、printf函数函数(print+format 格式输出格式输出)作用:向系统指定的输出设备(一般指显示器)作用:向系统指定的输出设备(一般指显示器)输出若干个任意类型的数据。输出若干个任意类型的数据。使用格式为:使用格式为:printf(格式控制,输出表列)(格式控制,输出表列);例如:例如:printf(“i=%d,c=%cn”,i,c);格式控制包含三部分内容格式控制包含三部分内容格式字符:格式字符

17、:%后面加格式字符,按照指定格式后面加格式字符,按照指定格式 输出变量、常量或表达式的值。输出变量、常量或表达式的值。转义字符:按照转义字符的含义控制输出内容转义字符:按照转义字符的含义控制输出内容普通字符:原样输出,增强结果的可读性普通字符:原样输出,增强结果的可读性1.d(i)格式符:输出十进制有符号整数。格式符:输出十进制有符号整数。格式格式功能功能%d按十进制整型数据格式和数据的实际长度输出按十进制整型数据格式和数据的实际长度输出%ld按长整型数据格式和数据的实际长度输出按长整型数据格式和数据的实际长度输出%hd按短整型数据格式和数据的实际长度输出按短整型数据格式和数据的实际长度输出%

18、(-)md%(-)mld%(-)mhdm指定输出字段的宽度。如果十进制数据的位数指定输出字段的宽度。如果十进制数据的位数小于小于m,则左端补空格,则左端补空格(若若m前面有负号,则右端前面有负号,则右端补空格补空格);否则按实际长度输出;否则按实际长度输出【例例3.5】将整型变量按照十进制指定格式输出。将整型变量按照十进制指定格式输出。#include int main()int a=65535;printf(n,a);printf(n,a);printf(n,a);return 0;2.o 格式符:输出八进制整数,输出的第一格式符:输出八进制整数,输出的第一 位是符号位。位是符号位。格式格式

19、功能功能%o按八进制整型数据格式和数据的实际长度输出按八进制整型数据格式和数据的实际长度输出%lo按八进制长整型数据格式和数据的实际长度输出按八进制长整型数据格式和数据的实际长度输出%ho按八进制短整型数据格式和数据的实际长度输出按八进制短整型数据格式和数据的实际长度输出%(-)mo%(-)mlo%(-)mhom指定输出字段的宽度。如果八进制数据的位数指定输出字段的宽度。如果八进制数据的位数小于小于m,则左端补空格,则左端补空格(若若m前面有负号,则右端前面有负号,则右端补空格补空格);否则按实际长度输出;否则按实际长度输出【例例3.6】将整型变量按照八进制指定格式输出。将整型变量按照八进制指

20、定格式输出。#include int main()int a=65535;printf(n,a);printf(n,a);printf(n,a);return 0;3.x 格式符:输出十六进制整数,输出的第格式符:输出十六进制整数,输出的第一位是符号位一位是符号位,也可以写为也可以写为X。格式格式功能功能%x按十六进制整型数据格式和数据的实际长度输出按十六进制整型数据格式和数据的实际长度输出%lx按十六进制长整型数据格式和数据的实际长度输出按十六进制长整型数据格式和数据的实际长度输出%hx按十六进制短整型数据格式和数据的实际长度输出按十六进制短整型数据格式和数据的实际长度输出%(-)mx%(-

21、)mlx%(-)mhxm指定输出字段的宽度。如果十六进制数据的位数小指定输出字段的宽度。如果十六进制数据的位数小于于m,则左端补空格,则左端补空格(若若m前面有负号,则右端补空前面有负号,则右端补空格格);否则按实际长度输出;否则按实际长度输出【例例3.7】将整型变量按照十六进制指定格式输出。将整型变量按照十六进制指定格式输出。#include int main()int a=65535;printf(n,a);printf(n,a);printf(n,a);return 0;注意:注意:%d%o%0 x 是按整型数据在内存中的二进是按整型数据在内存中的二进制存储格式进行十进制、八进制、十六进

22、制换算后制存储格式进行十进制、八进制、十六进制换算后的格式输出。的格式输出。4.u 格式符:输出无符号型十进制数据。格式符:输出无符号型十进制数据。格式格式功能功能%u按无符号整型数据格式和数据的实际长度输出按无符号整型数据格式和数据的实际长度输出%lu按无符号长整型数据格式和数据的实际长度输出按无符号长整型数据格式和数据的实际长度输出%hu按无符号短整型数据格式和数据的实际长度输出按无符号短整型数据格式和数据的实际长度输出%(-)mu%(-)mlu%(-)mhum指定输出字段的宽度。如果无符号数据的位数小指定输出字段的宽度。如果无符号数据的位数小于于m,则左端补空格,则左端补空格(若若m前面

23、有负号,则右端补空前面有负号,则右端补空格格);否则按实际长度输出;否则按实际长度输出【例例3.8】将整型变量按照指定无符号格式输出。将整型变量按照指定无符号格式输出。#include int main()int a=-1;printf(n,a);printf(n,a);printf(n,a);return 0;5.c 格式符:输出一个字符。格式符:输出一个字符。格式格式功能功能%c按字符类型数据格式输出按字符类型数据格式输出%(-)mc m指定输出字段的宽度。如果字符的长度指定输出字段的宽度。如果字符的长度小于小于m,则左端补空格,则左端补空格(若若m前面有负号,前面有负号,则右端补空格则右

24、端补空格);否则按实际长度输出;否则按实际长度输出【例例3.9】将字符按不同格式输出函数。将字符按不同格式输出函数。#include int main()int i=97;char c=A;/*将整型变量将整型变量i分别以整型格式、字符格式输出分别以整型格式、字符格式输出*/printf(%5d%5cn,i,i);/*将字符变量将字符变量c分别以整型格式、字符格式输出分别以整型格式、字符格式输出*/printf(%-5d%-5cn,c,c);return 0;6.s 格式符:输出一个字符串。格式符:输出一个字符串。格式格式功能功能%s去掉双引号,输出双引号内的字符串去掉双引号,输出双引号内的字

25、符串%(-)msm指定输出字段的宽度。如果字符串的长度小于指定输出字段的宽度。如果字符串的长度小于m,则左端补空格则左端补空格(若若m前面有负号,则右端补空格前面有负号,则右端补空格);否则按实际长度输出否则按实际长度输出%m.ns输出占输出占m列,但只取字符串左端的列,但只取字符串左端的n个字符,这个字符,这n个字符输出在个字符输出在m列的右侧,左补空格列的右侧,左补空格%-m.ns输出占输出占m列,但只取字符串左端的列,但只取字符串左端的n个字符,这个字符,这n个字符输出在个字符输出在m列的左侧,右补空格列的左侧,右补空格【例例3.10】将字符串按不同格式输出函数。将字符串按不同格式输出函

26、数。#include int main()printf(n,CHINA);printf(n,CHINA);printf(n,CHINA);printf(n,CHINA);printf(n,CHINA);return 0;7.f 格式符:输出实数(包括单、双精度),格式符:输出实数(包括单、双精度),以小数形式输出。以小数形式输出。格式格式功能功能%f、%lf 按实数格式输出,整数部分全部输出,并输出按实数格式输出,整数部分全部输出,并输出6位位小数小数%m.nf%m.nlfm指定输出数据共占指定输出数据共占m列,其中有列,其中有n位小数。如果位小数。如果数值长度小于数值长度小于m,则左端补空格

27、;否则按实际长,则左端补空格;否则按实际长度输出度输出%-m.nf%-m.nlfm指定输出数据共占指定输出数据共占m列,其中有列,其中有n位小数。如果位小数。如果数值长度小于数值长度小于m,则右端补空格;否则按实际长,则右端补空格;否则按实际长度输出度输出8.e(E)格式符:以指数形式输出实数(包格式符:以指数形式输出实数(包括单、双精度),也可以写为括单、双精度),也可以写为E。格式格式功能功能%e、%le有的有的c编译系统自动指定给出编译系统自动指定给出6位小数,指数部分占位小数,指数部分占5位,其位,其中中“e”占占1位,指数符号占位,指数符号占1位,指数占位,指数占3位位(例如例如e+

28、002)。数。数值按规范化指数形式输出值按规范化指数形式输出(即小数点前必须有而且只有即小数点前必须有而且只有1位非位非零数字零数字)%m.ne%m.nlem指定输出数据共占指定输出数据共占m列,其中有列,其中有n位小数。如果数值长度位小数。如果数值长度小于小于m,则左端补空格;否则按实际长度输出,则左端补空格;否则按实际长度输出%-m.ne%-m.nlem指定输出数据共占指定输出数据共占m列,其中有列,其中有n位小数。如果数值长度位小数。如果数值长度小于小于m,则右端补空格;否则按实际长度输出,则右端补空格;否则按实际长度输出9.g(G)格式符:输出实数,根据数格式符:输出实数,根据数值大小

29、,自动选择值大小,自动选择 f 格式或格式或e 格式(选格式(选择输出时占宽度较小的一种),且不输择输出时占宽度较小的一种),且不输出无意义的零。出无意义的零。【例例3.11】将实型变量按照指定格式输出。将实型变量按照指定格式输出。#include int main()printf(n,3.141592653589);printf(n,3.141592653589);printf(n,3.141592653589);printf(n,3.141592653589);printf(n,3.141592653589);printf(n,3.141592653589);printf(n,3.1415

30、92653589);printf(n,3.141592653589);printf(n,3.141592653589);return 0;【例例3.12】格式说明中包含不同的普通字符。格式说明中包含不同的普通字符。#include int main()int i=0;char c=A;/*调用格式输出函数调用格式输出函数*/printf(i=%d,c=%cn,i,c);/*输出结果输出结果 i=0,c=A*/printf(%d,%cn,i,c);/*输出结果输出结果 0,A*/printf(%d%cn,i,c);/*输出结果输出结果 0 A*/printf(%d%cn,i,c);/*输出结果输

31、出结果 0A*/return 0;二、二、scanf函数函数(scan+format 格式输入格式输入)作用:从系统指定的输入设备(键盘)按地址输入若干个任意作用:从系统指定的输入设备(键盘)按地址输入若干个任意类型的数据。类型的数据。使用格式为:使用格式为:scanf(格式控制,地址表列)(格式控制,地址表列);例如:例如:scanf(“%d”,&a);接收用户从键盘输入的数据按接收用户从键盘输入的数据按照整型格式存入照整型格式存入a变量的内存地址中。变量的内存地址中。注注 意:意:(1)scanf 函数中的函数中的“格式控制格式控制”后面应当是地址。后面应当是地址。例如:例如:scanf(

32、“%d,%d”,a,b);/*错误错误*/scanf(“%d,%d”,&a,&b);/*正确正确*/(2)如果在)如果在“格式控制格式控制”字符串中除了格式说明以外还字符串中除了格式说明以外还有其他字符,那么在输入数据时应输入与这些字符相有其他字符,那么在输入数据时应输入与这些字符相同的字符。同的字符。例如:例如:scanf(“%d,%d”,&a,&b);正确输入形式为:正确输入形式为:3,4 scanf(“a=%d,b=%d”,&a,&b);正确输入形式为:正确输入形式为:a=3,b=4 为简单起见,可以在格式控制中只写控制字符,输入为简单起见,可以在格式控制中只写控制字符,输入时数据之间以

33、空格字符、按时数据之间以空格字符、按“回车键回车键”(Enter)或)或“跳格跳格”键键(tab)作为间隔。作为间隔。scanf(“%d%d”,&a,&b);有多种正确的输入形式:有多种正确的输入形式:1.34 (表示空格键表示空格键 表示回车键)表示回车键)2.34 (可以有多个空格)(可以有多个空格)3.3 (回车)(回车)4 (3)scanf的格式控制中不能包含格式字符。的格式控制中不能包含格式字符。例如:例如:scanf(“%d%dn”,&a,&b);/*错误错误,不能在格式控制中包含不能在格式控制中包含n*/(4)若从键盘读入若从键盘读入double类型变量的值,只能使用类型变量的值

34、,只能使用%lf,而不能使用,而不能使用%f。例如:例如:double d;scanf(“%f”,&d);/*错误错误,不能按照不能按照%f的格式输入的格式输入d值值*/scanf(“%lf”,&d);/*正确正确*/(5)在用)在用“%c”格式输入字符时,空格字符和格式输入字符时,空格字符和“转义转义字符字符”都作为有效字符输入。都作为有效字符输入。例如:例如:scanf(“%c%c%c”,&c1,&c2,&c3);输入:输入:abc 则则:字符字符a送给送给c1,空格字符,空格字符 送给送给c2,字符,字符b送给送给c3。scanf(“%c%c%c”,&c1,&c2,&c3);正确输入形式

35、为:;正确输入形式为:abc scanf(“%c%c%c”,&c1,&c2,&c3);正确的输入形式为:正确的输入形式为:abc(6)输入数据时,在遇以下情况时认为该数据结束:)输入数据时,在遇以下情况时认为该数据结束:1.遇空格,或按遇空格,或按“回车回车”或或“跳格跳格”(tab)键;键;2.按指定的宽度结束,如按指定的宽度结束,如“%3d”,只取,只取3列;列;3.遇非法输入。遇非法输入。例如例如:scanf(“%d%c%f”,&a,&b,&c);若入;若入:1234a123A.26 结果:结果:a接收到接收到1234,b接收到接收到a,c接收到接收到123。课堂练习课堂练习1.若有若有

36、int a,b,c;scanf(%d%d%d,&a,&b,&c);使使a得到值得到值1,b得到值得到值2,c得到值得到值3,下面输入形,下面输入形式中不正确的两项是(式中不正确的两项是()。)。(A)123 (B)1,2,3 (C)12 3 (D)1 2 3 A B 2.若有若有int a,b;scanf(%d,%d,&a,&b);使使a得到值得到值6,b得到值得到值5,下面输入形式中,下面输入形式中正确的是(正确的是()。)。(A)6,5 (B)6 5 (C)65 (D)6 5 A3.若有若有int a,b,c;scanf(a=%d,b=%d,c=%d,&a,&b,&c);使使a得到值得到值

37、1,b得到值得到值2,c得到得到3,下面输,下面输入形式中正确的是(入形式中正确的是()。)。(A)1,2,3 (B)12 3 (C)a=1,b=2,c=3 (D)1 2 3 C4.有有char c1,c2;scanf(%c%c,&c1,&c2);若要若要c1得到字符得到字符A,c2得到字符得到字符B,正确的输入格式为(正确的输入格式为()。)。(A)A B (B)A,B (C)A B (D)A B C5.有有 int a;double b;以下以下scanf正确的是正确的是()。)。(A)scanf(“%x,%lf”,&a,&b);(B)scanf(“%d,%lf”,a,b);(C)scan

38、f(“%d,%f”,&a,&b);(D)scanf(“%d,%.2f”,&a,&b);A6.有有int x;double y;scanf(%3d%lf,&x,&y);从键盘输入从键盘输入123456789 则则x和和y的值分别为的值分别为()。)。(A)12345 6789.000000 (B)123 45.000000 (C)345 6789.000000 (D)123 6789.000000 B7.以下程序的输出结果是以下程序的输出结果是()。)。#include int main()int x=0 xabc,y=0 xdef;y-=x;printf(“%xn”,y);(A)0 xabc

39、(B)abc return 0;(C)-abc (D)-0 xabc (E)0 x333 (F)333F8.找出下面语句中的找出下面语句中的4处错误处错误float a;scanf(“%dn”,a);printf(“%dn”,a);三、三、putchar函数函数(字符输出函数字符输出函数)作用:在显示器上输出单个字符。作用:在显示器上输出单个字符。使用格式为:使用格式为:putchar(字符变量或字符常量字符变量或字符常量);例如:例如:putchar(ch);在屏幕上输出字符变量在屏幕上输出字符变量 ch的值。的值。注意:注意:(1)字符可以是单个普通字符或者转义字符。)字符可以是单个普通字

40、符或者转义字符。(2)对字符变量)对字符变量ch执行:执行:putchar(ch);与与 printf(“%c”,ch);两者等价。两者等价。四、四、getchar函数函数(字符输入函数字符输入函数)作用:在键盘上输入单个字符。作用:在键盘上输入单个字符。使用格式为:使用格式为:字符变量字符变量=getchar();例如:例如:ch=getchar();接收用户在键盘输入的一个字符赋给接收用户在键盘输入的一个字符赋给ch变量。变量。注意:注意:(1)不管输入多少字符,)不管输入多少字符,getchar只能接收一只能接收一个字符(输入的第个字符(输入的第1个字符)。个字符)。(2)对字符变量)对

41、字符变量ch执行:执行:ch=getchar();与与 scanf(“%c”,&ch);两者等价。两者等价。【例例3.13】使用输入输出函数。使用输入输出函数。#include int main()char ch1,ch2;printf(请输入字符请输入字符:);ch1=getchar();ch2=getchar();printf(输出字符输出字符:);putchar(ch1);putchar(ch2);putchar(n);return 0;程序结果分析:程序结果分析:(1)从键盘输入)从键盘输入ab ,字符变量,字符变量ch1中存入中存入 字符字符a,ch2中存入字符中存入字符b。(2)从

42、键盘输入)从键盘输入abc ,字符变量,字符变量ch1中存中存 入字符入字符a,ch2中存入字符中存入字符b。多余的字符多余的字符c不被接收。不被接收。(3)从键盘输入)从键盘输入ab ,字符变量,字符变量ch1中中 存入字符存入字符a,ch2中存入空格字符中存入空格字符 。(4)从键盘输入)从键盘输入a ,字符变量,字符变量ch1中存入中存入 字符字符a,ch2中存入回车字符中存入回车字符n。第第3章章 三种基本控制结构三种基本控制结构 3.1 算法算法 3.2 C C语句语句 3.3 数据输入与输出数据输入与输出E3.4 结构化的程序设计方法结构化的程序设计方法结构化的程序设计结构化的程序设计1.模块化设计(写书)模块化设计(写书)语义相关的语句语义相关的语句语句块语句块 段落段落 连接紧密的语句和语句块连接紧密的语句和语句块函数函数 小节小节功能相关的函数功能相关的函数功能模块功能模块 章章多个功能模块多个功能模块 程序程序 书书

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!