设有以下类和对象的定义: class A { public: int m; … }; A k1,k2,*p1,* p2; 则下面针对成员变量m的引用,错误的是
A.k1.m=1
B.k2->m=2
C.p1->m=3
D.(*p2).m=4
第1题:
有以下程序:
include<stdio.h>
main( )
{ int a,b,k,m,*pl,*p2;
k=1,m=8;
p1=&k,p2=&m;
a=/*pl-m;b=*p1+*p2+6;
printf("%d",a);printf("%d\n",b);
}
编译时编译器提示错误信息,你认为出错的语句是( )。
A.a=/*pl-m;
B.b=*p1+*p2+6;
C.k=1,m=8;
D.pl=&k,p2-&m;
本题考查指针,pl=&k表示P指向k的地址,则*p=k,依次类推,在对指针进行赋值时没有错误。a=/*p+m赋值,在c语言中"/*"表示的注释,所以答案选择A。
第2题:
执行以下程序后,a,b的值分别为
main()
{ int a,b,k=4,m=6,*p1=&k,*p2=&m;
a=p1==&m;
b=(*p1)/(*p2)+7;
printf("a=%d\n",A.;
printf("b=%d\n",B.;
}
A.-1,5
B.1,6
C.0,7
D.4,10
第3题:
给出下列代码,如何使成员变量m被方法fun( )直接访问?Class Test{private int m;public static void fun( ){} }
A.将private int m改为protected int m
B.将private int m改为public int m
C.将private int m改为static int m
D.将private int m改为int m
第4题:
给出下列代码,如何使成员变量m被方法fun( )直接访问? class Test{ private int m; public static void fun( ){ … } }
A.将private int m改为protected int m
B.将private int m改为public int m
C.将private int m改为static i
D.将private int m改为int m
第5题:
有如下类定义:
class XX{
int xdata;
public:
xx(int n=O):xdata(n){}
};
class YY:public XX{
int ydata;
public:
YY(int m=0,int n=O):XX(m),ydata(n){}
};
YY类的对象包含的数据成员的个数是
A.1
B.2
C.3
D.4
第6题:
有如下程序:
include<iostream>
using namespace std;
class Base{
public:
int m,n;
};
class Derived1:【 】Base{};
class Derived2:public Derived1{
public:
void SetMN(int M,int N){m=M;n=N;}
int GetSumMN(){return(m+n);}
};
int main() {
Derived2 objD;
ohjD. SetMN(3,4);
cout<<"M+N="<<objD, m+objD, n<<endl;
return 0
}
编译时只有“cout<<"M+N"<<objD.m+objD.n<<endl;”有语法错误,程序的其他地方没有语法错误。请判断下划线处使用的关键字是什么。
第7题:
有如下类定义: class Test { private int x; public int y; public void setX (int m) {x=m;} public int getX( ) {return x;} }现用Test t=new Text();生成一个对象t,则如下语句中,错误的是( )。
A.t.x=10;
B.t.y=10;
C.t. setX(10);
D.int m=t.getX( );
第8题:
设有以下类和对象的定义: ClaSSA {public: intm; }; Ak1,k2,*p1,*p2; 则下面针对成员变量m的引用,错误的是( )。
A.k1.m=1
B.k2→m=2
C.p1→m=3
D.(*p2).m=4
第9题:
有如下程序: #include<iostream> using namespaee std; class Pair{ int m; int n; public: Pair(int i,int j):m(i),n(j){ } boot operator>(pair P)const;//需在类体外给出定义 }; int main( ){ Pair pl(3,4),p2(4,3),p3(4,5); cout<<(pl>p2)<<(p2>p1)<<(p2>p3)<<(p3>p2); retum 0; } 运算符函数operator>的功能是比较两个Pair对象的大小,当左边对象大时,返回true,否则返回false。比较规则是首先比较两对象的m成员,m大者为大;当m相等时比较n,n大者为大。程序输出0101,下列对运算符重载函数的正确定义是
A.bool Pair::operator>(Pair P)eonst
B.bool Pair::operator>(Pair P) {if(m!=P.m)return m>p.In;return n>p.n;} {if(m!=P.m)return m>p.m;return n>p.n;}
C.bool Pair::operator>(Pair P)eonst
D.bool Pair::operator>(Pair P) {if(m>p.m)return true;return n>p.n;} {if(Ul>p.m)return true;return n>p.n;}
第10题:
假定变量m定义为“int m=7;”,则下面正确的语句为()。
Aint p=&m;
Bint *p=&m;
Cint&p=*m;
Dint *p=m;
第11题:
若有说明:int*p1,*p2,m=5,n=9;以下均是正确赋值语句的选项是()
第12题:
a=/*p1-m;
b=*p1+*p2+6;
k=1,m=8;
p1=&k,p2=&m;
第13题:
有如下类声明: class MyBASE { int k: public; void set(int n){k=n;} int get() const{return k;} }; class MyDERIVED: protected MyBASE { protected: int j; public: void set(int m, int n){MyBASE::set(m);j=n;} int get() const{return MyBASE::get()+j;} }; 则类MyDERIVED中保护的数据成员和成员函数的个数是( )。
A.4
B.3
C.2
D.1
第14题:
此题为判断题(对,错)。
第15题:
设有以下程序:
include<iostream>
using namespace std;
int main()
{
int a,b,k:4,m=6,*p1=&k,*p2=&m;
a=p1==&m;
b=(*p1)/(*p2)+7;
cout<<a<<b<<end1;
return 0;
}
执行该程序后,a的值为【 】,b的值为【 】。
第16题:
有如下类声明: class MyBASE{ int k; public: void set(iht n){k=n;} int get()coast{return k;} }; class MyDERIVED:pnoted My BASE { protected: int j; public: void set(int m,int n){MyBASE::set(m);j=n;} int get()const{return MyBASE::get()+j;} }; 则类MyDERIVED中保护的数据成员和成员函数的个数是
A.4
B.3
C.2
D.1
第17题:
有如下类声明: class MyBASE{ int k; public: void set(int n){k=n;} int get( )const{return k;} }; class MyDERIVED:protected MyBASE{ protected: intj; public: void set(int m,int n){MyBASE::set(m);j=n;} int get( )const{return MyBASE::get( )+j;} }; 则类MyDERIVED中保护的数据成员和成员函数的个数是
A.4
B.3
C.2
D.1
第18题:
若有定义语句:int m[]={5,4,3,2,1},i=4;,则下面对m数组元素的引用中错误的是______。
A.m[-i]
B.m[2*2]
C.m[m[0]]
D.m[m[i]]
第19题:
有以下程序
#include <stcli0.h>
main( )
{ int a,b,k,m,*p1,*p2;
k=1,m=8;
p1=&k,p2=&m;
a=/*p1 -m; b=*p1+*p2+6;
printf(”%d ”,a); printf(”%d\n”b);
}
编译时编译器提示错误信息,你认为出错的语句是
A) a=/*p1- m;
B)b=*p1+*p2+6;
C)k=1,m=8;
D)p1=&k, p2=&m;
第20题:
有以下程序: #include<stdio.h> main( ) { int a,b,k,m,*pl,*p2; k=1,m=8; p1=&k,p2=&m; a=/*pl-m;b=*p1+*p2+6; printf("%d",a);printf("%d\n",b); } 编译时编译器提示错误信息,你认为出错的语句是( )。
A.a=/*pl-m;
B.b=*p1+*p2+6;
C.k=1,m=8;
D.pl=&k,p2-&m;
第21题:
假定变量m定义为int m=7;则定义变量p的正确语句为( )。
A.int p=&m;
B.int *p=&m;
C.int &p=*m;
D.int *p=m;
第22题:
若有说明:int *p1,*p2,m=5,n; 以下都是正确的赋值语句的选项是()。
第23题:
p1=&m; p2=&p1;
p1=&m; p2=&n; *p1=*p2;
p1=&m; p2=p1;
p1=&m; *p2=*p1;
第24题:
m[--i]
m[2*2]
m[m[0]]
m[m[i]]