第一范文网 - 专业文章范例文档资料分享平台

2006年春硕士研究生C++语言程序设计试题A

来源:用户分享 时间:2025/10/5 7:43:17 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

2006年研究生C++程序设计试题(A卷)

考试形式:闭卷考试 考试时间:120分钟

研究生学号 姓名 得分 题号 得分

一 二 三 四 五 总分 一、简答题(每小题3分,30分)

1、简述C++语言具有的特点。

2、指针指向int数组和指向char数组应用上有那些区别?

3、在C++语言中,如说明 int a[10], *pa=a; a[5]与pa[5]等价吗?什么时候不等价? 4、在C++语言中,请给出指针函数定义的一般形式。

5、请说出函数参数中,地址与复制传递参数方式两者之间的异同点。 6、什么叫类?什么叫对象?

7、请构造函数声明的一般形式(包括基类构造调用等)。 8、什么叫友元?请给出说明形式。

9、请给出用new和delete堆空间建立数组和释放数组的例子。 10、 请给出类中运算符重载的一般形式。

二、数据与运算(每小题2分,共20分)

1. 若int x=1, y=2; 则表达式 (y == ++x)? ++x/- -y : ++y 的运算结果是什么? 3

2. 若int x=5, y(15), *p=&x ; 则经过 y += ++x - 5, *p=++x+- -y ; 的运算之后,

cout<

5. 若char x =’A’, y= 0x20; int z; y = z = x + y ;

则 cout<< x << \ \ y << “(“ <

6. 若int a[10], *pa=&a[1], *pb=&a[9]-2; 则pb-pa的结果是多少? 7. 若说明int a[10]={9,8,7,6,5,4,3,2,1,0}, *p=&a[8]; 则经过表达式

a[9] += ( *++p+=1, *(p - = 8) +=3, *(p+3) += 1 ); 运算之后,则数组a各元素的值是什么? 9 11 7 6 6 4 3 2 17

8. 若说明 int a=6; double x(4) ; 则表达式 (a>>1) *( sizeof(x)+1) 的值是什么? 9. 若struct MyData { double a; float b ; char c[4]}; MyData x ={ 8, 1.0f, “81”}, y, *z=&y ; 经过 x.b=2.0f, *z=x , z->b = ++x.a +( y.c[1] ++ ) ; 运算,则x, y的各自分量结果是什么? 10. 若定义union AUnion{char x[4]; int y; float z;}; (设int占4个字节), 说明 AUnion AKey, *pKey=&AKey ; 经过 pKey->z =0f; pKey->x[0]= ’A’ ;

则表达式 cout<< (pKey ->y+2) << endl ; 的结果是什么?

I

三、给出下列程序的运行输出结果(每小题6分,共24分) 1、 #include “iostream.h”

int afox(int x,int &y,int *v,int *w)

{ * v = - -x + y++;

*w= x - y; return(v);

}

void main(void)

{ int a=3,b=3,c=3,d=3; afox ( a,b,&c, &d );

cout<< a<< “,”<< b<< “,”<

}

3 4 5 -2

答案: ;

2、 #include “stdio.h”

int d=0;

int fun( int p)

{ static int g=10 ; g += ++d - p; printf(\ \,g); return( g ); }

void main( void ) {

int d=10; printf(\ \\n\,fun( fun(d) - fun(2) ) ); }

答案: ;

3、#include \eam.h\

void main(void) {

char a[8],t; int j,k;

for (j=0;j<7;j++) a[j]= 'a'+j; a[7]='\\0'; for (j=0;j<3;j++) {

t=a[6];

for (k=6;k>0;k--) a[k]=a[k-1]; a[0]=t; cout<< a << endl; } }

答案: ;

; ;

4、# include

II

class CTest {

public :

int a, b,c;

CTest() { a=b=c=0; cout << c <

{ a=x; b=y; c=0; cout <

void OutAddResult(void) { c++; cout<

void main(void) {

CTest x(5,6), y;

x.OutAddResult(); y.OutAddResult(); }

答案: ;

; ; ; ;

四、程序填空题(共12分)

1、 阅读下列程序,根据程序的实现情况填空。( 6分 )

#include #include class CStudent { public:

CStudent(【1】char *ch, int in ) { name=ch; id=in; } void Display(); private:

char *name ; int id ; };

【2】 void Cstudent::Display()

{

cout << \ame=\}

void main(void) {

III

CStudent zhang(【3】 “zhangsan”, 2006001 ); zhang.Display( ) ; }

2、 请给出下面程序的完整实现( 6 分) #include \

【1】 template class CPlus { public:

CPlus(){ }; P plus();

P n;

public: T m; };

template P CPlus【2】 ::plus() {

P s ;

}

void main(void) {

CPlus【3】 a; a.m = 12; a.n = 12.8766f;

s=m+n; return(s);

cout<<\结果=\}

答案:

【1】 【2】 【3】

五、编程题(共14分)

题目:编程求出两个自然数的最大公约数。

要求:

1、 编写一个函数 int FindMaxDommonDivisor (int a, int b) 的程序; 2、 编写主函数求出 a=108,b=76 和 a=201, b=77的程序。

IV

2006年春硕士研究生C++语言程序设计试题A.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c7t12m5axbu5ap1c1l9ga_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top