西南交通大学2012年面向对象程序设计(专业版 )Microsoft Word 文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西南交通大学2012年面向对象程序设计试题及答案
开发环境为VC++6.0,运行结果有截图,若发现错误欢迎指正。
实验一、C++程序开发环境及c++简单程序设计。
题目1、简单c++程序
任务:
按提示的操作步骤输入下面的代码,编译连接并执行。
源程序代码:
#include"iostream.h"
void main()
{ cout<<"Hello!\n";
cout<<"Welcome to c++!"< cout<<"This is my first c++ program"< } 运行结果: 题目2、 编写程序,从标准输入读入一个数,把它转化为英文单词输出,如输入123,这是输出“one two three”。 源程序代码: #include using namespace std; void main() { char ch; cout <<"请输入数字用来转化为英文单词:"; while(1) { cin>>ch;if(ch=='\n') break; switch(ch-48) { case 0:cout<<"zero "; break; case 1:cout <<"one "; break; case 2:cout <<"two "; break; case 3:cout <<"three ";break; case 4:cout <<"four "; break; case 5:cout <<"five "; break; case 6:cout <<"six "; break; case 7:cout <<"seven ";break; case 8:cout <<"eight ";break; case 9:cout <<"nine "; break; } } 运行结果: 题目3、循环结构程序设计 任务 把一张一元纸币换成一分、二分和五分的硬币,假如每一种至少一枚,文友多少种换法,编程将各种换法显示出来。 源程序代码: #include using namespace std; void main() { int i,j,k,x=0; cout<<"一角"<<"两角"<<"三角"< for(i=1;i<=93;i++) for(k=1;k<=47;k++) for(j=1;j<=19;j++) if(i+2*k+5*j==100) {x++;cout< cout<<"换法的总数为:"< } 运行结果: (由于种数太多截图不方便所以只截了最后的部分!)实验二、函数 题目1、内联函数 任务 (1)定义内敛函数max(),求两个整数中的最大值,然后在main()函数中惊醒调用 (2)定义内联函数inline-fun()和一般函数common-fun(),使整型参数值加1,然后在main()函数中惊醒调用; 源程序代码: #include using namespace std; inline int max(int x,int y); inline int inline_fun(int x); int common_fun(int x); void main() int x=4,y=5; cout< cout< cout< } inline int max(int x,int y) { if(x>y) return x; else return y; } inline int inline_fun(int x) { return ++x;} int common_fun(int x) { return ++x;} 运行结果: 题目2、函数参数的传递机制、重载函数 任务 (1)编写重载函数max1()可分别求2个整数、3个整数、2个双精度和3双精度数的最大值。 (2)定义两个名称都为sum()的函数,第一个函数支持整型数组,第二个函数支持浮点型数组,求数组元素的和。 源程序代码: #include using namespace std; int max1(int x,int y) { if(x>y) return x;else return y;} int max1(int x,int y,int z) { if(x>max1(y,z)) return x;else return max1(y,z); } double max1(double x,double y) { if(x>y) return x;else return y;} double max1(double x,double y,double z) { if(x>max1(y,z) ) return x;else return max1(y,z);} int sum(int *p,int n) { int i=0,s=0; for(;i s+=p[i]; return s; }