首页>自考>历年真题>2012年自考真题>正文
2012年1月自考试题:C++程序设计

www.zige365.com 2012-3-19 11:52:39 点击:发送给好友 和学友门交流一下 收藏到我的会员中心

四、完成程序题(本大题共5小题,每小题4分,共20分)

46.在下面程序的下划线处填上正确的语句,使其得到下面的输出结果。

x=2y=3

#include<iostream.h>

class Sample

{

int xy

public

Sample( ){

x=y=0

}

Sample(int aint b){

x=a

(__________)

}

void disp( )

{

cout<<"x="<<x<<"y="<<y<<endl

}

}(___________)

void main( )

{

Sample s(23)*p=s

p - >disp()

}

47.在下划线处填上适当的语句,使程序的输出结果如下:

n=30

#include< iostream.h >

template< class T >

class Sample

{

T n

public

Sample( ){ }

Sample(T i){_________}

Sample<T>&operator+(const Sample<T>&)

void disp( ){cout<<"n="<<n<<endl}

}

template<class T>

Sample<T>&Sample<T>::operator+(const Sample<T>s)

{

static Sample<T>temp

return temp

}

void main( )

{

Sample<int>s1(10)s2(20)s3

s3=s1+s2

s3.disp()

}

48.在下划线处填上适当的语句,使程序的输出结果如下:

1 2 3 4 5 6 7 8 9 10

#include<iostream.h>

class Sample

{

int A[10][10]

public

int &operator()(intint)

}

int &Sample::operator()(int xint y)

{

return A[x][y]

}

void main()

{

Sample a

int ij

_________

for(j=0j<10j++)

_________

for(i=0i<l0i++)

cout<<a(i1)<< " "

cout<<endl

}

49.在下划线处填上适当的句子,完成函数的定义。

#include<iostream.h>

class Sample

{

int x

public

Sample( ){ }

_________{x=a}

   _________{x=a.x++   +10}

void disp( ){cout<<"x="<<x<<endl}

}

void main( )

{

Sample s1(2)s2(s1)

s1.disp( )

s2.disp( )

}

50.输入一个字符串,将其逆序后输出。

#include<iostream>

using namespace std

void main()

{

char a[50]memset(a0sizeof(a))

int i=0j

char t

cin.getline(a50,'\ n';

for(i=0j=strlen(a)-1i<_________i++―― 

{

t=a[i]

a [j]=t

}

cout<<a<<endl

}

五、程序分析题(本大题共4小题,每小题5分,共20分)

51.(给出下面程序的输出结果

#include<iostream.h>

class example

{

int a

public

example(int b){a=b++}

void print( ){a=a+1cout<<a<<" "}

void print( )const{cout<<a<<""}

}

void main( )

{

example x(3)

const example y(2)

x.print( )

y.print( )

}

52.给出下面程序的输出结果

#include<iostream.h>

class Sample

{

int xy

public

Sample( ){x=y=0}

Sample(int aint b){x=ay=b}

Sample()

{

if(x==y)

cout<<"x=y"<<endl

else

cout<<"x!=y"<<endl

}

void disp()

{

cout<<"x="<<x<<"y="<<y<<endl

}

}

void main()

{

Sample sl(23)

s1.disp()

}

53.给出下面程序的输出结果

#include<iostream.h>

class Sample

{

int n

static int sum

public

Sample(int x){n=x}

void add( ){sum+=n}

void disp( )

{

cout<<"n="<<n<<"sum"<<sum<<endl

}

}

int Sample::sum=0

void main( )

{

Sample a(2)b(3)c(5)

a.add( )

a.disp( )

b.add( )

b.disp( )

c.add( )

c.disp( )

}

54.给出下面程序的输出结果

#include<iostream.h>

class A{

private

friend class B

A(int val=0)data(val)use(1){}

int usedata

}

class B{

public

A*pa

B(int val=0)pa(new A(val)){ }

B( ){if( -- pa ->use==0)delete pa}

B(Brhs){ + + rhs ->usepa=rhs.pa}

Boperator=(Brhs)

A*operator ->( ){return pa}

void Display( ){

cout<<"data="<<pa ->data

<<"use="<<pa ->use<<endl

}

}

BB::operator=(Brhs)

{

if(this = = rhs)return*this

if( -- pa ->use = =0)delete pa

+ + rhs ->use

pa=rhs.pa

return * this

}

int main( ){

B b1(1)b2(b1)b3(3)

b1.Display( )

b2.Display( )

b3.Display( )

b3=b1

b1.Display( )

b3.Display( )

return 0

六、程序设计题(本大题共1小题,每小题10分,共10分)

55.已知一个student类,包括学姓名,成绩和等级,不含任何成员函数.process为学生信息处理类.

class student{

char name[ 10 ]

int deg

char level[ 7 ]

friend class process

public

student(char na[ ]int d){strcpy(namena)deg=d}

class process{

public

void trans(student s[ ]){}//根据学生成绩计算学生等级(优大于89分,良大于79分,中大于69分,及格大于59分,不及格小于60).

void disp(student s[ ]){...}//根据成绩降序打印所有学生信息

}

要求实现process类中的两个函数:

本新闻共2页,当前在第2页  1  2  

我要投稿 新闻来源: 编辑: 作者:
相关新闻