云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 2008年春C++语言程序设计A卷

2008年春C++语言程序设计A卷

  • 62 次阅读
  • 3 次下载
  • 2025/6/1 1:29:37

中国地质大学(北京) 2008年春季学期

4. 若int x(0), y=1 ; 则经过语句y+=x+2, x+=++y, x+=y- -; 的运算, 则 x, y的结果值各是什么?

解析:y+=x+2?y=3,x=0; x+=++y—>x=4,y=4; x+=y--—>x=8,y=3. 答案:x=8,y=3.

5. 若char x=?1?, y= ’=’ ; int z; z = x + = 3;

则 cout<< x<<\的ASCII码\ <

解析:(隐式转换) x+=3 变成字符 ‘4’,z得到整数ASCII编码52. 输出结果:4的ASCII码=52.

6. 若int x, data[8]={1,2 ,3,4,5,6,7,8}; 则x=*(data+1)+*(&data[5]-2)之后,x存放的数是什么?

解析:指针相当于数组的首地址。*(data+1)= 2 ; *(&data[5]-2)=*(data+3) = 4; 最后得到的数 x=2+4=6; 答案:x存放的数是:6.

7. 若说明int a[8]={10,9,8,7,6,5,4,3}, *p=&a[1]; 则经过表达式

*(p-3) += (*++p+=1, *++p+=1,*(p+1)+=1 ); 运算之后,则数组a各元素的值是什么? 解析: 初始状态: a a a a 10 10 10 10 9 p 9 9 9 8 9 P 9 9 7 7 8 P 8 P 6 6 6 7 5 5 5 5 4 4 4 4 3 3 3 3 执行:(*++p+=1)后 再次执行:(*++p+=1) 执行 *(p+1)+=1:(P的位置没有变化,只是P的目标值发生变化) 最后执行:*(p-3) =*(p-3) +7,得到: a 17 9 9 8 P 7 5 4 3 所以最后数组的结果是: a[8]={17,9,9,8,7,5,4,3}.

8. 若struct MyData { int a; float b ; char c[3]}; MyData x ={ 10, 1.0f, “ab”;}, *y=&x; 则经过 x . c[1]++, (y->b) += 10+x.a++ ; 运算,x的各分量结果是什么?

解析: x . c[1]++ 将 “ab”通过自增运算变成”ac”; (y->b) += 10+x.a++—> a的值变为11,b的值为21.

最后所得的结果为:{11,21,ac}

第5页(共6页) 2008年5月

中国地质大学(北京) 2008年春季学期

9. 若定义union MyUnion{char x[2]; int y;}; (设int占4个字节),

说明 MyUnion MyKey, *pKey=&MyKey; pKey->y=0, pKey->x[0]= ’1’ ;

则表达式 (*pKey) . y 的结果是什么?

解析:联合体各个成员占据相似的存储空间 (*pKey) . y的输出为?1?的ASCII码为int型为49.

10. 若说明 int a=-1; double b(4) ; 则表达式 (a<<2) * sizeof(b) 的值是什么?

解析:a<<2—>4,sizeof(b)为8 所得的结果为: 4*8=32

三、给出下列程序的运行输出结果(本大题共3小题,每小题5分,共15分) 1、 #include

int t(int &x,int y,int *cp,int dp) { *cp= - -x + y++; dp= x - y;

}

#include “stdio.h” void main(void)

{ int a=5,b=5,c=5,d=5; t(a,b,&c,d);

printf(\,a, b, c,d);

}

答案: 4 ,5 ,9 ,5 ;

解析:本题主要强调指针传递和引用传递 2、 #include

int f(int n) {

if(n==1) return 1; else return f(n-1)+1; }

void main() { int i,j=0;

for(i=1;i<5;i++) j+=f(i) ; cout<

答案:10

解析:理解递归调用! 3、 int d=1;

#include \int fun(int p)

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

void main( void )

第6页(共6页) 2008年5月

中国地质大学(北京) 2008年春季学期

{

int a=5; printf(\}

答案: 15 16 15 15

实参分别是 5、1和-1。

解析:函数和变量的作用域!

四、程序填空题(每空2分,共20分)

阅读下列程序以及运算结果,填空使得下列程序成为一个完整的程序。

1、 下列程序定义了一实部为real,虚部为imag的复数类CComplex,并在类中将复数的加、

减操作重载为友元函数。 class CComplex

{

private:

double real,imag;

public:

CComplex (double r=0,double i=0)

{ 【1】real=r; imag=i; ; } friend operator+(CComplex,CComplex); friend operator-(CComplex,CComplex); };

【2】friend CComplex operator+(CComplex c1, CComplex c2) { return CComplex(【3】 c1.real+c2.real,c1.imag+c2.imag ); } 【4】 friend CComplex operator-(CComplex c1,CComplex c2) { return complex(【5】c1.real-c2.real,c1.imag-c2.imag );} 答案:

2、 请完成下面类中的成员函数的定义。

Class CTest { private:

int 【1】num ; float f1; public:

CTest(int n, float f); CTest(CTest& t) ; };

CTest::CTest(【2】int n, float f) { num = n;

【3】 f1 = f; }

第7页(共6页) 2008年5月

中国地质大学(北京) 2008年春季学期

CTest::CTest(【4】CTest& t)

{ num= 【5】 t.num ; f1 = t. f1; }

答案:

五、编程题(15分)

已知指数ex的泰劳展开式为:

ex?1?x?x22!?x33!?......?xn?1(n?1)!?......(???x??)

根据上面公式编程实现:

1、 编写一个求ex的函数 double SExp (double x) ,要求精度为108 ;

2、编写主函数main()求出编程求解x = 0.5, 1.2, 3, 5 时ex的近似解程序。

解答: 教材 P108页 例5.3

第8页(共6页) 2008年5月

搜索更多关于: 2008年春C++语言程序设计A卷 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

中国地质大学(北京) 2008年春季学期 4. 若int x(0), y=1 ; 则经过语句y+=x+2, x+=++y, x+=y- -; 的运算, 则 x, y的结果值各是什么? 解析:y+=x+2?y=3,x=0; x+=++y—>x=4,y=4; x+=y--—>x=8,y=3. 答案:x=8,y=3. 5. 若char x=?1?, y= ’=’ ; int z; z = x + = 3; 则 cout<< x<<\的ASCII码\ <

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com