实验九 - - 函数
更新时间:2023-10-31 06:07:01 阅读量: 综合文库 文档下载
实验九函数
一、实验学时
2学时
二、实验目的
(一)掌握函数的定义、函数类型、函数参数、函数调用的基本概念; (二)掌握变量名作函数参数的程序设计方法; (三)掌握函数的嵌套调用的方法; (四)掌握数组元素作函数参数;
(五)掌握数组名作函数参数的程序设计方法; (六)掌握字符数组作函数参数的程序设计方法; (七)了解全局变量、局部变量的概念和使用方法;
(八)使用功能键F7单步执行,使用Ctrl+F7观察变量的值,学会程序调试基本方法。
三、预习要求
(一)函数的定义、函数类型、函数参数、函数调用的基本概念; (二)函数实参与形参的对应关系以及参数的传递; (三)以变量名和数组名作函数参数时的使用方法; (四)全局变量、局部变量的概念和使用方法。
四、实验内容
(一)下面程序的功能是:根据输入的整数x和n,利用函数fact实现求x。
例如:输入:2,3 输出23=8
请在程序中的横线上填入正确的内容,将程序补充完整。 /* c9-1.c 利用函数fact实现求x的n次方*/ #include \void main( )
{ long int fact(long x,long n) ; /*声明fact函数*/
longint x ; longint n;
printf(\scanf(\
printf(\调用fact函数 */ }
long int fact(long int x, long int n) /*定义fact函数求xn */ { long int i,s;
n
; /*求累积变量的初始化*/ if (n= =0) return 0;
for(i=1; i<=n; i++) /*用循环实现x*/ s=s*x;
; /*返回结果x*/ }
(二) 下面程序的功能是:计算Cm?的内容,将程序补充完整。
n例如:输入:5,3 输出:Cm?10 编程提示:(1)定义求阶乘函数,在此基础上定义求组合数函数。
nn
n
m!的值。请在程序中的横线上填入适当
n!*(m?n)! (2)主函数调用求组合数函数,求组合数函数再三次调用求阶乘函数。 /* c9-2.c 利用函数组合数*/ #include \
long intjf(int n) /*定义求阶乘函数jf*/ { inti; long int t=1; for(i=1; i<=n; i++) t*=i; ; }
long int cmn(int m, int n) /*定义求组合数函数cmn*/ { return(jf(m)/(jf(n)*jf(m-n))) ;} /*用return语句返回结果*/
void main( ) { int m,n;
printf(\scanf(\,%d\; }
(三)下面程序的功能是:读入一个整数m,计算如下公式的值:
t?1?111???? 23m例如:若输入5,则应输出:“The result is 2.28333”。 请在程序中的横线上填入适当的内容。
/* c9-3.c 利用函数实现级数求和*/ #include \double fun(int m) { float t=1.0; int i; for(i=2; i<=m; i++)
;
return _________ ; }
void main( ) {int m;
printf(\scanf(\
_________ ; /*按照例子中的输出形式输出结果*/ }
(四)下面程序的功能是:输入一个十进制整数,输出其对应的二进制数。
编程提示: 在main函数中定义一个变量并为其赋值,然后调用函数fun将该十进制数转换为二进制。
函数fun的形参即为被转换的整数,在for循环中每次求出m%k存放到数组aa中,同时将m/k的整数商赋给m继续判断,直止m的值为0。最后按反序输出数组aa的元素。
请在程序中的三处横线上填入适当的内容,将程序补充完整: /* c9-4.c 通过函数调用实现数制转换*/ #include \void fun(int m) { int aa[20],i,k=2;
for(i=0;m;i++) {aa[i]=m%k; ___ ______ ;} printf(\
for(;i;i--) printf(\void main() { int n;
printf(\请输入一个十进制整数:\\n\fun( _________ ); }
如果将十进制数转换为八进制数,应对程序的哪个语句进行修改?怎样修改?
(五)写一个程序,判别一个整数数组中各元素的值,若大于0 则输出该值,若小于或等于0则输出0值。
编程提示: 判断函数:1.函数的类型为void,函数中不使用return语句;
2.函数的形参为一整型变量;
3.函数体中使用选择结构,根据对变量值的判断输出相应结果。
main函数:1.定义一个一维整型数组;
2. 为整型数组赋若干个数值;
3. 调用判断函数对数组元素逐一进行判断,以数组元素作实参。
/* c9-5.c 判别一个整数数组中各元素的值 */ #include \void main( ) {
}
(六)一维数组a中的元素为:1,4,2,7,3,12,5,34,5,9。求一维数组a中的最大元素及其下标。程序的输出应为:The max is: 34,position is: 7 。要求:求最大元素位置用函数实现,在main函数中调用该函数。
编程提示: 定义一个全局变量max,用来存放最大元素。求最大元素位置的子函数: 1.函数的类型为整型;
2. 函数的形参应为整型一维数组和一整型变量(存放数组元素的个数);
3.函数体中,定义一个整型pos,用来存放当前最大元素在数组中的下标,初值为0;将全局变量max的初值设置为数组中的第一个元素;
4. 函数体中使用循环结构,将数组元素依次和max中的值进行比较,将两者中的最大元素存入max中,并将最大元素的下标存入pos中;
5. 循环结束后,用return语句,将pos的值返回到主函数。 main函数:
1. 定义一个一维整型数组并为该数组赋若干个数;
2. 以赋值语句的形式,将求最大元素位置函数的返回值赋给一个变量,以数组名和数组的元素个数作实参。
注意:以数组名作实参时,实参与形参之间是地址的传递,实参数组和形参数组是公用一段内存单元。
/* c9-6.c 通过函数调用求一维数组中的最大元素及其下标*/
#include \ #include \int max;
int fun( int arr[],int n ) { int pos,i; max = arr[0]; pos = 0;
for( i=1; i
return (pos); } voidmain()
{int a[10]={1,4,2,7,3,12,5,34,5,9},n; _______________;
printf(\ }
(七)下面程序的功能是:求二维数组a中的上三角元素之和。
例如:a中的元素为:
4 4 34 37
7 3 12 8 5 6 5 52 24 23 2 10 程序的输出应为:The sum is:147。
请在程序中的横线上填入适当的内容,将程序补充完整。
/* c9-7.c 通过函数调用求二维数组中的上三角元素之和*/ #include \ #include \int arrsum( int arr[4][4]) { int i,j,sum; sum=0;
for( i=0; i<4; i++)
for ( __________;j<4; j++) sum+=arr[i][j]; return (sum); }
void main()
{ int a[4][4]={4,4,34,37,7,3,12,8,5,6,5,52,24,23,2,10},i,j; printf(\
(八)将字符串1的第1,3,5,7,9,......位置的字符复制到字符串2并输出。 例如:当字符串1为\,则字符串2为\。
编程提示:
子函数:1. 函数的类型为void,函数中不使用return语句;
2. 函数的形参应为两个字符型一维数组;
3. 函数体中使用循环结构,将字符串1中相应位置上的字符逐一复制到字符
串2中,注意循环变量每次递增的数目。 main函数:1. 定义一个一维字符型数组;
2. 为字符数组赋一个字符串;
3. 调用转换函数,以两个数组名作实参;
4. 输出转换后的字符数组的内容。
/* c9-8.c 通过函数调用实现对字符串的处理*/ #include \ #include \ #include \
void fun(char str1[],char str2[]) { int i,j;
j=0;
for(i=0;i str2[j]=’\\0’; } voidmain() { char str1[80]=\printf(\ _______________; printf(\ } (九)输入下面的程序并分析运行结果。用F7单步执行,注意程序的执行过程,观察变量d的值,理解全局变量和局部变量的区别,理解各种局部变量的作用范围。 /* c9-9.c 全局变量与局部变量的作用范围 */ int d=1; fun(int p) { int d=5; d+=p++; printf(\main( ) { int a=3; fun(a); { int d=16; d+=a++; printf(\printf(\} 五、实验注意事项 (一)定义函数时,函数名后的圆括号后面不能加“;”。 (二)在函数体内,不能再对形参进行定义和说明。 (三)变量作实参时,只使用变量名,实参变量对形参变量的数据传递是“值传递”。 (四)一维数组作函数的实参时,只使用数组名如:fun(a); 。 下面对函数的调用都是不正确的: fun(int a[4]); fun(int a[ ]); fun(int a);
正在阅读:
实验九 - - 函数10-31
会计专业建设方案01-17
遥望星空作文1000字02-04
吴昌硕题画诗(8)04-27
电大法律文书期末机考选择题(按字母排版)10-12
拼音教学是小学生学习语文的基础03-18
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 函数
- 实验
- Unit 5 Canada—\\"The True North\\"教案
- 现代管理理论与实务05
- 人教版高中语文中国古代诗歌散文欣赏理解性默写(附答案)
- 校园安全治理健全报告与校园安全自查自检报告汇编
- 原电池和电解池电极反应
- 风景园林-工程建设题集(2016年工程师职称答辩参考用书题库)
- 2013学年高一必修2第四章《工业地域的形成与发展》 - 图文
- 高中历史人教版必修三第二单元检测题和答案
- 带电粒子在磁场中运动最小面积
- 诗经与楚辞
- 化工仿真模拟软件使用
- 中青年干部如何在和谐铁路建设中展示作为
- 乳腺癌内分泌治疗大事记
- “自下而上”和“自上而下”城市设计案例分析 - 图文
- r2019届高考语文一轮复习古代诗歌阅读精讲精练:(13)边塞诗
- 窗口、消息及调试实验报告
- 学生会特色活动材料整理 - 图文
- 梳棉机主要品牌盖板参数
- 数据库实验-建立表和数据完整性
- 3×100MW火力发电厂毕业设计(1)