您好,欢迎来到星星旅游。
搜索
您的当前位置:首页华东交通大学2002

华东交通大学2002

来源:星星旅游
华东交通大学2002-2003学年第二学期软件2002高达本考试卷

程序设计语言(C++) 课程 闭卷 必修 班级: 学号: 姓名: .

一、填空题(每空1分,共25分)。

1、抽象是通过从特定的实例中抽取共同的性质形成 (1) 的概念的过程。 2、面向对象的系统包含的三个要素是 (2) 、 (3) 、 (4) 。

3、在字长为32位的机器中,sizeof(char)= (5) 字节,sizeof(unsigned int)= (6) 字节.

4、C++语法规定,任何变量在使用前必须先 (7) ;变量有两个值,一个是变量 (8) ,另一个是变量

(9) 。

5、枚举是一种构造的数据类型,它是若干个有名字的 (10) 的集合。

6、C++中任何一个数组的名字是一个 (11) 指针,该指针的值是该数组 (12) 的地址。 7、C++中,&的优先级比&&的 (13) ;大多数运算符的结合性是从左到右的,只有 (14) 、 (1

5) 、 (16) 三类运算符的结合性是从右到左的。

8、函数的调用主要分为传值调用和_(17)_调用。传值调用又分为_(18)_调用、_(19)_调用,前者的

特点是____(20)______。

9、函数重载时要求同名函数的_(21)_或_(22)_不同,否则无法确定是哪个函数。

10、静态数据成员是类的所有对象中的_(23)_成员,而非静态数据成员是属于_(24)_对象的;静态成

员函数可以通过_(25)_来引用静非态数据成员。

二、判断题(每小题1.5分,共15分)

1、在说明语句 int a(15),&b=a,*p=&a;中,b的值的*P的是不相等的。( )

2、已知:int a(5),b(10); 表达式++a+b++有二义性。( )

3、在不同类型操作数组成的表达式中,其表达式的类型一定是最高类型double型。( )

4、break语句也可以用于if体内,它可退出if语句。( )

5、在一个被调用函数中,一个return语句可返回多个值给调用函数。( ) 6、在传值调用中,要求实参和形参的类型完全一致并且个数相等。( )

7、for循环中,循环变量的作用域是该循环的循环体内。( )

8、所谓私有成员是指只有类中所提供的成员函数才能直接访问它们,任何类以外的函数对它们的访问都是

非法的。( )

9、const char *p说明了p是指向字符串的常量指针。( ) 10、私有继承中,基类中所有成员对派生类的对象都是不可见的。( ) 三、写出程序的运行结果(1~9每小题3分,第10小题6分,共33分)

1、#include

void main()

{

int a,b,c,d(5); c=2,c+=10; a =b=10; a * = 2; b / = 2; c % = 2;

cout<}

2、#include

void main()

{

int a = 50 , b(0) ;

b = ++a;

cout<b = a++;

cout<}

3、#include

void main()

{

int f = 2002 , x;

if( f != 3) x = 2003 ;

else x = 20 ;

cout<}

4、#include

void main()

