SCAU高级语言程序设计--实验9 函数的应用(1)
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)相关推荐
- SCAU高级语言程序设计--实验10 指针与结构体(1)
SCAU高级语言程序设计--实验10 指针与结构体(1) 一.堂上限时习题 1.交换两数,由大到小输出 题目:下面程序,交换两数,使两数由大到小输出,请填空 #include "stdio. ...
- SCAU高级语言程序设计--实验6 循环结构(二)(2)
SCAU高级语言程序设计--实验6 循环结构(二)(2) 二.堂下练习 1.找满足要求的数字 题目:输出1到9999中能被7整除,而且至少有一位数字是5的所有数字 思路:判断一个数字中是否有5,首先要 ...
- 超星高级语言程序设计实验作业 (实验04 数组及其在程序设计中的应用)(二)
超星高级语言程序设计实验作业 实验04 数组及其在程序设计中的应用(二) 注:以下内容仅供交流,代码都是本人自己写的,还请同学们先自己编写再进行交流. 7.检验矩阵重复元素 题目描述:编写程序判断任意 ...
- SCAU高级语言程序设计OJ
高级语言程序设计 实验四 选择结构 堂前习题 堂上练习 单元测试 实验五 循环结构(一) 堂前习题 堂上练习 单元测试 实验六 循环结构(二) 堂前习题 堂上练习 单元测试 实验七 数组的应用 堂前习 ...
- 高级语言程序设计(实验四)
高级语言程序设计实验4-1 [问题描述] 编程序,实现如下功能: (1)定义两个一维数组x,y,不超过50个元素. (2)从键盘输入k个整数到数组x中. (3)计算x中数据的平均值ave及大于平均值的 ...
- 超星高级语言程序设计实验作业 实验05 指针及其在程序设计中的应用
超星高级语言程序设计实验作业 实验05 指针及其在程序设计中的应用 注:以下内容仅供交流,代码都是本人自己写的,还请同学们先自己编写再进行交流. 1.字符串长度 题目描述:编写程序实现:使用自编函数i ...
- 陕理工高级语言程序设计实验 (C)答案,陕理工高级语言程序计实验 (C)模板.doc
陕理工高级语言程序计实验 (C)模板 <高级语言程序设计(C)> 实验报告 目录 实验一:C开发环境与顺序结构程序设计2 1.实验目的:2 2.实验环境:2 3.实验步骤:2 4.实验内容 ...
- 南京邮电大学高级语言程序设计实验三(函数实验)
一. 实验目的和要求 (1)掌握正确的函数定义与调用,需要时会正确使用函数声明.会正确设置形式参数,理解参数传递及程序的执行流程. (2)理解各种不同存储类别变量的生命期与作用域 (3)进一步熟悉调试 ...
- 吉林大学超星慕课平台——高级语言程序设计 实验01 顺序程序设计(2022级)
实验01 顺序程序设计(2022级) 1. (程序题) 表达式计算. 问题描述:编写程序,计算并输出如下表达式的值: y= 其中a,x,y均为float类型,取值为3.1415926.输出结果要求保留 ...
- 吉林大学超星慕课平台——高级语言程序设计 实验03 模块化程序设计(2022级)
实验03 模块化程序设计(2022级) 一. 单选题(共1题,16.6分) 1. (单选题)有函数定义:int f(int x,int y):则下列函数调用正确的为( ) A.int n; n= ...
最新文章
- Jmeter实现WebSocket协议的接口和性能测试方法
- 使用intelliJ创建 spring boot + gradle + mybatis站点
- python基础(十七)
- sharepoint站点Feature的定制与开发 以及 stsadm 常用命令
- EasyUI datagrid控件的基本使用
- 1.3 字符编码介绍
- Linux下编译cscope,vim+ctags+cscope 常用技巧和命令
- 【机器学习】这次终于彻底理解了奇异值分解(SVD)原理及应用
- 以下不属于计算机安全术语,基础知识(D).doc
- Flutter CupertinoSlidingSegmentedControl 分段组件使用解析
- 高中计算机算计Access怎么做,Access非常简单实用的计算器
- 基于JAVA+SpringMVC+Mybatis+MYSQL的网上试衣间设计
- MySQL字符串转日期
- 微型计算机远程编程微软,用微软的云计算来远程管理自己的电脑
- c#操作Xml(五)
- Golang语言 零基础入门教程
- 安捷伦色质谱仪维修四极杆驱动器维修G2571
- Mac OS X 10.2 (Macintosh)的101个应用技巧(转)
- 个人空间岁末大回报活动12月24日获奖名单
- DirectX11进阶5_硬件实例化与视锥体裁剪及鼠标拾取交互