实验06函数编译预处理

上传人:博****1 文档编号:496601891 上传时间:2023-10-26 格式:DOC 页数:20 大小:463.50KB
返回 下载 相关 举报
实验06函数编译预处理_第1页
第1页 / 共20页
实验06函数编译预处理_第2页
第2页 / 共20页
实验06函数编译预处理_第3页
第3页 / 共20页
实验06函数编译预处理_第4页
第4页 / 共20页
实验06函数编译预处理_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《实验06函数编译预处理》由会员分享,可在线阅读,更多相关《实验06函数编译预处理(20页珍藏版)》请在金锄头文库上搜索。

1、 班级:B12数信班 某:岁梦学号:1205025106实验6函数、编译预处理实验目的:1掌握函数的定义、函数的说明和调用方法;2掌握函数实参与形参的对应关系以及“值传递”的方式和函数值的正确返回;3掌握函数的嵌套调用和递归调用的方法;4掌握数组做函数参数的用法;5掌握全局变量、局部变量、动态变量、静态变量的概念和使用方法;6掌握宏定义、文件包含处理和条件编译的方法;7学习对多文件程序的编译和运行。实验内容:1程序阅读理解训练。1) 输入并运行下面的程序,分析输出的结果。#include void try(int,int,int);void main( ) int x=2,y=3,z=4;pr

2、intf(1) x=%d y=%d z=%dn,x,y,z);try(x,y,z);printf(4) x=%d y=%d z=%dn,x,y,z);void try(int x,int y,int z)printf(2) x=%d y=%d z=%dn,x,y,z);z=x+y;x=x*x;y=y*y;printf(3) x=%d y=%d z=%dn,x,y,z);2) 输入并运行下面的程序,分析输出的结果。#include void swap(int,int);void main( ) int x=10,y=20;printf(1) x=%d y=%dn,x,y);swap(x,y);p

3、rintf(4) x=%d y=%dn,x,y);void swap(int a,int b)int t;printf(2) a=%d b=%dn,a,b);t=a;a=b;b=t;printf(3) a=%d b=%dn,a,b);3) 输入并运行下面的程序,分析输出的结果。#include int a=3,b=5,c; void f(int b)c=a+b;printf(%d %d %dn,a,b,c); void main()int a=8;f(3);printf(%d %d %dn,a,b,c); 4) 输入并运行下面的程序,分析输出的结果。#include int f1(int n)

4、 static int f=1; f=f*n; return(f); void main() int i; for(i=1;i=4;i+) printf(%5d,f1(i); printf(n);5) 输入并运行下面的程序,说明程序及其ispring函数的功能。运行程序时,分别输入数据:17、34、2,1、0,检查结果是否正确,如果结果不正确,请修改。(熟练掌握该程序)#include int isprime(int);void main( ) int x;printf(Enter a integer number:);scanf(%d,&x);if(isprime(x)printf(%d i

5、s prime.n,x);elseprintf(%d is not prime.n,x);int isprime(int a)int i;for(i=2;i=sqrt(double)a);i+)if(a%i=0)return 0;return 1;6) 输入并运行下面的程序,说明函数fun的功能。#include int fun(int num)int k=1; dok*=num%10;num/=10;while(num);return k; void main()int n=26;printf(%dn,fun(n);思考:如果将函数fun中的变量k初始化为0,并将语句“k*=num%10;”

6、改为“k+=num%10;”,函数fun的功能变为什么?7) 输入并运行下面的程序,说明函数fun的功能。(熟练掌握该程序)#include void dtob(int n) int i; if(n1)i=n%2;dtob(n/2); elsei=n;printf(%d,i); void main() int i=11; printf(%d-,i); dtob(i); printf(2)n); 2程序填空(根据题意在空白处填入适当的内容,使程序变得完整,并上机进行调试验证) 1) 程序说明:下面程序将输入的十进制数 n 转换为 b 进制数,并将转换结果输出。转换的方法是:除 b 取余法。#in

7、clude stdio.h void transfer(int m,int k) int a20,i; for(i=0; m; i+) ai=;m/=k; for(;i=0;i-)printf(%d,ai); void main() int b,n; scanf(%d%d,); ;修改:#include stdio.h void transfer(int m,int k) int a20=0,i; for(i=0; i=0;i-)printf(%d,ai); void main() int b,n; scanf(%d%d,&b,&n); transfer(n,b);2) 程序说明:歌德巴赫猜想

8、指出:任何一个充分大的偶数都可以表示为两个素数之和,例如 4=2+2 6=3+3 8=3+550=3+47。下面程序将 4-50 之间的所有偶数用两个素数之和表示,判断一个整数是否为素数用函数 prime 完成。#include stdio.h int prime(int x)int k,flag=1; for(k=2;k=x/2;k+) if() flag=0; break; return(); void main() int m,n,k; for(m=4;m=50;m+) for(n=2;nm-1;n+) if(prime(n)&) printf(%d=%d+%dn,);break; 修改

9、:#include stdio.h int prime(int x)int k,flag=1; for(k=2;k=x/2;k+) if(x%k=0) flag=0; break; return(flag); void main() int m,n,k; for(m=4;m=50;m+) for(n=2;nm-1;n+) if(prime(n)&prime(m-n) printf(%d=%d+%dn,m,n,m-n);break; 3) 程序说明:用一个一维数组存放 10 个学生的成绩,写一个函数求出平均分、最高分和最低分。#include stdio.h float max=0;min=0;

10、 float average(float score,int n) int i; float ave,sum=score0; max=min=; for(i=1;imax) max=scorei; else if()min=scorei; sum=sum+scorei; ave=sum/10; return ; void main() float ave,score10; int i; for(i=0;i10;i+) scanf(%f, ); ave=average();printf(max=%6.2f min=%6.2f average=%6.2fn,max,min,ave); 修改:#in

11、clude stdio.h float max=0,min=0; float average(float score,int n) int i; float ave,sum=score0; max=min=score0; for(i=1;imax) max=scorei; else if(scoreimin)min=scorei; sum=sum+scorei; ave=sum/10; return ave; void main() float ave,score10; int i; for(i=0;i10;i+) scanf(%f,&scorei); ave=average(score,10

12、); printf(max=%6.2f min=%6.2f average=%6.2fn,max,min,ave); 4) 程序说明:在主函数中读入一字符串,再读入一字符,然后调用函数delete在字符串中查找并删除该字符,最后输出该字符串。#include stdio.h void delete(char p,char ch)int i=0,j;while() if(pi=ch)for(j=i;j;j+)pi=pi+1;elsei+; void main() char p80,ch;int i=0,j;scanf(%s,p);scanf(%c,&ch);delete();printf(%s,); 修改:#incl

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号