C语言程序设计(第3版)何钦铭-颜-晖-第5章--函数

上传人:lil****ar 文档编号:270694008 上传时间:2022-03-26 格式:DOC 页数:18 大小:43.50KB
返回 下载 相关 举报
C语言程序设计(第3版)何钦铭-颜-晖-第5章--函数_第1页
第1页 / 共18页
C语言程序设计(第3版)何钦铭-颜-晖-第5章--函数_第2页
第2页 / 共18页
C语言程序设计(第3版)何钦铭-颜-晖-第5章--函数_第3页
第3页 / 共18页
C语言程序设计(第3版)何钦铭-颜-晖-第5章--函数_第4页
第4页 / 共18页
C语言程序设计(第3版)何钦铭-颜-晖-第5章--函数_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《C语言程序设计(第3版)何钦铭-颜-晖-第5章--函数》由会员分享,可在线阅读,更多相关《C语言程序设计(第3版)何钦铭-颜-晖-第5章--函数(18页珍藏版)》请在金锄头文库上搜索。

1、第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; i = n; i+) result = result +

2、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个数,输出其中较大的数。要求定义和调用函数 max(a, b)找出并返回 a、b 中较大的数。试编写

3、相应程序。解答:#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行数字金字塔。试编写相应程序。解答:#include int main(void) int n,i,j;

4、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!,因为函数返回后 f 单元被系统回收,不再保存原有数据。若把 f 换成全局变量

5、,则能实现计算 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提高程序的可读性C减少程序的篇幅 D减少程序文件所占内存4以下正确的函数

6、定义形式是 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形参是虚拟的,不占用内存单元二、填空题1下列程序的输出结果为 2357 。#incl

7、ude 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 个空格,再输出 n 个指定字符(由实参指定)。请根据题意,将程序补充完

9、整。#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 sign(int x); int x, y;scanf(%d,&x)

10、; y = sign(x);printf(sign(%d) = %dn, x, y);return 0;int sign(int x) int y;if(x0) y=1;else if (x=0) y=0;else y=-1;return y;2使用函数求奇数和:输入一批正整数(以零或负数为结束标志),求其中的奇数和。要求定义和调用函数 even(n)判断数的奇偶性,当 n 为偶数时返回 1,否则返回 0。试编写相应程序。解答:#include int even(int n);int main(void) int n, sum; scanf(%d,&n); sum = 0; while(n 0

11、) if(even(n) = 0) sum = sum + n; scanf(%d, &n); printf(The sum of the odd numbers is %d.n, sum);return 0;int even(int n) int y; if (n % 2 = 0) y = 1; else y = 0; return y;3.使用函数计算两点间的距离:给定平面任意两点坐标(x1,y1)和(x2,y2),求这两点之间的距离(保留2位小数)。要求定义和调用函数dist(x1,y1,x2,y2)计算两点之间的距离。试编写相应程序。解答:#include#includedouble

12、dist(double x1,double y1,double x2,double y2);int main(void) double x1,y1,x2,y2; printf(Enter x1 and y1:); scanf(%lf%lf,&x1,&y1); printf(Enter x2 and y2:); scanf(%lf%lf,&x2,&y2); printf(Distance=%.2lf,dist(x1,y1,x2,y2); return 0;double dist(double x1,double y1,double x2,double y2) double distance; distance=sqrt(pow(fabs(x2-x1),2)+pow(f

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号