内容正文:
编写说明:河北省对口招生《计算机类考纲百套卷》,依据《河北省2028年中等职业学校对口升学考试计算机类专业考试大纲》编写。本专辑涵盖四门课程,且每门课程均采用三阶递进式训练体系:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。
本试卷是第67卷为考点训练卷,按《算法与程序设计-C#》范围和要求编写。具体内容为:String类的属性:Chars、Length,掌握String 类的方法:Equals、compare、Contains、
Concat、Copy、Format、IndexOf、Insert、Remove、Replace、IsNullorEmpty、Join、Split、ToLower、ToUpper、ToCharArray、Trim、Substring。
2027版河北省《计算机类考纲百套卷》 第67卷
《算法与程序设计-C#》
String类 知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单项选择题(本大题共20小题,每题2分,共40分)
1.关于String类的Length属性,以下说法正确的是( )
A. Length属性返回字符串的字符数,包括空格和特殊字符
B. Length属性返回字符串的字节数
C. Length属性是只写的,不能读取
D. 空字符串的Length属性值为null
2.以下代码的输出结果是( )
string s1 = "Hello";
string s2 = "HELLO";
bool result = s1.Equals(s2, StringComparison.OrdinalIgnoreCase);
Console.WriteLine(result);
A. True B. False C. 编译错误 D. 运行时错误
3.关于String.Compare方法,以下说法错误的是( )
A. String.Compare可以比较两个字符串,并返回一个整数表示它们的关系
B. 返回值小于0表示第一个字符串小于第二个字符串
C. 默认情况下,String.Compare区分大小写
D. String.Compare不能用于比较包含数字的字符串
4.以下代码的输出结果是( )
string str = "Hello World";
bool contains = str.Contains("World");
Console.WriteLine(contains);
A. True B. False C. 编译错误 D. 运行时错误
5.关于String.Concat方法,以下说法正确的是( )
A. 只能连接两个字符串 B. 可以连接任意数量的字符串
C. 只能连接字符串,不能连接其他类型 D. 连接null字符串时会抛出异常
6.以下代码的输出结果是( )
string str = "Hello World";
int index = str.IndexOf('o');
Console.WriteLine(index);
A. 4 B. 5 C. 7 D. -1
7.关于String.Insert方法,以下说法正确的是( )
A. 在原字符串的指定位置插入新字符串,并返回新字符串 B. 会修改原字符串
C. 如果插入位置超出范围,返回原字符串 D. 插入位置可以是负数
8.以下代码的输出结果是( )
string str = "Hello World";
string result = str.Remove(5, 6);
Console.WriteLine(result);
A. Hello B. World C. HelloWorld D. 编译错误
9.关于String.Replace方法,以下说法正确的是( )
A. 可以替换字符,也可以替换字符串 B. 替换操作区不分大小写
C. 会修改原字符串 D. 如果旧值为空字符串,会抛出异常
10.关于String.Join方法,以下说法正确的是( )
A. 用于连接字符串数组,并用指定分隔符分隔
B. 只能连接字符串数组,不能连接其他集合
C. 分隔符不能是空字符串
D. 如果数组为null,返回空字符串
11.以下代码的输出结果是( )
string str = "apple,orange,banana";
string[] fruits = str.Split(',');
Console.WriteLine(fruits[1]);
A. Apple B. orange C. banana D. 编译错误
12.以下代码的输出结果是( )
string str = "Hello";
char[] chars = str.ToCharArray();
Console.WriteLine(chars[1]);
A. H B. e C. l D. o
13.关于字符串的Chars属性,以下说法正确的是( )
A. 可以通过索引访问字符串中的字符 B. 索引从1开始
C. 如果索引越界,返回空字符 D. 可以用于修改字符串中的字符
14.以下代码的输出结果是( )
string s1 = "Hello";
string s2 = "Hello";
bool result = (s1 == s2);
Console.WriteLine(result);
A. True B. False C. 编译错误 D. 运行时错误
15.以下代码的输出结果是( )
string str = "Hello World";
int index = str.IndexOf('o', 5);
Console.WriteLine(index);
A. 4 B. 5 C. 7 D. -1
16.以下代码的输出结果是( )
string str = "42";
int num = int.Parse(str);
string formatted = string.Format("The answer is {0:D4}", num);
Console.WriteLine(formatted);
A. The answer is 42 B. The answer is 0042
C. 编译错误 D. 运行时错误
17.以下代码的输出结果是( )
string str = "Hello";
string result = str.Replace('l', 'L');
Console.WriteLine(result);
A. HeLLo B. HeLLo C. Hello D. HELLO
18.在C#中,关于 String 类的特性,下列说法正确的是( )
A. 字符串是可变类型,修改字符串会直接在原内存地址上修改
B. 字符串是引用类型,且具有不可变性
C. 字符串是值类型,存储在栈内存中
D. 字符串可以像字符数组一样,通过索引随意修改其中的某个字符
19.执行代码 string s = "Hello"; s[0] = 'h'; 会( )
A. 字符串变为 "hello" B. 编译错误,因为 string 的索引器是只读的
C. 运行时异常 D. 没有任何变化
20.下列关于 string.Equals() 和 == 运算符的说法,正确的是( )
A. == 比较的是内存地址,Equals 比较的是内容
B. 对于字符串,== 和 Equals 默认都是比较字符串的内容
C. Equals 不能忽略大小写进行比较
D. == 运算符不能用于比较两个为 null 的字符串
2、 判断题(本大题共10小题,每题2分,共20分)
21.String类的所有方法都不会修改原字符串,而是返回新的字符串。( )
22."Hello"[0] 返回的是字符 'H',索引从1开始计数。( )
23.string.Empty 和 "" 是完全等价的,都表示空字符串。( )
24.Replace 方法会替换字符串中所有匹配的子串,而不只是第一个。( )
25.string.Join("-", new string[] {"A", "B", "C"}) 的结果是 "A-B-C"。( )
26."Hello".Remove(2, 3) 会删除索引2、3、4位置的字符,结果是 "He"。( )
27. Copy 方法创建的副本和原字符串是完全独立的,修改一个不会影响另一个。( )
28.Concat 方法和 + 运算符在连接字符串时效果完全相同。( )
29."2024-06-15".Split('-') 会返回数组 ["2024", "06", "15"]。( )
30.string.Format("{0:C}", 99.9) 会输出货币格式如 ¥99.90。( )
三、填空题(本大题共10个题,每题2分,共20分)
31.执行代码string.Format("{0:F2}", 3.14159)后,结果为________。
32.比较两个字符串内容是否相等的方法是______。
33.开发中需要判断用户输入是否为空或未赋值,最适合用方法______。
34.执行代码:string.Compare("apple","Apple",StringComparison.OrdinalIgnoreCase) ,返回值是______。
35.在 string 类的查找方法中,IndexOf 用于查找子串第一次出现的位置,而________方法则用于查找子串在当前字符串中最后一次出现的位置。
36.执行代码string.Compare("apple", "banana") 后,结果为__________。
37.将字符串"Hello"转换为字符数组,使用的方法是_______。
38."Hello World".Replace(" ", "-") 的返回值是__________。
39."Hello".Equals("hello") =_________。
40.将字符串数组{"a", "b", "c"}拼接为"a,b,c",应使用_______。
四、读程题(本大题共2题,每题10分,共20分)
41.执行下列代码后,程序的运行结果为_________。
class Program
{
static void Main()
{
string phone = "13812345678";
string prefix = phone.Substring(0, 3);
string suffix = phone.Substring(7, 4);
string masked = prefix + "****" + suffix;
Console.WriteLine("原手机号:" + phone);
Console.WriteLine("脱敏后:" + masked);
}
}
42. 执行下列代码后,程序的运行结果为_________。
class Program
{
static void Main()
{
string scoreString = "张三:85,李四:92,王五:78";
string[] students = scoreString.Split(',');
Console.WriteLine("学生成绩统计:");
Console.WriteLine("================");
int total = 0;
foreach (string s in students)
{
string[] parts = s.Split(':');
string name = parts[0];
int score = int.Parse(parts[1]);
total += score;
Console.WriteLine("{0}的成绩是{1}分", name, score);
}
double average = total / (double)students.Length;
Console.WriteLine("================");
Console.WriteLine(string.Format("平均分:{0:F1}", average));
}
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
编写说明:河北省对口招生《计算机类考纲百套卷》,依据《河北省2028年中等职业学校对口升学考试计算机类专业考试大纲》编写。本专辑涵盖四门课程,且每门课程均采用三阶递进式训练体系:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。
本试卷是第67卷为考点训练卷,按《算法与程序设计-C#》范围和要求编写。具体内容为:String类的属性:Chars、Length,掌握String 类的方法:Equals、compare、Contains、
Concat、Copy、Format、IndexOf、Insert、Remove、Replace、IsNullorEmpty、Join、Split、ToLower、ToUpper、ToCharArray、Trim、Substring。
2027版河北省《计算机类考纲百套卷》 第67卷
《算法与程序设计-C#》
String类 知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单项选择题(本大题共20小题,每题2分,共40分)
1.关于String类的Length属性,以下说法正确的是( )
A. Length属性返回字符串的字符数,包括空格和特殊字符
B. Length属性返回字符串的字节数
C. Length属性是只写的,不能读取
D. 空字符串的Length属性值为null
【答案】A
【解析】String类的Length属性是只读的,返回字符串中字符的个数(包括空格和特殊字符)。对于空字符串(""),Length属性值为0,而不是null。
2.以下代码的输出结果是( )
string s1 = "Hello";
string s2 = "HELLO";
bool result = s1.Equals(s2, StringComparison.OrdinalIgnoreCase);
Console.WriteLine(result);
A. True B. False C. 编译错误 D. 运行时错误
【答案】A
【解析】 String.Equals方法可以指定比较规则。StringComparison.OrdinalIgnoreCase表示忽略大小写的序数比较。因此"Hello"和"HELLO"在忽略大小写时相等,返回True。
3.关于String.Compare方法,以下说法错误的是( )
A. String.Compare可以比较两个字符串,并返回一个整数表示它们的关系
B. 返回值小于0表示第一个字符串小于第二个字符串
C. 默认情况下,String.Compare区分大小写
D. String.Compare不能用于比较包含数字的字符串
【答案】D
【解析】 String.Compare可以比较任何字符串,包括包含数字的字符串。
4.以下代码的输出结果是( )
string str = "Hello World";
bool contains = str.Contains("World");
Console.WriteLine(contains);
A. True B. False C. 编译错误 D. 运行时错误
【答案】A
【解析】Contains方法用于判断字符串中是否包含指定的子串。str包含"World",所以返回True。
5.关于String.Concat方法,以下说法正确的是( )
A. 只能连接两个字符串 B. 可以连接任意数量的字符串
C. 只能连接字符串,不能连接其他类型 D. 连接null字符串时会抛出异常
【答案】B
【解析】String.Concat有多个重载,可以连接两个或多个字符串,也可以连接对象数组(会调用其ToString方法)。连接null时,会将null当作空字符串处理,不会抛出异常。
6.以下代码的输出结果是( )
string str = "Hello World";
int index = str.IndexOf('o');
Console.WriteLine(index);
A. 4 B. 5 C. 7 D. -1
【答案】A
【解析】 IndexOf方法返回指定字符第一次出现的索引(从0开始)。
7.关于String.Insert方法,以下说法正确的是( )
A. 在原字符串的指定位置插入新字符串,并返回新字符串 B. 会修改原字符串
C. 如果插入位置超出范围,返回原字符串 D. 插入位置可以是负数
【答案】A
【解析】Insert方法在指定位置插入字符串,返回新的字符串,原字符串不变。如果插入位置超出范围(小于0或大于原字符串长度),会抛出ArgumentOutOfRangeException异常。
8.以下代码的输出结果是( )
string str = "Hello World";
string result = str.Remove(5, 6);
Console.WriteLine(result);
A. Hello B. World C. HelloWorld D. 编译错误
【答案】A
【解析】Remove方法从指定位置开始删除指定数量的字符。
9.关于String.Replace方法,以下说法正确的是( )
A. 可以替换字符,也可以替换字符串 B. 替换操作区不分大小写
C. 会修改原字符串 D. 如果旧值为空字符串,会抛出异常
【答案】A
【解析】 Replace可以替换字符或字符串,区分大小写,返回新字符串,原字符串不变。如果旧值为空字符串,会抛出ArgumentException异常。
10.关于String.Join方法,以下说法正确的是( )
A. 用于连接字符串数组,并用指定分隔符分隔
B. 只能连接字符串数组,不能连接其他集合
C. 分隔符不能是空字符串
D. 如果数组为null,返回空字符串
【答案】A
【解析】 Join方法可以用分隔符连接字符串数组或可枚举集合。分隔符可以是空字符串。如果数组为null,会抛出ArgumentNullException异常。
11.以下代码的输出结果是( )
string str = "apple,orange,banana";
string[] fruits = str.Split(',');
Console.WriteLine(fruits[1]);
A. Apple B. orange C. banana D. 编译错误
【答案】B
【解析】Split方法用指定分隔符分割字符串,返回字符串数组。
12.以下代码的输出结果是( )
string str = "Hello";
char[] chars = str.ToCharArray();
Console.WriteLine(chars[1]);
A. H B. e C. l D. o
【答案】B
【解析】ToCharArray将字符串转换为字符数组。str转换为['H','e','l','l','o'],索引1为'e'。
13.关于字符串的Chars属性,以下说法正确的是( )
A. 可以通过索引访问字符串中的字符 B. 索引从1开始
C. 如果索引越界,返回空字符 D. 可以用于修改字符串中的字符
【答案】A
【解析】字符串的Chars属性是只读的索引器,可以通过从0开始的索引访问字符。如果索引越界,会抛出IndexOutOfRangeException异常。不能用于修改字符,因为字符串不可变。
14.以下代码的输出结果是( )
string s1 = "Hello";
string s2 = "Hello";
bool result = (s1 == s2);
Console.WriteLine(result);
A. True B. False C. 编译错误 D. 运行时错误
【答案】A
【解析】C# 中字符串用 == 比较时,比较的是字符串内容。
15.以下代码的输出结果是( )
string str = "Hello World";
int index = str.IndexOf('o', 5);
Console.WriteLine(index);
A. 4 B. 5 C. 7 D. -1
【答案】C
【解析】 IndexOf('o',5)从索引5开始搜索'o'。索引5是空格,从空格之后开始搜索,下一个'o'在索引7("World"中的'o')。
16.以下代码的输出结果是( )
string str = "42";
int num = int.Parse(str);
string formatted = string.Format("The answer is {0:D4}", num);
Console.WriteLine(formatted);
A. The answer is 42 B. The answer is 0042
C. 编译错误 D. 运行时错误
【答案】B
【解析】格式化字符串"{0:D4}"表示将第一个参数格式化为4位十进制数,不足4位前面补0。
17.以下代码的输出结果是( )
string str = "Hello";
string result = str.Replace('l', 'L');
Console.WriteLine(result);
A. HeLLo B. HeLLo C. Hello D. HELLO
【答案】A
【解析】Replace将所有的'l'替换为'L'。str中有两个'l',都替换为'L',得到"HeLLo"。
18.在C#中,关于 String 类的特性,下列说法正确的是( )
A. 字符串是可变类型,修改字符串会直接在原内存地址上修改
B. 字符串是引用类型,且具有不可变性
C. 字符串是值类型,存储在栈内存中
D. 字符串可以像字符数组一样,通过索引随意修改其中的某个字符
【答案】B
【解析】在C#中,string 是引用类型,存储在堆内存中。它具有不可变性,即一旦创建,其内容就不能被修改。任何看似“修改”字符串的操作(如 Replace、Substring),实际上都是返回了一个全新的字符串对象。
19.执行代码 string s = "Hello"; s[0] = 'h'; 会( )
A. 字符串变为 "hello" B. 编译错误,因为 string 的索引器是只读的
C. 运行时异常 D. 没有任何变化
【答案】B
【解析】string 的 Chars 属性(索引器)是只读的。由于字符串的不可变性,C# 不允许通过索引直接修改字符串中的字符。
20.下列关于 string.Equals() 和 == 运算符的说法,正确的是( )
A. == 比较的是内存地址,Equals 比较的是内容
B. 对于字符串,== 和 Equals 默认都是比较字符串的内容
C. Equals 不能忽略大小写进行比较
D. == 运算符不能用于比较两个为 null 的字符串
【答案】B
【解析】字符串中 == 和 Equals() 默认都比较字符内容是否相等。
2、 判断题(本大题共10小题,每题2分,共20分)
21.String类的所有方法都不会修改原字符串,而是返回新的字符串。( )
【答案】错
【解析】String类具有不可变性(Immutable)。一旦创建,字符串的内容就不能被改变。所有修改类方法都返回新的字符串,原字符串保持不变。
22."Hello"[0] 返回的是字符 'H',索引从1开始计数。( )
【答案】错
【解析】"Hello"[0] 确实返回 'H',但索引是从0开始,不是从1开始。
23.string.Empty 和 "" 是完全等价的,都表示空字符串。( )
【答案】对
【解析】string.Empty 是String类的静态只读字段,值为空字符串 ""。两者在功能上完全等价。
24.Replace 方法会替换字符串中所有匹配的子串,而不只是第一个。( )
【答案】对
【解析】String.Replace 方法会替换所有匹配项。
25.string.Join("-", new string[] {"A", "B", "C"}) 的结果是 "A-B-C"。( )
【答案】对
【解析】Join方法使用指定分隔符连接数组元素。
26."Hello".Remove(2, 3) 会删除索引2、3、4位置的字符,结果是 "He"。( )
【答案】对
【解析】Remove(2, 3) 表示从索引2开始删除3个字符。
27. Copy 方法创建的副本和原字符串是完全独立的,修改一个不会影响另一个。( )
【答案】对
【解析】String.Copy 方法创建字符串的深拷贝,两个字符串对象相互独立。
28.Concat 方法和 + 运算符在连接字符串时效果完全相同。( )
【答案】对
【解析】在功能上,string.Concat(a, b) 和 a + b 是等价的,都会返回连接后的新字符串。
29."2024-06-15".Split('-') 会返回数组 ["2024", "06", "15"]。( )
【答案】对
【解析】Split方法按指定字符拆分为字符串数组。
30.string.Format("{0:C}", 99.9) 会输出货币格式如 ¥99.90。( )
【答案】对
【解析】{0:C} 格式符将数字格式化为货币形式。
三、填空题(本大题共10个题,每题2分,共20分)
31.执行代码string.Format("{0:F2}", 3.14159)后,结果为________。
【答案】”3.14”
【解析】F2表示保留2位小数,第三位四舍五入。
32.比较两个字符串内容是否相等的方法是______。
【答案】Equals
【解析】str1.Equals(str2) 逐字符比较内容是否相同,可重载忽略大小写。
33.开发中需要判断用户输入是否为空或未赋值,最适合用方法______。
【答案】IsNullOrEmpty
【解析】string.IsNullOrEmpty(str) 一次性判断字符串是否为null或空字符串"",是表单判空最常用写法。
34.执行代码:string.Compare("apple","Apple",StringComparison.OrdinalIgnoreCase) ,返回值是______。
【答案】0
【解析】忽略大小写后两字符串内容相等,Compare 返回 0;带第三个参数可控制是否区分大小写。
35.在 string 类的查找方法中,IndexOf 用于查找子串第一次出现的位置,而________方法则用于查找子串在当前字符串中最后一次出现的位置。
【答案】LastIndexOf
【解析】LastIndexOf:从后往前查找,返回子串最后一次出现的索引,找不到返回-1。
36.执行代码string.Compare("apple", "banana") 后,结果为__________。
【答案】-1
【解析】Compare方法中,较小的字符串(字典序靠前)返回负数。
37.将字符串"Hello"转换为字符数组,使用的方法是_______。
【答案】"Hello".ToCharArray()
【解析】返回char[]数组(结果为{'H', 'e', 'l', 'l', 'o'}),便于逐字符操作。
38."Hello World".Replace(" ", "-") 的返回值是__________。
【答案】”Hello-World”
【解析】Replace(oldChar, newChar) 或 Replace(oldValue, newValue) 会将字符串中所有匹配的目标替换为新的内容。这里将空格替换为了连字符。
39."Hello".Equals("hello") =_________。
【答案】False
【解析】Equals方法默认区分大小写,'H' ≠ 'h',所以返回False。
40.将字符串数组{"a", "b", "c"}拼接为"a,b,c",应使用_______。
【答案】string.Join(",", new string[] { "a", "b", "c" })
【解析】string.Join(separator, values)将数组元素通过分隔符拼接为单个字符串。
四、读程题(本大题共2题,每题10分,共20分)
41.执行下列代码后,程序的运行结果为_________。
class Program
{
static void Main()
{
string phone = "13812345678";
string prefix = phone.Substring(0, 3);
string suffix = phone.Substring(7, 4);
string masked = prefix + "****" + suffix;
Console.WriteLine("原手机号:" + phone);
Console.WriteLine("脱敏后:" + masked);
}
}
【答案】
原手机号:13812345678
脱敏后:138****5678
【解析】phone.Substring(0, 3) - 从索引0开始截取3个字符,得到 "138",phone.Substring(7, 4) - 从索引7开始截取4个字符,得到 "5678"。
42. 执行下列代码后,程序的运行结果为_________。
class Program
{
static void Main()
{
string scoreString = "张三:85,李四:92,王五:78";
string[] students = scoreString.Split(',');
Console.WriteLine("学生成绩统计:");
Console.WriteLine("================");
int total = 0;
foreach (string s in students)
{
string[] parts = s.Split(':');
string name = parts[0];
int score = int.Parse(parts[1]);
total += score;
Console.WriteLine("{0}的成绩是{1}分", name, score);
}
double average = total / (double)students.Length;
Console.WriteLine("================");
Console.WriteLine(string.Format("平均分:{0:F1}", average));
}
}
【答案】
学生成绩统计:
================
张三的成绩是85分
李四的成绩是92分
王五的成绩是78分
================
平均分:85.0
【解析】两次Split的用法:第一次按逗号,第二次按冒号,Format的 {F1} 表示固定1位小数。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$