地质大学(北京)硕士研究生c语言程序设计试题a
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2005年研究生C++程序设计试题
一、简答题(每小题3分,30分)
1、什么叫变量? 什么叫常量?
2、请枚举指针运算中赋值运算的几种基本形式。
int *px, *py, n;
px=&n;
py=px;
px=py+n;
px=py-n;
px=0;
3、在C++语言中,控制语句主要有哪些?
if , if~else, switch, for,while, do while, break,return,goto,continue,
4、在C++语言中,请给出结构体和联合体的异同点。
5、请说出函数参数中,引用与复制传递参数方式两者之间的异同点。
6、什么叫类?什么叫对象?
7、纯虚拟函数定义的一般形式是什么?
virtual <数据类型〉<函数名称>(<形式参数列表>)= 0;
8、什么叫友元?友元的意义是什么?
9、请说明class类类型和struct结构体类类型两种数据类型的异同点。
10、重载有哪些?为什么要重载?
二、数据与运算(每小题2分,共20分)
1.若int x=0, y=1;则表达式(y = x<<2)? x/(++y +5): ++y的运算结果是什么?
1
2.若int x=8, y(10), *p=&x ; 则经过y += x+2, *p=++x+y- - ;的运算之后,
cout< 29 19 3.若unsigned char x=024, y =0xfa, z=48; 则表达式(x & ~y) ^ z 的值是什么? 00000101 ~y 00110000 z 00010100 x 00000101 ~y 00000100 x &~y 00110000 z 00110100 52 4.若int x(1), y=2, z(3), *pw=&z ;则经过语句y+=*pw+1, x+=++y, *pw += x -y; 的运算, 则 x, y, z 的结果值各是什么? 8 7 4 5.若char x =’a’, y= 0x20; int z; y = z = x – y ; 则cout<< z << " 的ASCII码为" << y < 0x61 0x20 0x41 ‘A’ 65的ASCII码为A 6.若int a[4]={1,2 ,3,4};则a[2]=a[0]+*(a+3)+a[1]++ 运算之后,a的各元素存放的是什么? 1 3 7 4 7.若说明int a[8]={7,6,5,4,3,2,1,0}, *p=&a[7]; 则经过表达式 *(p-1) += ( *p+=1, *(p - = 6) +=3, *(p+4) += 1 ); 运算之后,则数组a各元素的值是什么? 10 9 5 4 3 3 1 1 8.若说明int a=4; long x(0) ; 则表达式(a>>1) * sizeof(x)的值是什么? 8 9.若struct MyData { int a; float b ; char c[3]}; MyData x ={ 1, 2.0f, “123”}, y, *z=&y ; 经过*z=x ; z->b = +( ++[0] ) ;运算,则y的各分量结果是什么? 1 51.0f “223” 10.若定义union MyUnion{char x[2]; int y;}; (设int占4个字节), 说明MyUnion MyKey, *pKey=&MyKey; pKey->y=259; pKey->x[0]= ’0’ ; 则表达式(*p Key) . y 的结果是什么? 304 三、给出下列程序的运行输出结果(每小题6分,共30分) 1、#include “” int t(int x,int &y,int v,int *w) { v= - -x + y++; *w= x - y;return(v); } void main(void) { int a=1,b=2,c=3,d=4; t(a,b,c,&d); cout<< a<< “,”<< b<< “,”< } 答案: 1 3 3 -3 ; 2、#include “” int d=0; int fun(int p) { static int g=20 ;g += ++d - p;printf("%d ",g); return(g); } void main( void ) { int d=10;printf("%d \n",fun( fun(d)) ); } 答案:11 2 2 ; 3、#include “” void main(void) { char s [64]= { ‘G’, ‘e’, ‘o’, ‘s’, ‘c’, ‘i’, ‘e’, ‘n’, ‘e’, ‘s’, ‘U’, ‘n’, ‘i’, ‘v’, ‘e’, ‘r’, ‘s’, ‘t’, ‘y’, ‘\0’, ‘O’, ‘K’, ‘!’,}; char s1[128] , *ps=s; int k(0); for( ; *ps != ‘U’ ;) ps++ ; while( *ps++ != ‘\0’) k++; cout<< “k=” << k << endl; } 答案:k=9 ; 4、# include <> class AB { public : int a, b; AB() { a=b=0; } AB(int x, int y) { a=x; b=y;