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

2026-04-17
| 2份
| 21页
| 23人阅读
| 0人下载

资源信息

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

内容正文:

《编程语言基础-C语言》高等教育出版社(第5版) 第六章 函数 章节过关卷(一)(解析版) 考试时间:90分钟 满分:100分 姓名 班级 学号 一、单项选择题(本题共25小题,每题2分,共50分) 1、以下关于C语言函数的说法,正确的是( ) A. 函数可以嵌套定义,也可以嵌套调用 B. 函数不可以嵌套定义,但可以嵌套调用 C. 函数可以嵌套定义,但不可以嵌套调用 D. 函数既不可以嵌套定义,也不可以嵌套调用 答案:B 解析:C语言中函数的定义是相互平行的,不能在函数内部再定义另一个函数,即不能嵌套定义;但可以在函数调用过程中调用另一个函数,即可以嵌套调用。 2、以下函数定义正确的是( ) A. void fun(int a,b) { } B. float fun(float a,float b);{ } C. int fun(int a;int b) { } D. int fun(int a,int b){ } 答案:D 解析:函数参数必须指定类型,并且每个参数都指明类型,所以A错误;B选项中()和{}中间不能加分号;当函数参数有多个时,需要用逗号隔开。 3、以下关于函数的说法,正确的是( ) A. 一个C程序中可以有多个main函数 B. main函数必须放在所有函数的最前面 C. C程序总是从main函数开始执行 D. main函数可以没有返回值 答案:C 解析:一个C程序有且只有一个main函数,程序总是从main函数开始执行;main函数的位置可以任意,但建议放在前面;main函数通常返回int类型。 4、关于函数的形参和实参,下列说法正确的是( ) A. 实参和形参可以同名,且占用同一个存储单元 B. 实参和形参可以同名,但占用不同的存储单元 C. 实参和形参不可以同名 D. 形参可以是常量或表达式 答案:B 解析:形参和实参可以同名,但它们是不同的变量,占用不同的存储单元;形参只能是变量,实参可以是常量、变量或表达式。 5、在C语言中,函数参数传递的默认方式是( ) A. 地址传递 B. 值传递 C. 引用传递 D. 由用户指定传递方式 答案:B 解析:C语言中函数参数默认采用值传递方式,实参将值的副本传递给形参,对形参的修改不会影响实参。 6、以下程序的输出结果是( ) void swap(int x, int y) { int t = x; x = y; y = t; } main() { int a = 3, b = 5; swap(a, b); printf("%d,%d", a, b); } A. 3,5 B. 5,3 C. 3,3 D. 5,5 答案:A 解析:swap函数采用值传递,形参x和y是a和b的副本,交换的是副本,不影响实参a和b,因此a和b的值不变,输出3,5。 7、若要用数组名作为函数调用的实参,则实际上传递给形参的是( ) A. 数组的第一个元素的值 B. 数组的全部元素的值 C. 数组的首地址 D. 数组的长度 答案:C 解析:数组名作为函数参数时,传递的是数组的首地址。 8、执行以下程序后,值为100的元素是( ) void fun(int a[], int n) { a[0] = 100; } main() { int a[5] = {1, 2, 3, 4, 5}; fun(&a[2], 3); for(i=0;i<5;i++) printf("%d ", a[i]); } A. a[1] B. a[2] C. a[3] D. a[4] 答案:B 解析:实参将数组中a[2]的地址传递给形参,所以fun函数中数组a的a[0]为主函数中的a[2]。 9、以下函数声明的写法中,正确的是( ) A. int fun(a, b); B. int fun(int, int); C. fun(int a, int b); D. int fun(int a, int b) { } 答案:B 解析:函数声明需要指定函数类型,以及参数的类型,可以省略参数,但不能省略类型,所以A、C不正确。D是函数定义而不是声明。 10、关于函数的返回值,下列说法正确的是( ) A. 函数必须有返回值 B. 函数的返回值类型由return语句决定 C. 如果函数值的类型与return语句中表达式的类型不一致,以return语句中表达式的类型为准 D. 如果函数值的类型与return语句中表达式的类型不一致,以函数定义时指定的返回值类型为准 答案:D 解析:函数返回值类型由函数定义时指定的类型决定;如果return语句中表达式的类型与函数返回值类型不一致,系统会自动进行类型转换;void类型的函数可以没有return语句。 11、以下程序的输出结果是( ) int fun(int x) { static int y = 0; y += x; return y; } main() { printf("%d", fun(1)); printf("%d", fun(2)); } A. 13 B. 12 C. 11 D. 03 答案:A 解析:static局部变量y在程序运行期间只初始化一次,第一次调用fun(1)时y=0+1=1,输出1;第二次调用fun(2)时y保持上次的值1,再加2得3,输出3,最终输出“13”。 12、关于局部变量和全局变量,下列说法正确的是( ) A. 全局变量的作用域是整个源程序文件 B. 局部变量的作用域是从定义处到文件结束 C. 当局部变量与全局变量同名时,在局部变量作用域内全局变量被屏蔽 D. 全局变量必须在所有函数之前定义 答案:C 解析:全局变量的作用域是从定义处到文件结束;局部变量作用域仅限于定义它的函数或复合语句内;当同名时,局部变量优先,全局变量被暂时屏蔽;全局变量不一定必须在所有函数之前定义。 13、以下程序段中,被输出的变量a是( ) int a = 10; void fun() { int a = 20; printf("%d", a); } A. 全局变量 B. 局部变量 C. 静态变量 D. 寄存器变量 答案:B 解析:函数fun内部定义的a是局部变量,其作用域仅限于fun函数内部,与外部的全局变量a是不同变量。 14、以下关于函数的说法,错误的是( ) A. 函数的形参属于局部变量 B. 函数可以没有返回值 C. 函数的返回值类型必须是int D. 函数调用时,实参和形参的个数必须一致 答案:C 解析:函数的返回值类型可以是任意合法类型,不一定是int。 15、以下程序的输出结果是( ) int fun(int x, int y) { return x > y ? x : y; } main() { int a = 5, b = 8; printf("%d", fun(a, b)); } A. 5 B. 8 C. 13 D. 40 答案:B 解析:fun函数返回两个参数中的较大值,a=5,b=8,返回8。 16、关于函数原型,下列说法正确的是( ) A. 函数原型必须放在所有函数定义之前 B. 函数原型可以省略参数名称,只写参数类型 C. 函数原型中的参数名必须与函数定义中的参数名相同 D. 函数原型不是必须的,任何时候都可以省略 答案:B 解析:函数原型可以省略参数名,只写参数类型;函数原型通常放在调用之前;参数名不必与定义中相同;若函数定义在调用之前,则可以省略原型。 17、以下程序的输出结果是( ) int fun(int n) { if (n == 1) return 1; return n + fun(n - 1); } main() { printf("%d", fun(4)); } A. 6 B. 10 C. 15 D. 24 答案:B 解析:这是递归函数,计算1+2+3+4=10。递归过程:fun(4)=4+fun(3)=4+3+fun(2)=4+3+2+fun(1)=4+3+2+1=10。 18、以下关于递归函数的说法,正确的是( ) A. 递归函数可以没有终止条件 B. 递归函数的效率总是高于非递归函数 C. 递归函数必须有终止条件,否则会无限递归导致栈溢出 D. 递归函数不能有返回值 答案:C 解析:递归函数必须有明确的终止条件,否则会无限递归,最终导致栈空间耗尽;递归的效率通常低于非递归;递归函数可以有返回值。 19、以下程序的输出结果是( ) void fun(int x, int y) { x = x + y; y = x - y; x = x - y; } main() { int a = 6, b = 4; fun(a, b); printf("%d,%d", a, b); } A. 6,4 B. 4,6 C. 2,4 D. 6,2 答案:A 解析:fun函数试图交换两个变量的值,但由于是值传递,交换的是形参的副本,不影响实参a和b,因此a和b的值不变,输出6,4。 20、关于变量的存储类别,下列说法正确的是( ) A. auto变量未初始化时,其值默认为0 B. static局部变量未初始化时,其值默认为0 C. register变量可以存储在内存中 D. 所有变量都可以定义为register类型 答案:B 解析:static局部变量未初始化时自动初始化为0;auto局部变量未初始化时值为随机值;register变量建议存储在CPU寄存器中,但不能保证一定存储在寄存器中;并非所有变量都可以定义为register类型,全局变量不能。 21、以下程序的输出结果是( ) int x = 5; void fun() { int x = 10; printf("%d ", x); } main() { printf("%d ", x); fun(); printf("%d", x); } A. 5 10 5 B. 5 10 10 C. 10 5 5 D. 10 10 10 答案:A 解析:main函数中输出全局变量x=5;调用fun时输出局部变量x=10;返回main后再次输出全局变量x=5。 22、以下程序的输出结果是( ) void fun(int a[]) { a[0] = a[1] = 10; } main() { int a[] = {1, 2, 3, 4}; fun(a); printf("%d,%d", a[0], a[1]); } A. 1,2 B. 10,10 C. 10,2 D. 1,10 答案:B 解析:数组名作为函数参数传递的是数组首地址,fun函数中对形参数组元素的修改会影响实参数组,因此a[0]和a[1]都变为10。 23、在C语言中,关于函数调用的说法正确的是( ) A. 函数调用可以出现在表达式中 B. 函数调用不能作为另一个函数的实参 C. 函数调用必须单独作为一个语句 D. 函数调用不能嵌套 答案:A 解析:函数调用可以出现在表达式中(如c = fun(a, b);),也可以作为另一个函数的实参(如fun2(fun1(a, b));),也可以单独作为语句(如fun(a, b););函数调用可以嵌套。 24、下面程序段中fun的功能是( ) int fun(int n) { if (n <= 1) return 1; return n * fun(n - 1); } main() { printf("%d", fun(5)); } A. 统计大于5的乘积 B. 递归计算5的阶乘 C. 统计1~5的和 D. 递归计算2的5次方 答案:B 解析:递归函数计算n的阶乘,5! = 5×4×3×2×1 = 120。 25、以下关于return语句的说法,错误的是( ) A. return语句可以出现在void类型的函数中 B. return语句后面可以跟一个表达式 C. 一个函数中可以有多个return语句 D. return语句必须出现在函数的最后一行 答案:D 解析:return语句可以出现在函数的任何位置,不一定是最后一行;void类型的函数可以用return;提前结束函数;一个函数可以有多个return语句。 二、多选题(本题共5小题,每题4分,共20分) 1、以下关于C语言函数的说法,正确的有( ) A. 函数定义时可以没有参数 B. 函数定义时可以没有返回值 C. 函数的形参可以是数组 D. 函数的返回值类型可以是数组 答案:ABC 解析:函数可以没有参数(无参函数);函数可以没有返回值(void类型);函数的形参可以是数组;函数的返回值类型不能是数组,但可以是指向数组的指针。 2、以下关于函数参数传递的说法,正确的有( ) A. 普通变量作为实参时,传递的是变量的值 B. 数组名作为实参时,传递的是数组的首地址 C. 指针作为实参时,传递的是地址 D. 形参和实参占用相同的存储单元 答案:ABC 解析:普通变量是值传递;数组名传递地址;指针传递地址;形参和实参占用不同的存储单元,D错误。 3、以下关于变量的说法,正确的有( ) A. 局部变量的作用域仅限于定义它的函数内部 B. 全局变量的作用域是整个源程序文件 C. static局部变量的值在函数调用结束后不会消失 D. auto局部变量未初始化时,其值是随机值 答案:ABCD 解析:所有选项均正确。 4、以下关于递归函数的说法,正确的有( ) A. 递归函数必须有一个终止条件 B. 递归函数可以间接调用自身 C. 递归调用会消耗更多的内存空间 D. 所有循环结构都可以用递归代替 答案:ABC 解析:递归必须有终止条件;间接递归是指函数A调用函数B,函数B又调用函数A;递归每次调用都会在栈中分配空间,消耗更多内存;循环和递归各有适用场景,并非所有循环都适合用递归代替。 5、以下关于函数的说法,正确的有( ) A. C程序由一个或多个函数组成 B. main函数是程序的入口,可以有多个 C. 函数调用时,实参和形参的类型必须一致 D. 函数原型可以放在函数调用之后 答案:AC 解析:C程序由一个或多个函数组成;main函数有且只能有一个;实参和形参的类型必须一致(或可以隐式转换);如果函数定义在调用之后,则必须在调用前提供函数原型。 三、判断题(本题共10小题,每题2分,共20分) 1、C语言中,函数可以嵌套定义,但不能嵌套调用。( ) 答案:× 解析:函数不可以嵌套定义,但可以嵌套调用。 2、函数的形参属于局部变量,其作用域仅限于该函数内部。( ) 答案:√ 解析:形参在函数被调用时分配存储空间,函数执行结束后释放,作用域仅限于该函数内部。 3、全局变量的作用域是从定义处到文件结束,不能通过extern关键字扩展。( ) 答案:× 解析:全局变量的作用域可以通过extern关键字扩展到其他源文件。 4、在函数调用时,实参与形参的类型可以不一致,系统会自动进行类型转换。( ) 答案:√ 解析:C语言允许实参和形参类型不一致,系统会进行隐式类型转换,但可能产生精度损失。 5、使用static关键字修饰的局部变量,其生命周期是整个程序运行期间。( ) 答案:√ 解析:static局部变量在程序运行期间一直存在,但作用域仅限于定义它的函数内部。 6、函数的返回值类型由return语句中表达式的类型决定。( ) 答案:× 解析:函数的返回值类型由函数定义时指定的返回值类型决定,而非return语句中的表达式类型。 7、函数原型可以省略参数名称,但参数类型不能省略。( ) 答案:√ 解析:函数原型可以写成int fun(int, int);,参数类型必须指定,参数名称可以省略。 8、所有函数都必须有return语句。( ) 答案:× 解析:void类型的函数可以没有return语句,也可以有return;(不带表达式)。 9、在C语言中,函数可以递归调用直接自身也可以间接调用自身。( ) 答案:√ 解析:若函数调用自身,则称为函数的递归调用 10、数组作为函数参数时,在函数内部使用sizeof(数组名)得到的是整个数组的字节数。( ) 答案:× 解析:数组作为函数参数时退化为指针,在函数内部使用sizeof(数组名)得到的是指针的大小(通常4或8字节),而不是整个数组的字节数。 四、填空题(本题共5小题,每题2分,共10分) 1、以下程序段执行后,输出结果为 ( )。 int fun(int x) { static int s = 0; s += x; return s; } main() { printf("%d", fun(3)); printf("%d", fun(5)); } 答案:38 解析:static局部变量s只初始化一次。第一次调用fun(3):s=0+3=3,输出3;第二次调用fun(5):s=3+5=8,输出8。最终输出“38”。 2、以下程序段的功能是计算n的阶乘,请填空。 int fact(int n) { if (n <= 1) return 1; return ( ); } 答案:n * fact(n - 1) 解析:递归计算阶乘,当n>1时,返回n乘以(n-1)的阶乘。 3、以下程序段中,函数fun的功能是交换两个整数的值,请填空。 void swap(int *x, int *y) { int t; t = *x; ( ); *y = t; } 答案:*x = *y 解析:通过指针传递地址,可以实现交换实参的值。先将*x的值存到t,再将*y的值赋给*x,最后将t的值赋给*y。 4、以下程序段中,函数fun的功能是求数组a中所有元素的和,请填空。 int sum(int a[], int n) { int i, s = 0; for (i = 0; i < n; i++) ( ); return s; } 答案:s += a[i] 解析:遍历数组,累加每个元素的值到s中。 5、以下程序段中,变量的输出结果为 ( )。 int x = 10; void fun() { int x = 20; { int x = 30; printf("%d ", x); } printf("%d ", x); } main() { fun(); printf("%d", x); } 答案:30 20 10 解析:在复合语句内定义x=30,输出30;离开复合语句后,输出函数内的局部变量x=20;返回main后,输出全局变量x=10。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 《编程语言基础-C语言》高等教育出版社(第5版) 第六章 函数 章节过关卷(一)(原卷版) 考试时间:90分钟 满分:100分 姓名 班级 学号 一、单项选择题(本题共25小题,每题2分,共50分) 1、以下关于C语言函数的说法,正确的是( ) A. 函数可以嵌套定义,也可以嵌套调用 B. 函数不可以嵌套定义,但可以嵌套调用 C. 函数可以嵌套定义,但不可以嵌套调用 D. 函数既不可以嵌套定义,也不可以嵌套调用 2、以下函数定义正确的是( ) A. void fun(int a,b) { } B. float fun(float a,float b);{ } C. int fun(int a;int b) { } D. int fun(int a,int b){ } 3、以下关于函数的说法,正确的是( ) A. 一个C程序中可以有多个main函数 B. main函数必须放在所有函数的最前面 C. C程序总是从main函数开始执行 D. main函数可以没有返回值 4、关于函数的形参和实参,下列说法正确的是( ) A. 实参和形参可以同名,且占用同一个存储单元 B. 实参和形参可以同名,但占用不同的存储单元 C. 实参和形参不可以同名 D. 形参可以是常量或表达式 5、在C语言中,函数参数传递的默认方式是( ) A. 地址传递 B. 值传递 C. 引用传递 D. 由用户指定传递方式 6、以下程序的输出结果是( ) void swap(int x, int y) { int t = x; x = y; y = t; } main() { int a = 3, b = 5; swap(a, b); printf("%d,%d", a, b); } A. 3,5 B. 5,3 C. 3,3 D. 5,5 7、若要用数组名作为函数调用的实参,则实际上传递给形参的是( ) A. 数组的第一个元素的值 B. 数组的全部元素的值 C. 数组的首地址 D. 数组的长度 8、执行以下程序后,值为100的元素是( ) void fun(int a[], int n) { a[0] = 100; } main() { int a[5] = {1, 2, 3, 4, 5}; fun(&a[2], 3); for(i=0;i<5;i++) printf("%d ", a[i]); } A. a[1] B. a[2] C. a[3] D. a[4] 9、以下函数声明的写法中,正确的是( ) A. int fun(a, b); B. int fun(int, int); C. fun(int a, int b); D. int fun(int a, int b) { } 10、关于函数的返回值,下列说法正确的是( ) A. 函数必须有返回值 B. 函数的返回值类型由return语句决定 C. 如果函数值的类型与return语句中表达式的类型不一致,以return语句中表达式的类型为准 D. 如果函数值的类型与return语句中表达式的类型不一致,以函数定义时指定的返回值类型为准 11、以下程序的输出结果是( ) int fun(int x) { static int y = 0; y += x; return y; } main() { printf("%d", fun(1)); printf("%d", fun(2)); } A. 13 B. 12 C. 11 D. 03 12、关于局部变量和全局变量,下列说法正确的是( ) A. 全局变量的作用域是整个源程序文件 B. 局部变量的作用域是从定义处到文件结束 C. 当局部变量与全局变量同名时,在局部变量作用域内全局变量被屏蔽 D. 全局变量必须在所有函数之前定义 13、以下程序段中,被输出的变量a是( ) int a = 10; void fun() { int a = 20; printf("%d", a); } A. 全局变量 B. 局部变量 C. 静态变量 D. 寄存器变量 14、以下关于函数的说法,错误的是( ) A. 函数的形参属于局部变量 B. 函数可以没有返回值 C. 函数的返回值类型必须是int D. 函数调用时,实参和形参的个数必须一致 15、以下程序的输出结果是( ) int fun(int x, int y) { return x > y ? x : y; } main() { int a = 5, b = 8; printf("%d", fun(a, b)); } A. 5 B. 8 C. 13 D. 40 16、关于函数原型,下列说法正确的是( ) A. 函数原型必须放在所有函数定义之前 B. 函数原型可以省略参数名称,只写参数类型 C. 函数原型中的参数名必须与函数定义中的参数名相同 D. 函数原型不是必须的,任何时候都可以省略 17、以下程序的输出结果是( ) int fun(int n) { if (n == 1) return 1; return n + fun(n - 1); } main() { printf("%d", fun(4)); } A. 6 B. 10 C. 15 D. 24 18、以下关于递归函数的说法,正确的是( ) A. 递归函数可以没有终止条件 B. 递归函数的效率总是高于非递归函数 C. 递归函数必须有终止条件,否则会无限递归导致栈溢出 D. 递归函数不能有返回值 19、以下程序的输出结果是( ) void fun(int x, int y) { x = x + y; y = x - y; x = x - y; } main() { int a = 6, b = 4; fun(a, b); printf("%d,%d", a, b); } A. 6,4 B. 4,6 C. 2,4 D. 6,2 20、关于变量的存储类别,下列说法正确的是( ) A. auto变量未初始化时,其值默认为0 B. static局部变量未初始化时,其值默认为0 C. register变量可以存储在内存中 D. 所有变量都可以定义为register类型 21、以下程序的输出结果是( ) int x = 5; void fun() { int x = 10; printf("%d ", x); } main() { printf("%d ", x); fun(); printf("%d", x); } A. 5 10 5 B. 5 10 10 C. 10 5 5 D. 10 10 10 22、以下程序的输出结果是( ) void fun(int a[]) { a[0] = a[1] = 10; } main() { int a[] = {1, 2, 3, 4}; fun(a); printf("%d,%d", a[0], a[1]); } A. 1,2 B. 10,10 C. 10,2 D. 1,10 23、在C语言中,关于函数调用的说法正确的是( ) A. 函数调用可以出现在表达式中 B. 函数调用不能作为另一个函数的实参 C. 函数调用必须单独作为一个语句 D. 函数调用不能嵌套 24、下面程序段中fun的功能是( ) int fun(int n) { if (n <= 1) return 1; return n * fun(n - 1); } main() { printf("%d", fun(5)); } A. 统计大于5的乘积 B. 递归计算5的阶乘 C. 统计1~5的和 D. 递归计算2的5次方 25、以下关于return语句的说法,错误的是( ) A. return语句可以出现在void类型的函数中 B. return语句后面可以跟一个表达式 C. 一个函数中可以有多个return语句 D. return语句必须出现在函数的最后一行 二、多选题(本题共5小题,每题4分,共20分) 1、以下关于C语言函数的说法,正确的有( ) A. 函数定义时可以没有参数 B. 函数定义时可以没有返回值 C. 函数的形参可以是数组 D. 函数的返回值类型可以是数组 2、以下关于函数参数传递的说法,正确的有( ) A. 普通变量作为实参时,传递的是变量的值 B. 数组名作为实参时,传递的是数组的首地址 C. 指针作为实参时,传递的是地址 D. 形参和实参占用相同的存储单元 3、以下关于变量的说法,正确的有( ) A. 局部变量的作用域仅限于定义它的函数内部 B. 全局变量的作用域是整个源程序文件 C. static局部变量的值在函数调用结束后不会消失 D. auto局部变量未初始化时,其值是随机值 4、以下关于递归函数的说法,正确的有( ) A. 递归函数必须有一个终止条件 B. 递归函数可以间接调用自身 C. 递归调用会消耗更多的内存空间 D. 所有循环结构都可以用递归代替 5、以下关于函数的说法,正确的有( ) A. C程序由一个或多个函数组成 B. main函数是程序的入口,可以有多个 C. 函数调用时,实参和形参的类型必须一致 D. 函数原型可以放在函数调用之后 三、判断题(本题共10小题,每题2分,共20分) 1、C语言中,函数可以嵌套定义,但不能嵌套调用。( ) 2、函数的形参属于局部变量,其作用域仅限于该函数内部。( ) 3、全局变量的作用域是从定义处到文件结束,不能通过extern关键字扩展。( ) 4、在函数调用时,实参与形参的类型可以不一致,系统会自动进行类型转换。( ) 5、使用static关键字修饰的局部变量,其生命周期是整个程序运行期间。( ) 6、函数的返回值类型由return语句中表达式的类型决定。( ) 7、函数原型可以省略参数名称,但参数类型不能省略。( ) 8、所有函数都必须有return语句。( ) 9、在C语言中,函数可以递归调用直接自身也可以间接调用自身。( ) 10、数组作为函数参数时,在函数内部使用sizeof(数组名)得到的是整个数组的字节数。( ) 四、填空题(本题共5小题,每题2分,共10分) 1、以下程序段执行后,输出结果为 ( )。 int fun(int x) { static int s = 0; s += x; return s; } main() { printf("%d", fun(3)); printf("%d", fun(5)); } 2、以下程序段的功能是计算n的阶乘,请填空。 int fact(int n) { if (n <= 1) return 1; return ( ); } 3、以下程序段中,函数fun的功能是交换两个整数的值,请填空。 void swap(int *x, int *y) { int t; t = *x; ( ); *y = t; } 4、以下程序段中,函数fun的功能是求数组a中所有元素的和,请填空。 int sum(int a[], int n) { int i, s = 0; for (i = 0; i < n; i++) ( ); return s; } 5、以下程序段中,变量的输出结果为 ( )。 int x = 10; void fun() { int x = 20; { int x = 30; printf("%d ", x); } printf("%d ", x); } main() { fun(); printf("%d", x); } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

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