SCAU高级语言程序设计--实验9 函数的应用(1)

一、堂上限时习题
1、编写函数计算阶乘

题目:下面程序实现由键盘读入整数n,计算并输出n!,请补充完整计算阶乘的函数。

#include "stdio.h"

_______________________ 
                   
main() 
{    int n; 
    scanf("%d", &n); 
    printf("%ld", fanc(n)); 
}

思路:直接把整个阶乘的计算方法,卸载函数里面。需要用的时候就直接用函数名调用。这里注意函数的返回数据类型为long。

#include<stdio.h>
long fanc(int n){long i,r=1;for (i=1;i<=n;i++)r *= i;return r;
}int main(){int n;scanf("%d",&n);printf("%ld",fanc(n));return 0;
}

2、函数的变量

题目:写出下面程序的运行结果:

int f1(int x)
{   static int z=3,y=0;y++;z++;return(x+y+z);
}
main()
{   int a=1,k;for(k=0;k<3;k++) printf("%4d",f1(a));
}

程序到此结束 请用下面程序输出你的答案(注意转义字符的正确表达) 
#include "stdio.h" 
main() 

    printf("_______________________"); 
}

结果为:6 8 10

int f1(int x)
{   static int z=3,y=0;//静态局部变量y++;z++;return(x+y+z);
}
main()
{   int a=1,k;for(k=0;k<3;k++) printf("%4d",f1(a));
}

分析:第一次计算:k=0,a=1;函数计算后,y=1,z=4,f1(1)=1+1+4=6

第二次计算:k=1,a=1;函数计算后,y=2,z=5,f1(1)=1+2+5=8

第三次计算:k=2,a=1;函数计算后,y=3,z=6,f1(1)=1+3+6=10

注意:static定义过的变量为静态局部变量,函数结束后,变量的数值依旧会保留下来,再次调用的时候会继续参与计算,直到整个程序结束。(可参考书本P102-105局部变量和全局变量)

3、编写函数,实现十进制数转二进制数

题目:下面程序,实现由键盘输入一个正整数(不大于100000000),输出其对应的二进制数(原码表示)。 请填空:

#include "stdio.h"

_______________________

main() 

    int n; 
    scanf("%d", &n); 
    binary(n); 
}

思路:这里运用了一个函数嵌套。由于10进制转2进制是先把10进制不断除2后的每次得到的余数,再把这些余数倒叙显示。嵌套有点难想,可以自己用笔算算。

分析:b(10)<-b(5)<-b(2)<-b(1),显示顺序就是1->0->1->0

#include<stdio.h>void binary(n)(int n){if (n>1)binary(n/2);//嵌套函数printf("%d",n%2);
}int main(){int n;scanf("%d",&n);binary(n);//函数调用return 0;
}

