大连医科大学中山学院《C语言程序设计》课件-第3-4章顺序程序设计_第1页
大连医科大学中山学院《C语言程序设计》课件-第3-4章顺序程序设计_第2页
大连医科大学中山学院《C语言程序设计》课件-第3-4章顺序程序设计_第3页
大连医科大学中山学院《C语言程序设计》课件-第3-4章顺序程序设计_第4页
大连医科大学中山学院《C语言程序设计》课件-第3-4章顺序程序设计_第5页
已阅读5页,还剩53页未读, 继续免费阅读

下载本文档

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

文档简介

第3章顺序程序设计

语句

3.1数据的输入与输出

3.2顺序结构程序设计

3.3大连医科大学中山学院《C语言程序设计》第2章介绍了程序设计中用到的一些基本要素,如常量、变量、运算符以及表达式等,这些是构成C程序的基本成分。本章将介绍编写程序所必需的一些内容:C语句、数据的输入与输出。最后,通过编写简单的顺序结构程序来巩固所学知识。【学习目标】·了解语句的概念及其构成·掌握字符数据的输入与输出·掌握格式输入与输出·掌握编写简单的顺序结构程序的方法3.1语句3.1.1表达式语句3.1.2空语句3.1.3复合语句3.1.4函数调用语句3.1.5控制语句3.1语句C程序是由函数构成的,而函数则是由语句构成的。一个实用的程序应当包含若干语句。语句是编程者根据实际需要编写的代码行,用来向计算机系统发出操作指令,并完成一定的操作任务。一个C程序应包括数据描述(由声明部分来实现)和数据操作(由执行部分即语句来实现)。数据描述主要定义数据结构(用数据类型表示)和数据初值,例如:“inta=10,b,c,m;”。数据操作的任务是对已提供的数据进行加工,例如:“m=a*b*c;”等。3.1.1表达式语句在一个表达式的后面加一个分号“;”就构成表达式语句。最常见的表达式语句是由赋值表达式加分号构成的赋值语句。3.1.2空语句只有1个分号的语句称为空语句。3.1.3复合语句由一对大括号“{}”把若干语句括起来的一组语句称为复合语句。3.1.4函数调用语句与表达式语句相似,在函数调用表达式后面加分号就构成了函数调用语句。这也是C语言中结构化程序设计的主要实现思路。相关知识将在稍后的章节中详细讲述。3.1.5控制语句控制语句用于控制C程序的执行流程。C语言中共有如下9种流程控制语句。·

if()….else:条件语句。·

for():循环语句。·

while():循环语句。·

do…while():循环语句。·

continue:结束本次循环语句。·

break:中止执行switch语句或循环语句。·

switch:多分支选择语句。·

goto:转向语句。·

return:从函数返回语句。3.2数据的输入与输出3.2.1字符输入/输出函数3.2.2格式化输入/输出函数C语言本身不提供输入/输出语句,输入/输出操作主要由标准输出函数和标准输入函数来实现的,这类函数都是系统提供的库函数。在使用C语言库函数时,要用预编译命令“#include”将有关“头文件”包括到用户源文件中。在前面所有案例开始时都有这样的预编译命令:“#include<stdio.h>”。它表示在程序中要调用标准输入/输出库函数。所谓“标准输入/输出函数”就是以标准的输入/输出设备(一般为终端设备,例如键盘和显示器)为输入/输出对象的函数。其中包括如下内容。(1)字符输入/输出函数putchar()(输出一个字符)和getchar()(输入一个字符)。(2)格式输入输出函数scanf()(格式输入)和printf()(格式输出)。(3)字符串输入/输出函数gets()(输入字符串)和puts()(输出字符串)。3.2.1字符输入/输出函数字符输入/输出函数用于处理单个字符,主要包括getchar()和putchar()两个函数。字符输入/输出函数是C标准输入/输出函数库中最简单也最容易理解的输入/输出函数。1.字符输入函数getchar()getchar()函数的功能是接收从终端(或系统默认指定的输入设备)输入的1个字符,它没有参数。其基本格式为getchar();2.字符输出函数putchar()putchar()函数的作用是向终端输出一个字符。其基本格式为putchar(c);其用途是输出字符变量c的值,参数c通常为字符型变量或整型变量,也可以是1个字符常量或整型常量。3.2.2格式化输入/输出函数getchar()和putchar()函数只能输入和输出字符,而且只能处理单个字符,因此在应用上具有很大的局限性。scanf()和printf()函数的作用是向终端(或系统默认指定的输出设备)输出若干个任意类型的数据,而且格式多样。1.格式输出函数printf()printf()函数的一般格式为printf(格式控制,输出表列);例如:printf("%d,%c\n",a,ch);2.格式输入函数scanf()scanf()函数可以用来输入任何类型的多个数据。3.3顺序结构程序设计C语言是结构化程序语言,C程序中包含3种典型结构:顺序结构、选择结构和循环结构。下面首先介绍顺序结构,在稍后的章节中将依次介绍选择结构和循环结构。顺序结构是3种基本结构中最简单的一种,通常也是一个程序中最基本、最常见的结构形式,其主要特点如下。(1)程序中的语句按照书写的先后顺序依次执行。(2)程序中的各条语句必须被执行一次而且仅执行一次。(3)程序执行过程中没有语句之间的跳转以及对某些语句反复执行等操作。习题一、选择题1.根据定义和数据的输入方式,输入语句的正确形式为

