《C语言程序设计》函数-知识点训练卷 广西职教高考《电子与信息类考纲百套卷》第38卷

2025-04-25
| 2份
| 18页
| 144人阅读
| 1人下载

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 -
年级 -
章节 -
类型 题集-专项训练
知识点 函数
使用场景 中职复习
学年 2025-2026
地区(省份) 广西壮族自治区
地区(市) -
地区(区县) -
文件格式 ZIP
文件大小 183 KB
发布时间 2025-04-25
更新时间 2025-04-25
作者 胥豆豆老师
品牌系列 学易金卷·考纲百套卷
审核时间 2025-04-25
下载链接 https://m.zxxk.com/soft/51821146.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

编写说明:广西《电子与信息大类考纲百套卷》,是依据广西《高等职业教育考试大纲与说明(电子与信息大类)》2026版编写。本套试卷共100份,由三个部分组成。第一部分是按考点要求编写的60份知识点训练卷;第二部分是针对三门课程编写的30份常考题训练卷;第三个部分是10份专业知识综合训练卷。 本试卷是广西《电子与信息大类考纲百套卷》的第38卷,是知识点训练卷,其编写要求如下: (1)掌握函数的定义及调用; (2)掌握对被调用函数的声明和函数原型; (3)了解函数的嵌套及递归调用; (4)掌握数组作为函数参数的方法; (5)了解局部变量和全局变量。 广西《电子与信息类考纲百套卷》 第38卷 《程序设计基础》 6.函数-知识点训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、单项选择题(本大题共20小题,每小题3分,共60分) 1.以下关于函数定义的描述,正确的是( ) A. 函数必须有参数 B. 函数可以省略返回类型 C. 函数必须指定返回类型 D. 函数名可以以数字开头 2.若函数无返回值,应使用的返回类型是( ) A. void B. int C. null D. double 3.以下代码的输出是( ) void print() { printf("Hello"); } int main() { print(); return 0; } A. 无输出 B. Hello C. 编译错误 D. 运行时错误 4.以下代码的错误是( ) int main() { func(); return 0; } A. 缺少头文件 B. 缺少变量 C. 语法错误 D. 函数未声明或定义 5.以下正确的函数声明是( ) A. void func(int a, b); B. int func(int, int); C. func(double); D. void func(x); 6.若函数定义在调用之后,必须提前的操作是( ) A. 无需操作 B. 定义函数体 C. 直接调用 D. 声明函数原型 7.若函数原型为int func();,实际定义为int func(int a) { ... },会导致( ) A. 编译错误 B. 链接错误 C. 警告但可运行 D. 无错误 8.若要将二维数组arr[3][4]传递给函数,正确的函数声明是( ) A. void func(int arr[][]) B. void func(int **arr) C. void func(int arr[3][4]) D. void func(int arr[][4]) 9.以下函数的功能是( ) int func(int n) { if (n <= 1) return 1; return n * func(n-1); } A. 计算阶乘 B. 计算斐波那契数列 C. 累加 D. 反转数字 10.以下代码的输出是( ) void print(int n) { if (n > 0) { printf("%d ", n); print(n-1); } } int main() { print(3); } A. 3 2 1 B. 1 2 3 C. 3 3 3 D. 无输出 11.以下代码的输出是( ) int func(int x) { return (x == 0) ? 0 : x + func(x-1); } int main() { printf("%d", func(3)); } A. 1 B. 2 C. 3 D. 6 12.以下代码的输出是( ) int func(int a) { return (a > 5) ? a : func(a+1); } int main() { printf("%d", func(3)); } A. 3 B. 5 C. 6 D. 无限递归 13.传递数组给函数时,实际传递的是( ) A. 数组的副本 B. 数组首元素的地址 C. 数组所有元素 D. 数组长度 14.以下代码的输出是( ) void change(int a[]) { a[0] = 10; } int main() { int arr[] = {1,2,3}; change(arr); printf("%d", arr[0]); } A. 1 B. 5 C. 10 D. 随机值 15.以下函数定义错误的是( ) A. void func(int arr[5]) B. void func(int arr[]) C. void func(int *arr) D. void func(int arr[][]) 16.若函数定义为void func(int arr[3][4]),可接受的参数是( ) A. 二维数组,第二维大小为4 B. 一维数组 C. 三维数组 D. 任意指针 17.全局变量的作用域是( ) A. 整个程序 B. 单个函数 C. 声明后的代码 D. 当前文件 18.关于局部变量,正确的是( ) A. 生命周期为整个程序 B. 未初始化时值为0 C. 可在其他函数中直接访问 D. 存储在栈区 19.以下代码的输出是( ) int x = 10; void func() { x = 20; } int main() { printf("%d ", x); func(); printf("%d", x); } A. 10 10 B. 10 20 C. 20 20 D. 20 10 20.关于static局部变量,正确的是( ) A. 每次函数调用重新初始化 B. 作用域为全局 C. 存储在静态区 D. 不可被修改 二、判断题(本大题共10小题,每小题1分,共10分) 1.函数调用时,实参的个数和类型必须与形参的个数和类型完全一致。( ) 2.函数原型声明时,参数名可以省略。( ) 3.函数可以嵌套定义。( ) 4.局部变量在函数外部也能访问。( )) 5.全局变量可以在程序的任何地方被访问。( ) 6.递归函数的效率通常比非递归函数高。( ) 7.全局变量在程序开始执行时就被分配内存。( )) 8.数组作为函数参数时,函数内部可以改变数组元素的值。( ) 9.递归函数中可以没有递归调用语句。( ) 10.函数定义时,若不指定返回类型,默认返回类型为 int。( ) 三、填空题(本大题共5小题,每题3分,共15分) 1.函数原型声明 int calculate(int, int); 中,省略了____。 2.全局变量若未进行显式初始化,会被自动初始化为____。 3.若函数返回类型为float,则函数体中必须包含______语句。 4.若已定义函数int add(int a, int b);,则在main函数中调用该函数的语句为: int sum = ______(3, 5); 5.在C语言中,若函数不需要返回值,其返回类型应声明为______。 四、应用题(本大题共3小题,共15分) 1.补全冒泡排序函数,实现升序排列。 void bubble_sort(int arr[], int n) { for (int i = 0; i < n-1; i++) { for (int j = 0; j < ______; j++) { if (arr[j] > arr[j+1]) { int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = ______; } } } } 2.补全二分查找函数,返回目标值在数组中的索引(未找到返回-1)。 int binary_search(int arr[], int low, int high, int target) { while (______) { int mid = low + (high - low) / 2; if (arr[mid] == target) return ______; else if (arr[mid] < target) low = mid + 1; else high = mid - 1; } return -1; } 3.补全代码,利用全局变量 count 统计函数 modify 被调用的次数,并限制最多调用3次。 ______ int count = 0; // 全局变量声明 void modify() { if (count >= 3) { printf("已达最大调用次数! "); return; } count++; } int main() { modify(); modify(); modify(); modify(); printf("调用次数:%d", count); // 应输出3 } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $$ 编写说明:广西《电子与信息大类考纲百套卷》,是依据广西《高等职业教育考试大纲与说明(电子与信息大类)》2026版编写。本套试卷共100份,由三个部分组成。第一部分是按考点要求编写的60份知识点训练卷;第二部分是针对三门课程编写的30份常考题训练卷;第三个部分是10份专业知识综合训练卷。 本试卷是广西《电子与信息大类考纲百套卷》的第38卷,是知识点训练卷,其编写要求如下: (1)掌握函数的定义及调用; (2)掌握对被调用函数的声明和函数原型; (3)了解函数的嵌套及递归调用; (4)掌握数组作为函数参数的方法; (5)了解局部变量和全局变量。 广西《电子与信息类考纲百套卷》 第38卷 《程序设计基础》 6.函数-知识点训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、单项选择题(本大题共20小题,每小题3分,共60分) 1.以下关于函数定义的描述,正确的是( ) A. 函数必须有参数 B. 函数可以省略返回类型 C. 函数必须指定返回类型 D. 函数名可以以数字开头 答案:C​​ 2.若函数无返回值,应使用的返回类型是( ) A. void B. int C. null D. double 答案:A​​ 3.以下代码的输出是( ) void print() { printf("Hello"); } int main() { print(); return 0; } A. 无输出 B. Hello C. 编译错误 D. 运行时错误 答案:B​​ 4.以下代码的错误是( ) int main() { func(); return 0; } A. 缺少头文件 B. 缺少变量 C. 语法错误 D. 函数未声明或定义 答案:D​​ 5.以下正确的函数声明是( ) A. void func(int a, b); B. int func(int, int); C. func(double); D. void func(x); 答案:B​​ 6.若函数定义在调用之后,必须提前的操作是( ) A. 无需操作 B. 定义函数体 C. 直接调用 D. 声明函数原型 答案:D​​ 7.若函数原型为int func();,实际定义为int func(int a) { ... },会导致( ) A. 编译错误 B. 链接错误 C. 警告但可运行 D. 无错误 答案:A​​ 8.若要将二维数组arr[3][4]传递给函数,正确的函数声明是( ) A. void func(int arr[][]) B. void func(int **arr) C. void func(int arr[3][4]) D. void func(int arr[][4]) 答案:D​​​ 9.以下函数的功能是( ) int func(int n) { if (n <= 1) return 1; return n * func(n-1); } A. 计算阶乘 B. 计算斐波那契数列 C. 累加 D. 反转数字 答案:A​​ 10.以下代码的输出是( ) void print(int n) { if (n > 0) { printf("%d ", n); print(n-1); } } int main() { print(3); } A. 3 2 1 B. 1 2 3 C. 3 3 3 D. 无输出 答案:A​​ 11.以下代码的输出是( ) int func(int x) { return (x == 0) ? 0 : x + func(x-1); } int main() { printf("%d", func(3)); } A. 1 B. 2 C. 3 D. 6 答案:D​​ 12.以下代码的输出是( ) int func(int a) { return (a > 5) ? a : func(a+1); } int main() { printf("%d", func(3)); } A. 3 B. 5 C. 6 D. 无限递归 答案:C​​ 13.传递数组给函数时,实际传递的是( ) A. 数组的副本 B. 数组首元素的地址 C. 数组所有元素 D. 数组长度 答案:B​​ 14.以下代码的输出是( ) void change(int a[]) { a[0] = 10; } int main() { int arr[] = {1,2,3}; change(arr); printf("%d", arr[0]); } A. 1 B. 5 C. 10 D. 随机值 答案:C​​ 15.以下函数定义错误的是( ) A. void func(int arr[5]) B. void func(int arr[]) C. void func(int *arr) D. void func(int arr[][]) 答案:D​​ 16.若函数定义为void func(int arr[3][4]),可接受的参数是( ) A. 二维数组,第二维大小为4 B. 一维数组 C. 三维数组 D. 任意指针 答案:A​​ 17.全局变量的作用域是( ) A. 整个程序 B. 单个函数 C. 声明后的代码 D. 当前文件 答案:D​​ 18.关于局部变量,正确的是( ) A. 生命周期为整个程序 B. 未初始化时值为0 C. 可在其他函数中直接访问 D. 存储在栈区 答案:D​​ 19.以下代码的输出是( ) int x = 10; void func() { x = 20; } int main() { printf("%d ", x); func(); printf("%d", x); } A. 10 10 B. 10 20 C. 20 20 D. 20 10 答案:B 20.关于static局部变量,正确的是( ) A. 每次函数调用重新初始化 B. 作用域为全局 C. 存储在静态区 D. 不可被修改 答案:C 二、判断题(本大题共10小题,每小题1分,共10分) 1.函数调用时,实参的个数和类型必须与形参的个数和类型完全一致。( ) 答案:√ 2.函数原型声明时,参数名可以省略。( ) 答案:√ 3.函数可以嵌套定义。( ) 答案:× 4.局部变量在函数外部也能访问。( )) 答案:× 5.全局变量可以在程序的任何地方被访问。( ) 答案:× 6.递归函数的效率通常比非递归函数高。( ) 答案:× 7.全局变量在程序开始执行时就被分配内存。( )) 答案:√ 8.数组作为函数参数时,函数内部可以改变数组元素的值。( ) 答案:√ 9.递归函数中可以没有递归调用语句。( ) 答案:× 10.函数定义时,若不指定返回类型,默认返回类型为 int。( ) 答案:√ 三、填空题(本大题共5小题,每题3分,共15分) 1.函数原型声明 int calculate(int, int); 中,省略了____。 答案:参数名 2.全局变量若未进行显式初始化,会被自动初始化为____。 答案:0 3.若函数返回类型为float,则函数体中必须包含______语句。 答案:return​ 4.若已定义函数int add(int a, int b);,则在main函数中调用该函数的语句为: int sum = ______(3, 5); 答案:add 5.在C语言中,若函数不需要返回值,其返回类型应声明为______。 答案:void 四、应用题(本大题共3小题,共15分) 1.补全冒泡排序函数,实现升序排列。 void bubble_sort(int arr[], int n) { for (int i = 0; i < n-1; i++) { for (int j = 0; j < ______; j++) { if (arr[j] > arr[j+1]) { int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = ______; } } } } 答案:​​ 第一空:n - i - 1 第二空:temp 2.补全二分查找函数,返回目标值在数组中的索引(未找到返回-1)。 int binary_search(int arr[], int low, int high, int target) { while (______) { int mid = low + (high - low) / 2; if (arr[mid] == target) return ______; else if (arr[mid] < target) low = mid + 1; else high = mid - 1; } return -1; } 答案:​​ 第一空:low <= high 第二空:mid 3.补全代码,利用全局变量 count 统计函数 modify 被调用的次数,并限制最多调用3次。 ______ int count = 0; // 全局变量声明 void modify() { if (count >= 3) { printf("已达最大调用次数! "); return; } count++; } int main() { modify(); modify(); modify(); modify(); printf("调用次数:%d", count); // 应输出3 } 答案:static 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $$

资源预览图

《C语言程序设计》函数-知识点训练卷 广西职教高考《电子与信息类考纲百套卷》第38卷
1
《C语言程序设计》函数-知识点训练卷 广西职教高考《电子与信息类考纲百套卷》第38卷
2
《C语言程序设计》函数-知识点训练卷 广西职教高考《电子与信息类考纲百套卷》第38卷
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。