内容正文:
专题四 控制结构(讲义)
---《算法与程序设计-C#》专题复习讲练测
[考纲要求]
1.掌握C#语言的流程控制语句:顺序结构语句、赋值语句、输入输出语句、复合语句;
2.掌握C#语言的条件语句:if…else、switch…case
3.掌握C#语言的循环语句:for、while、do…while
4.掌握C#语言的跳转语句:break、continue
[课时安排]
2课时
[知识梳理]
一:顺序结构
1. 赋值语句
格式:变量名=表达式
2. 复合语句
符号
意义
示例
+=
加赋值
a+=b等价于a=a+b
-=
减赋值
a-=b等价于a=a-b
*=
乘赋值
a*=b等价于a=a*b
/=
除赋值
a/=b等价于a/b
%=
取模赋值
a%=b等价于a= a%b
<<=
左移赋值
a<<=b等价于a=a<<b
>>=
右移赋值
a>>=b等价于a=a>>b
&=
与赋值
a&=b等价于a=a&b
^=
异或赋值
a^=b等价于a=a^b
|=
或赋值
a|=b等价于a=a|b
二:分支结构语句
1. If....else语句
(1) if (判断条件) {
语句1;
}
(2) if (判断条件) {
语句1;
}
else
{
语句2;
}
2. If语句的嵌套
if(判断条件1){
if (判断条件2){
语句代码1;
}
语句代码2;
}
3. switch....case语句
switch (表达式)
{ case 值1: 语句代码1;
case 值2: 语句代码2;
……
case 值n: 语句代码n;
default: 语句n+1;
}
switch….case语句细节
(1)case后面的字面值不能重复;
(2)case后面只能跟字面值,不能跟变量,但是可以跟 常变量;
(3)switch()中,能够接受:
①值类型:整数类型、浮点数类型、字符、布尔
②引用类型:String
③枚举类型:后续讲解
(4)case穿透现象:匹配后没有break,就会跑到下一个case继续执行
三:循环结构语句
1. For语句
for (初始化语句;条件判断;条件控制语句){
循环语句;
}
2. While语句
while (条件表达式) {
循环体 语句;
}
3.do.....while语句
do {
循环体 语句;
条件控制语句;
}while (条件表达式);
四:跳转语句
1.break语句
break语句使程序从当前的循环语句(do、while和for)内跳转出来,接着执行循环语句后面的语句。
2.Continue语句
continue语句也用于循环语句,它类似于break,但它不是结束循环,而是结束循环语句的当前一次循环,接着执行下一次循环。
3. break语句和continue语句的对比
(1)break目前为止用于循环与switch语句中;
(2)break只能够结束当前所属的语句范围(最内层循环,所在的switch)
(3)continue目前为止用于循环中,可以跳过当前循环代码,强制开启下一次循环;
(4)continue通常用于“过滤”一些不需要执行本循环逻辑的情况;
[限时练习]
1.下列关于顺序结构的说法,错误的是( )
A. 顺序结构是程序的基本结构之一
B. 顺序结构中代码按书写顺序执行
C. 顺序结构中可以包含变量定义、赋值和输出等操作
D. 顺序结构中可以重复执行代码
【答案】D
【解析】顺序结构中每一条语句只执行一次,不重复执行。
2.以下关于 if 语句的说法,正确的是( )
A. if 语句后面的条件表达式必须是布尔类型 B. if 语句只能包含一条语句
C. if 语句不能嵌套使用 D. if 语句的条件表达式可以是任意类型
【答案】A
【解析】在 C# 中,if 语句后面的条件表达式必须是布尔类型,其结果只能是 true 或 false,以此来决定是否执行 if 语句块中的代码。if 语句块可以包含多条语句,也能嵌套使用。
3.以下代码的输出结果是( )
int num = 2;
switch (num)
{
case 1: Console.WriteLine("One");
case 2: Console.WriteLine("Two");
default: Console.WriteLine("Other");
}
A. Two B. Two Other C. 编译错误 D. Other
【答案】C
【解析】C# 的 case 分支要用 break 或 return 终止。
4.在 switch 语句中,case 后面跟的值必须是( )
A. 变量
B. 常量
C. 任意表达式
D. 字符串
【答案】B
【解析】在 switch 语句里,case 后面跟的值必须是常量表达式,不能是变量或任意表达式。可以是整数、字符、字符串等类型的常量。
5.下列关于 for 循环嵌套的说法,正确的是( )
A. 内层循环和外层循环应使用不同的循环变量
B. 嵌套循环中,内层循环执行次数一定多于外层循环
C. 外层循环执行一次,内层循环执行一次
D. 循环嵌套最多只能嵌套两层
【答案】A
【解析】内层循环次数取决于其条件,可能少于外层,外层循环每执行一次,内层循环会从初始化到条件判断完整执行一轮;C# 对循环嵌套层数没有严格限制(受内存和性能影响),实际开发中可根据需求嵌套多层。内外层应使用不同的循环变量。
6.关于如下程序结构的描述中,正确的是( )
for ( ; ; )
{ 循环体; }
A.不执行循环体 B.一直执行循环体,即死循环
C.执行循环体一次 D.程序不符合语法要求
【答案】B
【解析】for循环的3个表达式都缺少时,会造成死循环。
7.对于 while 和 do...while 循环,下列说法正确的是( )
A. 两种循环的执行逻辑完全相同
B. 当初始条件为false时,while 循环体不执行,do...while 循环体执行一次
C. while 循环可以嵌套,do...while 循环不能嵌套
D. do...while 循环必须使用分号结束,while 循环不需要
【答案】B
【解析】while 是 "先判断后执行",do...while 是 "先执行后判断",逻辑不同;两种循环都可以嵌套;两种循环语法上都有严格的格式要求,do...while 以分号结束是语法规定,但不能说 while 不需要格式约束。
8. 以下关于 while 语句的描述,正确的是( )
A. while 语句的循环体至少会执行一次
B. while 语句的条件检查在循环体执行之后
C. while 语句的条件检查在循环体执行之前
D. while 语句不能嵌套使用
【答案】C
【解析】WHILE语句先判断条件再执行循环体。
9.顺序结构中,后执行的代码不能影响先执行的代码结果。( )
【答案】√
【解析】顺序结构先执行的代码结果会被后续代码 “感知”,但后续代码的执行不会改变之前已经完成的操作结果。
10.if语句中的条件表达式可以是任意类型,C# 会自动转换为bool类型。( )
【答案】×
【解析】if条件必须显式为bool类型(true或false),不能像 C/C++ 那样将整数、指针等隐式转换为bool。
11.for 循环的循环变量只能是整数类型。( )
【答案】×
【解析】循环变量可以是任何支持比较和更新的类型,例如double。
12.do-while 循环至少会执行一次循环体。( )
【答案】√
【解析】do-while 循环会先执行一次循环体,然后再检查条件,因此无论条件是否满足,循环体至少会执行一次。
13.break语句可以终止所有嵌套循环。( )
【答案】×
【解析】break只能终止当前所在的最内层循环,无法直接终止外层循环。
[内容小结]
1. 本章节的内容是C#中编程的基础,复习时利用程序流程图加深对控制语句的理解。
2. 本章节的重点在于对C#中控制结构的理解、掌握各种控制结构的执行过程。
3. 本章节的难点在于对控制结构的应用,利用控制结构完成相应的程序编程。
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$