




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第第1010章章 函数与程序结构函数与程序结构 练习10 1 使用递归函数计算1到n之和 若要用递归函数计算 sum 1 2 3 n n为正整数 请写出该递归函数的递归式子及递归出口 试 编写相应程序 解答 递归式子 sum i sum i 1 i 递归出口 sum i 0 练习10 2 请完成下列宏定义 MIN a b 求 a b 的最小值 ISLOWER c 判断 c 是否为小写字母 ISLEAP y 判断 y 是否为闰年 CIRFER r 计算半径为 r 的圆周长 解答 MIN a b 求a b的最小值 define MIN a b a a else t z else if y z t y else t z return t 2 宏实现 define MAX x y z x y x z x z y z y z 两者在定义形式上完全不同 使用上函数是在执行时 从主调函数转到函 数 max 然后再返回到主调函数 函数体始终存在 而宏是在编译预处理时 用 条件表达式去替换 MAX int x int y int z 等程序执行时 执行的是条件表达式 而不再存在 MAX int x int y int z 的式子 习题习题1010 一 选择题 1 要调用数学函数时 在 include 命令行中应包含 C A stdio h B string h C math h D ctype h 2 对于以下递归函数 f 调用 f 4 其返回值为 A int f int n if n return f n 1 n else return n A 10 B 4 C 0 D 以上均不是 3 执行下列程序 define MA x y x y i 5 i MA i i 1 7 后变量 i 的值应为 B A 30 B 19 C 23 D 1 4 宏定义 define DIV a b a b 经 DIV x 5 y 5 引用 替换展开后是 A A x 5 y 5 B x 5 y 5 C x 5 y 5 D x 5 y 5 5 定义带参数的宏 define JH a b t t a a b b t 对两个参数 a b 的值进行交换 下 列表述中哪个是正确的 C A 不定义参数a和b将导致编译错误 B 不定义参数a b t将导致编译错误 C 不定义参数 t 将导致运行错误 D 不需要定义参数 a b t 类型 6 执行下面程序 正确的输出是 A int x 5 y 7 void swap int z z x x y y z int main void int x 3 y 8 swap printf d d n x y return 0 A 3 8 B 8 3 C 5 7 D 7 5 7 下面说法中正确的是 A A 若全局变量仅在单个 C 文件中访问 则可以将这个变量修改为静态全局变量 以降低模块间的耦合度 B 若全局变量仅由单个函数访问 则可以将这个变量改为该函数的静态局部变 量 以降低模块间的耦合度 C 设计和使用访问动态全局变量 静态全局变量 静态局部变量的函数时 需 要考虑变量生命周期问题 D 静态全局变量使用过多 可那会导致动态存储区 堆栈 溢出 2 填空题 1 C语言的编译预处理功能主要包括 条件编译 宏定义 和 文件包含 2 执行完下列语句段后 i 的值为 5 int i int f int x return x 0 f x 1 f x 2 1 i f 3 3 下列程序段 A 与 B 功能等价 请填写程序段 B 中相应语句 程序段 int f int n if n1 t t0 t1 t0 t1 t1 t n return t 5 下面程序用于计算 f k n 1k 2k nk 其中 power m n 求 mn 请填写程序中相应语句 include int power int m int n int i int p 1 for i 1 i n i p p m return p int f int k int n int i int s 0 for i 1 i n i s s power i k return s int main void int k n scanf d d printf f d d ld k n f k n return 0 5 下列递归程序的输出结果为 g 4 g 3 k 6 include int fib int g switch g case 0 return 0 case 1 case 2 return 2 printf g d g return fib g 1 fib g 2 int main void int k k fib 4 printf k ld n k return 0 6 下列语句的运算结果为 7 13 define F x x 2 define D x x F x printf d d D 3 D D 3 三 程序设计题 1 判断满足条件的三位数 编写一个函数 利用参数传入一个 3 位数 n 找出 101 n 间所有满足下列两个条件的数 它是完全平方数 又有两位数字相同 如 144 676 等 函数返回找出这样的数据的个数 试编写相应程序 解答 include include int fun int n int main void int n printf Input n scanf d printf total d n fun n return 0 int fun int n int i d 0 for i 101 i0且n 10 求1 2 3 n 定义 并调用函数fact n 计算n 函数类型是double 试编写相应程序 解答 include double fact int n int main void int n printf Input n scanf d printf 1 d的阶乘和 0lf n fact n return 0 double fact int n int i double result 1 if n 1 result 1 else for i 1 i n i result result i result result fact n 1 return result 3 递归实现计算x 输入实数x和正整数n 用递归函数计算x 的值 试编写相 应程序 解答 include double power double x int n int main void double x int n printf Input x scanf lf printf Input n scanf d printf lf的 d次方 lf x n power x n return 0 double power double x int n double result if n 1 result x else result x power x n 1 return result 4 递归求式子和 输入实数x和正整数n 用递归的方法对下列计算式子编写一 个函数 f x n x x x x4 1 n 1x n 0 试编写相应程序 解答 include include double f double x int n int main void int n double x printf Input x scanf lf printf Input n scanf d printf f lf d lf n x n f x n return 0 double f double x int n if n 1 return x else return pow 1 n 1 pow x n f x n 1 5 递归计算函数ack m n 输入m和n 编写递归函数计算Ackermenn函数的 值 n 1 m 0 ack m n ack m 1 1 n 0 int main void int m n int result scanf d d result Ack m n printf Ackerman d d d n m n result return 0 int Ack int m int n if m 0 return n 1 else if n 0 else if m 0 6 递归实现求Fabonacci数列 用递归方法编写求斐波那契数列的函数 函数 类型为整型 并写出相应主函数 斐波那契数列的定义如下 试编写相应程序 f n f n 2 f n 1 n 1 其中 f 0 0 f 1 1 解答 include long fib int n int main void int n printf Enter n scanf d printf fib d ld n n fib n return 0 long fib int n long res if n 0 res 0 else if n 1 res 1 else res fib n 2 fib n 1 return res 7 递归实现十进制转换二进制 输入一个正整数n 将其转换为二进制输出 要求定义并调用函数dectobini n 它的功能是输出n的二进制 试编写相应程 序 解答 include int dectobini int n int main void int n printf Input n 十进制整数 scanf d printf 输出二进制 d dectobini n return 0 int dectobini int n int result if n 0 result 0 else result dectobini n 2 10 n 2 return result 8 递归实现顺序输出整数 输入一个正整数n 编写递归函数实现对其进行按 位顺序输出的递归函数 试编写相应程序 解答 include int inorder int n int main void int n printf Input n scanf d printf 按位顺序输出 d n inorder n return 0 int inorder int n if n 10 return n else return inorder n 10 10 n 10 9 输入n n 10 个整数 统计其中素数的个数 要求程序有两个文件组成 一个文件中编写main函数 另一个文件中编写素数判断的函数 使用文件包含 的方式实现 试编写相应程序 解答 10 三角形面积为 area s a b c 2 cbsass s 其中a b c 分别是三角形的 3 条边 请分别定义计算 s 和 area 的宏 再使用函数实现 比较两者在形式上和使用上的区别 解答 1 使用宏实现 include include define S a b c a b c 2 define AREA s a b c sqrt s s a s b s c int main void double a b c s printf input a b c scanf lf lf lf s S a b c printf s lf area lf n s AREA s a b c return 0 2 使用函数实现 include in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 音像版权协议书
- 规范作业协议书
- 车险转让协议书
- 门卫补充协议书
- 劳动局调解协议书
- 车祸双方协议书
- 购买酒店协议书
- 转让交易协议书
- 补偿意向协议书
- 解除兼职协议书
- 压力容器安全教育培训
- 托管机构管理制度
- 2025年小学教师资格考试《综合素质》教育心理学应用案例分析题库(含答案)
- 安全人机工程学-人因事故分析与预防报告课件
- 支气管肺发育不良护理
- GB/T 35267.4-2025清洗消毒器第4部分:内镜清洗消毒器
- 幼儿园教师专业发展路径研究论文
- 非暴力沟通在临床的应用
- 《C语言程序设计》教学设计 项目七-人工智能大赛数据处理-结构体
- 消防大队法纪教育专题授课
- 国画、书法砚台企业数字化转型与智慧升级战略研究报告
评论
0/150
提交评论