第27练 6.6 函数应用实例、第6章综合 《C语言》 (第五版) 一课一练 (山东省)

2026-06-24
| 2份
| 12页
| 2人阅读
| 0人下载

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 -
年级 -
章节 -
类型 作业-同步练
知识点 C语言概述
使用场景 同步教学
学年 2026-2027
地区(省份) 山东省
地区(市) -
地区(区县) -
文件格式 ZIP
文件大小 108 KB
发布时间 2026-06-24
更新时间 2026-06-24
作者 xkw_068401954
品牌系列 上好课·一课一练
审核时间 2026-06-24
下载链接 https://m.zxxk.com/soft/58480034.html
价格 1.00储值(1储值=1元)
来源 学科网

内容正文:

【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。 本卷是《C语言》(第五版)《一课一练》第27练,内容是6.6 函数应用实例、第6章综合。 《C语言》(第五版)一课一练 第27练 6.6 函数应用实例、第6章综合 一、单选题 1. 以下关于C语言函数的说法中,正确的是( ) A. 所有函数必须写在main函数之前才能被调用 B. C语言的函数可以嵌套定义也可以嵌套调用 C. 函数调用时实参的个数可以少于形参的个数 D. 每个C程序一定包含一个main函数 2. 以下函数定义中,能正确返回两整数之和的是( ) A. void sum(int a, int b) { return a+b; } B. sum(int a, int b) { return a+b; } C. int sum(int a, int b) { return a+b; } D. int sum(a, b) { return a+b; } 3. 以下递归函数 int f(int n) { if(n<=1) return 1; else return n*f(n-1); } 调用f(4)的返回值是( ) A. 24 B. 10 C. 12 D. 6 4. 已知 void printArr(int a[], int n) { int i; for(i=0;i<n;i++) printf("%d ",a[i]); } 在main中有 int b[4]={2,4,6,8}; 调用方式正确的是( ) A. printArr(b[4], 4); B. printArr(int b, 4); C. printArr(b[], 4); D. printArr(b, 4); 5. int g=100; void func() { int g=50; printf("%d,", g); } main() { func(); printf("%d", g); } 程序输出是( ) A. 50,50 B. 50,100 C. 100,100 D. 100,50 6. 以下程序的输出是 int x = 1; void f(int a) { static int b = 1; b = b + a; printf("%d,", b); } main() { int i; for(i=0; i<3; i++) f(x); }( ) A. 2,3,4, B. 1,2,3, C. 2,2,2, D. 2,4,6, 7. 已知 int isPrime(int n) { int i; for(i=2;i<n;i++) if(n%i==0) return 0; return 1; } 调用 isPrime(15) 的返回值是( ) A. 1(15是质数) B. 不确定(循环过程中多次返回) C. 0(15不是质数) D. -1(函数异常退出) 二、简答题 8. 以下程序的运行结果是【··】。 #include <stdio.h> int max(int x, int y) { return x > y ? x : y; } int max3(int a, int b, int c) { return max(max(a, b), c); } main() { printf("%d ", max3(15, 28, 9)); } 三、案例分析题 9. 以下程序的功能是定义函数判断闰年,并在main中输出1000~2020之间的所有闰年。请填空。 #include <stdio.h> int isLeap(int year) { if (year % 400 == 0) return 1; else if (year % 100 == 0) return 0; else if (year % 【1】 == 0) return 1; else return 【2】; } main() { int y; for (y = 1000; y <= 2020; y++) if (【3】) printf("%d ", y); } 四、综合应用题 10. 编写一个C程序,包含以下函数: (1) int isPerfect(int n) — 判断n是否为完数(完数指其所有真因子之和等于自身,如6=1+2+3),是则返回1,否则返回0 (2) void printFactors(int n) — 输出n的所有真因子(如6的真因子为1,2,3) (3) 在main函数中调用上述函数,找出1~1000中完数,并输出每个完数和它的真因子。 提示:真因子指小于n同时能被n整除的正整数。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。 本卷是《C语言》(第五版)《一课一练》第27练,内容是6.6 函数应用实例、第6章综合。 《C语言》(第五版)一课一练 第27练 6.6 函数应用实例、第6章综合 一、单选题 1. 以下关于C语言函数的说法中,正确的是( ) A. 所有函数必须写在main函数之前才能被调用 B. C语言的函数可以嵌套定义也可以嵌套调用 C. 函数调用时实参的个数可以少于形参的个数 D. 每个C程序一定包含一个main函数 【答案】D 【解析】D程序从main函数开始执行,每个可执行的D程序必须包含一个main函数作为入口点。函数可以定义在main之前,也可以放在main之后(置于后面需要声明),不能嵌套定义但可以嵌套调用。调用时实参个数必须与形参个数完全一致,类型也要匹配。 2. 以下函数定义中,能正确返回两整数之和的是( ) A. void sum(int a, int b) { return a+b; } B. sum(int a, int b) { return a+b; } C. int sum(int a, int b) { return a+b; } D. int sum(a, b) { return a+b; } 【答案】C 【解析】选项C完整定义了返回值类型int和形参类型int a,int b,返回语句return a+b正确。A中void函数不能return值。B缺少返回值类型说明(默认int,但写法不规范)。D中形参a和b缺少类型说明(老式写法已不推荐使用)。按照课本规范写法应选A。 3. 以下递归函数 int f(int n) { if(n<=1) return 1; else return n*f(n-1); } 调用f(4)的返回值是( ) A. 24 B. 10 C. 12 D. 6 【答案】A 【解析】该递归函数计算n的阶乘。f(4)=4*f(3)=4*3*f(2)=4*3*2*f(1)=4*3*2*1=24。终止条件n<=1时返回1。递归过程将大问题逐步分解为更小的问题,直到触及终止条件后逐层返回计算结果。阶乘是递归的经典应用实例。 4. 已知 void printArr(int a[], int n) { int i; for(i=0;i<n;i++) printf("%d ",a[i]); } 在main中有 int b[4]={2,4,6,8}; 调用方式正确的是( ) A. printArr(b[4], 4); B. printArr(int b, 4); C. printArr(b[], 4); D. printArr(b, 4); 【答案】D 【解析】printArr(b,4)中b是数组名,代表数组首地址,4是元素个数,调用格式正确。A中b[4]越界访问,类型也不匹配。B中调用时不应写类型名int。C中b[]写法错误,调用时数组名后不加方括号。数组名作实参的调用需写数组名和元素个数。 5. int g=100; void func() { int g=50; printf("%d,", g); } main() { func(); printf("%d", g); } 程序输出是( ) A. 50,50 B. 50,100 C. 100,100 D. 100,50 【答案】B 【解析】func中有局部变量int g=50与全局变量g同名,局部变量屏蔽了全局变量,func内输出50。回到main中没有定义局部变量g,使用全局变量g=100,输出100。结果50,100体现了局部优先原则:同名时局部作用域内优先使用局部变量。 6. 以下程序的输出是 int x = 1; void f(int a) { static int b = 1; b = b + a; printf("%d,", b); } main() { int i; for(i=0; i<3; i++) f(x); }( ) A. 2,3,4, B. 1,2,3, C. 2,2,2, D. 2,4,6, 【答案】A 【解析】静态局部变量b在每次调用之间保持值。三次调用统一传入a=x=1:第一次b=1+1=2输出2,;第二次b=2+1=3输出3,;第三次b=3+1=4输出4,。最终输出"2,3,4,"。此题综合考查了参数传递(值传递)与静态局部变量的协同工作机制。 7. 已知 int isPrime(int n) { int i; for(i=2;i<n;i++) if(n%i==0) return 0; return 1; } 调用 isPrime(15) 的返回值是( ) A. 1(15是质数) B. 不确定(循环过程中多次返回) C. 0(15不是质数) D. -1(函数异常退出) 【答案】C 【解析】isPrime函数判断n是否为质数(在2到n-1之间找到因子则不是质数)。n=15时i从2开始:2不整除15,3整除15?15%3=0不成立,继续。4不整除?4%3误...重新分析:i=2时15%2=1≠0,i=3时15%3=0==0,return 0。15不是质数,返回0。 二、简答题 8. 以下程序的运行结果是【··】。 #include <stdio.h> int max(int x, int y) { return x > y ? x : y; } int max3(int a, int b, int c) { return max(max(a, b), c); } main() { printf("%d ", max3(15, 28, 9)); } 【答案】28 【解析】max3函数利用嵌套调用max函数求三个数的最大值:先求max(15,28)=28,再求max(28,9)=28,最终返回28。max3内部调用了两次max,体现了函数嵌套调用的典型应用。通过复用简单函数max来构建更复杂的max3函数,提高了代码的模块化程度。 三、案例分析题 9. 以下程序的功能是定义函数判断闰年,并在main中输出1000~2020之间的所有闰年。请填空。 #include <stdio.h> int isLeap(int year) { if (year % 400 == 0) return 1; else if (year % 100 == 0) return 0; else if (year % 【1】 == 0) return 1; else return 【2】; } main() { int y; for (y = 1000; y <= 2020; y++) if (【3】) printf("%d ", y); } 【答案】【1】4 【2】0 【3】isLeap(y) 【解析】闰年判断规则:能被400整除的是闰年;能被100整除的不是闰年(如1900年);能被4整除的是闰年(如2020年);其余不是闰年。填空【1】处填4表示能被4整除的情况,【2】填0表示不符合任何闰年条件,【3】调用isLeap(y)判断当前年份是否为闰年。 四、综合应用题 10. 编写一个C程序,包含以下函数: (1) int isPerfect(int n) — 判断n是否为完数(完数指其所有真因子之和等于自身,如6=1+2+3),是则返回1,否则返回0 (2) void printFactors(int n) — 输出n的所有真因子(如6的真因子为1,2,3) (3) 在main函数中调用上述函数,找出1~1000中完数,并输出每个完数和它的真因子。 提示:真因子指小于n同时能被n整除的正整数。 【答案】#include <stdio.h> int isPerfect(int n) { int i, sum = 0; for (i = 1; i < n; i++) if (n % i == 0) sum += i; return sum == n; } void printFactors(int n) { int i; printf("%d的真因子:", n); for (i = 1; i < n; i++) if (n % i == 0) printf(" %d", i); printf(" "); } main() { int num; printf("1~1000中的完数: "); for (num = 1; num <= 1000; num++) { if (isPerfect(num)) { printFactors(num); } } } 【解析】isPerfect函数用循环累加n的所有真因子(1到n-1中能整除n的数),判断累加和是否等于n自身。printFactors函数遍历输出所有真因子。main循环1到1000,对每个数调用isPerfect判断,若是完数再调用printFactors输出其真因子列表。完数包括6、28、496等。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

第27练 6.6 函数应用实例、第6章综合 《C语言》 (第五版) 一课一练 (山东省)
1
第27练 6.6 函数应用实例、第6章综合 《C语言》 (第五版) 一课一练 (山东省)
2
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。