for 语句的运行过程如图3.10 所示。下面给出应用最广泛、也最容易理解的for 语句的一般形式:图3.10for 循环执行流程图用for 循环结构来计算1+2+3+…“表达式1”通常用于循环变量赋初值,如果省略,表示不对循环变量赋初值或者已经把赋初值语句放在了for 语句前面。......
2023-10-21
在C语言中,控制结构的语句部分在语法上都只能是一条C语句。但在对实际问题处理的应用程序中,有可能遇到需要多条C语句来描述的处理过程。为了满足这种在语法结构上只能有一条语句,而功能的实现又需要多条语句的要求,C语言提供称为复合语句的语句块对这种要求进行支持。
复合语句是用一对花括号“{}”将若干条C语句括起来形成的语句块,在语法上作为一条语句考虑。复合语句的构成形式如下:
C程序设计中,描述控制结构中多条C语句才能完成的功能时,就需要使用复合语句。
【例3.3】 从键盘上输入三角形的三边的边长,若它们能构成一个三角形,则输出其面积。
根据数学知识,若三直线a、b、c要构成三角形,则必须满足条件:任意两边之和大于第三边(即a+b>c且a+c>b且b+c>a)。计算三角形的面积的公式为:
图3.4 例3.3程序流程图
程序运行过程中,若输入数据能够构成三角形(如输入:3,4,5),if语句中的条件表达式a+b>c&&a+c>b&&b+c>a值为“真”(非0值),则执行其后的复合语句;若输入数据不能构成三角形(如输入:1,2,3),程序则不会执行后面的复合语句。
在C程序中,需要使用复合语句的地方必须使用复合语句的形式,否则程序在语法上可能检查不出任何错误,但程序运行的结果与程序设计者的期望会相去甚远。例如,将例3.3中相关程序段描述为如下形式:(www.chuimin.cn)
程序在编译和链接时没有任何的语法错误,但此时if下面的3个语句在语法上不再是一个整体,语句area=sqrt(s*(s-a)*(s-b)*(s-c));和printf("%f\n",area);与if语句控制结构部分没有任何关系,即无论if结构中的条件成立与否都会执行这两条C语句,因而在逻辑功能上并不能实现对程序的要求。
C语言中规定,复合语句中也可以定义变量,这方面的知识涉及变量的作用范围问题,我们将在“变量的作用域”章节中予以讨论。
有关C语言程序设计基础(第3版)的文章
for 语句的运行过程如图3.10 所示。下面给出应用最广泛、也最容易理解的for 语句的一般形式:图3.10for 循环执行流程图用for 循环结构来计算1+2+3+…“表达式1”通常用于循环变量赋初值,如果省略,表示不对循环变量赋初值或者已经把赋初值语句放在了for 语句前面。......
2023-10-21
可以使用typedef为结构体数据类型取一个方便程序中使用的别名。用typedef构造指定行数和列数的二维数组类型。用typedef构造指针数据类型。......
2023-11-20
图5.7两层函数嵌套调用示意图函数的嵌套调用即一个函数在被调用的过程中又调用了另外的一个函数。函数fac和powers的返回值类型均被设计为double型,其主要目的是为了避免n!x:0.5//0.5从键盘输入的数据0.50 powers of e=1.648721//程序执行结果......
2023-11-20
A.与参数x的类型相同B.无法确定C.void类型D.int类型3.为了避免嵌套的条件语句if-else的二义性,C语言规定()。A.else与缩排位置相同的if配对B.else与同一行上的if配对C.else与其之后最近的if配对D.else与其之前最近的尚未配对的if配对4.设x、y、z和k都是int型变量,则执行表达式:x=后,x的值为()。A.7 B.6 C.5 D.47.在C语言程序中,用关键字()定义无符号型变量。else语句实现两个分支。......
2023-09-19
C语言中逻辑运算符及其含义见表3.2。表3.2逻辑运算符及其含义逻辑运算符“&&”和“||”是双目运算符,具有左结合性;“!”表3.3逻辑运算真值表C语言中进行逻辑表达式求值运算时,不但要注意逻辑运算符本身的运算规则,而且还必须要遵循下面的两条原则:·对逻辑表达式从左到右进行求解。......
2023-11-20
针对不同的实际应用,数据排序方法有很多种。本节介绍两种常用排序方法的基本思想和实现方法,帮助读者初步理解排序方法的计算机解决思路。②不考虑已排好序的数据,将剩下的数据作为待排序列。编写程序实现冒泡排序算法,对随机生成的10个3位整数按升序进行排序并输出。......
2023-11-20
一个函数直接或间接地调用自己,称为函数的递归调用。所以函数递归调用的实现必须依靠系统提供一个特殊部件(堆栈)存放未完成的操作,以保证当递归调用结束回溯时不会丢失任何应该执行而没有执行的操作。为了理解函数递归调用的特性,参照例5.9的程序讨论函数递归调用的执行过程,为了讨论方便为程序加上行号。函数递归调用示例。......
2023-11-20
在程序设计中,许多问题的解“隐藏”在多个可能之中。在一个集合内对集合中的每一个元素进行一一测试的方法称为穷举法。穷举方法的实现主要依赖于以下两个基本要点:·搜寻可能值的范围如何确定。程序设计中应据问题的描述具体分析,确定时应尽量缩小搜索范围,提高程序效率。编写程序找出所有的“水仙花数”。程序可以依次取出区间[100,999]之间的每一个数,然后将该数分解为3个数字,按照判定条件判定即可。......
2023-11-20
相关推荐