一、填空(每空2分,共20分)
1.C++中ostream类的直接基类是__ios类____。
2.不同对象可以调用相同名称的函数,但可导致完全不同的行为的现象称为_多态性___。
3.定义虚函数所用的关键字是___virtual__。
4.将指向对象的指针作为函数参数,形参是对象指针,实参是对象的__地址值___。 5. 作为语句的函数调用是通过___对函数的调用来执行函数体____来体现的。 6. 执行if (x>=0||x<=0) cout<<\;else cout<<\;屏幕上显示的是____abcd____。
7. 设一维整型数组data已进行了初始化,则其元素个数可由操作符sizeof通过表达式____sizeof(data/data[0])___计算出来。
8. 若一全局变量只允许本程序文件中的函数使用,则定义它时应加上修饰符____extern____。
9. 设有int w[3][4];,pw是与数组名w等价的数组指针,则pw应初始化为_int(*pw)[4]=w;_。
10.要使引用pr代表变量char * p;,则pr应初始化为_char*&pr=p;_。
二、单项选择题(每空2分,共20分)
1.对C++语言和C语言的兼容性,描述正确的是( )
A C++兼容C B C++部分兼容C C C++不兼容C D C兼容C++
2.在C++中使用流进行输入输出,其中用于屏幕输出的对象是( ) A.cerr B.cin C.cout D.cfile 3.下列( )是正确的语句。
A ; B a=17 C x+y D cout<<\
4.循环while(int i=0) i--;执行次数是( )。 A 0 B 1 C 5 D 无限
5.设int f(int);和int g(int);是函数f和g的原形,以下将f作为语句调用的是( )。
A g(f(3)); B f(g(3)); C g(f(3)+2); D p= f(g(3)+1); 6.设int * p2=&x,* p1=a;p2= *b;则a和b的类型分别是( )。 A int * 和int B int * 和int ** C int 和int * D int * 和int *
7.设int x;,则经过( )后,语句*px=0;可将x值置为0。 A int * px; B int const * px=&x; C int * const px=&x; D const int * px=&x;
8.设void f1(int * m,long & n);int a;long b;则以下调用合法的是( )。 A f1(a,b); B f1(&a,b); C f1(a,&b); D f1(&a,&b);
9.以下结构类型可用来构造链表的是( )。
A struct aa{ int a;int * b;}; B struct bb{ int a;bb * b;}; C struct cc{ int * a;cc b;}; D struct dd{ int * a;aa b;};
10.使用操作符setw对数据进行格式输出时,需要包含( )文件。 A iostream.h B fstream.h C iomanip.h D stdlib.h
三、回答问题(每题4分,共20分)
1.设int * p;,判断下列表达式的正确性(用T表正确,用F表错误)。 --++p( T ) ++(p--)( F ) p---- ( F ) (++p)-- ( T )
2.请初始化一维指针数组color,其初值表初值为\,\,\和\。 char * color[]={\,\,\,\; 3.设int x[ ]={99,98,97},& y=x[1];, 写出语句 cout< cout< 98,194 4.设int fp(char a,int b=0,double c=100.0);,判断下列重载函数的正确性。 (用T表正确,用F表错误)。 int fp( );( T ) void fp(char);( F ) int fp(char,int);( F ) void fp(char,int,int);( T ) 5.要使语句p1=new long * ;p2=new float * [15];能正常执行,写出p1和p2的定义。 long ** p1; float ** p2; 四、(每题4分,共20分) 1.写出下列程序的执行结果。 #include A(int a){x=a;} int get(int a){return x+a;} }; void main( ) { A a(8); int(A::*p)(int); p=A::get; cout<<(a.*p)(5)< cout<<(pi- >*P)(7)< 2.请将程序补充完全。 #include public: int real; int imag; complex(int r=0,int i=0) { real=r; imag=i; } }; complex operator+(_complex&a_,complex& b) { int r=a.real+b.real; int i=a.imag+b.imag; return__///// complex(r,i)_; } void main( ) { complex x(1,2),y(3,4),z; z=x+y; cout< 3.程序的输出结果如下: 1,9 50,30 请根据输出数据在下面程序中的下划线处填写正确的语句。 源程序如下: #include private: int m; public: base( ){ }; base(int a):m(a){} int get( ){return m;} void set(int a){m=a;} }; void main() { base*ptr=new base[2]; ptr- >set(30); ptr= _ptr+1__; ptr- >set(50); base a[2]={1,9}; cout cout<<_///// ptr->get( )_< 4. 给出下面程序的输出结果。 #include class Sample {T n; public: Sample(T i){n=i;} int operator==(Sample &); }; template int Sample {Sample cout<<″s1与s2的数据成员″<<(sl ==s2 ?″相等″:″不相等″)< cout<<″s3与s4的数据成员″<<(s3==s4 ? ″相等″:″不相等″)< S1与S2的数据成员不相等 S3与S4数据成员相等 5. 给出下面程序的输出结果。 include using namespace std; class Book { char*title; char*author; int numsold; public: Book( ){ } Book(const char*strl,const char*str2,const int num) { int len=strlen(strl); title=new char[len+1]; strcpy(title,str1); len=strlen(str2); author=new char[len+1]; strcpy(author,str2); numsold=num; } void setbook(const char*str1,const char*str2,const int num) { int len=strlen(str1); title=new char[len+1]; strcpy(title,str1); len=strlen(str2); 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库c++二级考试-习题B(含答案)在线全文阅读。
相关推荐: