




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2836417280实验五 函数与编译预处理实验课程名:高级语言程序设计5专业班级:学号:姓名:实验时间:2016年5月11日实验地点:K4指导教师:一、实验目的及要求1. 掌握函数定义的方法;2. 掌握函数实参与形参的对应关系以及“值传递”的方式;3. 掌握函数的嵌调用和递归调用的方法;4. 掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。5. 学习对多文件程序的编译和运行。二、实验内容(一)(1)程序代码:#include <stdio.h>void main() void fun(int i, int j, int k); int x,y,z; x=y=z=6; f
2、un(x,y,z); printf("%x=%d;y=%d;z=%dn",x,y,z);void fun(int i, int j, int k) int t; t=(i+j+k)*2; printf("t=%dn",t);(2)程序运行结果:(3)程序分析:f7是持行调试f8是选择调试的语句 (二)实验任务2(1)程序代码:#include <stdio.h>void main() int x=10,y=20;void swap (int ,int);printf("(1)in main :x=%d,y=%dn",x,y
3、);swap(x,y);printf("(4)in main :x=%d,y=%dn",x,y); void swap (int m,int n) int temp;printf("(2)in main :m=%d,n=%dn",m,n);temp=m;m=n;n=temp;printf("(3)in main :m=%d,n=%dn",m,n);(2)程序运行结果:(3)程序分析:将用户自定义函数swap()中的形式参数m和n对应改成x和y后,运行结果不会发生改变。 实参和形参在内存中占有不同的存储单元,实参无法得到形参的值。(三)
4、实验任务3(1)程序代码:#include <math.h>#include <stdio.h>void main() int m; void prime(int n); /* 申明求素数函数 */printf("Please input a data m=:");scanf("%d",&m); prime(m); /* 调用求素数函数 */ void prime(int n) int i,k; k=sqrt(n); for(i=2;i<=k;i+)if (n%i=0) break;if(i>=k+1)prin
5、tf("This is a prime numbern");else printf("This isn't a prime numbern");(2)程序运行结果:(3)程序分析:用户自定义一个求素数的prime函数,然后运行时调用该函数。(四)实验任务4(1)程序代码:#include <stdio.h>void main( )int i; int s10, max; /* Findmax()函数的申明 */ int Findmax( int x , int n ); printf("Input 10 number : n
6、"); /* 输入10个数据到s数组中 */ for(i=0;i<10;i+) scanf("%d",&si); /* 调用Findmax函数 */ max=Findmax(s,10); for (i=0;i<10; i+) printf("%4d", si); printf("n"); printf("the max is %d n",max);int Findmax( int x , int n ) int max,i; max=x0; for ( i=1; i<n; i+)
7、 if(max<xi) max=xi; return max;(2)程序运行结果:(3)程序分析:先输入10个数,再用用户自定义的函数fingmax超出最大值。(五)实验任务5(1)程序代码:#include <stdio.h>void main() void sort( int x,int n); int i,k;float s100,j ;printf(" Input number : n");for (i=0; scanf("%f",&j); i+)si=j;sort(s,i);for (k=0; k<i; k+)p
8、rintf( "%f ", sk);printf("n");void sort( int x, int n ) int i, j, temp,min;for ( i=0; i<n-1; i+) min=i;for(j=i+1;j<n;j+)if ( xj < xmin)min=j;if(min!=i) temp=xmin;xmin=xi;xi=temp; (2)程序运行结果:(3)程序分析:for (i = 0; scanf("%f",&j); i+)这一行中for语句第二个表达式的使用形式,此处用了scan
9、f()函数的出错来结束输出循环。(六)实验任务6(1)程序代码: #include<stdio.h>void main()int m,n,c;int fun(int x);printf("input m,n:");scanf("%d,%d",&m,&n);c=fun(m)/(fun(n)*fun(m-n);printf("c=%dn",c);int fun(int x)int i,s;for(i=1,s=1;i<=x;i+)s=s*i;return s;(2)程序运行结果:(3)程序分析:用户先自定义
10、一个求阶乘的函数fun,然后在程序中调用该函数,进而达到求 的目的。(七)实验任务7(1)程序代码:#include <stdio.h>void main( ) int m, k; void dtoo( int n ,int r ); printf("Pleae input the decimal number:"); scanf("%d",&m); printf( "nPlease input a number in (2,8,16):"); scanf("%d",&k); dtoo(
11、m,k);void dtoo( int n ,int r ) if(n>=r) dtoo(n/r,r); printf("%d",n%r); (2)程序运行结果:(3)程序分析:由用户自定义一个dtoo函数,该函数用来输出m除以k的余数。(八)实验任务8(1)程序代码: #define LOW 10#define HIGH 5#define CHANGE 2int i = LOW ;#include <stdio.h>void main( ) int workover ( int i ) , reset ( int i ); int i = HIGH ;
12、reset ( i / 2) ; printf(" i = %d n ", i ); reset ( i = i / 2) ; printf(" i = %d n ", i ); reset ( i / 2) ; printf(" i = %d n ", i ); workover ( i ); printf(" i = %d n ", i ); int workover ( int i ) i = ( i % i ) * ( i * i ) / ( 2 * i ) + 4) ; printf(" i =
13、 %d n ", i ); return ( i );int reset ( int i ) i = i <= CHANGE ? HIGH : LOW ; return ( i );(2)程序运行结果:(3)程序分析:在main()主函数中reset(i/2)和reset(i=i/2)不同,第一个reset的i没有被赋值到,所以该函数调用结束后还保持原来的值;而第二个reset的i被赋值了,所以函数调用结束后以前的值就没有。(九)实验任务9(1)程序代码:#include <stdio.h>void main( )int i ; int f(int); for (
14、i = 1; i <= 5; i +) printf( "(%d):% dn", i,f(i);printf(" n");int f ( int n)static int j = 1;j = j * n;return( j );(2)程序运行结果:(3)程序分析:(十)实验任务10(1)程序代码: #include "stdio.h"#define N 2#define M N+1#define NUM (M+1)*M/2main() int i,n=0; for (i=1; i<=NUM; i+) n+ ; printf
15、 ("%dn",n); printf("n"); (2)程序运行结果:(3)程序分析:本程序主要使用的有宏定义,该使用方式为:#define+宏名+宏内容,原程序的错误之处在于“宏内容是一个表达式时,宏内容的两边需要加上括号”。(十一)实验任务11(1)程序代码: #define POWER(x) (x)*(x)#define MAX(x,y) (x)>(y)?(x):(y)#define PR printf#include <stdio.h>void main() int a,b,c,d,x;a=5;b=10;x=200;c=POWER(a+b);x=x/POWER(a+b);d=MAX(a+6,b);PR( " c=%d,d=%d,x=%d n", c,d,x);(2)程序运行结果:(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河南省通许县丽星高级中学2024-2025学年高考语文试题倒计时模拟卷(3)含解析
- 西安交通大学城市学院《中国通史概要》2023-2024学年第二学期期末试卷
- 潍坊医学院《材料分析方法导论》2023-2024学年第二学期期末试卷
- 中南大学《工程光学基础》2023-2024学年第二学期期末试卷
- 博尔塔拉职业技术学院《编排设计》2023-2024学年第一学期期末试卷
- 聊城大学东昌学院《社区研究》2023-2024学年第二学期期末试卷
- 广西体育高等专科学校《外科学》2023-2024学年第一学期期末试卷
- 江西师范大学附中2025年高三三轮复习系列七出神入化7物理试题含解析
- 吉林外国语大学《学术写作与研究方法》2023-2024学年第一学期期末试卷
- 血流频谱对临床的应用
- 湖北省十一校2025届高三上学期第一次联考(一模)数学试题【含答案解析】
- 《动画速写(第3版)》中职全套教学课件
- 2025届新高考语文热点冲刺复习:新高考作文教学及备考策略
- 2025年安徽六安市“政录企用”人才引进工作招录300人高频重点提升(共500题)附带答案详解
- 2024年高速数据传输线项目可行性研究报告
- 慢性肾衰竭的护理病例讨论
- 铁路基础知识题库单选题100道及答案解析
- 小学家长及学生投诉处理制度
- 江苏省连云港市2024-2025学年高三上册开学摸底考英语试题(附答案)
- 新时代青年的使命与担当7
- 四年级语文下册第六单元【集体备课】(教材解读+教学设计)
评论
0/150
提交评论