。定义:floatx,y;数据的输入方式:3.14-12.5A.scanf("%f,%f",&x,&y);B.scanf("%f%f",&x,&y);C.scanf("%f%f",x,y);D.scanf("%3.2f%2.1f",&x,&y);习题2.用语句scanf("%c%c%c",&c1,&c2,&c3)输入a└┘b└┘c时,变量c1,c2,c3的值分别为

。A.'a','b','c' B.'a','b','└┘'C.'a','└┘','b' D.'a','└┘','c'3.Putchar()函数可以向终端输出一个

。A.整型变量表达式值 B.实型变量值C.字符串 D.字符或字符型变量值4.若x,y均为int型数据,z为double型数据,则以下的scnaf()函数调用语句中不合法的是

。A.scanf("%d%lx,%le",&x,&y,&z);B.scanf("%2d*%d%lf",&x,&y,&z);C.scanf("%x%*d%o",&x,&y);D.scanf("%x%o,%6.2f",&x,&y,&z);习题5.假设定义intx;floaty;且执行“scanf("%3d%f",&x,&y);”语句时,从第1列开始输入数据12345└┘└┘67↓,则x和y的值分别为

。A.12345,不确定 B.123,45.000000C.45,678.000000 D.345,123.0000006.以下说法正确的是

。A.输入项可以为一个实型常量,例如:scanf("%f",3.5);B.只有格式控制而没有输入项时,也能够进行正确输入,例如:scanf("a=%d,b=%d");C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,例如:scanf("%4.2f",&f);D.当输入数据时,必须指明变量的地址,例如:scanf("%f",&f);7.若定义a1,a2为int型数据,c1,c2为char型数据,且“scanf("%d%c%d%c",&a1,&c1,&a2,&c2);”,则正确的输入格式为

。A.10A└┘20B<回车> B.10└┘A└┘20└┘B<回车>C.10└┘A20B<回车> D.10A20└┘B<回车>8.假设x和y均为float型变量,则以下赋值语句中不合法的是

。A.x=+1 B.y=(x%2)/10C.x*=y+8 D.x=y=0二、填空题1.C语言的表达式后加一个

就构成表达式语句。2.getchar()用于

,putchar()函数用于

。3.printf()可以输出

类型的数据,scanf()函数必须给出变量的

。4.下述程序的输出是

。#include<stdio.h>voidmain(){intx=-2345;floaty=12.3;printf("%6d,%06.2F",x,y);}5.下述程序的输出结果是

。#include<stdio.h>voidmain(){printf("\n%s","\tab\%L'\''\060\084\\");}6.变量a,b,c均为整型,以下语句借助中间变量t把a,b和c中的值进行交换,且交换原则为:将b的值给a,c中的值给b,a中的值给c,在横线处完成补充。________;a=b;b=c;________;7.下列程序的运行结果为

。#include<stdio.h>voidmain(){charc1='a',c2='b',c3='c';printf("a%cb%c\tc%c\n",c1,c2,c3);}三、简答题1.C语言中的语句分为哪几类?2.简述表达式与表达式语句的区别以及它们各自的用途。3.C语言有哪些输入/输出函数?简述它们各自的用途。4.scanf()函数与printf()函数各有哪些格式字符及附加格式说明符?简述它们各自的使用方法。5.顺序结构有何特点?四、操作题1.若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1='a',c2='b'。想得到以下的输出格式和结果,请写出程序(包括定义变量类型和设计输出)。要求输出的结果如下:a=└┘└┘3└┘└┘└┘└┘b=4└┘└┘c=└┘5x=1.200000,y=2.4000000,z=-3.600000x+y=└┘3.60└┘└┘y+z=-1.20└┘└┘z+x=-2.40u=└┘51274└┘└┘n=└┘└┘└┘128765c1='a'└┘or└┘97(ASCII)c2='B'└┘or└┘98(ASCII)2.编写一程序,输入三角形的三边长,求三角形面积。3.设圆半径r=3,圆柱体高为h=2.5,求圆周长、圆面积和圆柱体积。用scanf()函数输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字,请编程序。4.编一程序,从键盘上输入学生的5门课程成绩,求其总成绩、平均成绩和总成绩除5的余值。第4章选择程序设计

