第23卷 C语言-C语言卷10——continue、break、循环嵌套与常用算法——江苏省计算机类——考纲百套卷

2026-06-30
| 2份
| 22页
| 4人阅读
| 0人下载

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 -
年级 -
章节 -
类型 题集-专项训练
知识点 循环结构
使用场景 中职复习
学年 2027-2028
地区(省份) 江苏省
地区(市) -
地区(区县) -
文件格式 ZIP
文件大小 93 KB
发布时间 2026-06-30
更新时间 2026-06-30
作者 xy06893
品牌系列 学易金卷·考纲百套卷
审核时间 2026-06-30
下载链接 https://m.zxxk.com/soft/58571357.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

编写说明:江苏省对口招生计算机类《考纲百套卷》,依据《江苏省计算机类专业综合理论考试大纲》编写。本专辑涵盖5门课程,第一部分是专业核心模块训练卷,第二部分为各门课程的综合训练卷。本专辑共98份试卷。 本试卷是第23卷为专业核心模块训练卷,按《C语言》中"C语言卷10——continue、break、循环嵌套与常用算法"范围和要求编写。具体内容为:掌握continue语句、break语句;理解循环的嵌套;掌握程序设计中的几种常用算法的基本思想(排序、查找、穷举)。 江苏省对口招生职业技能考试 C语言 试卷 (C语言卷10——continue、break、循环嵌套与常用算法) 考试时间:90分钟 满分:100分 一、单项选择题(共20题,每题2分,共40分) 1. 在循环中,break语句的作用是( ) A.跳过本次循环剩余语句 B.跳出整个循环 C.终止程序 D.重新从循环开始执行 【答案】B 【解析】break语句用于跳出整个循环,不再执行后续迭代。 2. 在循环中,continue语句的作用是( ) A.跳出整个循环 B.跳过本次循环剩余语句,进入下次迭代 C.终止程序 D.重新从循环开始执行 【答案】B 【解析】continue跳过本次循环剩余语句,进入下次迭代。 3. 下列关于break语句,正确的是( ) A.break只能用在循环中 B.break可以用在switch中 C.break可以跳出多层嵌套循环 D.break可以用在任何地方 【答案】B 【解析】break可以用在循环中和switch语句中。 4. 下列关于continue语句,正确的是( ) A.continue可以用在switch中 B.continue只能用在循环中 C.continue可以跳出多层循环 D.continue可以用在任何地方 【答案】B 【解析】continue只能用在循环(for、while、do...while)中。 5. 下列程序段执行后输出结果是( ) for(i=1;i<=5;i++) { if(i==3) continue; printf("%d ",i); } A.1 2 3 4 5 B.1 2 4 5 C.1 2 3 4 5(无变化) D.编译错误 【答案】B 【解析】当i==3时continue跳过printf,输出1 2 4 5。 6. 下列程序段执行后输出结果是( ) for(i=1;i<=5;i++) { if(i==3) break; printf("%d ",i); } A.1 2 3 4 5 B.1 2 C.1 2 3 D.编译错误 【答案】B 【解析】当i==3时break跳出整个循环,输出1 2。 7. 下列关于循环嵌套,正确的是( ) A.循环不能嵌套 B.外层循环每迭代一次,内层循环完整执行 C.内层循环每迭代一次,外层循环完整执行 D.循环嵌套不能超过两层 【答案】B 【解析】外层循环每迭代一次,内层循环完整执行所有迭代。 8. 下列程序段执行后输出次数是( ) for(i=0;i<3;i++) for(j=0;j<2;j++) printf("*"); A.2次 B.3次 C.5次 D.6次 【答案】D 【解析】外层3次×内层2次=6次输出。 9. 冒泡排序法的基本思想是( ) A.每次选择最小元素放到前面 B.相邻元素两两比较,大的沉底 C.逐个插入到已排序序列 D.使用分治思想进行排序 【答案】B 【解析】冒泡排序通过相邻元素两两比较,较大的元素逐渐沉底。 10. 选择排序法的基本思想是( ) A.相邻元素两两比较 B.每次选择最小(或最大)元素放到前面 C.逐个插入到已排序序列 D.使用递归思想进行排序 【答案】B 【解析】选择排序每次选择最小(或最大)元素放到前面。 11. 插入排序法的基本思想是( ) A.相邻元素两两比较 B.每次选择最小元素放到前面 C.逐个取出元素插入到已排序序列的适当位置 D.使用分治思想进行排序 【答案】C 【解析】插入排序逐个取出元素,插入到已排序序列的适当位置。 12. 下列关于顺序查找,正确的是( ) A.只能用于有序数组 B.从第一个元素开始逐个比较 C.查找效率比二分查找高 D.需要使用递归实现 【答案】B 【解析】顺序查找从第一个元素开始,逐个与目标值比较。 13. 下列关于二分查找(对半查找),正确的是( ) A.只能用于无序数组 B.每次比较中间元素,缩小查找范围 C.查找效率比顺序查找低 D.需要从最后一个元素开始比较 【答案】B 【解析】二分查找要求数组有序,每次比较中间元素,缩小查找范围。 14. 穷举法的基本思想是( ) A.从第一个元素开始逐个比较 B.逐一尝试所有可能的答案 C.每次选择最优解 D.使用分治思想解决问题 【答案】B 【解析】穷举法逐一尝试所有可能的答案,直到找到正确解。 15. 在嵌套循环中,break语句可以跳出( ) A.所有循环 B.最内层循环 C.最外层循环 D.所有switch语句 【答案】B 【解析】break只能跳出当前所在的最内层循环或switch。 16. 在嵌套循环中,想要跳出所有循环,可以使用( ) A.使用多个break语句 B.使用goto语句(不推荐) C.使用return语句 D.以上方法都可以 【答案】D 【解析】可以使用多个break、goto或直接return来跳出所有循环。 17. 下列关于冒泡排序,正确的是( ) A.需要进行n次冒泡(n为元素个数) B.需要进行n-1次冒泡 C.每次冒泡确定一个最小元素的位置 D.冒泡排序是稳定排序 【答案】B 【解析】n个元素需要进行n-1次冒泡排序。 18. 使用顺序查找在n个元素中查找目标,平均比较次数是( ) A.n次 B.n/2次 C.log2(n)次 D.1次 【答案】B 【解析】顺序查找平均需要比较n/2次。 19. 使用二分查找在n个元素中查找目标,时间复杂度是( ) A.O(n) B.O(n2) C.O(log n) D.O(n log n) 【答案】C 【解析】二分查找每次将查找范围缩小一半,时间复杂度为O(log n)。 20. 下列关于穷举法,正确的是( ) A.穷举法效率最高 B.穷举法逐一尝试所有可能答案 C.穷举法只能用于排序问题 D.穷举法不需要循环结构 【答案】B 【解析】穷举法逐一尝试所有可能的答案,直到找到正确解。 二、判断题(共10题,每题1分,共10分) 21. break语句可以跳出整个循环( ) 【答案】√ 【解析】break语句用于跳出整个循环或switch结构。 22. continue语句可以跳出整个循环( ) 【答案】× 【解析】continue跳过本次循环剩余语句,进入下次迭代,不能跳出整个循环。 23. break语句可以用在switch语句中( ) 【答案】√ 【解析】break在switch中用于跳出switch结构。 24. continue语句可以用在switch语句中( ) 【答案】× 【解析】continue只能用在循环中,不能用在switch中。 25. 在嵌套循环中,break只能跳出最内层循环( ) 【答案】√ 【解析】break只能跳出当前所在的最内层循环。 26. 循环嵌套时,外层循环每迭代一次,内层循环完整执行所有迭代( ) 【答案】√ 【解析】外层循环每迭代一次,内层循环完整执行。 27. 冒泡排序法是一种稳定排序算法( ) 【答案】√ 【解析】冒泡排序是稳定排序,相等元素的相对位置不变。 28. 二分查找要求被查找的数组必须是有序的( ) 【答案】√ 【解析】二分查找要求数组有序,否则结果不正确。 29. 穷举法是一种高效的算法( ) 【答案】× 【解析】穷举法效率通常较低,需要尝试所有可能答案。 30. 顺序查找可以用于无序数组( ) 【答案】√ 【解析】顺序查找不要求数组有序,可以用于任何数组。 三、填空题(共10空,每空2分,共20分) 31. 在循环中,____语句可以跳出整个循环。 【答案】break 【解析】break语句用于跳出整个循环。 32. 在循环中,____语句可以跳过本次循环的剩余语句。 【答案】continue 【解析】continue跳过本次循环剩余语句,进入下次迭代。 33. break语句可以用在____和____中。 【答案】循环、switch 【解析】break可以用在循环和switch语句中。 34. continue语句只能用在____中。 【答案】循环(for/while/do while) 【解析】continue只能用在循环中。 35. 在嵌套循环中,break只能跳出____层循环。 【答案】最内(当前所在) 【解析】break只能跳出当前所在的最内层循环。 36. 循环嵌套时,外层循环每迭代一次,内层循环____执行所有迭代。 【答案】完整(全部) 【解析】外层循环每迭代一次,内层循环完整执行。 37. 冒泡排序法通过相邻元素两两____,较大的元素逐渐沉底。 【答案】比较并交换 【解析】冒泡排序通过相邻元素两两比较,需要交换时将较大元素后移。 38. 二分查找要求被查找的数组必须是____的。 【答案】有序(已排序) 【解析】二分查找要求数组有序。 39. 穷举法的基本思想是逐一尝试所有可能的____。 【答案】答案 【解析】穷举法逐一尝试所有可能的答案。 40. n个元素的顺序查找,平均需要比较____次。 【答案】n/2 【解析】顺序查找平均需要比较n/2次。 四、程序综合题(共3题,每题10分,共30分) 41. 程序阅读题:阅读下列程序,写出运行结果。 #include <stdio.h> int main() { int i; for(i=1;i<=10;i++) { if(i%3==0) continue; if(i==7) break; printf("%d ",i); } printf(" "); return 0; } 【答案】1 2 4 5 【解析】 1.循环 i 从 1 到 10,遇到 i%3==0 执行 continue 跳过本次输出; 2.当 i=7 时执行 break 直接结束整个循环; 3.最终输出符合条件的数字:1 2 4 5。 42.文件response.dat存储问卷答案字符串。统计每个答案出现的次数,去重后按出现次数降序输出,次数相同按答案升序。请完善程序。 #include<stdio.h> #include<string.h> #include<stdlib.h> #define N 150 void sort_ans(char ans[][20],int cnt[],int n); int main() { FILE *fp; int i=0,n; char res[N][20],unq[N][20]; int cnt[N]={0},tot=0,j,keep; fp=fopen("response.dat","r"); while(!feof(fp)) { fscanf(fp,"%s",res[i]); ①; } n=i; fclose(fp); strcpy(unq[0],res[0]); cnt[0]=1;tot=1; for(i=1;i<n;i++) { keep=0; for(j=0;j<tot;j++) if(strcmp(unq[j],res[i])==0) { cnt[j]++;keep=1;break; } if(!keep) { strcpy(unq[tot],res[i]); cnt[tot]=1; tot++; } } sort_ans(unq,cnt,tot); for(i=0;i<tot;i++) printf("%s %d ",unq[i],cnt[i]); return 0; } void sort_ans(char ans[][20],int cnt[],int n) { int i,j; char t[20]; int tc; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(cnt[i]<cnt[j]||(cnt[i]==cnt[j]&&strcmp(ans[i],ans[j])>0)) { strcpy(t,ans[i]);strcpy(ans[i],ans[j]);strcpy(ans[j],t); tc=cnt[i];cnt[i]=cnt[j];cnt[j]=tc; } } 【答案】① i++ 【解析】 ① 每读取一条问卷答案,数组下标 i 自增 1,统计总记录数。 43.文件product.dat存储产品编号和产品评分(1-5星)。按评分降序输出,评分相同按编号升序,去除重复记录。请完善程序。 #include<stdio.h> #include<string.h> #include<stdlib.h> #define N 200 void sort_prod(char id[][10],int rating[],int n); int main() { FILE *fp; int i=0,n; char pid[N][10],unp[N][10]; int rat[N],unr[N],tot=0; fp=fopen("product.dat","r"); while(!feof(fp)) { fscanf(fp,"%s%d",pid[i],&rat[i]); ①; } n=i; fclose(fp); sort_prod(pid,rat,n); strcpy(unp[0],pid[0]); unr[0]=rat[0];tot=1; for(i=1;i<n;i++) { if(strcmp(pid[i],pid[i-1])!=0||rat[i]!=rat[i-1]) { strcpy(unp[tot],pid[i]); unr[tot]=rat[i]; tot++; } } for(i=0;i<tot;i++) printf("%s %d星 ",unp[i],unr[i]); return 0; } void sort_prod(char id[][10],int rating[],int n) { int i,j,p; char tid[10]; int trat; for(i=0;i<n-1;i++) { p=i; for(j=i+1;j<n;j++) if(rating[p]<rating[j]||(rating[p]==rating[j]&&strcmp(id[p],id[j])>0)) ②; if(p!=i) { strcpy(tid,id[p]);strcpy(id[p],id[i]);strcpy(id[i],tid); trat=rating[p];rating[p]=rating[i];rating[i]=trat; } } } 【答案】① i++ ② p=j 【解析】 ① 每读取一条产品信息,数组下标 i 自增 1,记录总数; ② 选择排序中,满足排序条件时,将 p 更新为 j,记录待交换位置。 学科网(北京)股份有限公司 $ 编写说明:江苏省对口招生计算机类《考纲百套卷》,依据《江苏省计算机类专业综合理论考试大纲》编写。本专辑涵盖5门课程,第一部分是专业核心模块训练卷,第二部分为各门课程的综合训练卷。本专辑共98份试卷。 本试卷是第23卷为专业核心模块训练卷,按《C语言》中"C语言卷10——continue、break、循环嵌套与常用算法"范围和要求编写。具体内容为:掌握continue语句、break语句;理解循环的嵌套;掌握程序设计中的几种常用算法的基本思想(排序、查找、穷举)。 江苏省对口招生职业技能考试 C语言 试卷 (C语言卷10——continue、break、循环嵌套与常用算法) 考试时间:90分钟 满分:100分 一、单项选择题(共20题,每题2分,共40分) 1. 在循环中,break语句的作用是( ) A.跳过本次循环剩余语句 B.跳出整个循环 C.终止程序 D.重新从循环开始执行 2. 在循环中,continue语句的作用是( ) A.跳出整个循环 B.跳过本次循环剩余语句,进入下次迭代 C.终止程序 D.重新从循环开始执行 3. 下列关于break语句,正确的是( ) A.break只能用在循环中 B.break可以用在switch中 C.break可以跳出多层嵌套循环 D.break可以用在任何地方 4. 下列关于continue语句,正确的是( ) A.continue可以用在switch中 B.continue只能用在循环中 C.continue可以跳出多层循环 D.continue可以用在任何地方 5. 下列程序段执行后输出结果是( ) for(i=1;i<=5;i++) { if(i==3) continue; printf("%d ",i); } A.1 2 3 4 5 B.1 2 4 5 C.1 2 3 4 5(无变化) D.编译错误 6. 下列程序段执行后输出结果是( ) for(i=1;i<=5;i++) { if(i==3) break; printf("%d ",i); } A.1 2 3 4 5 B.1 2 C.1 2 3 D.编译错误 7. 下列关于循环嵌套,正确的是( ) A.循环不能嵌套 B.外层循环每迭代一次,内层循环完整执行 C.内层循环每迭代一次,外层循环完整执行 D.循环嵌套不能超过两层 8. 下列程序段执行后输出次数是( ) for(i=0;i<3;i++) for(j=0;j<2;j++) printf("*"); A.2次 B.3次 C.5次 D.6次 9. 冒泡排序法的基本思想是( ) A.每次选择最小元素放到前面 B.相邻元素两两比较,大的沉底 C.逐个插入到已排序序列 D.使用分治思想进行排序 10. 选择排序法的基本思想是( ) A.相邻元素两两比较 B.每次选择最小(或最大)元素放到前面 C.逐个插入到已排序序列 D.使用递归思想进行排序 11. 插入排序法的基本思想是( ) A.相邻元素两两比较 B.每次选择最小元素放到前面 C.逐个取出元素插入到已排序序列的适当位置 D.使用分治思想进行排序 12. 下列关于顺序查找,正确的是( ) A.只能用于有序数组 B.从第一个元素开始逐个比较 C.查找效率比二分查找高 D.需要使用递归实现 13. 下列关于二分查找(对半查找),正确的是( ) A.只能用于无序数组 B.每次比较中间元素,缩小查找范围 C.查找效率比顺序查找低 D.需要从最后一个元素开始比较 14. 穷举法的基本思想是( ) A.从第一个元素开始逐个比较 B.逐一尝试所有可能的答案 C.每次选择最优解 D.使用分治思想解决问题 15. 在嵌套循环中,break语句可以跳出( ) A.所有循环 B.最内层循环 C.最外层循环 D.所有switch语句 16. 在嵌套循环中,想要跳出所有循环,可以使用( ) A.使用多个break语句 B.使用goto语句(不推荐) C.使用return语句 D.以上方法都可以 17. 下列关于冒泡排序,正确的是( ) A.需要进行n次冒泡(n为元素个数) B.需要进行n-1次冒泡 C.每次冒泡确定一个最小元素的位置 D.冒泡排序是稳定排序 18. 使用顺序查找在n个元素中查找目标,平均比较次数是( ) A.n次 B.n/2次 C.log2(n)次 D.1次 19. 使用二分查找在n个元素中查找目标,时间复杂度是( ) A.O(n) B.O(n2) C.O(log n) D.O(n log n) 20. 下列关于穷举法,正确的是( ) A.穷举法效率最高 B.穷举法逐一尝试所有可能答案 C.穷举法只能用于排序问题 D.穷举法不需要循环结构 二、判断题(共10题,每题1分,共10分) 21. break语句可以跳出整个循环( ) 22. continue语句可以跳出整个循环( ) 23. break语句可以用在switch语句中( ) 24. continue语句可以用在switch语句中( ) 25. 在嵌套循环中,break只能跳出最内层循环( ) 26. 循环嵌套时,外层循环每迭代一次,内层循环完整执行所有迭代( ) 27. 冒泡排序法是一种稳定排序算法( ) 28. 二分查找要求被查找的数组必须是有序的( ) 29. 穷举法是一种高效的算法( ) 30. 顺序查找可以用于无序数组( ) 三、填空题(共10空,每空2分,共20分) 31. 在循环中,____语句可以跳出整个循环。 32. 在循环中,____语句可以跳过本次循环的剩余语句。 33. break语句可以用在____和____中。 34. continue语句只能用在____中。 35. 在嵌套循环中,break只能跳出____层循环。 36. 循环嵌套时,外层循环每迭代一次,内层循环____执行所有迭代。 37. 冒泡排序法通过相邻元素两两____,较大的元素逐渐沉底。 38. 二分查找要求被查找的数组必须是____的。 39. 穷举法的基本思想是逐一尝试所有可能的____。 40. n个元素的顺序查找,平均需要比较____次。 四、程序综合题(共3题,每题10分,共30分) 41. 程序阅读题:阅读下列程序,写出运行结果。 #include <stdio.h> int main() { int i; for(i=1;i<=10;i++) { if(i%3==0) continue; if(i==7) break; printf("%d ",i); } printf(" "); return 0; } 42.文件response.dat存储问卷答案字符串。统计每个答案出现的次数,去重后按出现次数降序输出,次数相同按答案升序。请完善程序。 #include<stdio.h> #include<string.h> #include<stdlib.h> #define N 150 void sort_ans(char ans[][20],int cnt[],int n); int main() { FILE *fp; int i=0,n; char res[N][20],unq[N][20]; int cnt[N]={0},tot=0,j,keep; fp=fopen("response.dat","r"); while(!feof(fp)) { fscanf(fp,"%s",res[i]); ①; } n=i; fclose(fp); strcpy(unq[0],res[0]); cnt[0]=1;tot=1; for(i=1;i<n;i++) { keep=0; for(j=0;j<tot;j++) if(strcmp(unq[j],res[i])==0) { cnt[j]++;keep=1;break; } if(!keep) { strcpy(unq[tot],res[i]); cnt[tot]=1; tot++; } } sort_ans(unq,cnt,tot); for(i=0;i<tot;i++) printf("%s %d ",unq[i],cnt[i]); return 0; } void sort_ans(char ans[][20],int cnt[],int n) { int i,j; char t[20]; int tc; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(cnt[i]<cnt[j]||(cnt[i]==cnt[j]&&strcmp(ans[i],ans[j])>0)) { strcpy(t,ans[i]);strcpy(ans[i],ans[j]);strcpy(ans[j],t); tc=cnt[i];cnt[i]=cnt[j];cnt[j]=tc; } } 43.文件product.dat存储产品编号和产品评分(1-5星)。按评分降序输出,评分相同按编号升序,去除重复记录。请完善程序。 #include<stdio.h> #include<string.h> #include<stdlib.h> #define N 200 void sort_prod(char id[][10],int rating[],int n); int main() { FILE *fp; int i=0,n; char pid[N][10],unp[N][10]; int rat[N],unr[N],tot=0; fp=fopen("product.dat","r"); while(!feof(fp)) { fscanf(fp,"%s%d",pid[i],&rat[i]); ①; } n=i; fclose(fp); sort_prod(pid,rat,n); strcpy(unp[0],pid[0]); unr[0]=rat[0];tot=1; for(i=1;i<n;i++) { if(strcmp(pid[i],pid[i-1])!=0||rat[i]!=rat[i-1]) { strcpy(unp[tot],pid[i]); unr[tot]=rat[i]; tot++; } } for(i=0;i<tot;i++) printf("%s %d星 ",unp[i],unr[i]); return 0; } void sort_prod(char id[][10],int rating[],int n) { int i,j,p; char tid[10]; int trat; for(i=0;i<n-1;i++) { p=i; for(j=i+1;j<n;j++) if(rating[p]<rating[j]||(rating[p]==rating[j]&&strcmp(id[p],id[j])>0)) ②; if(p!=i) { strcpy(tid,id[p]);strcpy(id[p],id[i]);strcpy(id[i],tid); trat=rating[p];rating[p]=rating[i];rating[i]=trat; } } } 学科网(北京)股份有限公司 $

资源预览图

第23卷 C语言-C语言卷10——continue、break、循环嵌套与常用算法——江苏省计算机类——考纲百套卷
1
第23卷 C语言-C语言卷10——continue、break、循环嵌套与常用算法——江苏省计算机类——考纲百套卷
2
第23卷 C语言-C语言卷10——continue、break、循环嵌套与常用算法——江苏省计算机类——考纲百套卷
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。