{

int i=1,sum=0; while(i<=10) sum+ = ++i;

cout << \"sum=\" << sum << \i=\" << i<}

5、#include

void main()

{ int i;

for(i=4 ; i<=10 ; i++ ) { if (i%3==0) continue;

cout<}

6、#include

void main()

{

char flag='c' ; switch(flag)

{

case 'a' :cout<<\"1\"<} }

7、#include

void main()

{

static int b[][3] = { {1,2,3},{4},{5,6} };

b[0][2]=12,b[1][2]=18;

cout << **b<<\"\\"<<**(b+1) <<\"\\"<<**(b+1)<<\"\\"<<*(*(b+1)+2) <<\"\\n\";

cout << b[0][2]+b[1][2]+b[2][2]<< endl;

}

8、#include void Swap( int &a, int & b);

void main()

{

int x( 10 ), y( 7 );

cout<<\"x=\"<Swap( x , y );

cout<<\"x=\"<}

void Swap(int & a, int & b)

{ int temp; temp = a ; a=b ; b=temp ; }

9、#include int add(int a, int b);

void main()

{

extern int x, y; cout<}

int x(50),y(100); int add(int a, int b) { int s=a+b ; return s; } 10、#include

class A { public:

A(); A(int i,int j);

~A(){cout<<\"Donstructor.\\n\";}

void print(); private: int a,b; }; A::A()

{ a=b=10;cout<<\"Default constructor.\\n\";}

A::A(int i,int j)

{ a=i,b=j;cout<<\"Constructor.\\n\";}

void A::print()

{cout<<\"a=\"<void main()

{

A m,n(15,18); m.print(); n.print();

}

四、编程题(第1小题17分,第2小题10分,共27分)

1、从键盘上输入4个学生3门功课的成绩(用二维数组存放)和学生姓名(用一维数组存放),按下列要

求编程:

①求出每个学生的总分;②求出每门课程的平均分;③调用函数实现排序,之后按总分的升序,分别输出

每个学生的姓名、总分及各科成绩。

2、定义一个处理日期的类TDate,它有3个私有数据成员:Month,Day,Year和若干个公有成员函数,并实现如下要求:①构造函数重载;②成员函数设置缺省参数;③定义一个友元函数来打印日期;④定义一

个静态成员函数打印日期;⑤可使用不同的构造函数来创建不同的对象。

华东交通大学2002-2003学年第二学期软件2002高达本考试卷答题卡

班级: 学号: 姓名: . 一、真空题(每空1分,共25分)

(1) 一般化 (2) 类 (3) 对象 (4) 继承 (5) 1 (6) 4 (7) 定义 (8) 本身的值 (9) 地址值 (10) 整型常量 (11) 常量 (12) 首元素

(13) 高 (14) 单目 (15) 三目 (16) 赋值 (17) 引用 (18) 传值

(19) 传址 (20) 形参值的改变不影响实参 (21) 参数的个数不同 (22) 参数的类型不同 (23) 共享(公共) (24) 具体(某个)

(25) 对象

二、判断题(每小题1.5分,共15分) (1) × (2) × (3) × (4) × (5) × (6) × (7) × (8) × (9) × (10) √

三、写出程序的运行结果(1~9每小题3分,第10小题6分,共33分)

(1) 20,5,0 (2) 51,51

52,51

(3) 2002,2003 (4) sum=65,i=11

(5) 457810 (6) 3

4

(7) 1 4 4 18 30 (8) x=10,y=7

x=7,y=10

(9) 150 (10) Default constructor

Constructor a=10,b=10 a=15,b=18 Destructor Destructor

四、编程题(第1小题17分,第2小题10分,共27分)

1、#include char xh[4]; //放四个学生的姓名

double score[4][3]; //放四个学生三门课的成绩 double ave_score[3]={0,0,0}; //放三门课程的平均成绩 double sum_score[4]={0,0,0,0}; //分别放四个学生的总成绩

double temp1; //用于交换总分的临时变量 char temp2; //用于交换姓名的临时变量 double s0,s1,s2; //用于交换三门课程的临时变量

void bsort(); //函数说明

void main()

{ /*输入每个学生学号及三门课程的成绩*/

int i,j;

cout<<\"输入每个学生学号及三门课程的成绩:\\n\";

for(i=0;i<4;i++)

{ cin>>xh[i]; for(j=0;j<3;j++) cin>>score[i][j];

}

/*统计每个学生的总成绩*/

for(i=0;i<4;i++) for(int j=0;j<3;j++) sum_score[i]+=score[i][j]; /*统计三门课程的平均成绩*/

for(i=0;i<3;i++)

{

for(int j=0;j<4;j++) ave_score[i]+=score[j][i]; ave_score[i]=ave_score[i]/4.0;

}

/*输出学号、每门课程成绩及总分及相应课程的平均分*/ cout<<\"学号\课程1\课程2\课程3\总分\"<for(i=0;i<4;i++)

cout<<cout<<\"\\"<bsort(); //调用排序

cout<<\"排序后学生的姓名、总分及各科成绩:\"<for(i=0;i<4;i++)

cout<<<\"\\"<{

for(int i=1;i<4;i++) for(int j=0;j<4-i;j++)

{

if(sum_score[j]>sum_score[j+1])

{

temp1=sum_score[j]; //交换总分 sum_score[j]=sum_score[j+1]; sum_score[j+1]=temp1; temp2=xh[j]; //交换姓名

xh[j]=xh[j+1]; xh[j+1]=temp2;

s0=score[j][0];//交换第一门课的成绩

score[j][0]=score[j+1][0];

score[j+1][0]=s0;

s1=score[j][1];//交换第二门课的成绩

score[j][1]=score[j+1][1];

score[j+1][1]=s1;

s2=score[j][2];//交换第三门课的成绩

score[j][2]=score[j+1][2];

score[j+1][2]=s2;

} } }

2、#include

class TDate

{ public:

TDate () //Test函数重载 { Year=1990;Month=1;Day=1; }

Test(int y,int m=1,int d=1) //成员函数设置缺省参数

{ Year=y;Month=m;Day=d; }

friend void Print(TDate & obj); //友元函数来打印日期

private:

int Month,Day,Year; //3个私有数据成员

};

void Print(TDate & obj)

{

cout<} void main()

{

TDate a1,a2(2003,7,8); //不同的构造函数来创建不同的对象。

Print(a1); Print(a2);

}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- stra.cn 版权所有 赣ICP备2024042791号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务