第六章 函数《编程语言基础-C语言》(高教版第五版)章节过关卷

2025-09-21
| 2份
| 16页
| 75人阅读
| 0人下载

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 C语言程序设计高教版(第五版)全一册
年级 高一
章节 第6章 函数
类型 作业-单元卷
知识点 函数
使用场景 同步教学-单元练习
学年 2025-2026
地区(省份) 全国
地区(市) -
地区(区县) -
文件格式 ZIP
文件大小 252 KB
发布时间 2025-09-21
更新时间 2025-09-21
作者 xkw_069767526
品牌系列 学易金卷·阶段检测模拟卷
审核时间 2025-09-21
下载链接 https://m.zxxk.com/soft/54019952.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

《编程语言基础——C语言》高等教育出版社(第五版) 第六章 函数 章节过关卷 考试时间:90分钟 满分:100分 姓名 班级 学号 1、 单项选择题(本题共25小题,每题2分,共50分) 1.以下叙述正确的是( ) A.在C程序中,主函数必须位于程序的最前面 B.在C程序中,一行只能写一条语句 C.C程序的基本结构是程序行 D.C语句是完成某种程序功能的最小单位 2.C语言规定,在一个C程序中,主函数的位置( ) A.必须在开始 B.必须在最后 C.可以任意 D.必须在系统调用的库后 3.下列叙述中正确的是( ) A.构成C程序的基本单位是函数 B.可以在一个函数中定义另一个函数 C.main()函数必须放在其它函数之前 D.所有被调用函数一定要在调用之前进行定义 4.以下说法中正确的是( ) A.C语言程序总是从第一个函数开始 B.在C语言程序中,要调用的函数必须在main()函数中定义 C.C语言程序总是从main()函数开始执行 D.C语言程序中的main()函数必须放在程序的开始部分 5.在C语言中,以下正确的说法是( ) A.实参和其对应的形参各占用独立的存储单元 B.实参和与其对应的形参共占用一个存储单元 C.只有当实参和其对应的形参同名时才共占用相同的存储单元 D.形参是虚拟的,不占用存储单元 6.在C语言中,以下不正确的说法是( ) A.实参可以是常量,变量或表达式 B.形参可以是常量,变量或表达式 C.实参可以为任意类型 D.如果形参和实参的类型不一致,以形参类型为准 7.被调用函数调用结束后,返回到( ) A.主调函数中该被调函数调用语句处 B.主函数调用该被调函数调用语句处 C.主调函数中该被调函数调用语句的前一语句 D.主调函数中该被调函数调用语句的后一语句 8.有如下函数调用语句:fun(rec1,rec2+rec3,(rec4,rec5));在该函数调用语句中,含有的实参个数是( ) A.2 B.3 C.4 D.5 9.下列程序的结果是( ) #include<stdio.h> int fun(int x,int y) {return(x+y);} main() {int a=1,b=2,c=3,sum; sum=fun((a++,b++,a+b),c++); printf("%d ",sum);} A.6 B.7 C.8 D.9 10.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( ) A.float型 B.long型 C.int型 D.double型 11.C语言规定,程序中各函数之间( ) A.既允许直接递归调用也允许间接递归调用 B.不允许直接递归调用也不允许间接递归调用 C.允许直接递归调用不允许简介递归调用 D.不允许直接递归调用允许间接递归调用 12.下列程序的结果是( ) #include<stdio.h> long fun(int n) {long s; if(n==1||n==2) s=2; else s=n-fun(n-1); return s;} main() {printf("%ld ",fun(3));} A.1 B.2 C.3 D.4 13.下列程序的结果是( ) #include<stdio.h> int fun(int x) {int p; if(x==0||x==1) p=3; else p=x-fun(x-2); return p;} main(){printf("%d ",fun(7));} A.2 B.3 C.4 D.5 14.下列程序的输出结果是( ) int fun(int b[],int n) {int i,s=0; for(i=0;i<n;i+=2) s+=b[i]; return s;} main() {int a[]={1,2,3,4,5},s; s=fun(a,5); printf("%d ",s);} A.7 B.8 C.9 D.10 15.数组名作为函数调用的实参,传递给形参的是( ) A.数组的首地址 B.数组的第一个元素的值 C.数组中全部元素的值 D.数组元素的个数 16.下列程序的输出结果是( ) #include<stdio.h> int f(int b[],int m,int n) {int i,s=0; for(i=m;i<n;i=i+2) s=s+b[i]; return s;} main() {int x,a[]={1,2,3,4,5,6,7,8,9}; x=f(a,3,7); printf("%d ",x);} A.10 B.18 C.8 D.15 17.设有说明int (*ptr)[m];其中标识符ptr是( ) A.m个指向整型变量的指针 B.指向m个整型变量的函数指针 C.一个指向具有m个整型元素的一维数组的指针 D.具有m个指针元素的一维指针数组,每个元素都只能指向整型量 18.设有说明:int (*ptr)[8];则ptr是( ) A.指向整型变量的指针 B.指向函数的指针,该函数的返回值为int数据 C.指向一维数组的指针,该数组的基类型为int D.长度为8的一维数组 19.若有定义int *p[3];则以下叙述中正确的是( ) A.定义了一个基类型为int的指针变量p,该变量具有三个指针 B.定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针 C.定义了一个名为*p的整型数组,则数组含有三个int类型元素 D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素 20.在C语言中,如果在一个函数中的复合语句中定义了一个变量,则该变量( ) A.只在该复合语句中有定义 B.在该函数中有定义 C.在本程序范围内有定义 D.为非法变量 21. 在C语言中,以下不正确的是( ) A.在不同函数中可以使用相同名字的变量 B.形式参数是局部变量 C.在函数内定义的变量侄子啊本函数范围内有定义 D.在函数内的复合语句中定义的变量在本函数范围内有定义 22.在下列叙述中,错误的一条是( ) A.主函数main中定义的变量在整个文件或程序中有效 B、不同函数中,可以使用相同名字的变量 C.函数中的形式参数是局部变量 D.在一个函数内部,可在复合语句中定义变量,这些变量只在本复合语句中有效 23.在C语言中,以下不正确的是( ) A.形参的存储单元是动态分配的 B.函数中的局部变量都是动态存储 C.全局变量都是静态存储 D.动态存储的变量的存储空间在函数结束调用后就被释放了 24.在C语言中,变量的隐含存储类别是( ) A.auto B.static C.extern D.register 25.下列程序的输出结果是( ) #include<stdio.h> void fun(int x) {x=20;} main() {int x=10; fun(x); printf("x=%d ",x);} A.10 B.x=10 C.20 D.x=20 二、简答题(本题共5小题,每题6分,共30分) 26. 以下程序的输出结果是【 】。 int fun(int x,int y) { int z; z=x+y; return z;} main(){ int a=3,b=5,s; s=fun(a,b); printf("%d ",s);} 27. 以下程序的运行结果是【 】。 int fun(int x,int y) {return x+y;} main() {int a=3,b=2,c=5,d; d=fun(fun(a,b),c); printf("%d ",d);} 28. 以下程序的运行结果是【 】。 #include<stdio.h> int f(int x,int y) {return((y-x)*x);} main() {int a=3,b=4,c=5,d; d=f(f(a,b),f(a,c)); printf("%d ",d);} 29. 以下程序的运行结果是【 】。 int fun(int x) {int y; if(x>1) y=fun(x-1)+2; else y=2; return y;} main(){printf("%d ",fun(3));} 30. 以下程序的运行结果是【 】。 #include<stdio.h> int f(int x) {int y; if(x==0||x==1) return 3; else y=x*x-f(x-2); return y;} main(){printf("%d ",fun(3));} 三、案例分析题(本题共2小题,共20分) 31.编写一个函数,将某已知数组的奇数项合成一个新的数组。在主函数中调用该函数,并输出新数组的内容。 32.编写一个函数,将两个两位数的正整数A和B合并形成一个整数C。合并的方式是:将A数的十位数和个位数依次放在C数的个位数和十位数上,B数的十位数和个位数依次放在C数的百位数和千位数上。例如:当A=16,B=35时,C=5361。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $ 《编程语言基础——C语言》高等教育出版社(第五版) 第六章 函数 章节过关卷 考试时间:90分钟 满分:100分 姓名 班级 学号 1、 单项选择题(本题共25小题,每题2分,共50分) 1.以下叙述正确的是( ) A.在C程序中,主函数必须位于程序的最前面 B.在C程序中,一行只能写一条语句 C.C程序的基本结构是程序行 D.C语句是完成某种程序功能的最小单位 答案:D 2.C语言规定,在一个C程序中,主函数的位置( ) A.必须在开始 B.必须在最后 C.可以任意 D.必须在系统调用的库后 答案:C 3.下列叙述中正确的是( ) A.构成C程序的基本单位是函数 B.可以在一个函数中定义另一个函数 C.main()函数必须放在其它函数之前 D.所有被调用函数一定要在调用之前进行定义 答案:A 4.以下说法中正确的是( ) A.C语言程序总是从第一个函数开始 B.在C语言程序中,要调用的函数必须在main()函数中定义 C.C语言程序总是从main()函数开始执行 D.C语言程序中的main()函数必须放在程序的开始部分 答案:C 5.在C语言中,以下正确的说法是( ) A.实参和其对应的形参各占用独立的存储单元 B.实参和与其对应的形参共占用一个存储单元 C.只有当实参和其对应的形参同名时才共占用相同的存储单元 D.形参是虚拟的,不占用存储单元 答案:A 6.在C语言中,以下不正确的说法是( ) A.实参可以是常量,变量或表达式 B.形参可以是常量,变量或表达式 C.实参可以为任意类型 D.如果形参和实参的类型不一致,以形参类型为准 答案:B 7.被调用函数调用结束后,返回到( ) A.主调函数中该被调函数调用语句处 B.主函数调用该被调函数调用语句处 C.主调函数中该被调函数调用语句的前一语句 D.主调函数中该被调函数调用语句的后一语句 答案:A 8.有如下函数调用语句:fun(rec1,rec2+rec3,(rec4,rec5));在该函数调用语句中,含有的实参个数是( ) A.2 B.3 C.4 D.5 答案:B 9.下列程序的结果是( ) #include<stdio.h> int fun(int x,int y) {return(x+y);} main() {int a=1,b=2,c=3,sum; sum=fun((a++,b++,a+b),c++); printf("%d ",sum);} A.6 B.7 C.8 D.9 答案:C 10.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( ) A.float型 B.long型 C.int型 D.double型 答案:C 11.C语言规定,程序中各函数之间( ) A.既允许直接递归调用也允许间接递归调用 B.不允许直接递归调用也不允许间接递归调用 C.允许直接递归调用不允许简介递归调用 D.不允许直接递归调用允许间接递归调用 答案:A 12.下列程序的结果是( ) #include<stdio.h> long fun(int n) {long s; if(n==1||n==2) s=2; else s=n-fun(n-1); return s;} main() {printf("%ld ",fun(3));} A.1 B.2 C.3 D.4 答案:A 13.下列程序的结果是( ) #include<stdio.h> int fun(int x) {int p; if(x==0||x==1) p=3; else p=x-fun(x-2); return p;} main(){printf("%d ",fun(7));} A.2 B.3 C.4 D.5 答案:A 14.下列程序的输出结果是( ) int fun(int b[],int n) {int i,s=0; for(i=0;i<n;i+=2) s+=b[i]; return s;} main() {int a[]={1,2,3,4,5},s; s=fun(a,5); printf("%d ",s);} A.7 B.8 C.9 D.10 答案:C 15.数组名作为函数调用的实参,传递给形参的是( ) A.数组的首地址 B.数组的第一个元素的值 C.数组中全部元素的值 D.数组元素的个数 答案:A 16.下列程序的输出结果是( ) #include<stdio.h> int f(int b[],int m,int n) {int i,s=0; for(i=m;i<n;i=i+2) s=s+b[i]; return s;} main() {int x,a[]={1,2,3,4,5,6,7,8,9}; x=f(a,3,7); printf("%d ",x);} A.10 B.18 C.8 D.15 答案:A 17.设有说明int (*ptr)[m];其中标识符ptr是( ) A.m个指向整型变量的指针 B.指向m个整型变量的函数指针 C.一个指向具有m个整型元素的一维数组的指针 D.具有m个指针元素的一维指针数组,每个元素都只能指向整型量 答案:C 18.设有说明:int (*ptr)[8];则ptr是( ) A.指向整型变量的指针 B.指向函数的指针,该函数的返回值为int数据 C.指向一维数组的指针,该数组的基类型为int D.长度为8的一维数组 答案:C 19.若有定义int *p[3];则以下叙述中正确的是( ) A.定义了一个基类型为int的指针变量p,该变量具有三个指针 B.定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针 C.定义了一个名为*p的整型数组,则数组含有三个int类型元素 D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素 答案:B 20.在C语言中,如果在一个函数中的复合语句中定义了一个变量,则该变量( ) A.只在该复合语句中有定义 B.在该函数中有定义 C.在本程序范围内有定义 D.为非法变量 答案:A 21. 在C语言中,以下不正确的是( ) A.在不同函数中可以使用相同名字的变量 B.形式参数是局部变量 C.在函数内定义的变量侄子啊本函数范围内有定义 D.在函数内的复合语句中定义的变量在本函数范围内有定义 答案:D 22.在下列叙述中,错误的一条是( ) A.主函数main中定义的变量在整个文件或程序中有效 B、不同函数中,可以使用相同名字的变量 C.函数中的形式参数是局部变量 D.在一个函数内部,可在复合语句中定义变量,这些变量只在本复合语句中有效 答案: A 23.在C语言中,以下不正确的是( ) A.形参的存储单元是动态分配的 B.函数中的局部变量都是动态存储 C.全局变量都是静态存储 D.动态存储的变量的存储空间在函数结束调用后就被释放了 答案:B 24.在C语言中,变量的隐含存储类别是( ) A.auto B.static C.extern D.register 答案:A 25.下列程序的输出结果是( ) #include<stdio.h> void fun(int x) {x=20;} main() {int x=10; fun(x); printf("x=%d ",x);} A.10 B.x=10 C.20 D.x=20 答案:B 二、简答题(本题共5小题,每题6分,共30分) 26. 以下程序的输出结果是【 】。 int fun(int x,int y) { int z; z=x+y; return z;} main(){ int a=3,b=5,s; s=fun(a,b); printf("%d ",s);} 答案:8 27. 以下程序的运行结果是【 】。 int fun(int x,int y) {return x+y;} main() {int a=3,b=2,c=5,d; d=fun(fun(a,b),c); printf("%d ",d);} 答案:10 28. 以下程序的运行结果是【 】。 #include<stdio.h> int f(int x,int y) {return((y-x)*x);} main() {int a=3,b=4,c=5,d; d=f(f(a,b),f(a,c)); printf("%d ",d);} 答案:9 29. 以下程序的运行结果是【 】。 int fun(int x) {int y; if(x>1) y=fun(x-1)+2; else y=2; return y;} main(){printf("%d ",fun(3));} 答案:6 30. 以下程序的运行结果是【 】。 #include<stdio.h> int f(int x) {int y; if(x==0||x==1) return 3; else y=x*x-f(x-2); return y;} main(){printf("%d ",fun(3));} 答案:6 三、案例分析题(本题共2小题,共20分) 31.编写一个函数,将某已知数组的奇数项合成一个新的数组。在主函数中调用该函数,并输出新数组的内容。 【参考程序】#include <stdio.h> int fun(int a[], int b[]) { int i, k = 0; for (i = 0; i < 10; i++) { if (i % 2 != 0) { b[k] = a[i]; k++; } } return k; } main() { int a[10], b[10], n, i; for (i = 0; i < 10; i++) scanf("%d", &a[i]); n = fun(a, b); for (i = 0; i < n; i++) printf("%d ", b[i]); } 32.编写一个函数,将两个两位数的正整数A和B合并形成一个整数C。合并的方式是:将A数的十位数和个位数依次放在C数的个位数和十位数上,B数的十位数和个位数依次放在C数的百位数和千位数上。例如:当A=16,B=35时,C=5361。 【参考程序】#include <stdio.h> int fun(int x, int y) { int m, n; //m是a的十位,n是a的个位 int p, q; //p是b的十位,q是b的个位 int c; m = x / 10; n = x % 10; p = y / 10; q = y % 10; c = m + n * 10 + p * 100 + q * 1000; return c; } main() { int a, b; scanf("%d %d", &a, &b); printf("%d", fun(a, b)); } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $

资源预览图

第六章  函数《编程语言基础-C语言》(高教版第五版)章节过关卷
1
第六章  函数《编程语言基础-C语言》(高教版第五版)章节过关卷
2
第六章  函数《编程语言基础-C语言》(高教版第五版)章节过关卷
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。