条件选择语句—if语句

4.1多分支选择语句—switch结构

4.2

选择结构是C语言程序中的一种重要结构形式,这种程序结构通过条件判断的方法有选择性地执行部分程序语句,大大提高了程序的灵活性,并强化了程序的功能。我们在编写C程序时通常都要使用到选择结构,以设计出结果多样化的程序。正确掌握选择结构的使用方法是学习C程序设计的一项基本要求。【学习目标】·理解C语言中各类控制语句的执行过程、功能和使用方法·掌握if语句的3种形式、if和else配对规则及if语句的嵌套·能正确地使用switch语句设计多分支选择结构4.1条件选择语句——if语句4.1.1if语句的第1种形式——if结构4.1.2if语句的第2种形式——if-else结构4.1.3if语句的第3种形式——if-elseif-else结构在日常生活中,经常遇到这样的情况:只有满足一定条件时才能做某一件特定的事情,否则就不能做这件事情转而去完成其他任务。例如,只有担任学生干部的学生才能被评为优秀学生干部,否则只能被评为优秀学生;只有高考成绩达到某一较高录取分数线的学生才能升入重点大学,否则只能升入一般大学,甚至还可能失去继续学习的机会。使用if语句构成的选择结构在C语言中应用最为广泛,是C程序中的重要结构单元。根据实现功能和实现形式的差异,if语句包括以下3种形式。·

if结构:根据一定条件选择执行一条(或一组)语句。·

if-else结构:根据一定条件从两条(或两组)语句中选择执行一条(或一组)语句。·

if-elseif-else结构:根据一定条件从多条(或多组)语句中选择执行一条(或一组)语句。下面将分别介绍这3种if语句的设计方法。4.1.1if语句的第1种形式——if结构if结构是最简单的选择结构,首先判断一个条件,当条件满足时,执行对应的语句(组),否则跳过该语句(组)。图4-1if语句执行流程图(1)if结构的格式为if(表达式)语句(2)if语句的执行流程如图4-1所示。(3)if语句结构的执行过程如下。首先判断表达式的值,如果其值为“真(非0)”则执行语句(或语句组),然后执行后续语句;如果其值为“假(0值)”则跳过语句(或语句组),然后执行后续语句。4.1.2if语句的第2种形式——if-else结构if-else语句可以实现双分支结构,可以根据条件成立与否从两个语句(组)中选取一个来执行。(1)if-else结构的格式为if(表达式)语句1;else语句2;其中,语句1称为if子句,语句2称为else子句,这种if子句与else子句配套的语句叫做if-else语句。在程序运行过程中,根据表达式的值真假与否,从两个子句中选取一个子句执行。(2)if-else结构的流程图如图4-2所示。(3)if-else结构的执行过程如下。首先判断表达式的值,如果其值为“真(非0)”则执行语句1(或语句组1),然后执行后续语句;如果其值为“假(0值)”则执行语句2(或语句组2),然后执行后续语句。图4-2if-else结构的流程图if-else结构用于根据条件满足与否从两条(或两组)语句中选择执行一条(或一组)语句。先看以下的案例程序。4.1.3if语句的第3种形式——if-elseif-else结构前面已讲述了if语句的两种基本使用形式,使用if结构可以根据条件满足与否跳过部分语句;使用if-else结构可以根据条件满足与否从两组语句中选择执行其中的一组。但是,在这两种用法中,最多也只能处理有两种可供选择的情况。如果在程序设计时需要从多组语句中选择一组来执行又应该怎么办呢?这时就可以使用if语句的第3种形式——if-elseif-else结构。(1)if-elseif-else结构的格式如下:if(表达式1)语句1;elseif(表达式2)语句2;elseif(表达式3)语句3;elseif(表达式n-1)语句n-1;else语句n;(2)if-elseif-else结构的执行过程·

