找回密码
 注册

QQ登录

只需一步,快速开始

查看: 667|回复: 0

吉大《c语言程序设计》21春复习指导(四)

[复制链接]
发表于 2021-2-22 10:28:19 | 显示全部楼层 |阅读模式
吉大《C语言程序设计》FAQ(四)
一、说明各种循环的区别是什么?
        1、四种循环可以用来处理同一问题,一般情况下它们可以互相代替。但一般不提倡使用goto型循环。
        2、while和do…while循环,只在while后面指定循环条件,在循环体中包含应反复执行的操作语句,包括使循环结束的语句(如i++,i=i+1等).For循环可以在表达式3中包含使循环结束的操作,甚至可以将循环体中的操作全部放到表达式3中。因此for语句的功能更强,用while循环能完成的,用for循环都能实现。
        3、用while和do…while循环时,循环变量初始化的操作应在while和do…while语句之前完成。而for语句可以在表达式1中实现循环变量的初始化。
        4、while和for循环是先判断表达式,后执行语句;而do…while循环是先执行语句,后判断表达式。
        5、对while循环、do…while循环和for循环,可以用break语句跳出循环,用continue语句结束本次循环。而对goto语句和if语句构成的循环,不能用break语句和continue语句进行控制。二、比较break和continue语句
break语句通常用在循环语句和开关语句中。当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则将成为一个死循环而无法退出。break在switch 中的用法已在前面介绍开关语句时的例子中碰到,这里不再举例。
当break语句用于do-while、for、while循环语句中时,可使程序终止循环而执行循环后面的语句, 通常break语句总是与if语句联在一起。即满足条件时便跳出循环
continue语句的作用是跳过循环本中剩余的语句而强行执行下一次循环。continue语句只用在for、while、do-while等循环体中,常与if条件语句一起使用,用来加速循环。三、如何理解给变量赋初值、变量的初始化、赋值表达式这三个不同的概念?
1)给变量赋初值:就是在定义变量的同时,或者变量定义之后给变量进行赋值。(包含了变量初始化这一层面)
例1:int i=0,j=0,k=0;
例2:int i,j,k;i=0;j=0;k=0
2)变量初始化:在变量定义的同时赋以初值的方法,称之为变量初始化。
例:int i=0,j=0,k=0;
但是在变量的初始化声明中不允许连续赋值。
例:int i=j=k=0; 这句是错误的。由于表达式i=j=k=0,可以理解为i=(j=(k=0)),显然,j和k变量还未声明变量类型,就要去赋值和接受赋值,显示是不合法的。
3)赋值表达式:由赋值运算符“=”连接的式子称之为赋值表达式。一般形式为:变量=表达式。赋值表达式的功能是计算表达式的值再赋予左边的变量。赋值运算符具有右结合性。
例:
int i,j,k;
i=j=k=0;
因为表达式i=j=k=0 等价于 i=(j=(k=0))。因为i,j,k三个变量都已经预先声明为int型了,是合法的赋值运算,所以是正确的! 四、对赋值表达式和赋值语句有些迷糊,他们有很大的区别吗?
赋值表达式是一种表达式,它可以出现在任何允许表达式出现的地方,而赋值语句则不能。
下述语句是合法的: if((x=y+5)>0) z=x; 语句的功能是,若表达式x=y+5大于0则z=x。下述语句是非法的: if((x=y+5;)>0) z=x; 因为=y+5;是语句,不能出现在表达式中。五、为什么说int a=b=C=5是错误的?
这个问题涉及到在变量说明中给变量赋初值和赋值语句的区别。给变量赋初值是变量说明的一部分,赋初值后的变量与其后的其它同类变量之间仍必须用逗号间隔,而赋值语句则必须用分号结尾。
在变量说明中,不允许连续给多个变量赋初值。所以 int a=b=C=5 必须写为 int a=5,b=5,C=5; 而赋值语句允许连续赋值。东师作业答案可以联系QQ 761296021

QQ|手机版|小黑屋|网站地图|无忧答案网 ( 冀ICP备18010495号-1 )

GMT+8, 2024-5-4 18:02

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表