SCAU高级语言程序设计--实验9 函数的应用(1)相关推荐

  1. SCAU高级语言程序设计--实验10 指针与结构体(1)

    SCAU高级语言程序设计--实验10 指针与结构体(1) 一.堂上限时习题 1.交换两数,由大到小输出 题目:下面程序,交换两数,使两数由大到小输出,请填空 #include "stdio. ...

  2. SCAU高级语言程序设计--实验6 循环结构(二)(2)

    SCAU高级语言程序设计--实验6 循环结构(二)(2) 二.堂下练习 1.找满足要求的数字 题目:输出1到9999中能被7整除,而且至少有一位数字是5的所有数字 思路:判断一个数字中是否有5,首先要 ...

  3. 超星高级语言程序设计实验作业 (实验04 数组及其在程序设计中的应用)(二)

    超星高级语言程序设计实验作业 实验04 数组及其在程序设计中的应用(二) 注:以下内容仅供交流,代码都是本人自己写的,还请同学们先自己编写再进行交流. 7.检验矩阵重复元素 题目描述:编写程序判断任意 ...

  4. SCAU高级语言程序设计OJ

    高级语言程序设计 实验四 选择结构 堂前习题 堂上练习 单元测试 实验五 循环结构(一) 堂前习题 堂上练习 单元测试 实验六 循环结构(二) 堂前习题 堂上练习 单元测试 实验七 数组的应用 堂前习 ...

  5. 高级语言程序设计(实验四)

    高级语言程序设计实验4-1 [问题描述] 编程序,实现如下功能: (1)定义两个一维数组x,y,不超过50个元素. (2)从键盘输入k个整数到数组x中. (3)计算x中数据的平均值ave及大于平均值的 ...

  6. 超星高级语言程序设计实验作业 实验05 指针及其在程序设计中的应用

    超星高级语言程序设计实验作业 实验05 指针及其在程序设计中的应用 注:以下内容仅供交流,代码都是本人自己写的,还请同学们先自己编写再进行交流. 1.字符串长度 题目描述:编写程序实现:使用自编函数i ...

  7. 陕理工高级语言程序设计实验 (C)答案,陕理工高级语言程序计实验 (C)模板.doc

    陕理工高级语言程序计实验 (C)模板 <高级语言程序设计(C)> 实验报告 目录 实验一:C开发环境与顺序结构程序设计2 1.实验目的:2 2.实验环境:2 3.实验步骤:2 4.实验内容 ...

  8. 南京邮电大学高级语言程序设计实验三(函数实验)

    一. 实验目的和要求 (1)掌握正确的函数定义与调用,需要时会正确使用函数声明.会正确设置形式参数,理解参数传递及程序的执行流程. (2)理解各种不同存储类别变量的生命期与作用域 (3)进一步熟悉调试 ...

  9. 吉林大学超星慕课平台——高级语言程序设计 实验01 顺序程序设计(2022级)

    实验01 顺序程序设计(2022级) 1. (程序题) 表达式计算. 问题描述:编写程序,计算并输出如下表达式的值: y= 其中a,x,y均为float类型,取值为3.1415926.输出结果要求保留 ...

  10. 吉林大学超星慕课平台——高级语言程序设计 实验03 模块化程序设计(2022级)

    实验03 模块化程序设计(2022级) 一. 单选题(共1题,16.6分) 1. (单选题)有函数定义:int f(int x,int y):则下列函数调用正确的为(    ) A.int n; n= ...

最新文章

  1. Jmeter实现WebSocket协议的接口和性能测试方法
  2. 使用intelliJ创建 spring boot + gradle + mybatis站点
  3. python基础(十七)
  4. sharepoint站点Feature的定制与开发 以及 stsadm 常用命令
  5. EasyUI datagrid控件的基本使用
  6. 1.3 字符编码介绍
  7. Linux下编译cscope,vim+ctags+cscope 常用技巧和命令
  8. 【机器学习】这次终于彻底理解了奇异值分解(SVD)原理及应用
  9. 以下不属于计算机安全术语,基础知识(D).doc
  10. Flutter CupertinoSlidingSegmentedControl 分段组件使用解析
  11. 高中计算机算计Access怎么做,Access非常简单实用的计算器
  12. 基于JAVA+SpringMVC+Mybatis+MYSQL的网上试衣间设计
  13. MySQL字符串转日期
  14. 微型计算机远程编程微软,用微软的云计算来远程管理自己的电脑
  15. c#操作Xml(五)
  16. Golang语言 零基础入门教程
  17. 安捷伦色质谱仪维修四极杆驱动器维修G2571
  18. Mac OS X 10.2 (Macintosh)的101个应用技巧(转)
  19. 个人空间岁末大回报活动12月24日获奖名单
  20. DirectX11进阶5_硬件实例化与视锥体裁剪及鼠标拾取交互

热门文章

  1. 使用Tor绕过防火墙进行远程匿名访问
  2. matlab中图像格式转换
  3. url中文转码问题(python)
  4. 崩坏3mmd中的渲染技术研究
  5. ESP32笔记(2) flash使用
  6. python实现英雄联盟信息获取
  7. 3.5正交试验设计法
  8. 数字化大时代崛起的数据安全能力框架
  9. QT中的this指针什么意思?namespace又是什么意思?
  10. 博士毕业论文英文参考文献换行_Endnote教程丨本科研究生毕业论文参考文献格式模板,一键搞定...