实验1 C++基础
来源:互联网 发布:淘宝买家可以贷款吗 编辑:程序博客网 时间:2024/05/16 07:46
1.实验目的和要求
目的:快速掌握C++语言编程的方法,了解C++的增强功能,主要内容有:(1)输入流、输出流的使用;(2)重载、默认参数;(3)引用;(4)new和delete运算符分配内存。
2.实验内容:
(1) 编写一个用输入和输出流运算符进行的输入和输出的程序。从键盘输入两个数,分别对两个数进行加,减,乘和除的运算。并输出计算结果,如: 23+123=146。
#include<iostream>using namespace std;int main(){ double a,b; cout<<"输入两个数"<<endl; cin>>a>>b; cout<<"a+b="<<(a+b)<<endl; cout<<"a-b="<<(a-b)<<endl; cout<<"a*b="<<(a*b)<<endl; if(b==0) cout<<"ERROR,除数不能为0"<<endl; else cout<<"a/b="<<(a/b)<<endl; return 0;}
(2) 用new和delete运算符动态分配内存空间的方法编写程序。从键盘输入3´3整型数组的数据,并计算出所有元素之和,打印出最大值和最小值。输入输出要用流运算符实现。
#include<iostream>using namespace std;int main(){ int **a=(int**)new int*[3];//申请空间 for(int i=0;i<3;i++) a[i]=new int[3];//申请行空间 cout<<"输入9(3*3)个整数"<<endl; for(int i=0;i<3;i++) for(int j=0;j<3;j++) cin>>a[i][j]; int max=a[0][0],min=a[0][0],sum=0; for(int i=0;i<3;i++) for(int j=0;j<3;j++) { sum+=a[i][j]; if(max<a[i][j]) max=a[i][j]; if(min>a[i][j]) min=a[i][j]; } cout<<"sum="<<sum<<endl; cout<<"max="<<max<<endl; cout<<"min="<<min<<endl; delete []a;}
(3) 编写C++风格的程序,解决百钱问题:将1元人民币兑换成1,2,5分的人民币,有多少种换法?
#include<iostream>using namespace std;int main(){ int i,j,k; int count=0; for(i=0; i*5<=100; i++) for(j=0; j*2<=100; j++) for(k=0; k<=100; k++) { if(i*5+j*2+k==100) { cout<<"5 fen:"<<i<<" 2 fen:"<<j<<" 1 fen:"<<k<<endl; count++; } } cout<<"共有阅换方法 "<<count<<" 种"<<endl; return 0;}
(4) 在主函数中定义2个整型元素a,b,用引用作函数参数的方法,在函数void swap(int & x, int & y)中实现将数据交换存放,并在主函数中打印出来。
#include<iostream>using namespace std;void swap(int &x,int &y)//函数形参为引用{ int temp; temp=x; x=y; y=temp;}int main(){ int a=5,b=10; int &x=a,&y=b;//引用声明是必须进行初始化 cout<<"a="<<a<<" b="<<b<<endl; cout<<"After swap"<<endl; swap(x,y); cout<<"a="<<a<<" b="<<b<<endl; return 0;}
(5) 假设我们班有50名同学,每个同学都报出自己的生日, 每个同学的生日都不相重的概率只有0.0296,如果有100个同学,不相重的概率为3.0725´10-7。相重复的概率如此之大与我们主观想象不同。写一个程序,输入同学的人数n计算出其生日不重复的概率。然后在用彷真的方法, 利用随机数产生每个同学的生日,计算出生日不重复的概率并与前面的结果进行比较。
[学生的生日可以用随机数产生,rand()产生0—32767之间的伪随机数,因为此需要一个种子,种子不同产生的随机数列不同,rand()产生的随机数也不同,可以调用srand(longint *)函数设置种子,比如我们可以获得计算机中的时间获得随机数种子, 以上函数需要包含头文件 stdlib.h]
#include<iostream>#include<stdlib.h>//使用rand()所需头文件using namespace std;int Judge(int *a,int n)//判断生日是否有重复的{ for(int i=0;i<n;i++) for(int j=i+1;j<n;j++) { if(a[i]==a[j]) return 1; } return 0;}int main(){ int n; cout<<"输入同学人数"<<endl; cin>>n; int *birthday=new int[n]; long times=1000000; double count=0; for(int k=0;k<times;k++) { for(int i=0; i<n; i++) { birthday[i]=rand()%365+1;//随机产生生日 } count+=Judge(birthday,n); } cout<<"生日不重复的概率为:"<<1-(count/times)<<endl;}
- 实验1 C++基础
- 实验一 计算机网络基础实验报告1
- C程序设计实验1
- [ACM实验]程序设计基础(1)
- J2EE实验1:WEB基础
- C++第1次实验(基础班)—初识C++(项目二2)
- C++第1次实验(基础班)—初识C++(项目二3)
- C-1-C基础
- tiny6410裸机实验第1章--------------ARM汇编和编程基础(C与ARM汇编混合编程)
- C++第1次实验(基础班)—初识C++【项目3-简单分支问题体验】
- Java基础实验1-猜数字
- C#编程基础 实验(1)
- ARM-PLC2200实验箱基础学习-1
- ZigBee基础实验(三)--定时器1
- 【Linux】实验楼笔记1-linux基础
- 【哈工大C作业实验】:13-1作业题
- c++-实验6--项目1-数组操作
- c语言结构体实验记录1
- 一个多矢量融合式DDoS攻击的实例
- 波士顿爆炸案Redkit漏洞利用包解析
- Log4j打成jar包后不起作用
- 下一代防火墙究竟是谁的菜
- [Leetcode]combination
- 实验1 C++基础
- MySQL性能优化的最佳20+条经验
- TP-LINK无线路由器当无线AP(无线交换机)使用,怎么设置?
- android学习笔记---49_屏幕适配,根据不同手机屏幕大小适配软件界面
- Posix多线程编程学习笔记(一)
- 初步加载了场景中一些模型
- A + B for you again + KMP
- 内核模式 vs 用户模式
- surfer 8 scripter 学习笔记(6)其它几个常用的对象