内容正文:
专题四 控制结构
一:单选题
1:下列关于赋值语句的说法,正确的是( )
A. 赋值语句中,等号左边可以是常量,如5 = x;
B. 一条赋值语句可以同时给多个变量赋值,如a = b = 10;
C. 赋值运算符=的优先级高于算术运算符
D. 赋值语句的作用是判断等号两边的值是否相等
2:执行以下代码时,如果用户输入 "10",则变量num的值是( )
Console.WriteLine("请输入一个数字:");
string input = Console.ReadLine();
int num = int.Parse(input);
A. "10" B. 10 C. 0 D. 编译错误
3:执行以下代码后,输出结果是( )
int a = 2, b = 3;
if (a > b)
Console.WriteLine("a大");
if (a < b)
Console.WriteLine("b大");
else
Console.WriteLine("相等");
A. a 大 B. b 大 C. 相等 D. b 大 相等
4:下列代码的循环执行次数是( )
for (int i = 2; i <= 10; i += 2)
{
// 循环体
}
A. 4 次 B. 5 次 C. 6 次 D. 10 次
5:下列关于switch语句的说法错误的是( )
A. switch语句中的case标签后面必须是常量表达式
B. switch语句可以根据一个变量的值来选择执行不同的代码块
C. switch语句中default部分是必须的
D. switch语句中case的顺序可以任意排列
6: 以下关于 for 循环的说法不正确的是( )。
A.for 循环只能用于循环次数已经确定的情况
B.for 循环是先判定表达式,后执行循环体语句
C.for 循环中,可以用 break语句跳出循环体
D.for 循环体语句中,可以包含多条语句,但要用花括号括起来
7:在C#中,关于continue和break,以下说法正确的是( )
A break是中断本次循环
B continue是中断本次循环,进入一下次的循环
C break是中断本次循环,进入一下次的循环
D continue是中断整个循环
8: 下列关于 while 循环的说法,正确的是( )
A. while 循环的条件表达式可以是任意数据类型
B. while 循环体至少会执行一次
C. while 循环适合已知循环次数的场景
D. 可以在循环体内使用break语句终止循环
9: 在C#语言的循环结构中,首先执行一次,然后再判断条件的循环结构是( )
A.while循环
B.do…while循环
C.for循环
D.foreach循环
10: switch 语句的 default 分支的作用是( )
A. 必须放在最后 B. 当所有 case 不匹配时执行
C. 必须包含 break D. 只能有一个
二:判断题
1: 顺序结构中,代码必须一行写一条语句,不能多行合并。( )
2: 顺序结构是所有程序的基础,任何复杂程序都包含顺序执行的部分。( )
3: else语句总是与距离它最近的未配对if语句配对。( )
4: 当if语句的分支只有一条语句时,大括号{}可以省略。( )
5: IF语句的条件可以是任何类型的数据。( )
6: for 循环的三个表达式(初始化、条件、更新)都可以省略。( )
7: for 循环中,循环体至少会执行一次。( )
8: break 语句可以用于立即退出任何类型的循环。( )
三:填空题
1:程序的三种基本结构是顺序结构、________和_________。
2:_________结构中,每条语句的执行不受条件影响。
3:若要判断整数x是否为偶数,if语句的条件表达式应写为______。
4:在C#中,通常情况下使用______语句来跳出当前循环。
5.在while循环语句中,一定要有修改循环条件的语句,否则,可能造成______
6.若要在 switch 语句中实现多个 case 执行相同操作,可省略______。
7.若要在 for 循环中跳过某次循环,直接进入下一次循环,应使用 ____ 语句。
8.若要使用 for 循环计算 1 到 10 的整数和,循环体中需要使用一个变量来累加,该变量的初始值应该为 ____。
四:程序读程题
1.执行以下代码后,输出结果是________
int score = 85;
if (score > 90)
{
Console.WriteLine("优秀");
}
else if (score > 80)
{
Console.WriteLine("良好");
}
else
{
Console.WriteLine("及格");
}
2. 执行以下代码后,输出结果是______。
class Program
{
static void Main(string[] args)
{
int result = 0;
for (int i = 1; i <= 5; i++)
{
if (i % 2 == 0)
continue;
for (int j = i; j <= 3; j++)
{
result += i * j;
if (result > 10)
break;
}
}
Console.WriteLine(result);
Console.ReadKey();
}
}
3. 执行以下代码后,输出结果是______。
class Program
{
static void Main(string[] args)
{
int sum = 0;
int num = 1;
while (num <= 10)
{
if (num % 3 == 0)
{
num++;
continue;
}
if (num == 7)
{
num = 9;
break;
}
sum += num;
num++;
}
Console.WriteLine(sum);
Console.ReadKey();
}
}
4.执行以下代码后,输出结果是______。
class Program
{
static void Main(string[] args)
{
int a = 0;
int b = 0;
for (int i = 1; i <= 5; i++)
{
if (i % 2 == 0)
{
a += i;
continue;
}
do
{
b += i;
if (b > 5)
break;
i++;
} while (i < 4);
}
Console.WriteLine("a={0}, b={1}", a, b);
Console.ReadKey();
}
}
五:程序填空题
1.以下代码用于判断年份是否为闰年(能被 4 整除且不能被 100 整除,或能被 400 整除),请补充条件:
int year = 2024;
if (______)
Console.WriteLine("闰年");
else
Console.WriteLine("平年");
2.下列程序功能:在控制台打印九九乘法表
static void Main(string[] args)
{
for (int i = 1; _______ i++)
{
for (int j = 1; ________ j++)
{
Console.Write("{0}×{1}={2}\t", i, j, i * j);
}
Console.WriteLine();
}
}
学科网(北京)股份有限公司
$$
专题四 控制结构
一:单选题
1:下列关于赋值语句的说法,正确的是( )
A. 赋值语句中,等号左边可以是常量,如5 = x;
B. 一条赋值语句可以同时给多个变量赋值,如a = b = 10;
C. 赋值运算符=的优先级高于算术运算符
D. 赋值语句的作用是判断等号两边的值是否相等
【答案】B
【解析】C# 支持链式赋值,a = b = 10;等价于b = 10; a = b;
2:执行以下代码时,如果用户输入 "10",则变量num的值是( )
Console.WriteLine("请输入一个数字:");
string input = Console.ReadLine();
int num = int.Parse(input);
A. "10" B. 10 C. 0 D. 编译错误
【答案】B
【解析】Console.ReadLine()用于读取用户输入的一行文本,返回值是 string 类型,int.Parse(input)将字符串 "10" 转换为整数 10。
3:执行以下代码后,输出结果是( )
int a = 2, b = 3;
if (a > b)
Console.WriteLine("a大");
if (a < b)
Console.WriteLine("b大");
else
Console.WriteLine("相等");
A. a 大 B. b 大 C. 相等 D. b 大 相等
【答案】B
【解析】第一个if条件a > b为false,不输出;第二个if条件a < b为true,输出 “b 大”,else不执行。
4:下列代码的循环执行次数是( )
for (int i = 2; i <= 10; i += 2)
{
// 循环体
}
A. 4 次 B. 5 次 C. 6 次 D. 10 次
【答案】B
【解析】执行时i的值依次为:2、4、6、8、10(共 5 次)
5:下列关于switch语句的说法错误的是( )
A. switch语句中的case标签后面必须是常量表达式
B. switch语句可以根据一个变量的值来选择执行不同的代码块
C. switch语句中default部分是必须的
D. switch语句中case的顺序可以任意排列
【答案】C
【解析】switch语句中的 default可以省略。
6: 以下关于 for 循环的说法不正确的是( )。
A.for 循环只能用于循环次数已经确定的情况
B.for 循环是先判定表达式,后执行循环体语句
C.for 循环中,可以用 break语句跳出循环体
D.for 循环体语句中,可以包含多条语句,但要用花括号括起来
【答案】A
【解析】For循环也可以用于循环次数不确定的情况。
7:在C#中,关于continue和break,以下说法正确的是( )
A break是中断本次循环
B continue是中断本次循环,进入一下次的循环
C break是中断本次循环,进入一下次的循环
D continue是中断整个循环
【答案】B
【解析】break是结束循环,continue是结束本次循环,执行下一次循环。
8: 下列关于 while 循环的说法,正确的是( )
A. while 循环的条件表达式可以是任意数据类型
B. while 循环体至少会执行一次
C. while 循环适合已知循环次数的场景
D. 可以在循环体内使用break语句终止循环
【答案】D
【解析】while 循环的条件表达式必须是bool类型;while 循环先判断条件,若初始条件为false,循环体一次也不执行;while 循环适合未知循环次数、仅知道终止条件的场景;
9: 在C#语言的循环结构中,首先执行一次,然后再判断条件的循环结构是( )
A.while循环
B.do…while循环
C.for循环
D.foreach循环
【答案】B
【解析】do..while语句是先执行循环体再判断条件。
10: switch 语句的 default 分支的作用是( )
A. 必须放在最后 B. 当所有 case 不匹配时执行
C. 必须包含 break D. 只能有一个
【答案】B
【解析】default 是默认分支,处理未匹配的情况。.
二:判断题
1: 顺序结构中,代码必须一行写一条语句,不能多行合并。( )
【答案】×
【解析】C# 允许在同一行写多条语句,用分号;分隔即可。
2: 顺序结构是所有程序的基础,任何复杂程序都包含顺序执行的部分。( )
【答案】√
【解析】无论程序包含多少选择结构(if)、循环结构(for)或其他复杂逻辑,其内部的基本执行单元仍是顺序结构。
3: else语句总是与距离它最近的未配对if语句配对。( )
【答案】√
【解析】If语句中的else语句与离它最近的未配对的if语句配对。
4: 当if语句的分支只有一条语句时,大括号{}可以省略。( )
【答案】√
【解析】C# 允许省略单语句分支的大括号。
5: IF语句的条件可以是任何类型的数据。( )
【答案】×
【解析】 IF语句的条件必须是一个布尔表达式,即结果为true或false。
6: for 循环的三个表达式(初始化、条件、更新)都可以省略。( )
【答案】√
【解析】for 循环的语法为for(表达式1; 表达式2; 表达式3),三个表达式均可省略。
7: for 循环中,循环体至少会执行一次。( )
【答案】×
【解析】for 循环先判断条件,再决定是否执行循环体。如果初始条件就不满足,循环体一次也不会执行。
8: break 语句可以用于立即退出任何类型的循环。( )
【答案】√
【解析】break 语句可以用于立即退出 for、while、do-while。
三:填空题
1:程序的三种基本结构是顺序结构、________和_________。
【答案】选择结构(或分支结构);循环结构
【解析】三种基本结构为:顺序结构、选择结构、循环结构。
2:_________结构中,每条语句的执行不受条件影响。
【答案】顺序
【解析】顺序结构中,每条语句的执行不受条件影响,按照顺序依次执行.
3:若要判断整数x是否为偶数,if语句的条件表达式应写为______。
【答案】x % 2 == 0
【解析】偶数能被 2 整除,取余运算x % 2结果为 0,因此条件为x % 2 == 0。
4:在C#中,通常情况下使用______语句来跳出当前循环。
【答案】break
【解析】break用于结束本层循环。
5.在while循环语句中,一定要有修改循环条件的语句,否则,可能造成______
【答案】死循环
【解析】在循环中,若没有改变循环的条件,循环会造成死循环。
6.若要在 switch 语句中实现多个 case 执行相同操作,可省略______。
【答案】break
【解析】switch 语句中实现多个 case 执行相同操作省略break,为穿透现象。
7.若要在 for 循环中跳过某次循环,直接进入下一次循环,应使用 ____ 语句。
【答案】continue
【解析】continue用于结束本次循环,进入下一次循环。
8.若要使用 for 循环计算 1 到 10 的整数和,循环体中需要使用一个变量来累加,该变量的初始值应该为 ____。
【答案】0
【解析】求和的初值应设置为0.
四:程序读程题
1.执行以下代码后,输出结果是________
int score = 85;
if (score > 90)
{
Console.WriteLine("优秀");
}
else if (score > 80)
{
Console.WriteLine("良好");
}
else
{
Console.WriteLine("及格");
}
【答案】良好
2. 执行以下代码后,输出结果是______。
class Program
{
static void Main(string[] args)
{
int result = 0;
for (int i = 1; i <= 5; i++)
{
if (i % 2 == 0)
continue;
for (int j = i; j <= 3; j++)
{
result += i * j;
if (result > 10)
break;
}
}
Console.WriteLine(result);
Console.ReadKey();
}
}
【答案】15
3. 执行以下代码后,输出结果是______。
class Program
{
static void Main(string[] args)
{
int sum = 0;
int num = 1;
while (num <= 10)
{
if (num % 3 == 0)
{
num++;
continue;
}
if (num == 7)
{
num = 9;
break;
}
sum += num;
num++;
}
Console.WriteLine(sum);
Console.ReadKey();
}
}
【答案】12
4.执行以下代码后,输出结果是______。
class Program
{
static void Main(string[] args)
{
int a = 0;
int b = 0;
for (int i = 1; i <= 5; i++)
{
if (i % 2 == 0)
{
a += i;
continue;
}
do
{
b += i;
if (b > 5)
break;
i++;
} while (i < 4);
}
Console.WriteLine("a={0}, b={1}", a, b);
Console.ReadKey();
}
}
【答案】a=4,b=11
【解析】
五:程序填空题
1.以下代码用于判断年份是否为闰年(能被 4 整除且不能被 100 整除,或能被 400 整除),请补充条件:
int year = 2024;
if (______)
Console.WriteLine("闰年");
else
Console.WriteLine("平年");
【答案】
(year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)
2.下列程序功能:在控制台打印九九乘法表
static void Main(string[] args)
{
for (int i = 1; _______ i++)
{
for (int j = 1; ________ j++)
{
Console.Write("{0}×{1}={2}\t", i, j, i * j);
}
Console.WriteLine();
}
}
【答案】
i <= 9;
j <= i;
学科网(北京)股份有限公司
$$