内容正文:
举一反三考点练
《C语言程序设计》分支结构程序设计-讲义
1. 掌握if语句,if else 语句;
2. 掌握if else if 语句, if语句的嵌套(else 和if 的配对原则);
(1) 说明:if 语句的嵌套仅限两层;
3. 掌握多分支语句 switch 的应用;
(1) 说明:只要求一层 switch 的应用;
知识点一 if语句,if else 语句
一、if语句
概念:if语句是C语言中最基本的选择结构,它根据条件的真假来决定是否执行某个语句块。
语法格式:
if(表达式)
{
语句块;
}
执行过程:
首先计算if后面括号内的表达式的值。
如果表达式的值为真(非零),则执行if后面花括号内的语句块。
如果表达式的值为假(零),则跳过花括号内的语句块,继续执行if语句后面的代码。
注意事项:
if后面只能跟一个语句或语句块,如果需要执行多个语句,应使用花括号将它们括起来,形成一个复合语句。
表达式一般是一个关系表达式或逻辑表达式,其结果为真或假。
二、if else语句
概念:if else语句是if语句的扩展,它可以在条件为假时执行另一组语句。
语法格式:
if(表达式)
{
语句块1;
}
else
{
语句块2;
}
执行过程:
首先计算if后面括号内的表达式的值。
如果表达式的值为真(非零),则执行if后面的花括号内的语句块1。
如果表达式的值为假(零),则执行else后面的花括号内的语句块2。
注意事项:
if和else后面的语句块只能有一个被执行,要么是语句块1,要么是语句块2。
if和else之间不能有其他语句,否则会导致编译错误。
else子句是可选的,如果省略else子句,当条件为假时,不会执行任何操作。
1. (单项选择题)下列关于if语句的说法,错误的是?( )
A. if语句可以根据条件的真假来执行不同的代码
B. if语句中的表达式必须是一个布尔类型
C. if语句后面只能跟一个语句或语句块
D. if语句可以嵌套使用
【答案】B
【解析】if语句中的表达式可以是任何能够产生真或假结果的表达式,不一定是布尔类型。
【要点】考查if语句的基本用法。
1. (单项选择题)以下关于if else语句的描述,正确的是?( )
A. if else语句中的else子句是必须的
B. if else语句中的if和else后面的语句块可以同时执行
C. if else语句中的表达式为真时,执行else后面的语句块
D. if else语句可以用来在两个选项之间进行选择
【答案】D
【解析】else子句是可选的,if和else后面的语句块只能执行其中一个,表达式为真时执行if后面的语句块。
【要点】考查if else语句的执行逻辑。
2. (单项选择题)下列关于if语句嵌套的说法,正确的是?( )
A. if语句嵌套时,内层if语句必须包含在外层if语句的花括号内
B. if语句嵌套时,内层if语句的花括号可以省略
C. if语句嵌套时,内层if语句的else子句必须与最外层的if语句匹配
D. if语句嵌套时,内层if语句的else子句可以与任何if语句匹配
【答案】B
【解析】if语句嵌套时,内层if语句的花括号可以省略,但仅限于内层if语句只控制一个语句的情况。
【要点】考查if语句嵌套的规则。
3. (判断题)if语句中的表达式结果必须为整数类型。( )
【答案】×
【解析】if语句中的表达式结果可以是任何能够产生真或假结果的数据类型。
【要点】考查if语句表达式的数据类型。
1. (判断题)在if else语句中,if和else后面的语句块必须用花括号括起来。( )
【答案】×
【解析】如果if或else后面只有一个语句,可以省略花括号。
【要点】考查if else语句的花括号使用规则。
2. (填空题)在C语言中,if语句的条件表达式通常使用______表达式或______表达式。
【答案】关系 逻辑
【解析】if语句的条件表达式可以是关系表达式或逻辑表达式。
【要点】考查if语句条件表达式的类型。
3. (填空题)当if语句中的条件表达式为______时,将执行if后面的语句块。
【答案】真(非零)
【解析】在C语言中,非零值通常被视为真。
【要点】考查if语句条件表达式的真值判断。
· 条件判断基础:if语句是C语言中选择结构的基础,它通过判断一个表达式的真值(非零为真,零为假)来决定是否执行特定的代码块。
· 代码块执行:if语句后的代码块如果只有一个语句,可以省略花括号;如果有多个语句,则必须使用花括号将它们括起来,形成一个语句块。
· 分支逻辑:if else语句提供了一种二选一的分支逻辑,允许程序在两个不同的代码块之间进行选择,根据if语句中的条件表达式的结果来执行其中一个代码块。
· 嵌套使用:if语句可以嵌套使用,即在一个if或else代码块内部可以包含另一个if语句,这样可以实现更复杂的选择逻辑。嵌套时需要注意if和else的配对关系,以避免逻辑错误。
知识点二 if else if 语句, if语句的嵌套(else 和if 的配对原则)
1. if语句的嵌套(else和if的配对原则)
if语句的嵌套是指在一个if语句或else语句块内包含另一个if语句。嵌套的层数没有限制,但本知识点要求仅限两层嵌套。以下是if语句嵌套的基本结构和配对原则:
(1)基本结构:
if(条件表达式1)
{
// 如果条件表达式1为真,则执行这里的代码
if(条件表达式2)
{
// 如果条件表达式2也为真,则执行这里的代码
}
else
{
// 如果条件表达式2为假,则执行这里的代码
}
}
else
{
// 如果条件表达式1为假,则执行这里的代码
}
(2)配对原则:
else子句总是与它前面最近的未配对的if语句配对。
为了避免混淆,建议使用花括号{}明确表示if语句和else语句块的开始和结束。
2. if-else if语句
if-else if语句用于对多个条件进行判断,其基本结构如下:
if(条件表达式1)
{
// 如果条件表达式1为真,则执行这里的代码
}
else if(条件表达式2)
{
// 如果条件表达式1为假且条件表达式2为真,则执行这里的代码
}
else
{
// 如果以上所有条件表达式都为假,则执行这里的代码
}
以下是关于if-else if语句和if语句嵌套的详细知识点:
(1) 每个else子句都必须与一个if语句配对,不能单独存在。
(2)在一个if-else if语句中,如果某个条件表达式为真,则执行对应的代码块,并跳过其他else if和else代码块。
(3)在一个if-else if语句中,最多只有一个代码块会被执行。
(4)在嵌套的if语句中,内层if语句可以看作是外层if语句或else语句块的一部分。
(5)在编写嵌套的if语句时,要注意保持代码的可读性,合理使用缩进和花括号。
1. (单项选择题)下列关于if-else if语句的说法,错误的是?( )
A. if-else if语句可以用于多个条件的判断
B. if-else if语句中,每个else if都需要一个条件表达式
C. if-else if语句中,最多只有一个代码块会被执行
D. if-else if语句中,每个else if都必须与一个if配对
【答案】D
【解析】else if是if语句的一部分,不需要单独与if配对,而是整个if-else if结构中的else if与最前面的if配对。
【要点】考查if-else if语句的基本用法。
1. (单项选择题)以下关于if语句嵌套的说法,正确的是?( )
A. if语句嵌套的层数没有限制
B. if语句嵌套时,内层if语句必须包含在外层if语句的花括号内
C. if语句嵌套时,else子句总是与最外层的if语句配对
D. if语句嵌套时,内层if语句可以独立存在,不需要与外层if语句配对
【答案】B
【解析】if语句嵌套时,内层if语句可以看作是外层if语句的一部分,通常包含在外层if语句的花括号内。
【要点】考查if语句嵌套的规则。
2. (单项选择题)以下代码段中,else子句与哪个if语句配对?( )
if(a > b)
if(b > c)
printf("a is the largest");
else
printf("a is not the largest");
A. 第一个if语句
B. 第二个if语句
C. 代码段中没有else子句与if语句配对
D. else子句与两个if语句都配对
【答案】A
【解析】根据else与最近未配对的if配对的原则,else子句与第一个if语句配对。
【要点】考查else与if的配对原则。
3. (判断题)在C语言中,if语句的嵌套层数可以无限多。( )
【答案】×
【解析】虽然理论上if语句可以无限嵌套,但在实际编程中,过深的嵌套会影响代码的可读性和维护性。
【要点】考查if语句嵌套的实际应用。
1. (判断题)在if-else if语句中,如果第一个条件表达式为真,则后面的else if和else代码块都不会执行。( )
【答案】√
【解析】在if-else if语句中,一旦某个条件表达式为真,对应的代码块将被执行,后续的else if和else代码块将被跳过。
【要点】考查if-else if语句的执行逻辑。
2. (填空题)在C语言中,为了提高代码的可读性,建议在______语句中使用花括号{}明确表示代码块的开始和结束。
【答案】if语句的嵌套
【解析】使用花括号可以清晰地表示代码块的界限,特别是在嵌套的if语句中。
【要点】考查代码编写规范。
3. (填空题)在if-else if语句中,当所有条件表达式都为______时,else代码块将被执行。
【答案】假
【解析】else代码块在所有条件表达式都不满足时执行,即所有条件表达式都为假。
【要点】考查if-else if语句的执行条件。
· if-else if语句的使用:if-else if语句用于处理多个条件判断,每个else if块都需要一个条件表达式,且在所有条件中只有一个条件对应的代码块会被执行。
· else与if的配对原则:在if语句的嵌套中,else子句总是与它前面最近的未配对的if语句配对,这一原则有助于理解代码的执行逻辑。
· if语句的嵌套规则:if语句可以嵌套使用,但应限制嵌套层数以保持代码的可读性。通常建议嵌套层数不超过两层,并且内层if语句应包含在外层if语句的花括号内。
· 代码可读性:在编写if语句及其嵌套时,应使用花括号明确表示代码块的开始和结束,以提高代码的可读性和易于维护。
知识点三 多分支语句 switch 的应用
1. switch语句的基本格式:
switch(表达式) {
case 常量表达式1:
语句1;
break;
case 常量表达式2:
语句2;
break;
...
case 常量表达式n:
语句n;
break;
default:
语句n+1;
break;
}
示意图如下所示:
2. switch语句的执行过程:
首先计算switch后面圆括号中表达式的值。
然后从上至下逐个比较每个case后面的常量表达式的值,如果找到与switch表达式值相等的常量表达式,则执行该case后面的语句,直到遇到break语句跳出switch结构。
如果所有case后面的常量表达式的值都不等于switch表达式的值,则执行default后面的语句(如果有的话)。
3. switch语句的相关知识点:
表达式:switch后面圆括号中的表达式,其结果必须是一个整型或字符型数据。
常量表达式:case后面必须是常量表达式,不能包含变量或非常量表达式。
break语句:用于在执行完一个case分支后跳出switch结构,防止执行后续的case分支。如果没有break语句,程序将继续执行下一个case分支,直到遇到break或switch结构结束。
default分支:default分支是可选的,当所有case分支都不满足条件时,执行default后面的语句。default分支可以放在switch结构的任何位置,但通常放在最后。
4. switch语句的应用示例:
#include <stdio.h>
int main() {
char grade;
printf("请输入一个字母成绩(A-F):");
scanf("%c", &grade);
switch(grade) {
case 'A':
printf("优秀
");
break;
case 'B':
printf("良好
");
break;
case 'C':
printf("中等
");
break;
case 'D':
printf("及格
");
break;
case 'F':
printf("不及格
");
break;
default:
printf("无效的成绩
");
break;
}
return 0;
}
1. (单项选择题)在以下switch语句中,哪个选项是正确的执行顺序?( )
int x = 2;
switch(x) {
case 1:
printf("One");
break;
case 2:
printf("Two");
case 3:
printf("Three");
break;
default:
printf("Default");
}
A. 只打印 "Two" B. 打印 "TwoThree"
C. 打印 "TwoDefault" D. 打印 "OneTwoThreeDefault"
【答案】B
【解析】由于case 2后面没有break语句,所以会继续执行case 3的语句。
【要点】考查switch语句中break的重要性。
1. (单项选择题)下列关于switch语句的说法,错误的是?( )
A. switch语句中的表达式只能是整型或字符型
B. case语句后面必须是一个常量表达式
C. default语句是必须的,每个switch语句都必须有default分支
D. break语句用于结束当前case分支的执行
【答案】C
【解析】default语句是可选的,不是必须的。
【要点】考查switch语句的基本用法。
2. (单项选择题)以下哪个选项是switch语句中case分支的正确写法?( )
A. case (x > 0): B. case x > 0: C. case 'A': D. case x:
【答案】C
【解析】case后面必须是常量表达式,不能包含变量或表达式。
【要点】考查case分支的语法要求。
3. (判断题)switch语句中的default分支必须放在所有case分支之后。( )
【答案】×
【解析】default分支可以放在switch语句中的任何位置。
【要点】考查default分支的位置。
1. (判断题)在switch语句中,每个case分支后面都必须有break语句。( )
【答案】×
【解析】虽然建议在每个case分支后面使用break语句,但不是必须的。
【要点】考查break语句在switch语句中的使用。
2. (填空题)在C语言中,switch语句中的表达式与______进行比较。
【答案】case后面的常量表达式
【解析】switch语句中的表达式结果会与每个case后面的常量表达式进行比较。
【要点】考查switch语句的工作原理。
3. (填空题)在switch语句中,如果没有匹配的case分支,且没有default分支,则______。
【答案】不执行任何case分支的语句
【解析】如果没有匹配的case分支且没有default分支,switch语句不会执行任何操作。
【要点】考查switch语句的执行逻辑。
· 多路选择结构:switch语句提供了一种多路选择结构,允许程序根据不同的条件执行不同的代码块,这是if-else语句的一种更简洁的替代方案。
· 常量表达式匹配:switch语句中的每个case后面必须跟随一个常量表达式,这个表达式通常是整型或字符型。switch语句的表达式结果将与这些常量表达式进行匹配,以决定执行哪个case分支。
· break语句的重要性:在switch语句中,每个case分支后面通常跟着一个break语句,用于防止代码自动执行到下一个case分支,即避免所谓的“case穿透”。
· default分支的灵活性:default分支是可选的,它用于处理所有case都不匹配的情况。default分支可以放在switch语句中的任何位置,但通常放在最后。
原创精品资源学科网独家享有版权,侵权必究!2
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$