最新C语言程序设计(第3版)何钦铭 颜 晖 第5章函数.doc
《最新C语言程序设计(第3版)何钦铭 颜 晖 第5章函数.doc》由会员分享,可在线阅读,更多相关《最新C语言程序设计(第3版)何钦铭 颜 晖 第5章函数.doc(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品资料C语言程序设计(第3版)何钦铭 颜 晖 第5章 函数.第5章 函数【练习5-1】使用函数求1到n之和:输入一个正整数 n,输出1n之和。要求自定义和调用函数sum(n)求 1n 之和。若要计算 mn(mn)之和,又该如何定义函数?试编写相应程序。解答:#include int sum(int n);int main(void) int n; int sum; printf(Enter n:) scanf(%d, &n); printf(sum = %dn, sum(n);return 0;int sum(int n)int result, i;result = 0; for(i = 1
2、; i = n; i+) result = result + i; return result;若要计算 mn(mn)之和,则需要在 main()中定义 2 个变量 m 和 n: scanf(%d%d, &m, &n); printf(sum = %dn, sum(m, n);同时在函数定义时需设置 2 个形参:int sum(int m, int n)int result, i;result = 0; for(i = m; i = n; i+) result = result + i; return result;【练习5-2】使用函数找最大值: 输入2个数,输出其中较大的数。要求定义和调用
3、函数 max(a, b)找出并返回 a、b 中较大的数。试编写相应程序。解答:#include double max(double a, double b);int main(void) int a, b; printf(“Input a and b:”); scanf(%lf%lf,&a, &b); printf(max= %lfn, max(a, b);return 0;double max(double a, double b) if(a b) return a; else return b;【练习5-3】数字金字塔:输入一个正整数 n,输出n行数字金字塔。试编写相应程序。解答:#inc
4、lude int main(void) int n,i,j; printf(“Enter n:”); scanf(%d, &n); for(i = 1; i = n; i+) for(j = 1; j = n - i; j+) printf( ); for(j = 1; j = i; j+) printf(%d , i); putchar(n); return 0;【练习5-4】 思考:若把例 5-9 中静态变量 f 定义成普通局部变量,还能实现计算 n!吗?请上机检验。若把 f 换成全局变量又会如何?解答:若把例 5-9 中静态变量 f 定义成普通局部变量,无法实现计算 n!,因为函数返回后
5、 f 单元被系统回收,不再保存原有数据。若把 f 换成全局变量,则能实现计算 n!,因为 f 的作用范围和生命周期一直存在。习题5一、选择题1在 C 语言程序中,若对函数类型未加显式说明,则函数的隐含类型为 D 。Avoid Bdouble Cchar Dint 2下列程序的输出结果是 D 。fun(int a, int b, int c) c = a * b; int main(void) int c; fun(2, 3, c); printf(”%dn”, c);return 0;A0 B1 C6 D无法确定3建立自定义函数的目的之一是 B(优先)、C 。A提高程序的执行效率 B提高程序的
6、可读性C减少程序的篇幅 D减少程序文件所占内存4以下正确的函数定义形式是 A 。Adouble fun(int x, int y) Bdouble fun(int x; int y)Cdouble fun(int x, int y); Ddouble fun(int x, y)5以下不正确的说法是 C 。A实参可以是常量、变量或表达式C形参可以是常量、变量或表达式B实参可以是任何类型D形参应与对应的实参类型一致6以下正确的说法是 D 。A实参与其对应的形参共同占用一个存储单元B实参与其对应的形参各占用独立的存储单元C只有当实参与其对应的形参同名时才占用一个共同的存储单元D形参是虚拟的,不占用内
7、存单元二、填空题1下列程序的输出结果为 2357 。#include int fun3(int m);int main(void) int n; for (n = 1; n 10; n+) if (fun3(n) = 1) printf(%d , n); return 0;int fun3(int m) int i; if (m = 2 | m = 3) return 1; if (m 2 | |m % 2 = 0) return 0; for (i = 3; i m; i = i + 2) if (m % i = 0) return 0; return 1; 2输入若干个正整数,判断每个数从
8、高位到低位各位数字是否按值从小到大排列,请根据题意,将程序补充完整。#include int fun1( int m );int main(void) int n; scanf(%d, &n); while (n 0) if(fun1(n) printf(%d 中各位数字按从小到大排列n, n); scanf(%d, &n); int fun1( int m ) int k; k = m % 10; while(m) if( m / 10 % 10 k) return 0; else m = m/10 ; k = m % 10; return 1;3下列函数输出一行字符:先输出 kb 个空格,
9、再输出 n 个指定字符(由实参指定)。请根据题意,将程序补充完整。#include void print( int kb, int n, char zf ) int i; for(i = 1; i = kb; i+) printf(“ ”); for (i = 1; i = n; i+ ) printf(“%c”, zf);三、程序设计题1使用函数计算分段函数的值:输入 x,计算并输出下列分段函数 f(x) 的值。要求定义和调用函数 sign(x) 实现该分段函数。试编写相应程序。 1 x 0f(x)= 0 x 0-1 x 0解答:#include int main(void) int sig
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新C语言程序设计第3版何钦铭 第5章 函数 最新 语言程序设计
限制150内