c++简单程序设计-2
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; }
实验总结与体会
这次实验花费的时间和精力都远远超过了上一次,上次还能仿写,而这次大多是按照自己的想法来编的。
虽然花了很久,但也不是没有收获,循环语句用得挺熟练了,之间的转化也是。
但欠缺的也很多,感觉自己写的代码还是有很多可以改进的地方的,但凭借现在的自己还是办不到的。
还是希望经过一次次的练习自己的技术能够更好吧。