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

2026-04-17
| 2份
| 27页
| 29人阅读
| 0人下载

资源信息

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

内容正文:

《编程语言基础-C语言》高等教育出版社(第5版) 第六章 函数 章节过关卷(二)(解析版) 考试时间:90分钟 满分:100分 姓名 班级 学号 一、单项选择题(本题共25小题,每题2分,共50分) 1、以下程序的输出结果是( ) int f(int a, int b) { return (a > b) ? a : b; } main() { int x = 3, y = 5, z = 2; printf("%d", f(f(x, y), z)); } A. 2 B. 3 C. 5 D. 编译错误 答案:C 解析:内层f(x,y)返回5,外层f(5,2)返回5,因此输出5。 2、以下程序的输出结果是( ) void fun(int a, int b) { a = a + b; b = a - b; a = a - b; } main() { int x = 8, y = 3; fun(x, y); printf("%d,%d", x, y); } A. 8,3 B. 3,8 C. 8,8 D. 3,3 答案:A 解析:值传递,形参交换不影响实参,x和y不变,输出8,3。 3、以下程序的输出结果是( ) int f(int n) { static int s = 1; s *= n; return s; } main() { printf("%d", f(2)); printf("%d", f(3)); } A. 26 B. 16 C. 212 D. 26 答案:A 解析:static局部变量s保持上次结果。第一次调用f(2):s=1*2=2,输出2;第二次调用f(3):s=2*3=6,输出6,最终输出“26”。 4、以下程序的输出结果是( ) int fun(int x) { if (x == 0) return 0; return x + fun(x - 1); } main() { printf("%d", fun(5)); } A. 10 B. 15 C. 5 D. 0 答案:B 解析:递归函数计算0+1+2+3+4+5=15。 5、以下程序的输出结果是( ) void change(int a[]) { a[0] = a[0] + a[1]; a[1] = a[0] - a[1]; a[0] = a[0] - a[1]; } main() { int a[2] = {5, 9}; change(a); printf("%d,%d", a[0], a[1]); } A. 5,9 B. 9,5 C. 14,5 D. 5,14 答案:B 解析:数组名作参数传递地址,change函数实现了交换a[0]和a[1]的值。初始a[0]=5,a[1]=9,经过交换后a[0]=9,a[1]=5。 6、以下程序的功能是计算数组元素之和,划线处应填( ) int sum(int arr[], int n) { int s = 0; for (int i = 0; i < n; i++) ________; return s; } A. s += arr[i] B. s = s + i C. s += i D. s = arr[i] 答案:A 解析:累加数组元素。 7、以下程序的输出结果是( ) void fun(int *p) { *p = *p + 5; } main() { int a = 10; fun(&a); printf("%d", a); } A. 10 B. 15 C. 5 D. 编译错误 答案:B 解析:通过指针传递地址,修改了实参a的值,a变为15。 8、以下程序的输出结果是( ) int f(int a, int b) { return (a + b) * (a - b); } main() { int x = 8, y = 3; printf("%d", f(x, y)); } A. 55 B. 45 C. 35 D. 25 答案:A 解析:f(8,3)=(8+3)*(8-3)=11*5=55。 9、以下程序用于求斐波那契数列的第n项(n从1开始),划线处应填( ) int fib(int n) { if (n == 1 || n == 2) return 1; return ________; } A. fib(n-1) + fib(n-2) B. fib(n) + fib(n-1) C. fib(n-1) * fib(n-2) D. fib(n-1) - fib(n-2) 答案:A 解析:斐波那契数列递归定义:第n项等于前两项之和。 10、以下程序的输出结果是( ) int fun(int x) { int y = x; static int z = 0; z += y; return z; } main() { printf("%d", fun(2)); printf("%d", fun(3)); } A. 23 B. 25 C. 35 D. 32 答案:B 解析:第一次调用fun(2):z=0+2=2,输出2;第二次调用fun(3):z=2+3=5,输出5。最终输出“25”。 11、以下程序的输出结果是( ) void fun(int a[], int n) { for (int i = 0; i < n / 2; i++) { int t = a[i]; a[i] = a[n - 1 - i]; a[n - 1 - i] = t; } } main() { int a[5] = {1, 2, 3, 4, 5}; fun(a, 5); printf("%d", a[2]); } A. 1 B. 2 C. 3 D. 5 答案:C 解析:fun函数实现数组逆序,逆序后数组变为5,4,3,2,1,a[2]=3。 12、以下关于函数的叙述,正确的是( ) A. 函数的形参可以是常量 B. 函数的返回值类型必须是int C. 函数可以没有返回值 D. 函数定义时,参数列表不能为空 答案:C 解析:形参必须是变量;返回值类型可以是void;函数可以无参。 13、以下程序的输出结果是( ) int global = 10; void fun() { int global = 20; printf("%d ", global); } main() { printf("%d ", global); fun(); printf("%d", global); } A. 10 20 10 B. 10 20 20 C. 20 10 10 D. 20 20 20 答案:A 解析:main中输出全局变量10;fun中输出局部变量20;返回main后输出全局变量10。 14、以下程序的功能是求数组a中的最大值,划线处应填( ) int max(int a[], int n) { int m = a[0]; for (int i = 1; i < n; i++) if (________) m = a[i]; return m; } A. a[i] < m B. a[i] > m C. a[i] == m D. i > m 答案:B 解析:如果当前元素大于最大值m,则更新m。 15、以下程序的输出结果是( ) 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 答案:B 解析:通过指针传递地址,实现了交换,a和b的值互换。 16、以下程序的输出结果是( ) int f(int n) { if (n == 0) return 1; return n * f(n - 1); } main() { printf("%d", f(4)); } A. 6 B. 24 C. 120 D. 1 答案:B 解析:递归计算阶乘,4! = 24。 17、以下程序的输出结果是( ) void fun(int a[], int n) { for (int i = 0; i < n; i++) a[i] = a[i] * 2; } main() { int a[3] = {1, 2, 3}; fun(a, 3); printf("%d", a[1]); } A. 2 B. 4 C. 6 D. 1 答案:B 解析:数组传递地址,每个元素乘以2,a[1]原为2变为4。 18、以下关于递归函数的说法,错误的是( ) A. 递归函数必须有终止条件 B. 递归函数调用时,每次调用都会在栈中分配空间 C. 递归函数的效率通常低于非递归函数 D. 所有递归函数都可以改写成非递归形式,但效率一定更高 答案:D 解析:递归可改写为非递归(循环),但非递归不一定效率更高。D说法绝对化,错误。 19、以下程序的输出结果是( ) int counter() { static int count = 0; count++; return count; } main() { printf("%d", counter()); printf("%d", counter()); printf("%d", counter()); } A. 111 B. 123 C. 112 D. 122 答案:B 解析:静态局部变量 count 只在第一次调用时初始化为0,之后保持其值。第一次调用 counter():count 变为1,输出1;第二次调用:count 变为2,输出2;第三次调用:count 变为3,输出3。最终输出“123”。 20、以下程序的功能是判断一个整数是否为素数,划线处应填( ) int isprime(int n) { if (n < 2) return 0; for (int i = 2; i <= n / 2; i++) if (________) return 0; return 1; } A. n % i == 0 B. n % i != 0 C. i % n == 0 D. n / i == 0 答案:A 解析:如果n能被i整除,则n不是素数。 21、以下程序的输出结果是( ) int f(int a, int b) { return (a > b) ? a : b; } int g(int a, int b) { return (a < b) ? a : b; } main() { int x = 7, y = 2, z = 5; printf("%d", f(g(x, y), g(y, z))); } A. 2 B. 5 C. 7 D. 3 答案:B 解析:函数的嵌套调用,先求g(x,y)=2,g(y,z)=2,再求f(2,2)=2。 22、以下程序的输出结果是( ) void fun(int a[], int n, int *max, int *min) { *max = *min = a[0]; for (int i = 1; i < n; i++) { if (a[i] > *max) *max = a[i]; if (a[i] < *min) *min = a[i]; } } main() { int a[5] = {3, 1, 4, 1, 5}; int mx, mn; fun(a, 5, &mx, &mn); printf("%d,%d", mx, mn); } A. 5,1 B. 3,1 C. 5,3 D. 4,1 答案:A 解析:函数通过指针返回最大值和最小值,最大值为5,最小值为1。 23、以下程序的输出结果是( ) int fun(int n) { int s = 0; while (n) { s += n % 10; n /= 10; } return s; } main() { printf("%d", fun(1234)); } A. 1 B. 10 C. 4 D. 1234 答案:B 解析:函数计算各位数字之和,1+2+3+4=10。 24、以下程序的功能是求字符串的长度,划线处应填( ) int strlen(char *s) { int len = 0; while (________) { len++; s++; } return len; } A. *s != '\0' B. s != '\0' C. *s == '\0' D. s 答案:A 解析:指针s指向字符,判断当前字符是否为结束符。 25、以下程序的输出结果是( ) void fun(int a[], int n) { for (int i = 0; i < n - 1; i++) for (int j = i + 1; j < n; j++) if (a[i] > a[j]) { int t = a[i]; a[i] = a[j]; a[j] = t; } } main() { int a[4] = {4, 2, 3, 1}; fun(a, 4); printf("%d", a[2]); } A. 1 B. 2 C. 3 D. 4 答案:C 解析:fun函数实现冒泡排序(升序),排序后数组为{1,2,3,4},a[2]=3。 二、多选题(本题共5小题,每题4分,共20分) 1、以下关于C语言函数的说法,正确的有( ) A. 函数可以没有返回值 B. 函数可以没有参数 C. 函数可以返回数组 D. 函数可以递归调用 答案:ABD 解析:函数可以无返回值;可以无参;不能返回数组,但可以返回指针;可以递归调用。 2、以下关于参数传递的说法,正确的有( ) A. 普通变量作为实参时,形参的改变不影响实参 B. 数组名作为实参时,形参的改变会影响实参 C. 指针作为实参时,形参的改变会影响实参 D. 结构体变量作为实参时,形参的改变不影响实参 答案:ABC 解析:普通变量值传递;数组名传递地址;指针传递地址;结构体变量值传递(除非用指针)。 3、以下关于变量的说法,正确的有( ) A. 局部变量在函数调用结束后被释放 B. 静态局部变量在函数调用结束后仍保留其值 C. 全局变量的作用域是整个源程序文件 D. register变量存储在CPU寄存器中,不能取地址 答案:ABCD 解析:所有选项均正确。 4、以下关于递归函数的叙述,正确的有( ) A. 递归函数必须有终止条件 B. 递归函数调用时,系统使用栈来管理返回地址和局部变量 C. 递归函数的效率通常低于循环实现 D. 递归函数可以解决所有循环能解决的问题 答案:ABC 解析:递归必须有终止条件;递归使用栈;递归效率通常低于循环; 5、以下关于数组作为函数参数的说法,正确的有( ) A. 形参可以写成 int a[] 或 int *a B. 实参传递的是数组的首地址 C. 在被调函数中,可以使用 sizeof(a) 得到数组的长度 D. 在被调函数中,对形参数组的修改会影响实参数组 答案:ABD 解析:形参可写为数组形式或指针形式;实参传递首地址;sizeof(a)得到指针大小,不是数组长度;修改形参数组即修改实参数组。 三、判断题(本题共10小题,每题2分,共20分) 1、C语言中,函数可以嵌套定义。( ) 答案:× 解析:不能嵌套定义,但可以嵌套调用。 2、函数的形参属于局部变量,其作用域仅限于函数内部。( ) 答案:√ 解析:局部变量的作用范围是本函数内有效。 3、全局变量定义时若未初始化,系统自动赋值为0。( ) 答案:√ 解析:全局变量和静态变量未初始化默认为0。 4、在函数内定义的静态局部变量,其值在函数调用结束后会消失。( ) 答案:× 解析:静态局部变量的值在函数调用结束后保留,下次调用时继续使用。 5、函数的返回值类型由return语句中表达式的类型决定。( ) 答案:× 解析:由函数定义时指定的返回值类型决定。 6、使用指针作为函数参数可以实现“双向传递”数据。( ) 答案:√ 解析:通过指针,被调函数可以修改实参的值。 7、递归函数比非递归函数更节省内存空间。( ) 答案:× 解析:递归消耗更多栈空间。 8、数组名作为函数参数时,在被调函数中使用sizeof可以得到整个数组的字节数。( ) 答案:× 解析:数组名退化为指针,sizeof得到指针大小。 9、一个函数中可以有多个return语句。( ) 答案:√ 解析:可以,但只有一个会被执行。 10、函数原型中的参数名可以省略,但参数类型不能省略。( ) 答案:√ 解析:如int fun(int, int);。 四、填空题(本题共5小题,每题2分,共10分) 1、以下程序段执行后,输出结果为( )。 int f(int n) { if (n == 1) return 1; return f(n - 1) + 2; } main() { printf("%d", f(5)); } 答案:9 解析:f(5)=f(4)+2,f(4)=f(3)+2,f(3)=f(2)+2,f(2)=f(1)+2=1+2=3,然后带入返回:f(3)=3+2=5,f(4)=5+2=7,f(5)=7+2=9。即通项公式为2n-1,f(5)=9。 2、以下程序段的功能是计算数组a中所有元素的乘积,请填空( )。 int product(int a[], int n) { int p = 1; for (int i = 0; i < n; i++) ________; return p; } 答案:p *= a[i] 或 p = p * a[i] 解析:累乘。 3、以下程序段执行后,输出结果为 ( )。 int fun(int x,int y) { static int count = 0; count++; return x*y+count; } main() { printf("%d ", fun(2,3)); printf("%d ", fun(2,3)); 答案:7 8 解析:fun函数中的变量count为static型,第一次调用fun(2,3),count的值为1,返回值为7;第二次调用fun(2,3),count的值为2,返回值为8。 4、以下程序的功能是:找出1000以内的所有完数(一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6=1+2+3。),请填空( )。 int wanshu(int n) { int t, sum; for(t=1,sum=0;t<n;t++) if(_________) sum=sum+t; if(sum==n) return 1; else return 0; } main( ) { int x; printf("1000以内的完数有: "); for(x=1;x<=1000;x++) if(wanshu(x)==1) printf("%d\t",x); } 答案:n%t==0 解析:判断t是否是n的因数。 5、以下程序段执行后,输出结果为( )。 int fun(int a, int b) { return (a > b) ? a : b; } main() { int x = 4, y = 7, z = 2; printf("%d", fun(fun(x, y), z)) } 答案:7 解析:内层fun(x,y)=7,外层fun(7,2)=7。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 《编程语言基础-C语言》高等教育出版社(第5版) 第六章 函数 章节过关卷(二)(原卷版) 考试时间:90分钟 满分:100分 姓名 班级 学号 一、单项选择题(本题共25小题,每题2分,共50分) 1、以下程序的输出结果是( ) int f(int a, int b) { return (a > b) ? a : b; } main() { int x = 3, y = 5, z = 2; printf("%d", f(f(x, y), z)); } A. 2 B. 3 C. 5 D. 编译错误 2、以下程序的输出结果是( ) void fun(int a, int b) { a = a + b; b = a - b; a = a - b; } main() { int x = 8, y = 3; fun(x, y); printf("%d,%d", x, y); } A. 8,3 B. 3,8 C. 8,8 D. 3,3 3、以下程序的输出结果是( ) int f(int n) { static int s = 1; s *= n; return s; } main() { printf("%d", f(2)); printf("%d", f(3)); } A. 26 B. 16 C. 212 D. 26 4、以下程序的输出结果是( ) int fun(int x) { if (x == 0) return 0; return x + fun(x - 1); } main() { printf("%d", fun(5)); } A. 10 B. 15 C. 5 D. 0 5、以下程序的输出结果是( ) void change(int a[]) { a[0] = a[0] + a[1]; a[1] = a[0] - a[1]; a[0] = a[0] - a[1]; } main() { int a[2] = {5, 9}; change(a); printf("%d,%d", a[0], a[1]); } A. 5,9 B. 9,5 C. 14,5 D. 5,14 6、以下程序的功能是计算数组元素之和,划线处应填( ) int sum(int arr[], int n) { int s = 0; for (int i = 0; i < n; i++) ________; return s; } A. s += arr[i] B. s = s + i C. s += i D. s = arr[i] 7、以下程序的输出结果是( ) void fun(int *p) { *p = *p + 5; } main() { int a = 10; fun(&a); printf("%d", a); } A. 10 B. 15 C. 5 D. 编译错误 8、以下程序的输出结果是( ) int f(int a, int b) { return (a + b) * (a - b); } main() { int x = 8, y = 3; printf("%d", f(x, y)); } A. 55 B. 45 C. 35 D. 25 9、以下程序用于求斐波那契数列的第n项(n从1开始),划线处应填( ) int fib(int n) { if (n == 1 || n == 2) return 1; return ________; } A. fib(n-1) + fib(n-2) B. fib(n) + fib(n-1) C. fib(n-1) * fib(n-2) D. fib(n-1) - fib(n-2) 10、以下程序的输出结果是( ) int fun(int x) { int y = x; static int z = 0; z += y; return z; } main() { printf("%d", fun(2)); printf("%d", fun(3)); } A. 23 B. 25 C. 35 D. 32 11、以下程序的输出结果是( ) void fun(int a[], int n) { for (int i = 0; i < n / 2; i++) { int t = a[i]; a[i] = a[n - 1 - i]; a[n - 1 - i] = t; } } main() { int a[5] = {1, 2, 3, 4, 5}; fun(a, 5); printf("%d", a[2]); } A. 1 B. 2 C. 3 D. 5 12、以下关于函数的叙述,正确的是( ) A. 函数的形参可以是常量 B. 函数的返回值类型必须是int C. 函数可以没有返回值 D. 函数定义时,参数列表不能为空 13、以下程序的输出结果是( ) int global = 10; void fun() { int global = 20; printf("%d ", global); } main() { printf("%d ", global); fun(); printf("%d", global); } A. 10 20 10 B. 10 20 20 C. 20 10 10 D. 20 20 20 14、以下程序的功能是求数组a中的最大值,划线处应填( ) int max(int a[], int n) { int m = a[0]; for (int i = 1; i < n; i++) if (________) m = a[i]; return m; } A. a[i] < m B. a[i] > m C. a[i] == m D. i > m 15、以下程序的输出结果是( ) 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 16、以下程序的输出结果是( ) int f(int n) { if (n == 0) return 1; return n * f(n - 1); } main() { printf("%d", f(4)); } A. 6 B. 24 C. 120 D. 1 17、以下程序的输出结果是( ) void fun(int a[], int n) { for (int i = 0; i < n; i++) a[i] = a[i] * 2; } main() { int a[3] = {1, 2, 3}; fun(a, 3); printf("%d", a[1]); } A. 2 B. 4 C. 6 D. 1 18、以下关于递归函数的说法,错误的是( ) A. 递归函数必须有终止条件 B. 递归函数调用时,每次调用都会在栈中分配空间 C. 递归函数的效率通常低于非递归函数 D. 所有递归函数都可以改写成非递归形式,但效率一定更高 19、以下程序的输出结果是( ) int counter() { static int count = 0; count++; return count; } main() { printf("%d", counter()); printf("%d", counter()); printf("%d", counter()); } A. 111 B. 123 C. 112 D. 122 20、以下程序的功能是判断一个整数是否为素数,划线处应填( ) int isprime(int n) { if (n < 2) return 0; for (int i = 2; i <= n / 2; i++) if (________) return 0; return 1; } A. n % i == 0 B. n % i != 0 C. i % n == 0 D. n / i == 0 21、以下程序的输出结果是( ) int f(int a, int b) { return (a > b) ? a : b; } int g(int a, int b) { return (a < b) ? a : b; } main() { int x = 7, y = 2, z = 5; printf("%d", f(g(x, y), g(y, z))); } A. 2 B. 5 C. 7 D. 3 22、以下程序的输出结果是( ) void fun(int a[], int n, int *max, int *min) { *max = *min = a[0]; for (int i = 1; i < n; i++) { if (a[i] > *max) *max = a[i]; if (a[i] < *min) *min = a[i]; } } main() { int a[5] = {3, 1, 4, 1, 5}; int mx, mn; fun(a, 5, &mx, &mn); printf("%d,%d", mx, mn); } A. 5,1 B. 3,1 C. 5,3 D. 4,1 23、以下程序的输出结果是( ) int fun(int n) { int s = 0; while (n) { s += n % 10; n /= 10; } return s; } main() { printf("%d", fun(1234)); } A. 1 B. 10 C. 4 D. 1234 24、以下程序的功能是求字符串的长度,划线处应填( ) int strlen(char *s) { int len = 0; while (________) { len++; s++; } return len; } A. *s != '\0' B. s != '\0' C. *s == '\0' D. s 25、以下程序的输出结果是( ) void fun(int a[], int n) { for (int i = 0; i < n - 1; i++) for (int j = i + 1; j < n; j++) if (a[i] > a[j]) { int t = a[i]; a[i] = a[j]; a[j] = t; } } main() { int a[4] = {4, 2, 3, 1}; fun(a, 4); printf("%d", a[2]); } A. 1 B. 2 C. 3 D. 4 二、多选题(本题共5小题,每题4分,共20分) 1、以下关于C语言函数的说法,正确的有( ) A. 函数可以没有返回值 B. 函数可以没有参数 C. 函数可以返回数组 D. 函数可以递归调用 2、以下关于参数传递的说法,正确的有( ) A. 普通变量作为实参时,形参的改变不影响实参 B. 数组名作为实参时,形参的改变会影响实参 C. 指针作为实参时,形参的改变会影响实参 D. 结构体变量作为实参时,形参的改变不影响实参 3、以下关于变量的说法,正确的有( ) A. 局部变量在函数调用结束后被释放 B. 静态局部变量在函数调用结束后仍保留其值 C. 全局变量的作用域是整个源程序文件 D. register变量存储在CPU寄存器中,不能取地址 4、以下关于递归函数的叙述,正确的有( ) A. 递归函数必须有终止条件 B. 递归函数调用时,系统使用栈来管理返回地址和局部变量 C. 递归函数的效率通常低于循环实现 D. 递归函数可以解决所有循环能解决的问题 5、以下关于数组作为函数参数的说法,正确的有( ) A. 形参可以写成 int a[] 或 int *a B. 实参传递的是数组的首地址 C. 在被调函数中,可以使用 sizeof(a) 得到数组的长度 D. 在被调函数中,对形参数组的修改会影响实参数组 三、判断题(本题共10小题,每题2分,共20分) 1、C语言中,函数可以嵌套定义。( ) 2、函数的形参属于局部变量,其作用域仅限于函数内部。( ) 3、全局变量定义时若未初始化,系统自动赋值为0。( ) 4、在函数内定义的静态局部变量,其值在函数调用结束后会消失。( ) 5、函数的返回值类型由return语句中表达式的类型决定。( ) 6、使用指针作为函数参数可以实现“双向传递”数据。( ) 7、递归函数比非递归函数更节省内存空间。( ) 8、数组名作为函数参数时,在被调函数中使用sizeof可以得到整个数组的字节数。( ) 9、一个函数中可以有多个return语句。( ) 10、函数原型中的参数名可以省略,但参数类型不能省略。( ) 四、填空题(本题共5小题,每题2分,共10分) 1、以下程序段执行后,输出结果为( )。 int f(int n) { if (n == 1) return 1; return f(n - 1) + 2; } main() { printf("%d", f(5)); } 2、以下程序段的功能是计算数组a中所有元素的乘积,请填空( )。 int product(int a[], int n) { int p = 1; for (int i = 0; i < n; i++) ________; return p; } 3、以下程序段执行后,输出结果为 ( )。 int fun(int x,int y) { static int count = 0; count++; return x*y+count; } main() { printf("%d ", fun(2,3)); printf("%d ", fun(2,3)); 4、以下程序的功能是:找出1000以内的所有完数(一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6=1+2+3。),请填空( )。 int wanshu(int n) { int t, sum; for(t=1,sum=0;t<n;t++) if(_________) sum=sum+t; if(sum==n) return 1; else return 0; } main( ) { int x; printf("1000以内的完数有: "); for(x=1;x<=1000;x++) if(wanshu(x)==1) printf("%d\t",x); } 5、以下程序段执行后,输出结果为( )。 int fun(int a, int b) { return (a > b) ? a : b; } main() { int x = 4, y = 7, z = 2; printf("%d", fun(fun(x, y), z)) } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

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