第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)); } } 学科网(北京)股份有限公司 $

资源预览图

第51卷 算法与程序设计—循环语句与跳转语句—河北省计算机类—考纲百套卷-第1页
1
第51卷 算法与程序设计—循环语句与跳转语句—河北省计算机类—考纲百套卷-第2页
2
第51卷 算法与程序设计—循环语句与跳转语句—河北省计算机类—考纲百套卷-第3页
3

由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。