北邮C++上机实验五.docx
一、 基础题1、 修改后代码如下#include<iostream>using namespace std;void f1(int x)for(int i=0;i<10;i+)xi=2*xi+1;if(i=5) /判定输出6个数字后换行cout<<xi<<endl;elsecout<<xi<<" "cout<<endl;void main()int a10;for(int i=0;i<10;i+)cin>>ai; /依次读取键盘输入的十个数字f1(a); /使用定义的f1函数2、修改后的程序如下#include<iostream>using namespace std;int f1(int x,int y);void main()int a=120,b=300,c=40;int d,e,f;d=f1(a,b);e=f1(d,c);cout<<"a="<<a<<endl;cout<<"b="<<b<<endl;cout<<"c="<<c<<endl;cout<<"三个数中的最大数为"<<e<<endl;int f1(int x,int y)return x>y?x:y;3、#include<iostream>using namespace std;int sum1(int a,int b) /定义并声明整型求和函数return a+b;double sum2(double x,double y,double z) /定义并声明双精度型求和函数return x+y+z;float sum3(float a,float b)return a+b;void main()cout<<"调用函数sum(int,int)的结果为:"<<sum(13,14)<<endl; /调用函数并输出返回值cout<<"调用函数sum(double,double,double)的结果为:"<<sum(1.32,1.14,1.018)<<endl;cout<<"调用函数sum(float,float)的结果为:"<<sum(12.7,34.78)<<endl;4、#include<iostream>using namespace std;int f1(int);void main()int x=5; / x 为auto型变量static int y; /y为static型变量y=y+f1(x);cout<<"x="<<x<<" "<<"y="<<y<<endl;y=y+f1(x);cout<<"x="<<x<<" "<<"y="<<y<<endl;static int x=12; / x 为static型变量int f1(int a) / x 为auto型变量static int y=300; /y为static型变量y=y+a;cout<<"x="<<x<<" "<<"y="<<y<<endl;return y;本程序的功能是比较各种全局和局部变量,以及不同存储类型的变量之间的区别使用5、该程序的功能是以此获得某个数各个位上的数字,再倒序逆转输出二、 编程题1、#include<iostream>using namespace std;void f(int a,int b) static int max;for(int i=1;i<=a;i+)if(!(i%b)max=i;cout<<max<<endl; void main()int m,n;cout<<"请输入被除数和除数"<<endl;cin>>m>>n;f(m,n);2、源程序如下#include<iostream>using namespace std;int factorial(int a) int factorial=1;if (a=1)return 1;elsefor(int i=1;i<a;i+)factorial=factorial*(i+1);return factorial;int f(int n)int fn;if(n=1)fn=1;elsefn=f(n-1)+factorial(n);return fn;void main()int n;cout<<"请输入阶乘n值"<<endl;cin>>n;cout<<f(n);3、源程序如下#include<iostream>using namespace std;void f(int n)char binary255;itoa(n,binary,2);cout<<"转化为二进制数为"<<binary<<endl;cout<<"转化为八进制数为"<<oct<<n<<endl;cout<<"转化为十六进制数为"<<hex<<n<<endl;void main()int n;cout<<"请输入一个数"<<endl;cin>>n;f(n);4、源程序如下#include<iostream>using namespace std;int f(int n)int fn;if (n=1)fn=1;else fn=f(n-1)+n*n;return fn;void main()int n;for(int m=1;m<35;m+)if(f(m)<1000)n=m;cout<<"满足条件的最大数为"<<n<<endl;5、源程序如下#include<iostream>using namespace std;float area(int r) float s; const float pi=3.14;s=pi*r*r;return s;int area(int a,int b)return a*b;void main()int a,b;cout<<"请输入长方形的长和宽:"cin>>a>>b;cout<<"其面积为:"<<area(a,b)<<endl;int r;cout<<"请输入圆的半径:"cin>>r;cout<<"其面积为:"<<area(r)<<endl;6、源程序如下#include <iostream>#include <fstream>#include <string>using namespace std;int main() fstream inputFile("test.txt", ios:in); if (inputFile.good() string bufffer; string resultStr; inputFile.seekg(ios:beg); while(!inputFile.eof() getline(inputFile, bufffer, 'n'); resultStr.append(bufffer); resultStr.append("rn"); inputFile.close(); fstream outputFile("result.txt", ios:app | ios:out); if (outputFile.good() outputFile.seekp(ios:beg); _strupr(const_cast<char*>(resultStr.c_str(); outputFile.write(resultStr.c_str(), resultStr.size(); outputFile.close(); system("pause"); return 0;7、源程序如下#include <iostream>#include <fstream>using namespace std;const int M=5;struct studentint num;char name20;long int tel;void main() student aM=0;ifstream ifile; ifile.open("1.txt"); for(int j=0;j<M;j+) ifile>>aj.num;ifile>>aj.name;ifile>>aj.tel;for(j=0;j<M;j+)cout<<aj.num<<endl;cout<<aj.name<<endl;cout<<aj.tel<<endl;ifile.close();