- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 - 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
 - 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
 - 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
 - 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
 
                        查看更多
                        
                    
                实验6函数习题及答案
                    实验6  函数
班级:		学号:			姓名:		日期:			一、实验目的
(1)掌握定义函数的方法;
(2)掌握函数实参与形参的对应关系,以及“值传递”的方式;
(3)掌握函数的嵌套调用和递归调用的方法;
(4)掌握全局变量和局部变量、动态变量和静态变量的概念和使用方法;
(5)学习对多文件的程序编译和运行。
二、实验内容
1.阅读下面程序,写出程序运行结果,并且上机进行验证。
(1)a1.cpp
变量的虚实耦合,实现的是值传递,是单向传递
#include stdio.h
int swap(int a,int b)
{
	int c,s;
	c=a;
	a=b;
	b=c;
	s=a+b;
	return s;
}
void main()
{
	int a,b,s;
	a=3;b=4;
	s=swap(a,b);
	printf(a=%d b=%d s=%d\n,a,b,s);
}
 
(2)a2.cpp
将十进制数26的各位数字相乘
#include stdio.h
int fun(int num)
{
	int k=1;
	do
	{
		k*=num %10;     /
		num/=10;
	}while(num);
	return(k);
}
void main()
{
	int n=26;
	printf(%d\n,fun(n));
}
 
(3)a3.cpp
变量的作用域,当在函数内定义了与全局变量同名的局部变量时,全局变量被屏蔽
#include stdio.h
int a=3,b=5,c;
void f(int b)
{
	c=a+b;
	printf(%d %d %d\n,a,b,c);
}
void main()
{
	int a=8;
	f(3);
	printf(%d %d %d\n,a,b,c);
}
 
(4)a4.cpp
递归,将十进制11转换为二进制
#include stdio.h
void dtob(int n)
{
	int i;
	if(n1)
	{  
		i=n%2;
		dtob(n/2);
	}
	else 
		i=n;
	printf(%d,i);
}
void main()
{
	int i=11;
	printf(%d-,i);
	dtob(i);
	printf((2)\n);
}
  
(5)a5.cpp
静态变量,求1到4的阶乘
#include stdio.h
int f1(int n)
{
	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);
}
 
2.程序填空(根据题意在空白处填入适当的内容,使程序变得完整。并上机进行调试验证)
(1)b1.cpp
程序说明:下面程序将输入的十进制数n 转换为b 进制数,并将转换结果输出。转换的方法是:除b 取余法。
#include stdio.h
void transfer(int m,int k)
{
	int a[20],i;
	for(i=0; m; i++)      //当商m为0时,循环结束,否则继续循环
	{ 
		a[i]=m % k;     //将m对k的余数存放在数字a中
		m/=k;          //m=m/k,即将m除k的商放在m中
	}
	for(i--;i=0;i--)
		printf(%d,a[i]);
	printf(\n);
}
void main()
{
	int b,n;
	scanf(%d%d, b,n);
   transfer(n, b);
}
 
(2)b2.cpp
程序说明:歌德巴赫猜想指出:任何一个充分大的偶数都可以表示为两个素数之和,例如4=2+2 6=3+3 8=3+5… 50=3+47。下面程序将4-50 之间的所有偶数用两个素数之和表示,判断一个整数是否为素数用函数prime 完成。
#include stdio.h
int prime(int x)        //判断x是否为素数,如果x为素数,则返回1,否则返回0
{
	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;
	for(m=4;m=50;m=m+2)
		for(n=2;nm-1;n++)
			if(prime(n)  prime(m-n))     //如果n和m-n均为素数,则prime(n)和prime(m-n)返回的
                您可能关注的文档
最近下载
- 2025年2季度5G产业和市场发展报告-TD产业联盟.pptx VIP
 - 基于plc的中央空调控制系统设计.docx VIP
 - 2017年11月浙江卷(健忘妈妈趣事)-2022年新高考英语读后续写历年真题解析(40张精品课件).pptx VIP
 - 2023年资料员资格考试题库答案下载.docx
 - 2025年中考数学总复习《二次函数的实际应用》专项测试卷(附答案).docx VIP
 - 2025年护理核心制度考核试题(附答案).docx
 - 超星尔雅学习通《中华传统文化之文学瑰宝》2021章节测试答案.docx VIP
 - RAZ-D分级阅读学前英语绘本Pillow Fort Password(可打印成册).pdf
 - 《赤壁》PPT下载一等奖新优质课比赛公开课获奖.ppt VIP
 - 论语 原文版精校 可直接打印.pdf VIP
 
原创力文档
                        

文档评论(0)