第61卷 算法与程序设计—Math类与String类—河北省计算机类—考纲百套卷
|
2份
|
18页
|
45人阅读
|
0人下载
内容正文:
编写说明:河北省对口招生计算机类《考纲百套卷》,依据《河北省普通高等学校对口招生考试大纲(2028版专业课)计算机类》编写。本专辑涵盖9门课程,第一部分是专业核心模块训练卷,第二部分为各门课程的综合训练卷。本专辑共98份试卷。
本试卷是第61卷为专业核心模块训练卷,按《算法与程序设计》中"算法程序卷16——Math类与String类"范围和要求编写。具体内容为:掌握Math类的方法:Abs、Pow、Sqrt、Round、Ceiling、Floor、Exp、Log、Max、Min、Sign、Sin、Cos;掌握String类的属性:Chars、Length,掌握String类的方法:Equals、Compare、Contains、Concat、Copy、Format、IndexOf、Insert、Remove、Replace、IsNullOrEmpty、Join、Split、ToLower、ToUpper、ToCharArray、Trim、Substring
河北省对口招生职业技能考试
算法与程序设计 试卷
(算法程序卷16——Math类与String类)
考试时间:90分钟 满分:100分
一、单项选择题(共20题,每题2分,共40分)
1. C#中,string.Length属性返回的是()
A.字符串字节数 B.字符串字符数 C.字符串中字母数 D.字符串最大容量
2. C#中,str.ToUpper()方法的作用是()
A.转换为小写 B.转换为大写 C.截取字符串 D.返回字符串长度
3. C#中,str.Contains("abc")的作用是()
A.返回子串位置 B.判断是否包含指定子串 C.截取子串 D.替换子串
4. C#中,string.Split()方法的作用是()
A.查找子串位置 B.按分隔符拆分字符串 C.替换字符串 D.比较字符串
5. C#中,字符串连接除+运算符外,还可以使用()
A.string.Merge() B.string.Concat() C.string.Add() D.string.Join()
6. C#中,str.IndexOf("ab")的作用是()
A.判断是否包含"ab" B.返回"ab"首次出现的索引位置 C.替换"ab" D.统计"ab"出现次数
7. C#中,str.Substring(2,3)的作用是()
A.查找子串位置 B.从索引2开始截取3个字符 C.替换子串 D.比较字符串
8. C#中,str.Replace("a","b")的作用是()
A.将字符串"a"替换为"b" B.将str中的字符"a"替换为"b" C.查找"a"和"b" D.比较"a"和"b"
9. C#中,string.IsNullOrEmpty(str)的作用是()
A.判断是否为空字符串 B.判断是否为null或空字符串 C.判断字符串长度 D.清空字符串
10. C#中,Math.Abs(-5)的结果是()
A.-5 B.5 C.0 D.报错
11. C#中,Math.Max(3,7)的结果是()
A.3 B.7 C.10 D.4
12. C#中,Math.Pow(2,3)的结果是()
A.5 B.6 C.8 D.9
13. C#中,Math.Sqrt(16)的结果是()
A.2 B.3 C.4 D.8
14. C#中,Math.Round(3.5)的结果是()
A.3 B.4 C.3.5 D.3.0
15. C#中,Math.Floor(3.9)的结果是()
A.4 B.3 C.3.9 D.3.0
16. C#中,Math.Ceiling(3.1)的结果是()
A.3 B.4 C.3.1 D.3.0
17. C#中,字符串的Length属性返回()。
A.字符个数(不包括\0) B.字节数 C.字符个数(包括\0) D.字符串容量
18. C#中,以下哪个方法可以将字符串转换为大写()。
A.ToUpper() B.ToUpperCase() C.Upper() D.upper()
19. C#中,以下关于字符串不可变性(immutability)的说法,正确的是()。
A.字符串内容一旦创建就不能改变 B.所有字符串都可以改变 C.字符串是值类型 D.字符串的长度不可用Length获取
20. C#中,Split()方法的作用是()。
A.合并字符串 B.按指定字符分割字符串为字符串数组 C.查找子串位置 D.替换子串
二、填空题(共10空,每空1分,共10分)
21. C#中,Math类的______方法用于计算指定数值的绝对值。
22. C#中,string类的______属性用于获取字符串的字符个数。
23. C#中,Math.Pow(a,b)方法用于计算______的______次幂。
24. C#中,string.Contains()方法的返回值类型是______。
25. C#中,Math.Sqrt()方法用于计算指定非负数值的______。
26. C#中,string.Replace()方法用于将字符串中的______替换为______。
27. C#中,Math.Round()方法用于将指定数值______到最接近的整数。
28. C#中,string.IndexOf()方法用于查找指定子串在当前字符串中______出现的索引位置。
29. C#中,Math.Min()方法用于返回两个指定数值中的______。
30. C#中,string.Trim()方法用于去除字符串______的空白字符(空格、制表符等)。
三、判断题(共5题,每题2分,共10分)
31. C#中,string类的Length属性可以修改字符串的长度。( )
32. C#中,Math.Abs()方法可以接收字符串类型参数。( )
33. C#中,string.Equals()方法用于判断两个字符串的内容是否完全相同。( )
34. C#中,Math.Floor(4.1)和Math.Ceiling(3.9)的结果相同。( )
35. C#中,string.Split()方法只能按单个分隔符拆分字符串。( )
四、程序分析题(共1题,每题10分,共10分)
36. 阅读下面的C#程序,分析其功能并写出运行结果。
using System;
class Program{
static void Main(){
int[] arr = {5, 3, 8, 1};
Array.Sort(arr);
foreach(int x in arr)
Console.Write(x + " ");
}
}
程序运行结果:___________________
五、写运行结果题(共2题,每题5分,共10分)
37. 分析下面C#程序段的输出结果:
using System;
class Program
{
static void Main()
{
int a = 3, b = 7;
Console.WriteLine(Math.Max(a, b));
Console.WriteLine(Math.Min(a, b));
Console.WriteLine(Math.Pow(a, 2));
}
}
程序运行结果:___________________
38. 分析下面C#程序段的输出结果:
using System;
class Program
{
static void Main()
{
int[] arr = new int[5];
for (int i = 0; i < 5; i++)
arr[i] = i * 2;
foreach (int n in arr)
Console.Write(n + " ");
}
}
程序运行结果:___________________
六、程序改错题(共1题,每题5分,共5分)
39. 下面程序为选择排序算法,但有2处错误,请找出并改正:
using System;
class Program
{
static void Main()
{
int[] a = { 64, 25, 12, 22, 11 };
for (int i = 0; i < a.Length; i++)
{
int minIdx = i;
for (int j = i + 1; j < a.Length; j++)
{
if (a[j] < a[minIdx])
minIdx = j;
}
int temp = a[minIdx];
a[minIdx] = a[i + 1];
a[i + 1] = temp;
}
foreach (int x in a)
Console.Write(x + " ");
}
}
请找出程序中的错误,并写出正确答案。
七、程序填空题(共3题,每题5分,共15分)
40. 下面程序计算斐波那契数列第n项,请填写空白处:
using System;
class Program
{
static int Fib(int n)
{
if (n <= 1) return n;
return _____;
}
static void Main()
{
for (int i = 0; i <= 7; i++)
Console.Write(Fib(i) + " ");
}
}
41. 下面程序统计一个字符串中大写字母的个数,请填写空白处:
using System;
class Program
{
static void Main()
{
string s = "Hello World 2024";
int count = 0;
foreach (char c in s)
{
if (_____)
_____;
}
Console.WriteLine("大写字母个数:" + count);
}
}
42. 下面程序实现二分查找,请填写空白处:
using System;
class Program
{
static int BinarySearch(int[] arr, int target)
{
int left = 0, right = arr.Length - 1;
while (_____)
{
int mid = (left + right) / 2;
if (arr[mid] == target) return mid;
else if (arr[mid] < target) left = _____;
else right = mid - 1;
}
return -1;
}
static void Main()
{
int[] arr = { 1, 3, 5, 7, 9, 11, 13 };
Console.WriteLine(BinarySearch(arr, 7));
}
}
学科网(北京)股份有限公司
$
编写说明:河北省对口招生计算机类《考纲百套卷》,依据《河北省普通高等学校对口招生考试大纲(2028版专业课)计算机类》编写。本专辑涵盖9门课程,第一部分是专业核心模块训练卷,第二部分为各门课程的综合训练卷。本专辑共98份试卷。
本试卷是第61卷为专业核心模块训练卷,按《算法与程序设计》中"算法程序卷16——Math类与String类"范围和要求编写。具体内容为:掌握Math类的方法:Abs、Pow、Sqrt、Round、Ceiling、Floor、Exp、Log、Max、Min、Sign、Sin、Cos;掌握String类的属性:Chars、Length,掌握String类的方法:Equals、Compare、Contains、Concat、Copy、Format、IndexOf、Insert、Remove、Replace、IsNullOrEmpty、Join、Split、ToLower、ToUpper、ToCharArray、Trim、Substring
河北省对口招生职业技能考试
算法与程序设计 试卷
(算法程序卷16——Math类与String类)
考试时间:90分钟 满分:100分
一、单项选择题(共20题,每题2分,共40分)
1. C#中,string.Length属性返回的是()
A.字符串字节数 B.字符串字符数 C.字符串中字母数 D.字符串最大容量
【答案】B
【解析】string类的Length属性用于获取字符串中字符的个数(不包含结束符\0),与字符编码无关,仅统计实际字符数量;A选项字节数需通过编码(如Encoding.UTF8.GetByteCount(str))获取,C、D选项均不符合Length属性的功能。
2. C#中,str.ToUpper()方法的作用是()
A.转换为小写 B.转换为大写 C.截取字符串 D.返回字符串长度
【答案】B
【解析】ToUpper()是string类的常用方法,用于将字符串中的所有小写字母转换为大写字母,返回一个新的字符串(原字符串不变,体现字符串不可变性);A选项对应ToLower()方法,C选项对应Substring()方法,D选项对应Length属性。
3. C#中,str.Contains("abc")的作用是()
A.返回子串位置 B.判断是否包含指定子串 C.截取子串 D.替换子串
【答案】B
【解析】Contains()方法用于判断当前字符串是否包含指定的子串,返回值为bool类型(true表示包含,false表示不包含);A选项对应IndexOf()方法,C选项对应Substring()方法,D选项对应Replace()方法。
4. C#中,string.Split()方法的作用是()
A.查找子串位置 B.按分隔符拆分字符串 C.替换字符串 D.比较字符串
【答案】B
【解析】Split()方法用于将当前字符串按指定的分隔符(如逗号、空格等)拆分为一个字符串数组,分隔符可指定一个或多个;A选项对应IndexOf()方法,C选项对应Replace()方法,D选项对应Compare()或Equals()方法。
5. C#中,字符串连接除+运算符外,还可以使用()
A.string.Merge() B.string.Concat() C.string.Add() D.string.Join()
【答案】B
【解析】string.Concat()方法用于连接两个或多个字符串,与+运算符功能一致,例如string.Concat("a","b")结果为"ab";A、C选项均不是string类的字符串连接方法;D选项Join()方法需指定分隔符,用于将字符串数组连接为一个字符串,与Concat()方法不同。
6. C#中,str.IndexOf("ab")的作用是()
A.判断是否包含"ab" B.返回"ab"首次出现的索引位置 C.替换"ab" D.统计"ab"出现次数
【答案】B
【解析】IndexOf()方法用于查找指定子串在当前字符串中首次出现的从零开始的索引位置,若未找到则返回-1;A选项对应Contains()方法,C选项对应Replace()方法,D选项需通过循环结合IndexOf()方法实现,无直接对应方法。
7. C#中,str.Substring(2,3)的作用是()
A.查找子串位置 B.从索引2开始截取3个字符 C.替换子串 D.比较字符串
【答案】B
【解析】Substring()方法有两个常用重载,其中Substring(起始索引, 截取长度)表示从指定起始索引开始,截取指定长度的子串;本题中起始索引为2,截取长度为3,即从第3个字符(索引从0开始)起,截取3个字符;A选项对应IndexOf()方法,C选项对应Replace()方法,D选项对应Compare()方法。
8. C#中,str.Replace("a","b")的作用是()
A.将字符串"a"替换为"b" B.将str中的字符"a"替换为"b" C.查找"a"和"b" D.比较"a"和"b"
【答案】B
【解析】Replace(老字符串, 新字符串)方法用于将当前字符串中所有匹配老字符串的内容,替换为新字符串;本题中即替换str中所有的"a"为"b",返回新字符串(原字符串不变);A选项表述错误,方法作用于当前字符串str,而非单独的字符串"a";C、D选项均不符合该方法功能。
9. C#中,string.IsNullOrEmpty(str)的作用是()
A.判断是否为空字符串 B.判断是否为null或空字符串 C.判断字符串长度 D.清空字符串
【答案】B
【解析】IsNullOrEmpty()是string类的静态方法,用于判断指定字符串是否为null(未初始化)或空字符串(""),返回bool类型;A选项仅判断空字符串,不包含null;C选项对应Length属性;D选项无直接对应方法,需通过赋值""或null实现。
10. C#中,Math.Abs(-5)的结果是()
A.-5 B.5 C.0 D.报错
【答案】B
【解析】Math.Abs()方法用于计算指定数值的绝对值,绝对值是指一个数在数轴上对应的点到原点的距离,恒为非负数;因此Math.Abs(-5)的结果为5,A、C、D选项均错误。
11. C#中,Math.Max(3,7)的结果是()
A.3 B.7 C.10 D.4
【答案】B
【解析】Math.Max()方法用于返回两个指定数值中的较大值,本题中3和7的较大值为7;若需返回较小值,使用Math.Min()方法;C选项是两数之和,D选项是两数之差,均不符合该方法功能。
12. C#中,Math.Pow(2,3)的结果是()
A.5 B.6 C.8 D.9
【答案】C
【解析】Math.Pow(底数, 指数)方法用于计算指定底数的指定指数次幂,返回double类型结果;本题中2的3次幂为8,即2×2×2=8;A选项是两数之和,B选项是两数之积,D选项是3的平方,均不符合该方法功能。
13. C#中,Math.Sqrt(16)的结果是()
A.2 B.3 C.4 D.8
【答案】C
【解析】Math.Sqrt()方法用于计算指定非负数值的平方根,返回double类型结果;16的平方根为4(4×4=16);A选项是4的平方根,D选项是16的算术平方根的2倍,均不符合该方法功能。
14. C#中,Math.Round(3.5)的结果是()
A.3 B.4 C.3.5 D.3.0
【答案】B
【解析】Math.Round()方法用于将指定数值四舍五入到最接近的整数,默认采用“四舍六入五取偶”规则,当小数部分为0.5时,会四舍五入到最接近的偶数;本题中3.5的小数部分为0.5,最接近的偶数为4,因此结果为4。
15. C#中,Math.Floor(3.9)的结果是()
A.4 B.3 C.3.9 D.3.0
【答案】B
【解析】Math.Floor()方法用于对指定数值进行向下取整(地板取整),即返回小于或等于该数值的最大整数;3.9向下取整的结果为3,A选项是向上取整的结果,C选项是原数值,D选项是取整后转换为double类型的表述,均不符合该方法功能。
16. C#中,Math.Ceiling(3.1)的结果是()
A.3 B.4 C.3.1 D.3.0
【答案】B
【解析】Math.Ceiling()方法用于对指定数值进行向上取整(天花板取整),即返回大于或等于该数值的最小整数;3.1向上取整的结果为4,A选项是向下取整的结果,C选项是原数值,D选项是向下取整后转换为double类型的表述,均不符合该方法功能。
17. C#中,字符串的Length属性返回()。
A.字符个数(不包括\0) B.字节数 C.字符个数(包括\0) D.字符串容量
【答案】A
【解析】C#中字符串默认不包含结束符\0,Length属性仅统计字符串中实际存在的字符个数,不包含任何隐藏的结束符;B选项字节数需通过编码获取,C选项错误(不包含\0),D选项字符串容量是指字符串可容纳的最大字符数,与Length属性无关。
18. C#中,以下哪个方法可以将字符串转换为大写()。
A.ToUpper() B.ToUpperCase() C.Upper() D.upper()
【答案】A
【解析】C#中string类的ToUpper()方法用于将字符串转换为大写;B、C选项均不是C#中string类的方法,D选项是小写方法名,C#中方法名区分大小写,不存在upper()方法。
19. C#中,以下关于字符串不可变性(immutability)的说法,正确的是()。
A.字符串内容一旦创建就不能改变 B.所有字符串都可以改变 C.字符串是值类型 D.字符串的长度不可用Length获取
【答案】A
【解析】字符串的不可变性是指字符串一旦创建,其内容就无法直接修改,任何看似修改字符串的操作(如ToUpper()、Replace())都会返回一个新的字符串,原字符串不变;B选项错误,字符串不可直接修改;C选项错误,string类型属于引用类型;D选项错误,字符串长度可通过Length属性获取。
20. C#中,Split()方法的作用是()。
A.合并字符串 B.按指定字符分割字符串为字符串数组 C.查找子串位置 D.替换子串
【答案】B
【解析】Split()方法的核心功能是按指定分隔符(单个或多个)将当前字符串拆分为字符串数组,例如"a,b,c".Split(',')的结果为{"a","b","c"};A选项对应Concat()或Join()方法,C选项对应IndexOf()方法,D选项对应Replace()方法。
二、填空题(共10空,每空1分,共10分)
21. C#中,Math类的______方法用于计算指定数值的绝对值。
【答案】Abs
【解析】Math.Abs()是Math类的静态方法,可接收int、double等多种数值类型参数,返回该参数的绝对值,例如Math.Abs(-3.14)的结果为3.14。
22. C#中,string类的______属性用于获取字符串的字符个数。
【答案】Length
【解析】Length是string类的核心属性,只读,用于返回字符串中实际包含的字符个数,不包含结束符\0,例如"hello".Length的结果为5。
23. C#中,Math.Pow(a,b)方法用于计算______的______次幂。
【答案】a;b
【解析】Math.Pow()方法的第一个参数为底数,第二个参数为指数,返回底数的指数次幂(double类型),例如Math.Pow(3,2)表示计算3的2次幂,结果为9.0。
24. C#中,string.Contains()方法的返回值类型是______。
【答案】bool
【解析】Contains()方法用于判断当前字符串是否包含指定子串,包含则返回true,不包含则返回false,因此返回值类型为bool(布尔类型)。
25. C#中,Math.Sqrt()方法用于计算指定非负数值的______。
【答案】平方根
【解析】Math.Sqrt()是Math类的静态方法,仅接收非负数值参数,返回该数值的平方根,例如Math.Sqrt(25)的结果为5.0。
26. C#中,string.Replace()方法用于将字符串中的______替换为______。
【答案】老字符串;新字符串
【解析】Replace()方法的语法为string.Replace(老字符串, 新字符串),作用是将当前字符串中所有匹配老字符串的内容,全部替换为新字符串,返回新的字符串。
27. C#中,Math.Round()方法用于将指定数值______到最接近的整数。
【答案】四舍五入
【解析】Math.Round()方法的核心功能是对指定数值进行四舍五入操作,默认采用“四舍六入五取偶”规则,将数值保留到整数位,也可通过重载指定保留的小数位数。
28. C#中,string.IndexOf()方法用于查找指定子串在当前字符串中______出现的索引位置。
【答案】首次
【解析】IndexOf()方法默认查找子串在当前字符串中首次出现的从零开始的索引,若未找到子串则返回-1;若需查找最后一次出现的位置,可使用LastIndexOf()方法。
29. C#中,Math.Min()方法用于返回两个指定数值中的______。
【答案】较小值
【解析】Math.Min()与Math.Max()方法对应,前者返回两个数值中的较小值,后者返回较大值,例如Math.Min(5,9)的结果为5。
30. C#中,string.Trim()方法用于去除字符串______的空白字符(空格、制表符等)。
【答案】开头和结尾
【解析】Trim()方法用于去除字符串首尾的空白字符,不影响字符串中间的空白字符;若仅去除开头空白,使用TrimStart()方法;仅去除结尾空白,使用TrimEnd()方法。
三、判断题(共5题,每题2分,共10分)
31. C#中,string类的Length属性可以修改字符串的长度。( )
【答案】×
【解析】string类的Length属性是只读属性,仅用于获取字符串的字符个数,无法修改字符串的长度;字符串具有不可变性,其长度一旦确定就无法直接修改。
32. C#中,Math.Abs()方法可以接收字符串类型参数。( )
【答案】×
【解析】Math.Abs()方法的参数必须是数值类型(如int、double、float等),无法直接接收字符串类型参数;若需计算字符串中数值的绝对值,需先将字符串转换为数值类型(如int.Parse(str))。
33. C#中,string.Equals()方法用于判断两个字符串的内容是否完全相同。( )
【答案】√
【解析】string.Equals()方法用于比较两个字符串的内容,若内容完全相同(区分大小写),则返回true,否则返回false;与==运算符功能类似,但更推荐用于字符串内容比较。
34. C#中,Math.Floor(4.1)和Math.Ceiling(3.9)的结果相同。( )
【答案】√
【解析】Math.Floor(4.1)是向下取整,结果为4;Math.Ceiling(3.9)是向上取整,结果也为4;因此两者结果相同。
35. C#中,string.Split()方法只能按单个分隔符拆分字符串。( )
【答案】×
【解析】string.Split()方法支持按多个分隔符拆分字符串,可将多个分隔符放入字符数组或字符串数组中作为参数,例如"a,b;c".Split(',', ';')可将字符串按逗号和分号拆分,结果为{"a","b","c"}。
四、程序分析题(共1题,每题10分,共10分)
36. 阅读下面的C#程序,分析其功能并写出运行结果。
using System;
class Program{
static void Main(){
int[] arr = {5, 3, 8, 1};
Array.Sort(arr);
foreach(int x in arr)
Console.Write(x + " ");
}
}
程序运行结果:___________________
【答案】1 3 5 8
五、写运行结果题(共2题,每题5分,共10分)
37. 分析下面C#程序段的输出结果:
using System;
class Program
{
static void Main()
{
int a = 3, b = 7;
Console.WriteLine(Math.Max(a, b));
Console.WriteLine(Math.Min(a, b));
Console.WriteLine(Math.Pow(a, 2));
}
}
程序运行结果:___________________
【答案】7
3
9.0
38. 分析下面C#程序段的输出结果:
using System;
class Program
{
static void Main()
{
int[] arr = new int[5];
for (int i = 0; i < 5; i++)
arr[i] = i * 2;
foreach (int n in arr)
Console.Write(n + " ");
}
}
程序运行结果:___________________
【答案】0 2 4 6 8
六、程序改错题(共1题,每题5分,共5分)
39. 下面程序为选择排序算法,但有2处错误,请找出并改正:
using System;
class Program
{
static void Main()
{
int[] a = { 64, 25, 12, 22, 11 };
for (int i = 0; i < a.Length; i++)
{
int minIdx = i;
for (int j = i + 1; j < a.Length; j++)
{
if (a[j] < a[minIdx])
minIdx = j;
}
int temp = a[minIdx];
a[minIdx] = a[i + 1];
a[i + 1] = temp;
}
foreach (int x in a)
Console.Write(x + " ");
}
}
请找出程序中的错误,并写出正确答案。
【答案】错误1:a[minIdx] = a[i + 1]; 应改为 a[minIdx] = a[i];
(交换应与a[i]交换,而非a[i+1])
错误2:a[i + 1] = temp; 应改为 a[i] = temp;
(a[i]才是需要被替换的位置)
七、程序填空题(共3题,每题5分,共15分)
40. 下面程序计算斐波那契数列第n项,请填写空白处:
using System;
class Program
{
static int Fib(int n)
{
if (n <= 1) return n;
return _____;
}
static void Main()
{
for (int i = 0; i <= 7; i++)
Console.Write(Fib(i) + " ");
}
}
【答案】['Fib(n - 1) + Fib(n - 2)']
41. 下面程序统计一个字符串中大写字母的个数,请填写空白处:
using System;
class Program
{
static void Main()
{
string s = "Hello World 2024";
int count = 0;
foreach (char c in s)
{
if (_____)
_____;
}
Console.WriteLine("大写字母个数:" + count);
}
}
【答案】["c >= 'A' && c <= 'Z'", 'count++']
42. 下面程序实现二分查找,请填写空白处:
using System;
class Program
{
static int BinarySearch(int[] arr, int target)
{
int left = 0, right = arr.Length - 1;
while (_____)
{
int mid = (left + right) / 2;
if (arr[mid] == target) return mid;
else if (arr[mid] < target) left = _____;
else right = mid - 1;
}
return -1;
}
static void Main()
{
int[] arr = { 1, 3, 5, 7, 9, 11, 13 };
Console.WriteLine(BinarySearch(arr, 7));
}
}
【答案】['left <= right', 'mid + 1']
学科网(北京)股份有限公司
$