实验二

1.验证性实验部分
①函数声明和函数定义各自的作用及二者的区别:
函数声明就是调用函数之前提示一下有这个函数
函数定义就是写一个函数

②什么是形参?什么是实参?函数参数和返回值在函数中起到什么作用?
函数定义时写的参数叫做形参,这些参数只是给计算机看的,没有分配内存,没有具体的值。函数调用时写的参数叫做实参,这些参数要有意义,即分配了内存,有具体的值

③函数参数传递过程中,值传递和引用传递区别
值传递是只把对象的值传入函数,函数中可以使用这个值,但却无法更改该对象的值
引用传递是将整个对象本身(或地址)传入函数,在函数中既可调用对象的值,也可改变对象的值
2.编程实验部分

2-28(1)
 

#include<iostream>
using namespace std;
int main() {
cout << "Menu: A(dd) D(elete) S(ort) Q(uit),Select one:" << endl;
while (true){
char c;
cin >> c;
if (c == 'A') {
cout << "数据已经增加。" << endl;
continue;
}
else if (c == 'D') {
cout << "数据已经删除。" << endl;
continue;
}
else if (c == 'S') {
cout << "数据已经排序。" << endl;
continue;
}
if (c =='Q')
break;
return 0;
}
}

 
2-28(2)
 
#include<iostream>
using namespace std;
int main() {
    cout << "Menu: A(dd) D(elete) S(ort) Q(uit),Select one:" << endl;
      while (true){
        char c;
        cin >> c;
        switch (c) {
        case 'A':
            cout << "数据已经增加。" << endl;
            continue;
        case 'D':
            cout << "数据已经删除。" << endl;
            continue;
        case 'S':
            cout << "数据已经排序。" << endl;
            continue;
        case 'Q':
            return 0;
        }
    }
}

 

2-29(一)判断一个数为质数的算法:用一个循环找出这个数所有的因数,如果因数为2,即为1和它本身,则这个数是质数。

(二)(1)while 语句

 
#include<iostream>
using namespace std;
int main(){
    int a,i=2,j;
    while (i<=100)
    {
        a=1,j=2;
        while (j<=i) {
            if (i%j == 0) {
                a++;
            }j++;
        }
        if (a==2){
            cout << i << "  ";
        }
        i++;
    }
    return 0;
}
 
(2)for 语句
 
 
#include<iostream>
using namespace std;
int main() {
    int i, j, a;
    for (i = 2; i <=100; i++) {
        a = 1;
        for (j = 2; j <= i; j++){
            if (i%j == 0) {
                a++;
            }
        }
        if (a == 2) {
            cout << i << " ";
        }
    }return 0;
}
 
 
(3)do while 语句
复制代码
复制代码
#include<iostream>
using namespace std;
int main() {
    int i=2, j, a;
    do 
{ a = 1, j = 2; for (j = 2; j <= i; j++) { if (i%j == 0) { a++; } } if (a == 2) { cout << i << " "; } i++; } while (i <= 100); return 0; }
 
 

2-32(1) while 语句

 
 
#include <iostream>
using namespace std;
int main() {
    int i,n=65;//n为要猜的数,可修改n的值
    cout << "猜这个数:";
    cin >> i;
    while (true) {
        if (i != n) {
            if (i < n)
                cout << "小了" << endl;
            else
                cout << "大了" << endl;
        }
        else {
            cout << "猜对了!";
            break;
        }
        cin >> i;
    }
    return 0;
}
 
 

(2)do while 语句

 
 
#include <iostream>
using namespace std;
int main() {
    int i, n = 65;//n为要猜的数,可修改n的值
    cout << "猜这个数:";
    cin >> i;
    do {
        if (i != n) {
            if (i < n)
                cout << "小了" << endl;
            else
                cout << "大了" << endl;
        }
        else {
            cout << "猜对了!";
            break;
        }
        cin >> i;
    } while (true);
    return 0;
}
 
 

2-34(一)思路:参照书例3-9,用递归法计算

(二)

 
 
#include <iostream>
using namespace std;
int comm(int n, int k){
    if (k > n)
        return 0;
    else if (k == 0 || n == k)
        return 1;
    else
        return comm(n - 1, k) + comm(n - 1, k - 1);
}

int main(){
    int n, k;
    n = 5; k = 3 ;//五种颜色,摸三次
        cout << comm(n, k) << endl;
    return 0;
}
实验感想:这次实验让我觉得很吃力,我认为自己应该多加C++的练习
posted @ 2018-03-25 22:39  944105198  阅读(89)  评论(9编辑  收藏  举报