if-elseif-else语句用在多分支路径中,在程序执行时,按照程序书写顺序依次判断每条分支圆括号内表达式的真假。·当圆括号内表达式的值为“真(非0)”时,则执行该分支下面的语句,完成后退出条件结构而执行后续语句。·程序仅仅选择执行表达式值为“真(非0)”的那条路径下的语句——“多选一”。·如果所有表达式的值都为“假”,则执行最后一个else路径下的语句。·在程序运行过程中,有且仅有一条路径上的语句被执行。4.2多分支选择语句——switch结构4.2.1switch结构的基本形式4.2.2带break语句的switch语句在前面的内容中,学习了使用if语句构建选择结构的一般方法。使用if-else结构可以实现双分支选择功能,使用if-elseif-else结构可以实现多分支选择功能,但是这种多分支结构使用起来比较繁琐。在C程序中,使用switch结构可以非常方便地构成多分支选择结构。一个程序涉及的分支越多,越适合使用switch结构。4.2.1switch结构的基本形式switch结构用于实现多分支选择结构,也就是说可以从多组语句中选择执行其中的部分语句。1、switch结构的语法格式为switch(表达式){case常量表达式1:语句1;case常量表达式2:语句2;case常量表达式n:语句n;default:语句n+1;}2、switch结构的执行过程·首先将“表达式”的值依次与各个“常量表达式”进行比较,哪个“常量表达式”的值与“表达式”的值相等,就执行该“常量表达式”后面的语句,此时该语句称为执行switch语句的入口。·一旦一个语句被执行后,顺次执行其后的所有语句,而不必再判断相应的“常量表达式”的值是否和“表达式”的值相等。·当所有case后的“常量表达式”都不与“表达式”的值相等时,就只执行default后的语句。·当“表达式”的值与“常量表达式1”相一致时,不仅执行语句1,而且其后的语句2到语句n+1也都被执行。同理,当“表达式”与“常量表达式3”相一致时,不仅执行语句3,而且其后的语句4到语句n+1也都被执行;当所有的“常量表达式”与“表达式”都不一致时,就只执行语句n+1。3、使用说明·

switch后面圆括号内的“表达式”可为任何类型,并且“表达式”的类型和“常量表达式”的类型一定要一致,否则会出现语法错误。当“常量表达式”的值与“表达式”的值相等时,执行其后的所有的语句,否则就执行default后面的语句。圆括号不能省略,且其外没有“;”,否则会出现语法错误。·

switch语句中大括号内的部分称为switch语句的语句体。·

default出现的顺序并不影响程序的功能,default后的语句总是最后执行。·

case后必须是常量表达式并且每个case后面的常量表达式必须互不相同,case和常量表达式之间一定要有空格,否则为语法错误。·每个case所管辖的语句可以是一条语句,也可以是多条语句,若是多条,可不加大括号。case后的语句还可以为空,当为空时,什么都不做,程序继续执行下一条case后的语句,不影响其他语句的执行。4.2.2带break语句的switch语句break语句用来实现程序的跳转和退出。由前一节可知,switch语句的基本结构只能实现“满足一个条件执行多个或一个case之后语句的情况”,但是如果要实现“满足多个或一个条件只执行一个case之后语句的情况”又怎么办呢?此时就要使用带break语句的switch语句。1、带break语句的switch语句语法格式为switch(表达式){case常量表达式1:语句1;break;case常量表达式2:语句2;break;

case常量表达式n:语句n;break;default:语句n+1;}与switch语句的基本形式相比,带break语句的switch语句最本质的差异是:一旦程序执行到break语句,将跳出switch语句,从而结束分支选择。2、带break语句的switch语句的流程首先计算switch后面圆括号内的表达式的值,比较该值和case后的“常量表达式”的值是否相等,找到执行switch语句体的入口。·入口之前的case的语句不被执行,只执行入口以后case后的语句。·如果入口以后的case之后均没有break语句,则入口后所有case后的语句均被依次顺序执行,最后执行default以后的语句(此时即为switch语句的基本用法)。·如果在执行入口及其以后case后的语句的过程中一旦遇到break语句,则立即结束switch语句的执行。3、用法说明switch语句的基本用法中的所有规范均适用于带break语句的switch语句。对带break语句的switch语句当“常量表达式”的值与“表达式”的值相等时,就执行相应“常量表达式”后的语句(包括case和default后的语句),如果遇到break语句则跳出switch语句的语句体,结束switch语句的执行;当“常量表达式”的值与“表达式”的值不相等时,就只执行defaut后面的语句。习题一、选择题下面不正确的if语句形式是

。A.if(x>y); B.if(x==y)x+=y;C.if(x!=y)scanf("%d",a) D.if(x<y){x++;y++;}elsescanf("%d",b);if语句的语法正确的是

。A.if(x>0)p

温馨提示

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

最新文档

评论

0/150

提交评论