作者:大女人小诺 | 来源:互联网 | 2023-07-10 20:17
南京信息工程大学实验报告实验名称C++简单程序设计-2实验日期2018-3-20得分指导教师耿学华系计软院专业计嵌+软嵌年级2017级班次(1)姓名施昊阳学号
南京信息工程大学实验报告
实验名称 C++简单程序设计-2 实验日期 2018-3-20 得分 指导教师 耿学华 系 计软院 专业 计嵌+软嵌 年级 2017 级 班次 (1) 姓名 施昊阳 学号 20161334026
一、实验目的
- 理解和掌握 C++中函数的定义与使用方法
- 理解 C++中函数调用过程中值传递与引用传递的区别
- 灵活、综合运用 C++中分支结构、循环结构及 continue、break 等应用编程求解问题。
二、实验准备
实验前,请围绕以下内容预习/复习指定内容
- C++中函数的定义与使用方法
阅读、学习教材 3.1 节,学习/复习如下内容:
- 函数定义的语法形式;函数形参和实参、返回值的作用;函数调用形式;函数参
数传递方式(值传递和引用传递)
- 指定学习示例:第 3 章例 3-1,例 3-4,例 3-11,例 3-12
- C++中 if 语句、switch 语句、while 语句、do…while 语句的用法及其嵌套使用
- C++中 continue 语句、break 语句的用法
三、实验内容
- 验证性实验
- 运行教材 P68 例 3-4 源码,据此理解函数声明、函数定义、函数调用的方法,以
及形参、实参、返回值的作用,以及参数的值传递过程。
- 运行教材 P78 例 3-11 源码、P79 例 3-12 源码,观察二者运行结果的区别,结合
3.1.3 节的分析,理解并总结值传递和引用传递的区别
- 编程实验
用 c++编程实现以下内容:
- 习题 2-28(教材 P63)
- 习题 2-29(教材 P63)
- 习题 2-32(教材 P63)
- 习题 2-34(教材 P63)
四、实验结论
- 验证性实验部分
- 函数声明和函数定义各自的作用,二者的区别;
- 函数声明用于声明一个新的函数,可以将声明语句放在main函数之前,方便子函数之间的乱序调用,例如
int max(int a,int b);
- 函数定义是指对函数内容的具现,例如
int max(int a,int b){return a>b?a:b;}
- 两者区别在于函数声明只是告诉编译器有一个函数,并没有告知具体的参数调用,函数过程,返回值,而函数定义将函数声明不具备的元素完整的呈现给编译器。
- 什么是形参?什么是实参?函数参数和返回值在函数中起到什么作用?
- 形参指出现在函数定义中,只能在函数内使用的参数。
- 实参指出现在主调用函数中,进入被调用函数后不能使用的参数,在被调用函数运算结束后,实参的值不会发生改变
- 函数参数是指调用时该函数必须传递的参数,在函数中利用其实现算法
- 函数返回值在函数中起到返回函数算法结果的作用
- 函数参数传递过程中,值传递和引用传递区别是什么?
编程实验部分
2-28
else-if
#include
using namespace std;
int main(){
while(1){
char tmp;
cout<<"Menu:A(dd) D(elete) S(ort) Q(uit) Select One:"<>tmp;
if(tmp=='A'){cout<<"数据已经增加"<
switch-case
#include
using namespace std;
int main(){
while(1){
char tmp;
cout<<"Menu:A(dd) D(elete) S(ort) Q(uit) Select One:"<>tmp;
switch(tmp){
case 'A':cout<<"数据已经增加"<
Screenshot:
.
2-29
- 筛法求素数,对大于2的素数倍数设为合数,剩下的即是素数
Code:
#include
using namespace std;
int main(){
bool num[101]={0};
for(int i=2;i<=100;++i){
if(!num[i])for(int j=i*2;j<=100;j+=i)num[j]=1;
}
for(int i=1;i<=100;++i)if(!num[i])cout<
Screenshot:
![](https://img1.php1.cn/3cd4a/24c6f/9f3/2d27b3878d997c7c.jpeg)
2-32
while:
#include
using namespace std;
int main(){
srand((unsigned)time(NULL));
int n=rand()%100;
int guess=101;
while(guess!=n)
{
cin>>guess;
if(guessn)cout<<"Answer is smaller than ur guess number!"<
do-while:
#include
using namespace std;
int main(){
srand((unsigned)time(NULL));
int n=rand()%100;
int guess=101;
do{
cin>>guess;
if(guessn) cout<<"Answer is smaller than ur guess number!"<
Screenshot:
![](https://img1.php1.cn/3cd4a/24c6f/9f3/e686cad2dc478b9d.jpeg)
2-34
- 使用DFS模拟拿球,use数组存放使用情况,每次种类为:
,对每次模拟拿球结果累加,得到结果。
Code:
#include
#define rap(a,b) for(int a=0;a
- Screenshot:
五、实验总结与体会
- 值传递和地址引用是C++学习过程中最易混淆的概念,特别是函数调用参数是数组的情况下,需要特别注意。大牛博客中的解析
- 算法学习与数学密不可分,2-34中体现的即是统计学知识,概统与高数万万不可放弃
- 采用了新的CSS样式,补全了博客园markdown的一些不足