• 南京信息工程大学实验报告(二)


    四、实验结论
    1.验证性实验部分
    结合你自己的理解,以你自己的语言,提炼总结你对以下几点的认识和理解(可以借助图、表、手绘图画等一切你认为可以更清晰表达自己的方式):
    ① 函数声明和函数定义各自的作用,二者的区别;
    函数声明:告明用到哪一个函数。
    函数定义:函数的类型和具体内容。

    ② 什么是形参?什么是实参?函数参数和返回值在函数中起到什么作用?
    形参:函数被调用时用于接收实参值,用到的时候才分配内存,用完释放内存。离开函数体不能使用
    实参:有确定的值和分配的内存,在主函数中,被调函数中不能使用。

    ③ 函数参数传递过程中,值传递和引用传递区别是什么?
    值传递:用实参的值初始化形参,参数单项传递,之后形参的改变不会影响实参的值。
    引用传递:对形参的改变对主函数中的实参有效。
    2. 编程实验部分
    (1)习题2-28
    用switch

    include

    using namespace std;
    int main(){

    char a;
    cout<<"Menu:A(dd) D(elete) S(ort) Q(uit)"<<endl;
    cout<<"Select one:";
    cin>>a;
    switch(a){
        case 'A':cout<<"数据已增加"<<endl; break;
        case 'D':cout<<"数据已删除"<<endl; break;
        case 'S':cout<<"数据已排序"<<endl; break;
        case 'Q':break;		
    } 
    
    return 0;
    

    }

    用if……else break和continue

    include

    using namespace std;
    int main(){
    int i;
    char a;
    cout<<"Menu:A(dd) D(elete) S(ort) Q(uit)"<<endl;
    cout<<"Select one:";

    for (i=0;;i++){   //之前的错误 for(i=0;i++;)   
                     //i++ 是第三个条件,后面不应该有; 
        cin>>a;
    	    if (a!='Q'){
    		
    		    if (a=='A'){
    	           cout<<"数据已增加";continue;} 
        	    if (a=='D'){
    			   cout<<"数据已删除";continue;}
                if (a=='S'){
                cout<<"数据已排序";continue;}
            }
            else
                break;
    	 }
    return 0;
    

    }

    (2)习题2-29
    ①简洁描述「判断一个数为质数」的算法:如有整除,终止内部循环,外部进行下一次循环判断下一个数,如果内部循环中间没有终止说明只有1和本身可以整除,说明是质数,这时候j与i相等,那么输出这个数。
    ②源代码及运行结果截图
    用for

    include

    using namespace std;
    int main(){
    int i,j;

    for (i=2;i<101;i++)
    {
    	for(j=2;j<i;j++){
    		if (i%j==0){
    			break;
    		}
    	
        }
        
        if (j==i)
           cout<<i<<" ";		
    }
    return 0;
    

    }

    用while

    include

    using namespace std;
    int main(){
    int i=2,j=2;

    while (i<101)
    {
    	while(j<i)
    	{
    		if (i%j==0){
    			break;
    		}
    	   j++;
        }
        
        if (j==i){
    	
           cout<<i<<" ";}
    	i++;
    	j=2;		
    }
    return 0;
    

    }

    用do……while

    include

    using namespace std;
    int main(){
    int i=2,j=2;

    do{
        do{
        	if(i%j==0)
    		   break; 
    		
        	j++;
    	}while(j<i);
    	
    	if (j==i)
               cout<<i<<" ";
    	i++;
        j=2;
    }while(i<101);	    
       		
    
    return 0;
    

    }

    (3)习题2-32
    源代码及运行结果截图
    用do……while

    include

    include

    using namespace std;
    int main(){

    unsigned seed;
    short b;
    cin>>seed;
    srand(seed);
    int a=rand()%100;
    do {
       	cin>>b;
    	if (a>b)
           cout<<"小了";	
        if (a<b)
          cout<<"大了";
    
        }while(a!=b);     
        cout<<"随机数为:"<<a;
    return 0;
    

    }

    用while

    include

    include

    using namespace std;
    int main(){

    unsigned seed;
    short b;
    cin>>seed;
    srand(seed);
    int a=rand()%100;
    while(1) {
       	cin>>b;
       	if (a!=b){
    	   
    	    if (a>b)
               cout<<"小了";	
            else if (a<b)
               cout<<"大了";
    		}
        else  {
    	 cout<<"随机数为:"<<a; break;
       	}
    }    
      
    return 0;
    

    }

    (4)习题2-34
    ①简洁描述你的算法思路
    ②源代码及运行结果截图

    include

    include

    using namespace std;
    int comm(int n,int k){//递归
    if (k>n)
    return 0;
    else if (nk||k0)
    return 1;
    else
    return comm(n-1,k)+comm(n-1,k-1);//数学公式
    }
    int main(){
    int n,k;
    cout<<"输入小球颜色种类数和每次摸不同颜色球的个数:";
    cin>>n>>k;
    cout<<comm(n,k);
    return 0;
    }

    五、实验总结与体会
    结合你在本次实验中的收获、感受等,也可以是自己延伸自学及编程实践中的新收获、发现、思考,等等。
    循环的使用条件掌握的不好,对循环内部参数的变化掌握的也不是很清楚。
    1.For循环中三个条件,前两个条件后要加“;”
    2.而且一般第一个条件是将i的初值设定好了,每次循环都是这样,但是在while中一开始没有意识到,每一次循环后i的值变了,导致之后的每次循环初始值变了。
    3.break结束循环,continue结束本次循环,进行下一次。break循环和switch都可以用,continue只能在循环中使用。

    If条件
    1.每一个else都要和一个明确的if相对应,有时候加个{}可以很好的划分。

    枚举

    1. 枚举的每一个元素都可以赋值,第一个是0,第二个是1……并且可以进行运算。

    随机数

    1. rand随机数需要一个种子seed,不然每次seed都默认为1,随机数都会一样。
      问题:随机数的出现是不是在rand函数的数列中与seed的值对应位置的数?
      递归
      1.不会数学公式写递归真的很要命!
  • 相关阅读:
    JavaSE—集合框架
    JavaSE——集合框架
    RocketMq 在Netty 下是如何进行消息封装传输
    SpringBoot 初始化流程以及各种常见第三方配置的源码实现
    Java 重要知识点,踩过的坑
    Mysql 知识储备以及InnoDB
    java 编程英语单词,语句
    PlantUML
    Rocketmq broker 消息仓库
    AutowiredAnnotationBeanPostProcessor 的一些思考
  • 原文地址:https://www.cnblogs.com/zxy666/p/8646291.html
Copyright © 2020-2023  润新知