C++实验六 函数
更新时间:2024-05-29 15:54:01 阅读量: 综合文库 文档下载
- 数据库实验六推荐度:
- 相关推荐
实验名称:实验六 函数
班级 学号 姓名
实验地点 完成日期 成绩
(一)实验目的与要求
1.掌握高级语言中定义和使用函数的方法; 2.掌握通过“值传送”调用函数的方法; 3. 掌握函数的嵌套调用和递归函数的设计方法;
4.进一步练习阅读检查与调试修改高级语言程序的方法。 (二)实验内容
1.调试运行如下二程序,分析调用函数前后程序1中a,b这二个变量的值是否发生改变?为什么?程序2中数组a的二个元素的值是否发生改变?为什么? 程序1(变量作函数实参)
int main( ) {
int a=3,b=6;
printf(\n\exchange1(a,b);
printf(\n\return 0; }
void exchange1(int x,int y) { int t; t=x;x=y;y=t;
printf(\n\}
程序2(数组名作函数实参) int main( ) {
void exchange2(int x[2]); static int a[2]={3,6};
printf(\n\ exchange2(a);
printf(\n\return 0; }
void exchange2(int x[2]) { int t;
t=x[0];x[0]=x[1];x[1]=t;
printf(\n\}
2. 写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。
本程序应当准备以下测试数据:17、2、1。分别输入数据,运行程序并检查结果是否正确。
3. 编写转换函数,将十进制整数n(-2^31<=n<=2^31-1)转换成k(2<=k<=16)进制数。字母请使用大写。(HLOJ 8001) (三)实验具体步骤
1.调试运行如下二程序,分析调用函数前后程序1中a,b这二个变量的值是否发生改变?为什么?程序2中数组a的二个元素的值是否发生改变?为什么? 程序1(变量作函数实参)
int main( ) {
int a=3,b=6;
printf(\n\exchange1(a,b);
printf(\n\return 0; }
void exchange1(int x,int y) { int t; t=x;x=y;y=t;
printf(\n\}
程序2(数组名作函数实参) int main( ) {
void exchange2(int x[2]); static int a[2]={3,6};
printf(\n\ exchange2(a);
printf(\n\return 0; }
void exchange2(int x[2]) { int t;
t=x[0];x[0]=x[1];x[1]=t;
printf(\n\}
答:在调用函数前后程序1中a,b二变量的值没有改变。因为变量作函数实参的时候,是实参a,b将值赋给了形参x,y,是“值传递”方式。数据传递的方向是从实参传到形参,单向传递。程序2中数组a的二元素的值有发生改变。因为用数组名做函数实数时,向形参传递的是数组首元素的地址。
2. 写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。
本程序应当准备以下测试数据:17、2、1。分别输入数据,运行程序并检查结果是否正确。
解题思路:
首先,通过分析题目,自己定义一个函数来判别素数,如果是,则输出“YES”,否则输出“NO”,然后在下面把自己定义的函数写出来,进行for循环,如果n可以整除1和它本身以外的任意一个比它小的数,那么它不是素数,特别要注意的是,当n=1时,要注明1不是素数。
关键代码: int main() { int prime(int); int n; while(scanf(\ { if(prime(n)) printf(\
else printf(\ } return 0; }
int prime(int n) { int flag=1,i; for(i=2;i<=n/2&&flag==1;i++) if(n%i==0) flag=0; if(n==1) flag=0; return(flag); }
3. 编写转换函数,将十进制整数n(-2^31<=n<=2^31-1)转换成k(2<=k<=16)进制数。字母请使用大写。(HLOJ 8001)
解题思路:
首先要先搞懂进制转换的原理,先对给予的数进行短除取余直到零,然后把余数倒着写出来,此外,特别要注意的是,对于10、11、12、13、14、15等需要用大写字母A、B、C、D、E、F进行代换。
关键代码: int main() { int exchange(int n,int k); int T,t,n,k; scanf(\ for(t=0;t int exchange(int n,int k) { int i,j=0; int a[1000]; if(n<0) { } n=-n; printf(\} if(n==0) printf(\while(n>0) { a[j]=n%k; n=n/k; j++; } for(i=j-1;i>=0;i--) { if(a[i]==10) printf(\ else if(a[i]==11) printf(\ else if(a[i]==12) printf(\ else if(a[i]==13) printf(\ else if(a[i]==14) printf(\ else if(a[i]==15) printf(\ else printf(\} printf(\return 1; (四)实验结果 1.调试运行如下二程序,分析调用函数前后程序1中a,b这二个变量的值是否发生改变?为什么?程序2中数组a的二个元素的值是否发生改变?为什么? 程序1(变量作函数实参) int main( ) { int a=3,b=6; printf(\n\exchange1(a,b); printf(\n\return 0; } void exchange1(int x,int y) { int t; t=x;x=y;y=t; printf(\n\} 程序2(数组名作函数实参) int main( ) { void exchange2(int x[2]); static int a[2]={3,6}; printf(\n\ exchange2(a); printf(\n\return 0; } void exchange2(int x[2]) { int t; t=x[0];x[0]=x[1];x[1]=t; printf(\n\} 程序1(变量作函数实参) 程序2(数组名作函数实参) 2. 写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。 本程序应当准备以下测试数据:17、2、1。分别输入数据,运行程序并检查结果是否正确。 3. 编写转换函数,将十进制整数n(-2^31<=n<=2^31-1)转换成k(2<=k<=16)进制数。字母请使用大写。(HLOJ 8001) (五)收获与体会 在做第一题的时候,那时候直接把程序复制进去,再建立程序的过程中,不断的提示错误,后来是在老师的提醒下才成功的,然后看到结果后思索了下,就想明白了。在做第二题的时候,由于之前做过求素数的问题,所以就套用下函数的格式之类的就能做了,没有编程上的问题。在做第三题的时候,是在老师的提示下,知道了进制转换的原理才做出来的。 做了这次的实验报告,有一点值得肯定的是,对于函数有更加深刻的了解。尤其是第一题让我明白了变量作函数实参和数组名作函数实参的区别。这几题做下来最大的感受还是让我觉得做题的思路和题目所用的原理是编程的基础。尤其是第三题,如果你连进制转换是怎么来的都不知道的话那谈何编程呢。
正在阅读:
C++实验六 函数05-29
六年级小升初数学综合应用题12-04
2015新生儿培训试题01-26
2017高三教学质量检测试卷12-01
黑龙江省哈尔滨市第六中学2018 - 2019学年高一物理下学期期末考03-29
小学数学概念1-6年级汇总讲解03-08
我身边的好老师作文七百字03-23
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- C++
- 函数
- 实验
- 2016年中考英语模拟试题分类汇编:情景交际
- 大关县职业高级中学09高三地理上学期联考试卷
- 阶段练习题
- 数学必修1教案
- 融资租赁项目投资商业计划书
- 年产200万平方米渗花砖陶瓷工厂设计开题报告--黄亚丽
- 江苏省前黄高级中学与姜堰中学高二物理下学期联合考试试题
- 九年一贯制学校课程整合与校本化实施研究 - 图文
- 绿豆, 菌落, 研究 - 图文
- 施工组织设计
- 《发现春天、感受春天》研究课题名称(钟英明)
- 制造基础习题及答案1-3章要点
- 英语打招呼幽默用语
- 关于中小学校课堂教学效率提高问题的思考
- 热处理课程设计课程设计
- 加快少数民族和民族地区经济发展问题的思考.
- 学校精细化管理实施细则
- 2017年上海市虹口区高三一模语文试题(附答案)
- XXXX银行XXX管理系统应急预案v1.0
- 2013年企业内部控制知识竞赛100试题及答案