内容正文:
编写说明:河北省对口招生《计算机类考纲百套卷》,依据《河北省2028年中等职业学校对口升学考试计算机类专业考试大纲》编写。本专辑涵盖四门课程,且每门课程均采用三阶递进式训练体系:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编写专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。
本试卷是第77卷,为专题训练卷,按《算法与程序设计-C#》范围和要求编写。具体内容为:1.Math类函数;2.String类函数;3.DateTime类、Random类函数;4.Convert类
2027版河北省《计算机类考纲百套卷》 第77卷
《算法与程序设计-C#》
常用类的属性和方法 专题训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单项选择题(本大题共15小题,每题2分,共30分)
1.关于 Math 类的特性,下列说法正确的是( )
A. Math 类可以被实例化,例如 Math m = new Math();
B. Math 类是一个静态类,不能被实例化,其所有成员都是静态的
C. Math 类中的方法既有静态的,也有实例的
D. Math 类是一个抽象类,必须被继承才能使用
2.下列关于 string.Concat() 和 + 运算符的说法,正确的是( )
A. Concat 会在两个字符串之间自动添加空格
B. + 运算符底层是通过调用 Concat 方法实现的
C. Concat 只能连接两个字符串
D. + 运算符不能连接字符串和数字
3.执行代码 string.Format("价格是: {0:C}", 123.45),如果当前区域设置为中国,输出结果最接近( )
A. 价格是: 123.45 B. 价格是: ¥123.45
C. 价格是: $123.45 D. 价格是: {0:C}
4.执行代码 "Hello".Insert(1, "ABC") 的返回值是( )
A. "ABCello" B. "ABCHello" C. "HelloABC" D. "HABCello"
5.下列关于 string.IsNullOrEmpty(str) 的描述,正确的是( )
A. 如果 str 为 null,返回 false B. 如果 str 为 "",返回 false
C. 如果 str 为 null 或 "",返回 true D. 该方法会抛出异常如果 str 为 null
6.string.Join("-", new string[] { "A", "B", "C" }) 的返回值是( )
A. "ABC" B. "A-B-C" C. "-A-B-C-" D. "A, B, C"
7."Hello".ToCharArray() 的作用是( )
A. 将字符串转换为一个字符列表 B. 将字符串转换为一个字符数组
C. 返回字符串的内存地址 D. 没有任何作用
8.Math.Ceiling(-3.2) 的返回值是( )
A. -3 B. -4 C. -3.0 D. -4.0
9.string.Compare(strA, strB) 方法返回值为 -1,表示( )
A. strA 等于 strB B. strA 大于 strB
C. strA 小于 strB D. 比较出错
10. 下列关于String类Chars属性的说法中,正确的是( )
string name = "ZhangSan";
char firstChar = name[0];
A. name[0] 获取的是字符串的最后一个字符
B. name[0] 获取的是字符 'Z'
C. 字符串的索引从1开始,所以name[0]获取的是第一个字符 'Z'
D. Chars属性返回的是字符对应的ASCII码值
11. 以下代码的输出结果是( )
string a = "hello";
string b = "Hello";
Console.WriteLine(a.Equals(b));
A. True B. False C. hello D. Hello
12.执行下列代码,程序的运行结果为( )
double a = 2.5;
double b = 1.3;
double result = Math.Round(Math.Pow(Math.Floor(a), Math.Ceiling(b)), 1);
Console.WriteLine(result);
A. 4.0 B. 6.0 C. 8.0 D. 9.0
13.Random.NextDouble() 方法返回的随机双精度浮点数的范围是( )
A. 0.0 到 1.0(包含 0.0 和 1.0) B. 0.0 到 1.0(包含 0.0,不包含 1.0)
C. 1.0 到 10.0 D. 0 到 100
14.若要将字符串 "123.45" 转换为 double 类型,下列代码最规范的是( )
A. double d = (double)"123.45"; B. double d = Convert.ToDouble("123.45");
C. double d = "123.45".ToDouble(); D. double d = double.ParseInt("123.45");
15.执行代码 Convert.ToBoolean("False") 的返回值是( )
A. True B. false C. 抛出异常 D. null
2、 判断题(本大题共10小题,每题2分,共20分)
16.Contains方法用于判断字符串是否包含指定子串,返回布尔值。( )
17.string.Copy方法会创建一个与原始字符串内容相同的新字符串对象。( )
18.String.Format方法中,占位符从1开始编号。( )
19.string.IsNullOrEmpty方法可以检查字符串是否为null或空字符串。( )
20.Random.Next(int maxValue)返回0到maxValue之间的整数,包括0但不包括maxValue。( )
21.使用相同种子创建的两个Random对象,调用相同次数的Next()方法,生成的随机数序列相同。( )
22.Random对象的默认种子是基于当前系统时间自动生成的。( )
23.Convert.ToBoolean(0)返回false,Convert.ToBoolean(100)返回true。( )
24.Convert.ToDecimal("123.45")返回decimal类型的123.45,精度高于double。( )
25.Convert.ToInt32("123.45")会成功返回整数123。( )
三、填空题(本大题共10个题,每题2分,共20分)
26.从字符串中删除前导和尾随空白字符,可以使用String类的______方法。
27.某金融软件需要计算复利,涉及到幂运算。若要计算 2 的 10 次方,在 C# 中应调用的代码是 Math.________。
28.将字符串数组 string[] names = {"张三", "李四", "王五"}; 转换为 "张三,李四,王五",最高效的方法是使用 string.________。
29.在 C# 中,判断一个字符串是否为 null 或者空字符串(""),最简便且安全的方法是调用 string.________。
30.获取当前计算机系统的本地日期和时间(包含年月日时分秒),在 C# 中应使用 DateTime 类的静态属性 ________。
31.在验证用户输入或处理文件路径时,经常需要判断字符串的开头或结尾。若要判断一个字符串 str 是否以 "http://" 开头,应使用的代码是________。
32.若要将字符串 str 中的所有大写字母转换为小写字母,应调用的方法是________。
33.字符串的 IndexOf 方法提供了重载版本,例如 str.IndexOf("abc", 5),其中参数 5 代表从字符串的 ________开始查找子串 "abc" 第一次出现的位置。
34.使用DateTime类获取当前年份,代码为________。
35.在 C# 中,Random rand = new Random();int num = rand.Next(5, 15)+5;num的取值范围是______。
四、程序填空题(本大题共2题,每空5分,共30分)
36.该程序实现的功能:模拟掷骰子 100 次的功能,通过Random类随机生成 1~6 的骰子点数,使用数组统计每个点数出现的次数,最后计算并输出每个点数的出现次数和所占百分比。
public static void Main()
{
Random rnd = new Random();
int[] counts = new int[6];
int totalThrows = 100;
for (int i = 0; i < totalThrows; i++)
{
int roll = ___(1)__________
counts[roll - 1]++;
}
Console.WriteLine("掷骰子{0}次的结果:", totalThrows);
for (int i = 0; i < counts.Length; i++)
{
double percentage =___(2)__________/ totalThrows * 100;
Console.WriteLine("点数{0}: {1}次, 占比{2:F2}%", i + 1, counts[i], percentage);
}
}
37.该程序实现的功能是文本加密与解密功能,加密规则为仅对字符串中的英文字母进行偏移处理,大写字母以 'A' 为基准、小写字母以 'a' 为基准,统一向后偏移 3 位,非字母字符保持不变,解密则通过反向偏移实现字符还原。
public class Program
{
public static void Main()
{
string original = "Hello, World!";
int shift = 3;
Console.WriteLine("原始字符串: {0}", original);
string encrypted = _______(1)_______
Console.WriteLine("加密后: {0}", encrypted);
string decrypted = Decrypt(encrypted, shift);
Console.WriteLine("解密后: {0}", decrypted);
}
public static string Encrypt(string text, int shift)
{
______(2)________
foreach (char c in text)
{
if (char.IsLetter(c))
{
result += (char)(c + shift);
}
else
{
_____(3)_________
}
}
_____(4)_________
}
public static string Decrypt(string text, int shift)
{
return Encrypt(text, -shift);
}
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
编写说明:河北省对口招生《计算机类考纲百套卷》,依据《河北省2028年中等职业学校对口升学考试计算机类专业考试大纲》编写。本专辑涵盖四门课程,且每门课程均采用三阶递进式训练体系:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编写专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。
本试卷是第77卷,为专题训练卷,按《算法与程序设计-C#》范围和要求编写。具体内容为:1.Math类函数;2.String类函数;3.DateTime类、Random类函数; 4.Convert类
2027版河北省《计算机类考纲百套卷》 第77卷
《算法与程序设计-C#》
常用类的属性和方法 专题训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单项选择题(本大题共15小题,每题2分,共30分)
1.关于 Math 类的特性,下列说法正确的是( )
A. Math 类可以被实例化,例如 Math m = new Math();
B. Math 类是一个静态类,不能被实例化,其所有成员都是静态的
C. Math 类中的方法既有静态的,也有实例的
D. Math 类是一个抽象类,必须被继承才能使用
【答案】B
【解析】Math 类是一个静态类(static class),它不能被实例化(不能用 new 关键字),其内部提供的所有字段(如 PI)和方法(如 Abs)都是静态的,必须通过 Math.方法名() 的方式调用。
2.下列关于 string.Concat() 和 + 运算符的说法,正确的是( )
A. Concat 会在两个字符串之间自动添加空格
B. + 运算符底层是通过调用 Concat 方法实现的
C. Concat 只能连接两个字符串
D. + 运算符不能连接字符串和数字
【答案】B
【解析】在C#中,字符串的 + 运算符在编译时会被转换为 string.Concat 方法调用。Concat 可以连接多个字符串或对象,且连接时不会自动添加分隔符。
3.执行代码 string.Format("价格是: {0:C}", 123.45),如果当前区域设置为中国,输出结果最接近( )
A. 价格是: 123.45 B. 价格是: ¥123.45
C. 价格是: $123.45 D. 价格是: {0:C}
【答案】B
【解析】{0:C} 是货币格式说明符。在中国区域设置下,会将数字格式化为人民币符号加数值的形式。
4.执行代码 "Hello".Insert(1, "ABC") 的返回值是( )
A. "ABCello" B. "ABCHello" C. "HelloABC" D. "HABCello"
【答案】D
【解析】Insert(startIndex, value) 方法在指定的索引位置插入字符串。索引 1 是 'e' 的位置,插入后变为 "H" + "ABC" + "ello"。
5.下列关于 string.IsNullOrEmpty(str) 的描述,正确的是( )
A. 如果 str 为 null,返回 false B. 如果 str 为 "",返回 false
C. 如果 str 为 null 或 "",返回 true D. 该方法会抛出异常如果 str 为 null
【答案】C
【解析】IsNullOrEmpty 是一个静态方法,用于便捷地判断字符串是否为 null 或者空字符串(长度为 0)。这两种情况都会返回 true。
6.string.Join("-", new string[] { "A", "B", "C" }) 的返回值是( )
A. "ABC" B. "A-B-C" C. "-A-B-C-" D. "A, B, C"
【答案】B
【解析】Join(separator, values) 方法使用指定的分隔符将字符串数组连接成一个字符串。
7."Hello".ToCharArray() 的作用是( )
A. 将字符串转换为一个字符列表 B. 将字符串转换为一个字符数组
C. 返回字符串的内存地址 D. 没有任何作用
【答案】B
【解析】ToCharArray() 方法将当前字符串中的字符复制到一个新的字符数组(char[])中。
8.Math.Ceiling(-3.2) 的返回值是( )
A. -3 B. -4 C. -3.0 D. -4.0
【答案】C
【解析】Math.Ceiling() 方法用于“向上取整”,即返回大于或等于指定数字的最小整数。在数轴上,大于 -3.2 的最小整数是 -3。注意,该方法的返回值类型是 double,所以结果是 -3.0。
9.string.Compare(strA, strB) 方法返回值为 -1,表示( )
A. strA 等于 strB B. strA 大于 strB
C. strA 小于 strB D. 比较出错
【答案】C
【解析】string.Compare(strA, strB) 返回值规则:返回 -1 → strA 小于 strB。
10. 下列关于String类Chars属性的说法中,正确的是( )
string name = "ZhangSan";
char firstChar = name[0];
A. name[0] 获取的是字符串的最后一个字符
B. name[0] 获取的是字符 'Z'
C. 字符串的索引从1开始,所以name[0]获取的是第一个字符 'Z'
D. Chars属性返回的是字符对应的ASCII码值
【答案】B
【解析】String类的Chars属性用于通过索引访问字符串中的单个字符。在C#中,字符串的索引从0开始,这与数组的索引规则完全相同。
11. 以下代码的输出结果是( )
string a = "hello";
string b = "Hello";
Console.WriteLine(a.Equals(b));
A. True B. False C. hello D. Hello
【答案】B
【解析】String类的Equals方法用于判断两个字符串的内容是否相等。默认情况下,Equals方法是区分大小写的。
12.执行下列代码,程序的运行结果为( )
double a = 2.5;
double b = 1.3;
double result = Math.Round(Math.Pow(Math.Floor(a), Math.Ceiling(b)), 1);
Console.WriteLine(result);
A. 4.0 B. 6.0 C. 8.0 D. 9.0
【答案】A
【解析】Math.Floor(2.5) = 2.0;Math.Ceiling(1.3) = 2.0;Math.Pow(2.0, 2.0) = 4.0
Math.Round(4.0, 1) = 4.0。
13.Random.NextDouble() 方法返回的随机双精度浮点数的范围是( )
A. 0.0 到 1.0(包含 0.0 和 1.0) B. 0.0 到 1.0(包含 0.0,不包含 1.0)
C. 1.0 到 10.0 D. 0 到 100
【答案】B
【解析】NextDouble() 返回一个大于或等于 0.0 且小于 1.0 的双精度浮点数,即区间 [0.0, 1.0)。
14.若要将字符串 "123.45" 转换为 double 类型,下列代码最规范的是( )
A. double d = (double)"123.45"; B. double d = Convert.ToDouble("123.45");
C. double d = "123.45".ToDouble(); D. double d = double.ParseInt("123.45");
【答案】B
【解析】C# 中不能直接通过强制类型转换 (double) 将字符串转为数值。Convert.ToDouble() 是标准的转换方法。string 类没有 ToDouble() 方法,double 也没有 ParseInt 方法。
15.执行代码 Convert.ToBoolean("False") 的返回值是( )
A. True B. false C. 抛出异常 D. null
【答案】B
【解析】Convert.ToBoolean(string) 方法能够识别字符串 "True"(不区分大小写)和 "False"(不区分大小写)。传入 "False" 会返回布尔值 false。
2、 判断题(本大题共10小题,每题2分,共20分)
16.Contains方法用于判断字符串是否包含指定子串,返回布尔值。( )
【答案】对
【解析】string.Contains(子串) 是 C# 字符串的常用方法,作用就是判断一个字符串中是否包含指定的子字符串
17.string.Copy方法会创建一个与原始字符串内容相同的新字符串对象。( )
【答案】对
【解析】string.Copy(str) 方法的作用就是:创建一个全新的字符串对象,并且内容和原始字符串完全一致,两个字符串指向不同的内存地址,但内容一模一样。
18.String.Format方法中,占位符从1开始编号。( )
【答案】错
【解析】String.Format 方法中的占位符是从 0 开始编号的,不是从 1 开始。
19.string.IsNullOrEmpty方法可以检查字符串是否为null或空字符串。( )
【答案】对
【解析】string.IsNullOrEmpty(str) 方法的作用就是检查字符串是否为 null 或者是空字符串 "",满足任意一种情况都会返回 true。
20.Random.Next(int maxValue)返回0到maxValue之间的整数,包括0但不包括maxValue。( )
【答案】对
【解析】Random.Next(int maxValue)方法的重要特性:返回大于等于0且小于maxValue的整数,即[0, maxValue)。
21.使用相同种子创建的两个Random对象,调用相同次数的Next()方法,生成的随机数序列相同。( )
【答案】对
【解析】Random使用确定性算法生成伪随机数序列。相同的种子(seed)会生成完全相同的序列。
22.Random对象的默认种子是基于当前系统时间自动生成的。( )
【答案】对
【解析】使用Random()无参构造函数创建Random对象时,默认种子由系统计时器(当前日期和时间)的值决定。这确保了在不同时间创建的对象通常会获得不同的随机序列。
23.Convert.ToBoolean(0)返回false,Convert.ToBoolean(100)返回true。( )
【答案】对
【解析】Convert.ToBoolean()方法对数字的处理规则是:0转换为false,任何非0数字(包括正数和负数)转换为true。
24.Convert.ToDecimal("123.45")返回decimal类型的123.45,精度高于double。( )
【答案】对
【解析】Convert.ToDecimal()将字符串转换为decimal类型,decimal是C#中精度最高的浮点类型。
25.Convert.ToInt32("123.45")会成功返回整数123。( )
【答案】错
【解析】Convert.ToInt32()要求字符串必须是有效的整数格式,不能包含小数点。"123.45"包含小数点,不是有效的整数格式。
三、填空题(本大题共10个题,每题2分,共20分)
26.从字符串中删除前导和尾随空白字符,可以使用String类的______方法。
【答案】Trim
【解析】string.Trim()移除前后空白字符。
27.某金融软件需要计算复利,涉及到幂运算。若要计算 2 的 10 次方,在 C# 中应调用的代码是 Math.________。
【答案】Pow(2,10)
【解析】Math.Pow(double x, double y) 方法用于计算 x 的 y 次幂。
28.将字符串数组 string[] names = {"张三", "李四", "王五"}; 转换为 "张三,李四,王五",最高效的方法是使用 string.________。
【答案】Join(",", names)
【解析】string.Join(separator, values) 用于将数组或集合的元素用指定的分隔符连接起来。
29.在 C# 中,判断一个字符串是否为 null 或者空字符串(""),最简便且安全的方法是调用 string.________。
【答案】 IsNullOrEmpty(str)
【解析】该方法用于指定字符串是否为 null 或 Empty。
30.获取当前计算机系统的本地日期和时间(包含年月日时分秒),在 C# 中应使用 DateTime 类的静态属性 ________。
【答案】Now
【解析】DateTime.Now 获取当前本地时间。
31.在验证用户输入或处理文件路径时,经常需要判断字符串的开头或结尾。若要判断一个字符串 str 是否以 "http://" 开头,应使用的代码是________。
【答案】str.StartsWith("http://")
【解析】StartsWith() 方法用于判断字符串的开头是否匹配指定的字符或子串。
32.若要将字符串 str 中的所有大写字母转换为小写字母,应调用的方法是________。
【答案】ToLower
【解析】ToLower() 方法将字符串转换为小写;对应的转大写方法为 ToUpper()。
33.字符串的 IndexOf 方法提供了重载版本,例如 str.IndexOf("abc", 5),其中参数 5 代表从字符串的 ________开始查找子串 "abc" 第一次出现的位置。
【答案】索引为5的位置
【解析】str.IndexOf("子串", 起始索引) 中,第二个数字参数代表从字符串的指定索引位置开始向后查找。
34.使用DateTime类获取当前年份,代码为________。
【答案】DateTime.Now.Year
【解析】DateTime.Now:获取系统当前完整本地日期时间。Year:只读属性,专门提取时间中的年份,返回 int 整型。
35.在 C# 中,Random rand = new Random();int num = rand.Next(5, 15)+5;num的取值范围是______。
【答案】[10,19]
【解析】rand.Next(5, 15) 返回 5 到 14(包含 5,不包含 15)。再 +5 后,范围变为 10 到 19(包含 10 和 19)。
四、程序填空题(本大题共2题,每空5分,共30分)
36.该程序实现的功能:模拟掷骰子 100 次的功能,通过Random类随机生成 1~6 的骰子点数,使用数组统计每个点数出现的次数,最后计算并输出每个点数的出现次数和所占百分比。
public static void Main()
{
Random rnd = new Random();
int[] counts = new int[6];
int totalThrows = 100;
for (int i = 0; i < totalThrows; i++)
{
int roll = ___(1)__________
counts[roll - 1]++;
}
Console.WriteLine("掷骰子{0}次的结果:", totalThrows);
for (int i = 0; i < counts.Length; i++)
{
double percentage =___(2)__________/ totalThrows * 100;
Console.WriteLine("点数{0}: {1}次, 占比{2:F2}%", i + 1, counts[i], percentage);
}
}
【答案】
(1)rnd.Next(1, 7);
(2)(double)counts[i]
【解析】Random的Next(左边界,右边界)是左闭右开,要生成 1~6 骰子点数,写Next(1,7),counts[i]是 int 类型,直接相除会整数丢精度,先强制转double再计算。
37.该程序实现的功能是文本加密与解密功能,加密规则为仅对字符串中的英文字母进行偏移处理,大写字母以 'A' 为基准、小写字母以 'a' 为基准,统一向后偏移 3 位,非字母字符保持不变,解密则通过反向偏移实现字符还原。
public class Program
{
public static void Main()
{
string original = "Hello, World!";
int shift = 3;
Console.WriteLine("原始字符串: {0}", original);
string encrypted = _______(1)_______
Console.WriteLine("加密后: {0}", encrypted);
string decrypted = Decrypt(encrypted, shift);
Console.WriteLine("解密后: {0}", decrypted);
}
public static string Encrypt(string text, int shift)
{
______(2)________
foreach (char c in text)
{
if (char.IsLetter(c))
{
result += (char)(c + shift);
}
else
{
_____(3)_________
}
}
_____(4)_________
}
public static string Decrypt(string text, int shift)
{
return Encrypt(text, -shift);
}
}
【答案】
(1)Encrypt(original, shift);
(2)string result = "";
(3)result += c;
(4)return result;
【解析】调用自定义加密方法,传入原字符串和偏移量 3,接收加密结果。定义空字符串result,用来拼接加密后的每一个字符。判断不是英文字母,直接把原字符拼接进结果,非字母字符不加密。循环遍历完成所有字符后,返回拼接好的加密完整字符串。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$