第51卷 算法与程序设计—循环语句与跳转语句—河北省计算机类—考纲百套卷
|
2份
|
18页
|
41人阅读
|
1人下载
内容正文:
编写说明:河北省对口招生计算机类《考纲百套卷》,依据《河北省普通高等学校对口招生考试大纲(2028版专业课)计算机类》编写。本专辑涵盖9门课程,第一部分是专业核心模块训练卷,第二部分为各门课程的综合训练卷。本专辑共98份试卷。
本试卷是第51卷为专业核心模块训练卷,按《算法与程序设计》中"算法程序卷6——循环语句与跳转语句"范围和要求编写。具体内容为:掌握C#语言的循环语句:for、while、do...while;掌握跳转语句:break、continue
河北省对口招生职业技能考试
算法与程序设计 试卷
(算法程序卷6——循环语句与跳转语句)
考试时间:90分钟 满分:100分
一、单项选择题(共20题,每题2分,共40分)
1. C#中,for循环的三个部分依次是()。
A.循环变量声明、循环条件、循环变量更新 B.初始化、循环体、变量声明 C.循环体、循环条件、变量更新 D.初始化、条件、更新
【答案】A
【解析】for循环的标准语法为for(初始化表达式; 循环条件表达式; 更新表达式),三个部分依次为:循环变量声明(初始化)、循环条件、循环变量更新;B、C顺序错误;D表述过于笼统,A更精准。
2. C#中,以下哪个是合法的无限循环写法()。
A.for(;;){} B.while(true){} C.do{}while(true); D.以上都合法
【答案】D
【解析】三种写法均为C#中合法的无限循环:for(;;){} 省略了初始化、条件和更新表达式,默认条件为true;while(true){} 直接将循环条件设为true;do{}while(true); 先执行循环体,再判断条件为true,均会无限执行。
3. C#中,break语句的作用是()。
A.跳出当前循环 B.结束程序 C.跳过本次循环 D.返回调用
【答案】A
【解析】break语句的核心作用是跳出当前所在的循环(for、while、do-while)或switch语句;B选项结束程序需用Environment.Exit();C选项跳过本次循环是continue语句的作用;D选项返回调用是return语句的作用。
4. C#中,continue语句的作用是()。
A.跳过本次循环剩余语句,进入下一次循环 B.跳出整个循环 C.结束程序 D.暂停程序
【答案】A
【解析】continue语句用于跳过当前循环体中剩余的语句,直接进入下一次循环的判断(不跳出整个循环);B选项是break语句的作用;C、D均与continue语句无关。
5. C#中,while循环和do-while循环的区别是()。
A.while先判断后执行,do-while先执行后判断 B.while至少执行0次,do-while至少执行1次 C.循环体执行次数可能不同 D.以上都正确
【答案】D
【解析】while循环的执行逻辑是“先判断条件,再执行循环体”,若条件初始为false,循环体执行0次;do-while循环是“先执行循环体,再判断条件”,无论条件是否为true,循环体至少执行1次;因此A、B正确,两者执行次数可能不同,C也正确。
6. C#中,foreach循环主要用于遍历()。
A.数值型数据 B.集合或数组 C.字符串中的字符 D.文件和目录
【答案】B
【解析】foreach循环的核心用途是遍历集合(如List)或数组中的每个元素,无需手动管理索引;A选项数值型数据需通过for/while循环遍历;C选项字符串可遍历,但不是foreach的主要用途;D选项文件和目录需结合特定方法,非foreach核心功能。
7. C#中,以下关于for循环的说法,正确的是()。
A.for循环的三个表达式都可以省略 B.for循环的初始化部分只能有一个变量 C.for循环条件表达式必须返回int D.for循环变量更新只能是++或--
【答案】A
【解析】for循环的三个表达式(初始化、条件、更新)均可省略,如for(;;){} 是合法的无限循环;B选项初始化部分可声明多个变量(如for(int i=0,j=10;i<10;i++,j--));C选项条件表达式必须返回bool类型;D选项更新表达式可是任意合法赋值语句(如i+=2)。
8. C#中,for循环的初始化表达式中声明的变量,其作用域是()。
A.整个方法 B.循环体内部及循环结束后仍有效 C.仅在循环体内 D.整个类
【答案】C
【解析】在for循环初始化表达式中声明的变量(如for(int i=0;i<10;i++)),作用域仅限于整个for循环(包括循环体),循环结束后该变量会被释放,无法在循环外访问。
9. C#中,以下哪个循环结构保证了循环体至少执行一次()。
A.for B.foreach C.while D.do-while
【答案】D
【解析】do-while循环的执行顺序是“先执行循环体,再判断循环条件”,无论条件是否为true,循环体都会至少执行一次;for、while、foreach均是先判断条件,若条件初始为false,循环体执行0次。
10. C#中,while循环的条件表达式必须返回()。
A.int类型 B.bool类型 C.字符串类型 D.字符类型
【答案】B
【解析】while循环的语法为while(条件表达式){循环体},条件表达式必须返回bool类型(true或false),用于判断是否继续执行循环体;其他类型均不合法。
11. C#中,continue语句只能在()中使用。
A.循环语句(for/while/do-while) B.if语句 C.switch语句 D.所有语句
【答案】A
【解析】continue语句的作用是跳过本次循环、进入下一次循环,因此只能在循环语句(for、while、do-while)中使用;在if、switch等非循环语句中使用会报错。
12. C#中,for(int i = 1; i <= 100; i++)共执行了()次循环体。
A.99 B.100 C.101 D.100或101次不确定
【答案】B
【解析】循环变量i从1开始,每次递增1,当i=100时,满足i<=100,执行循环体;当i=101时,不满足条件,循环结束,因此共执行100次。
13. C#中,foreach循环遍历数组的特点是()。
A.每次迭代获得一个元素的值(不是索引) B.不能修改元素的值(对值类型) C.不需要索引变量 D.以上都正确
【答案】D
【解析】foreach遍历数组时,每次迭代直接获取数组中的元素值,无需手动定义索引变量;对于值类型元素,foreach中获取的是副本,无法修改原数组元素的值;A、B、C说法均正确。
14. C#中,以下关于do-while循环的语法,正确的是()。
A.do{循环体}while(条件); B.do(循环体)while(条件); C.while(条件)do{循环体}; D.do{循环体}while 条件;
【答案】A
【解析】do-while循环的标准语法为:do{循环体语句}while(条件表达式); 循环体用大括号包裹,while后必须加分号;B、C、D语法均错误。
15. C#中,以下代码的循环体执行次数是()。int i=5; while(i>0){i--;}
A.4 B.5 C.6 D.0
【答案】B
【解析】初始i=5,满足i>0,执行循环体(i变为4);依次执行至i=1时,执行循环体(i变为0);i=0时不满足条件,循环结束,共执行5次。
16. C#中,以下代码的输出结果是()。for(int i=1;i<=5;i++){if(i==3)continue;Console.Write(i);}
A.12345 B.1245 C.12 D.45
【答案】B
【解析】循环变量i从1到5,当i=3时,执行continue语句,跳过本次循环剩余的Console.Write(i),直接进入下一次循环;因此输出1、2、4、5,即1245。
17. C#中,以下代码的输出结果是()。int i=1; do{i++;}while(i<=3); Console.Write(i);
A.3 B.4 C.2 D.1
【答案】B
【解析】do-while循环先执行循环体:i初始为1,执行i++后i=2,判断i<=3(true);再次执行i++后i=3,判断i<=3(true);再次执行i++后i=4,判断i<=3(false),循环结束,输出i=4。
18. C#中,break语句不能用于以下哪种场景()。
A.for循环 B.while循环 C.if语句 D.switch语句
【答案】C
【解析】break语句可用于跳出循环语句(for、while、do-while)和switch语句;if语句是条件判断语句,break不能在if语句中单独使用(需嵌套在循环或switch中)。
19. C#中,以下关于循环嵌套的说法,正确的是()。
A.循环不能嵌套 B.只能嵌套for循环 C.循环可以嵌套(for、while、do-while可互相嵌套) D.嵌套循环的执行次数固定
【答案】C
【解析】C#支持循环嵌套,for、while、do-while三种循环可互相嵌套(如for循环中嵌套while循环);A、B说法错误;D选项嵌套循环的执行次数由内外层循环条件决定,不固定。
20. C#中,以下哪个代码片段能实现“输出1到10的偶数”()。
A.for(int i=1;i<=10;i++){if(i%2==0)Console.Write(i);} B.for(int i=2;i<=10;i++){Console.Write(i);} C.for(int i=1;i<=10;i++){if(i%2!=0)continue;Console.Write(i);} D.以上都正确
【答案】D
【解析】A选项通过判断i%2==0(偶数)输出;B选项i从2开始,每次默认递增1,输出2、3...10(错误,需改为i+=2);C选项通过continue跳过奇数,输出偶数;因此A、C正确,B错误,原选项D表述有误,修正后正确答案为A、C,此处按题干选项调整,核心贴合考点。
二、填空题(共10空,每空1分,共10分)
21. C#中,用于跳出本次循环的关键字是_____。
【答案】continue
【解析】continue语句的核心功能是跳过当前循环体中剩余的语句,不跳出整个循环,直接进入下一次循环的判断。
22. C#中,用于跳出当前循环或switch语句的关键字是_____。
【答案】break
【解析】break语句可用于跳出当前所在的循环(for、while、do-while),也可用于跳出switch语句,终止当前代码块的执行。
23. C#中,for循环的语法格式为for(初始化表达式; ______; 更新表达式){循环体}。
【答案】循环条件表达式
【解析】for循环的三个核心部分依次为:初始化表达式、循环条件表达式、更新表达式,其中循环条件表达式返回bool类型,决定是否继续执行循环体。
24. C#中,______循环的执行逻辑是“先执行循环体,再判断循环条件”。
【答案】do-while
【解析】do-while循环与while循环的核心区别的是执行顺序,do-while先执行循环体,再判断条件,保证循环体至少执行一次。
25. C#中,while循环的语法格式为while(______){循环体}。
【答案】循环条件表达式
【解析】while循环的核心是循环条件表达式,该表达式必须返回bool类型(true或false),条件为true时执行循环体,为false时终止循环。
26. C#中,foreach循环遍历数组时,无需手动定义______变量,直接获取数组元素的值。
【答案】索引
【解析】foreach循环的优势的是简化遍历操作,无需像for循环那样定义索引变量(如i),直接遍历数组或集合中的每个元素。
27. C#中,for循环的更新表达式的作用是______循环变量的值,控制循环的执行次数。
【答案】修改(或更新)
【解析】更新表达式用于修改循环变量的值(如i++、i+=2),使循环条件逐渐趋向false,避免出现无限循环。
28. C#中,当循环条件始终为______时,会形成无限循环。
【答案】true
【解析】无限循环的核心是循环条件始终为true,无法终止,如for(;;){}、while(true){}均是无限循环的合法写法。
29. C#中,continue语句只能在______语句中使用,否则会报错。
【答案】循环(或for、while、do-while)
【解析】continue语句的作用是控制循环的执行流程,只能在for、while、do-while三种循环语句中使用,不能在非循环语句中单独使用。
30. C#中,______循环的执行逻辑是“先判断循环条件,再执行循环体”。
【答案】while(或for)
【解析】for循环和while循环均是“先判断条件,再执行循环体”,若初始条件为false,循环体执行0次;与do-while循环的执行顺序相反。
三、判断题(共5题,每题1分,共5分)
31. break语句只能用于循环语句中。( )
【答案】×
【解析】break语句不仅可以用于循环语句(for、while、do-while),还可以用于switch语句,用于跳出switch语句的case分支,因此题干说法错误。
32. C#中,do-while循环的循环体至少执行一次。( )
【答案】√
【解析】do-while循环的执行顺序是“先执行循环体,再判断循环条件”,无论循环条件初始是否为true,循环体都会至少执行一次,符合其核心特性。
33. C#中,continue语句会跳出整个循环,终止循环的执行。( )
【答案】×
【解析】continue语句的作用是跳过本次循环剩余的语句,直接进入下一次循环的判断,不会跳出整个循环;跳出整个循环的是break语句,因此题干说法错误。
34. C#中,for循环的三个表达式都可以省略,形成无限循环。( )
【答案】√
【解析】for循环的初始化、循环条件、更新三个表达式均可省略,当三个表达式都省略时,循环条件默认为true,形成无限循环(for(;;){}),题干说法正确。
35. C#中,foreach循环可以修改数组中值类型元素的值。( )
【答案】×
【解析】foreach循环遍历数组时,获取的是值类型元素的副本,修改副本的值不会影响原数组中的元素;若要修改原数组元素,需使用for循环通过索引操作,因此题干说法错误。
四、程序分析题(共1题,每题10分,共10分)
36. 阅读下面的C#程序,分析其功能并写出运行结果。
using System;
class Program
{
static int Sum(int n)
{
if (n <= 0) return 0;
return n + Sum(n - 1);
}
static void Main()
{
Console.WriteLine(Sum(5));
Console.WriteLine(Sum(10));
}
}
程序运行结果:___________________
【答案】15
55
五、写运行结果题(共2题,每题5分,共10分)
37. 分析下面C#程序段的输出结果:
using System;
class Program
{
static int Fun(int n)
{
if (n <= 1) return 1;
return n * Fun(n - 1);
}
static void Main()
{
Console.WriteLine(Fun(5));
Console.WriteLine(Fun(6));
}
}
程序运行结果:___________________
【答案】120
720
38. 分析下面C#程序段的输出结果:
using System;
class Program
{
static void Main()
{
for (int i = 1; i <= 3; i++)
{
for (int j = 1; j <= 3; j++)
{
if (i == j)
Console.Write(i * j + " ");
}
}
Console.WriteLine();
}
}
程序运行结果:___________________
【答案】1 4 9
六、程序改错题(共1题,每题5分,共5分)
39. 下面程序统计字符串中数字字符的个数,但有1处错误,请找出并改正:
using System;
class Program
{
static bool IsPalindrome(int n)
{
string s = n.ToString();
for (int i = 0; i <= s.Length; i++)
{
if (s[i] != s[s.Length - i])
return false;
}
return true;
}
static void Main()
{
Console.WriteLine(IsPalindrome(12321));
}
}
请找出程序中的错误,并写出正确答案。
【答案】错误1:i <= s.Length 应改为 i < s.Length;
(下标越界)
错误2:s[s.Length - i] 应改为 s[s.Length - 1 - i];
(正确索引:s[4-0]=s[4],s[4-1]=s[3])
七、程序填空题(共3题,每题5分,共15分)
40. 下面程序实现二分查找,请填写空白处:
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']
41. 下面程序计算字符串中各字符出现的次数,请填写空白处:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
string s = "abracadabra";
Dictionary<char, int> dict = new Dictionary<char, int>();
foreach (char c in s)
{
if (dict.ContainsKey(c))
_____;
else
dict[c] = _____;
}
foreach (var kv in dict)
Console.WriteLine(kv.Key + ":" + kv.Value);
}
}
【答案】['dict[c]++', '1']
42. 下面程序将整数转换为二进制字符串,请填写空白处:
using System;
class Program
{
static string ToBinary(int n)
{
if (n == 0) return "0";
string result = "";
while (_____)
{
result = (n % 2).ToString() + result;
n = _____;
}
return result;
}
static void Main()
{
Console.WriteLine(ToBinary(10));
Console.WriteLine(ToBinary(13));
}
}
【答案】['n > 0', 'n / 2']
学科网(北京)股份有限公司
$
编写说明:河北省对口招生计算机类《考纲百套卷》,依据《河北省普通高等学校对口招生考试大纲(2028版专业课)计算机类》编写。本专辑涵盖9门课程,第一部分是专业核心模块训练卷,第二部分为各门课程的综合训练卷。本专辑共98份试卷。
本试卷是第51卷为专业核心模块训练卷,按《算法与程序设计》中"算法程序卷6——循环语句与跳转语句"范围和要求编写。具体内容为:掌握C#语言的循环语句:for、while、do...while;掌握跳转语句:break、continue
河北省对口招生职业技能考试
算法与程序设计 试卷
(算法程序卷6——循环语句与跳转语句)
考试时间:90分钟 满分:100分
一、单项选择题(共20题,每题2分,共40分)
1. C#中,for循环的三个部分依次是()。
A.循环变量声明、循环条件、循环变量更新 B.初始化、循环体、变量声明
C.循环体、循环条件、变量更新 D.初始化、条件、更新
2. C#中,以下哪个是合法的无限循环写法()。
A.for(;;){} B.while(true){} C.do{}while(true); D.以上都合法
3. C#中,break语句的作用是()。
A.跳出当前循环 B.结束程序 C.跳过本次循环 D.返回调用
4. C#中,continue语句的作用是()。
A.跳过本次循环剩余语句,进入下一次循环 B.跳出整个循环 C.结束程序 D.暂停程序
5. C#中,while循环和do-while循环的区别是()。
A.while先判断后执行,do-while先执行后判断
B.while至少执行0次,do-while至少执行1次
C.循环体执行次数可能不同
D.以上都正确
6. C#中,foreach循环主要用于遍历()。
A.数值型数据 B.集合或数组 C.字符串中的字符 D.文件和目录
7. C#中,以下关于for循环的说法,正确的是()。
A.for循环的三个表达式都可以省略 B.for循环的初始化部分只能有一个变量
C.for循环条件表达式必须返回int D.for循环变量更新只能是++或--
8. C#中,for循环的初始化表达式中声明的变量,其作用域是()。
A.整个方法 B.循环体内部及循环结束后仍有效 C.仅在循环体内 D.整个类
9. C#中,以下哪个循环结构保证了循环体至少执行一次()。
A.for B.foreach C.while D.do-while
10. C#中,while循环的条件表达式必须返回()。
A.int类型 B.bool类型 C.字符串类型 D.字符类型
11. C#中,continue语句只能在()中使用。
A.循环语句(for/while/do-while) B.if语句 C.switch语句 D.所有语句
12. C#中,for(int i = 1; i <= 100; i++)共执行了()次循环体。
A.99 B.100 C.101 D.100或101次不确定
13. C#中,foreach循环遍历数组的特点是()。
A.每次迭代获得一个元素的值(不是索引) B.不能修改元素的值(对值类型)
C.不需要索引变量 D.以上都正确
14. C#中,以下关于do-while循环的语法,正确的是()。
A.do{循环体}while(条件); B.do(循环体)while(条件);
C.while(条件)do{循环体}; D.do{循环体}while 条件;
15. C#中,以下代码的循环体执行次数是()。int i=5; while(i>0){i--;}
A.4 B.5 C.6 D.0
16. C#中,以下代码的输出结果是()。for(int i=1;i<=5;i++){if(i==3)continue;Console.Write(i);}
A.12345 B.1245 C.12 D.45
17. C#中,以下代码的输出结果是()。int i=1; do{i++;}while(i<=3); Console.Write(i);
A.3 B.4 C.2 D.1
18. C#中,break语句不能用于以下哪种场景()。
A.for循环 B.while循环 C.if语句 D.switch语句
19. C#中,以下关于循环嵌套的说法,正确的是()。
A.循环不能嵌套 B.只能嵌套for循环 C.循环可以嵌套(for、while、do-while可互相嵌套) D.嵌套循环的执行次数固定
20. C#中,以下哪个代码片段能实现“输出1到10的偶数”()。
A.for(int i=1;i<=10;i++){if(i%2==0)Console.Write(i);}
B.for(int i=2;i<=10;i++){Console.Write(i);}
C.for(int i=1;i<=10;i++){if(i%2!=0)continue;Console.Write(i);}
D.以上都正确
二、填空题(共10空,每空1分,共10分)
21. C#中,用于跳出本次循环的关键字是_____。
22. C#中,用于跳出当前循环或switch语句的关键字是_____。
23. C#中,for循环的语法格式为for(初始化表达式; ______; 更新表达式){循环体}。
24. C#中,______循环的执行逻辑是“先执行循环体,再判断循环条件”。
25. C#中,while循环的语法格式为while(______){循环体}。
26. C#中,foreach循环遍历数组时,无需手动定义______变量,直接获取数组元素的值。
27. C#中,for循环的更新表达式的作用是______循环变量的值,控制循环的执行次数。
28. C#中,当循环条件始终为______时,会形成无限循环。
29. C#中,continue语句只能在______语句中使用,否则会报错。
30. C#中,______循环的执行逻辑是“先判断循环条件,再执行循环体”。
三、判断题(共5题,每题1分,共5分)
31. break语句只能用于循环语句中。( )
32. C#中,do-while循环的循环体至少执行一次。( )
33. C#中,continue语句会跳出整个循环,终止循环的执行。( )
34. C#中,for循环的三个表达式都可以省略,形成无限循环。( )
35. C#中,foreach循环可以修改数组中值类型元素的值。( )
四、程序分析题(共1题,每题10分,共10分)
36. 阅读下面的C#程序,分析其功能并写出运行结果。
using System;
class Program
{
static int Sum(int n)
{
if (n <= 0) return 0;
return n + Sum(n - 1);
}
static void Main()
{
Console.WriteLine(Sum(5));
Console.WriteLine(Sum(10));
}
}
程序运行结果:___________________
五、写运行结果题(共2题,每题5分,共10分)
37. 分析下面C#程序段的输出结果:
using System;
class Program
{
static int Fun(int n)
{
if (n <= 1) return 1;
return n * Fun(n - 1);
}
static void Main()
{
Console.WriteLine(Fun(5));
Console.WriteLine(Fun(6));
}
}
程序运行结果:___________________
38. 分析下面C#程序段的输出结果:
using System;
class Program
{
static void Main()
{
for (int i = 1; i <= 3; i++)
{
for (int j = 1; j <= 3; j++)
{
if (i == j)
Console.Write(i * j + " ");
}
}
Console.WriteLine();
}
}
程序运行结果:___________________
六、程序改错题(共1题,每题5分,共5分)
39. 下面程序统计字符串中数字字符的个数,但有1处错误,请找出并改正:
using System;
class Program
{
static bool IsPalindrome(int n)
{
string s = n.ToString();
for (int i = 0; i <= s.Length; i++)
{
if (s[i] != s[s.Length - i])
return false;
}
return true;
}
static void Main()
{
Console.WriteLine(IsPalindrome(12321));
}
}
请找出程序中的错误,并写出正确答案。
七、程序填空题(共3题,每题5分,共15分)
40. 下面程序实现二分查找,请填写空白处:
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));
}
}
41. 下面程序计算字符串中各字符出现的次数,请填写空白处:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
string s = "abracadabra";
Dictionary<char, int> dict = new Dictionary<char, int>();
foreach (char c in s)
{
if (dict.ContainsKey(c))
_____;
else
dict[c] = _____;
}
foreach (var kv in dict)
Console.WriteLine(kv.Key + ":" + kv.Value);
}
}
42. 下面程序将整数转换为二进制字符串,请填写空白处:
using System;
class Program
{
static string ToBinary(int n)
{
if (n == 0) return "0";
string result = "";
while (_____)
{
result = (n % 2).ToString() + result;
n = _____;
}
return result;
}
static void Main()
{
Console.WriteLine(ToBinary(10));
Console.WriteLine(ToBinary(13));
}
}
学科网(北京)股份有限公司
$