西南交通大学2012年面向对象程序设计(专业版 )Microsoft Word 文档

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;

}

相关文档
最新文档