题目说明
- 题目按难度从易到难排列
- 包含选择题和编程题两种类型
- 点击"显示答案"按钮查看解析
- 建议独立完成后再查看答案
一、简单难度
简单
1. 以下代码的输出结果是什么?
int day = 3;
switch (day)
{
case 1:
Console.WriteLine("星期一");
break;
case 2:
Console.WriteLine("星期二");
break;
case 3:
Console.WriteLine("星期三");
break;
default:
Console.WriteLine("其他");
break;
}
答案:C
解析:day的值为3,匹配case 3,所以输出"星期三"。
解析:day的值为3,匹配case 3,所以输出"星期三"。
简单
2. 以下代码的输出结果是什么?
int month = 13;
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
Console.WriteLine("31天");
break;
case 4:
case 6:
case 9:
case 11:
Console.WriteLine("30天");
break;
case 2:
Console.WriteLine("28或29天");
break;
default:
Console.WriteLine("无效月份");
break;
}
答案:D
解析:month的值为13,没有匹配的case分支,所以执行default分支,输出"无效月份"。
解析:month的值为13,没有匹配的case分支,所以执行default分支,输出"无效月份"。
简单
3. 以下关于switch-case语句的描述,错误的是?
答案:D
解析:break语句是可选的,但如果没有break语句,程序会继续执行下一个case分支(贯穿现象)。
解析:break语句是可选的,但如果没有break语句,程序会继续执行下一个case分支(贯穿现象)。
二、中等难度
中等
4. 以下代码的输出结果是什么?(注意缺少break语句)
int num = 2;
switch (num)
{
case 1:
Console.WriteLine("A");
case 2:
Console.WriteLine("B");
case 3:
Console.WriteLine("C");
default:
Console.WriteLine("D");
}
答案:C
解析:由于缺少break语句,程序会从匹配的case 2开始,依次执行后面所有的case和default分支,输出"B C D"。
解析:由于缺少break语句,程序会从匹配的case 2开始,依次执行后面所有的case和default分支,输出"B C D"。
中等
5. 以下代码的输出结果是什么?
char grade = 'B';
string result;
switch (grade)
{
case 'A':
result = "优秀";
break;
case 'B':
result = "良好";
break;
case 'C':
result = "及格";
break;
case 'D':
result = "不及格";
break;
default:
result = "无效等级";
break;
}
Console.WriteLine(result);
答案:B
解析:grade的值为'B',匹配case 'B',所以result被赋值为"良好",输出"良好"。
解析:grade的值为'B',匹配case 'B',所以result被赋值为"良好",输出"良好"。
中等
6. 以下代码的输出结果是什么?
string season = "Summer";
switch (season)
{
case "Spring":
Console.WriteLine("春天");
break;
case "Summer":
Console.WriteLine("夏天");
break;
case "Autumn":
Console.WriteLine("秋天");
break;
case "Winter":
Console.WriteLine("冬天");
break;
default:
Console.WriteLine("未知季节");
break;
}
答案:B
解析:season的值为"Summer",匹配case "Summer",所以输出"夏天"。
解析:season的值为"Summer",匹配case "Summer",所以输出"夏天"。
三、困难难度
困难
7. 以下嵌套switch代码的输出结果是什么?
int x = 1, y = 2;
switch (x)
{
case 1:
Console.WriteLine("x=1");
switch (y)
{
case 1:
Console.WriteLine("y=1");
break;
case 2:
Console.WriteLine("y=2");
break;
}
break;
case 2:
Console.WriteLine("x=2");
break;
}
答案:C
解析:外层switch匹配x=1,输出"x=1",然后进入内层switch匹配y=2,输出"y=2"。
解析:外层switch匹配x=1,输出"x=1",然后进入内层switch匹配y=2,输出"y=2"。
困难
8. 以下代码的输出结果是什么?
int num = 5;
switch (num)
{
case 1:
case 2:
case 3:
Console.WriteLine("1-3");
break;
case 4:
case 5:
case 6:
Console.WriteLine("4-6");
break;
default:
Console.WriteLine("其他");
break;
}
答案:B
解析:num的值为5,匹配case 5,由于case 4、5、6共用一个代码块,所以输出"4-6"。
解析:num的值为5,匹配case 5,由于case 4、5、6共用一个代码块,所以输出"4-6"。
困难
9. 以下代码的输出结果是什么?
int value = 3;
switch (value)
{
case 1:
Console.WriteLine("One");
break;
case 2:
Console.WriteLine("Two");
case 3:
Console.WriteLine("Three");
case 4:
Console.WriteLine("Four");
break;
case 5:
Console.WriteLine("Five");
break;
default:
Console.WriteLine("Other");
break;
}
答案:B
解析:value的值为3,匹配case 3。由于case 2和case 3缺少break语句,所以从case 3开始执行,输出"Three Four"(遇到case 4的break语句停止)。
解析:value的值为3,匹配case 3。由于case 2和case 3缺少break语句,所以从case 3开始执行,输出"Three Four"(遇到case 4的break语句停止)。
四、编程题
中等
10. 编写一个程序,根据用户输入的月份,输出对应的季节(使用switch-case语句)。
要求:
- 春季:3-5月
- 夏季:6-8月
- 秋季:9-11月
- 冬季:12-2月
- 输入无效月份时输出提示信息
- 春季:3-5月
- 夏季:6-8月
- 秋季:9-11月
- 冬季:12-2月
- 输入无效月份时输出提示信息
参考代码:
using System;
class Program
{
static void Main(string[] args)
{
Console.Write("请输入月份(1-12):");
int month = int.Parse(Console.ReadLine());
string season;
switch (month)
{
case 3:
case 4:
case 5:
season = "春季";
break;
case 6:
case 7:
case 8:
season = "夏季";
break;
case 9:
case 10:
case 11:
season = "秋季";
break;
case 12:
case 1:
case 2:
season = "冬季";
break;
default:
season = "无效月份";
break;
}
Console.WriteLine($"{month}月属于{season}");
}
}
困难
11. 编写一个程序,根据用户输入的数字(1-10),输出对应的英文单词,若输入10以上的数字,输出"Greater than 10"(使用switch-case语句)。
要求:
- 1: One, 2: Two, ..., 10: Ten
- 输入非数字时要处理异常 - 输入数字范围外时给出提示
- 1: One, 2: Two, ..., 10: Ten
- 输入非数字时要处理异常 - 输入数字范围外时给出提示
参考代码:
using System;
class Program
{
static void Main(string[] args)
{
try
{
Console.Write("请输入一个数字:");
int number = int.Parse(Console.ReadLine());
switch (number)
{
case 1:
Console.WriteLine("One");
break;
case 2:
Console.WriteLine("Two");
break;
case 3:
Console.WriteLine("Three");
break;
case 4:
Console.WriteLine("Four");
break;
case 5:
Console.WriteLine("Five");
break;
case 6:
Console.WriteLine("Six");
break;
case 7:
Console.WriteLine("Seven");
break;
case 8:
Console.WriteLine("Eight");
break;
case 9:
Console.WriteLine("Nine");
break;
case 10:
Console.WriteLine("Ten");
break;
default:
if (number > 10)
{
Console.WriteLine("Greater than 10");
}
else
{
Console.WriteLine("输入的数字小于1");
}
break;
}
}
catch (FormatException)
{
Console.WriteLine("请输入有效的数字");
}
}
}