有如下的程序: #include<cstring.h) #ingclude<iostream.h) using namespace std; Class MyString {public: MyString(const char*s); ~MyString(){delete[]data;} protected: unsigned len; char*data;}; MyString::MyString(const char*S) {l
A.构造函数的实参不允许是本类的对象
B.没有定义实现深层复制(深拷贝)的复制构造函数
C.构造对象a时实参与形参类型不符
D.系统不能生成默认的复制构造函数
第1题:
有如下程序: #include<iostream> using namespace std; class Con { char ID; public: Con():ID('A'){cout<<1;} Con(char ID):ID(ID'){cout<<2;} Con(Con&c):ID(c.getID()){cout<<3;} char getID()const{returnID;} }; void show(Con c){to
A.13A23A
B.23A13B
C.13A23B
D.13B23A
第2题:
有如下的程序: #include<cstring> #include<iostream> using namespace std; class MyString { public: MyString(const char*s); ~MyString(){delete[]data;} Protected: unsigned len; char*data; }; MyString::MyString(const char*s) { len=strlen(s); data=new char[len+1]; strcpy(data,s); } int main() { MyString a("C++Programing"); MyString b(a); return 0; } 在运行上面的程序时出错,出错的原因是
A.构造函数的实参不允许是本类的对象
B.没有定义实现深层复制(深拷贝)的拷贝构造函数
C.构造对象a时实参与形参类型不符
D.系统不能生成缺省的拷贝构造函数
第3题:
如下程序的输出结果是______。
include<iostream>
using namespace std;
class Pet{
char name[10];
public:
Pet(char*nanle){strcpy(this->name,name);}
const char*getName( )const{return name;}
virtual void call( )eonst=0;
};
class Dog:public Pet{
public:
Dog(char*name):Pet(name){ }
void call( )eonst{cout<<"汪汪叫";}
};
class Cat:public Pet{
public:
Cat(char*name):Pet(name){ }
void call( )const{eout<<"喵喵叫";}
};
int main( ){
Pet*petl=new Dog("哈克"),*pet2=new Cat("吉米");
eout<<petl->getName( );petl->call( );eout<<endl;
cout<<pet2->getName( );pet2->call( );eout<<endl;
return 0;
}
第4题:
Const mystring=“hello”的含义是( )。
A.在VBScript中,把变量mystring赋值为hello
B.在VBScript中,把常量mystring的值定为hello
C.在Java中,把变量mystring赋值为hello
D.在Java中,把变量mystring赋值为hello
第5题:
有如下程序: #inClude<iostream> using namespaCe std; Class Book{ publiC: Book(Char*t=””){strCpy(title,t);} private: Char titlel40]; }; Class Novel:publiC Book{ publiC: Novel(Char*t=””):Book(t){} Char*Category( )Const{return”文学”;} }; int main( ){ Book * pb; pb=new Novel( ); Cout<<pb→Category( ); delete pb; return 0; } 若程序运行时输出结果是“文学”,则横线处缺失的语句是( )。
A.Char*Category( );
B.Char*Category( )Const;
C.virtual Char*Category( )Const;
D.virtual Char*Category( )Const=0;
第6题:
有下列的程序: #include<cstring.h> #include<iostream.h> using namespace std; class MyString { public: MyString(const char*s); ~MyString(){delete[]data;} protected: unsigned len; char*data; }; MyString::MyString(const char*s) { len=strlen(s); data=new char[len+1); strcpy(data,s); } int main() { MyString a("C++Programing"); MyString b(a); return 0; } 在运行上面的程序时出错,出错的原因是( )。
A.构造函数的实参不允许是本类的对象
B.没有定义实现深层复制(深拷贝)的复制构造函数
C.构造对象a时实参与形参类型不符
D.系统不能生成默认的复制构造函数
第7题:
有如下程序:
include<iostream>
using namespace std;
class Pet{
char name[10];
public:
Pet(char*name){strcpy(this->name,name);}
const char*getName()const {return name;}
virtual void call()const=0;
};
class Dog:public Pet{
public:
Dog(char*name):Pet(name){}
void call()const{cout<<"汪汪叫":}
};
class Cat:public Pet{
public:
Cat(char*name):Pet(name){}
void call()const{cout<<"喵喵叫";}
};
int main(){
Pet*pet1=new Dog("哈克"),*pet2=new Cat("吉米");
cout<<pet1->getName();pet1->call();cout<<end1;
cout<<pet2->getName();pet2->call();cout<<end1;
return 0;
}
程序的输出结果是______。
第8题:
有如下程序: #include<iostream> using namespace std; class Publication{//出版物类 char name[30]; public: Publication(char*name="未知名称"){strcpy(this->name,name);} const char*getName( )const{return name;} //常数据成员 virtual const char*getType( )const{return"未知类型";}//虚常数据成员 }; class Book:public Publication{ //书类 public: Book(char*name):Publication(name){ } virtual const char*getType( )const{return"书";} //虚常数据成员 }; void showPublication(Publication &p){cout<<p.getType( )<<":"<<P.getName( )<<endl;} int main( ){ Book book("精彩人生"); showPublication(book); return 0; } 程序的输出结果是
A.未知类型:未知名称
B.未知类型:精彩人生
C.书:未知名称
D.书:精彩人生
第9题:
有如下的程序:
#include<strin9.h>
#include<iostream.h>
usingnamespacestd;
classMyString
{public:
MyString(constchar*s);
MyString(){delete[]data;}
protected:
unsignedlem
char*data;};
MyStrin9::MyString(constchar*s)
{len=strlen(s);
data=newchar[len+1];
strcpy(data,s);}
intmain()
{MyStringa("C++Programing");
MyStringb(a);
return0;}
在运行上面的程序时出错,出错的原因是( )。
A.构造函数的实参不允许是本类的对象
B.没有定义实现深层复制的复制构造函数
C.构造对象a时实参与形参类型不符
D.系统不能生成默认的复制构造函数
第10题:
已知String类定义如下:
class String
{
public:
String(const char *str = NULL); // 通用构造函数
String(const String &another); // 拷贝构造函数
~ String(); // 析构函数
String & perater =(const String &rhs); // 赋值函数
private:
char *m_data; // 用于保存字符串
};
尝试写出类的成员函数实现。
String::String(const char *str)
{
if ( str == NULL ) //strlen在参数为NULL时会抛
异常才会有这步判断
{
m_data = new char[1] ;
m_data[0] = '\0' ;
}
else
{
m_data = new char[strlen(str) + 1];
strcpy(m_data,str);
}
}
String::String(const String &another)
{
m_data = new char[strlen(another.m_data) + 1];
strcpy(m_data,other.m_data);
}
String& String::operator =(const String &rhs)
{
if ( this == &rhs)
return *this ;
delete []m_data; //删除原来的数据,新开一块内
存
m_data = new char[strlen(rhs.m_data) + 1];
strcpy(m_data,rhs.m_data);
return *this ;
}
String::~String()
{
delete []m_data ;
}
第11题:
下列语句中正确的是
A.char*myString="Hello-World!";
B.char myString="Hello-World!";
C.char myString[11]=”Hello-World!”;
D.char nlyString[12]="Hello-World!";
第12题:
有如下的程序; #include <ctring> #include <iostream> using namespace std; class MyString { public: MyString(const char *s); ~MyString() {delete[]data;} protected: unsigned len; char *data; }; MyString:: MyString (const char *s) { len=strlen(s); data=new char[len+1]; strcpy(data,s); } int main() { MyString a("C++ Programing"); MyString b(a); return 0; } 在运行上面的程序时出错,出错的原因是______ 。
A.构造函数的实参不允许是本类的对象
B.没有定义实现深层复制(深拷贝)的拷贝构造函数
C.构造对象a时实参与形参类型不符
D.系统不能生成缺省的拷贝构造函数
第13题:
下列语句中,正确的是( )。
A.char*myString="Hello-World!";
B.char myString="Hello-World!";
C.char myString[11]="Hello-World!";
D.char myString[12]="Hello-World!";
第14题:
( 13 )有如下程序:
#include <iostream>
using namespace std;
class GrandChild{
public:
GrandChild(){ strcpy (name,"Unknown"); }
const char * getName()const { return name; }
virtual char * getAddress()const=0;
private:
char name[20];
};
class GrandSon : public GrandChild{
public:
GrandSon{char *name} {}
Char * getAddress() const { return "Shanghai";}
};
int main(){
GrandChild *gs=new GrandSon("Feifei");
cout<<gs->getName()<<" 住在 "<<gs->getAddress()<<endl;
delete gs;
return 0;
}
运行时的输出结果是 【 13 】 。
第15题:
有以下程序:
include <iostream>
using namespace std;
const xnt N=5;
int fun(char *s,char a,int n)
{
int j;
*s=a;j=n;
while(a<s[j])
j--;
return j;
}
int main()
{
char s[N+1];
int k;
第16题:
有如下的程序: #include<strin9.h> #include<iostream.h> usingnamespacestd; classMyString {public: MyString(constchar*s); MyString(){delete[]data;} protected: unsignedlem char*data;}; MyStrin9::MyString(constchar*s) {len=strlen(s); data=newchar[len+1]; strcpy(data,s);} intmain() {MyStringa("C++Programing"); MyStringb(a); return0;} 在运行上面的程序时出错,出错的原因是( )。
A.构造函数的实参不允许是本类的对象
B.没有定义实现深层复制的复制构造函数
C.构造对象a时实参与形参类型不符
D.系统不能生成默认的复制构造函数
第17题:
有如下程序: #include<cstring> #include<iostream> using namespace std; class MyString{ public: MyString(const char * s); ~MyString( ){delete[ ]data;} protected: unsigned len; char * data; }; MyString::MyString(const char * s){ len=strlen(s); data=new char[1en+1]; strcpy(data,s); } int main( ){ MyString a("C++Progreanfing"); MyString b(A) ; return 0; } 在运行上面的程序时出错,错误的原因是
A.构造函数的实参不允许是本类的对象
B.没有定义实现深层复制(深复制)的复制构造函数
C.构造对象a时实参与形参类型不符
D.系统不能生成缺失的复制构造函数
第18题:
有如下的程序: #include <cstring.h> #include <iostream.h> using namespace std; class MyString { public: MyString(const char*s); ~MyString () {delete [] data;} protected: unsigned len; char*data; }; MyString::MyString(const char *s) { len=strlen (s); data=new char[len+1]; strcpy (data,s); } int main () { MyString a("C++ Programing"); MyString b(a); return 0; } 在运行上面的程序时出错,出错的原因是
A.构造函数的实参不允许是本类的对象
B.没有定义实现深层复制(深拷贝)的复制构造函数
C.构造对象a时实参与形参类型不符
D.系统不能生成默认的复制构造函数
第19题:
下列程序的输出结果是【 】。
include<iostream>
include<cstring>
using namespace std;
void fun(const char *s,char &c){c=s[strlen(s)/2];}
int main()
{
char str[]="ABCDE";
char ch=str[1];
fun(str,ch);
cout<<ch;
return 0;
}
第20题:
下列程序的输出结果是______。
include <iostream.h>
include <cstring.h>
using namespace std;
void fun(const char*s,char &C) {c=s[strlen (s)/2];}
int main {)
{
char str [] ="ABCDE";
char ch=str[1];
fun(str,sh);
cout<<Ch;
return 0;
}
第21题:
有下列的程序: #include<cstring.h> #include<iostream.h> using namespace std; class MyString { public: MyString(const char*s); ~MyString()<delete[]data;} protected: unsigned len; char*data; };
A.构造函数的实参不允许是本类的对象
B.没有定义实现深层复制(深拷贝)的复制构造函数
C.构造对象a时实参与形参类型不符
D.系统不能生成默认的复制构造函数
第22题:
已知类 String 的原型为
class string
{
public:
string(const char *str=null);//普通构造函数
string(const string &other);//拷贝构造函数
---string(void);
string &operate=(const string &other);//赋值函数
private:
char * m-data;//用于保存字符串
};
请编写 string 的上述4 个函数
第23题:
有如下的程序:#include <cstring.h>#include <iostream. h>using namespace std;class MyString{ public: MyString(const char*s); ~MyString() { delete[]data; } protected: unsigned len; char*data;};MyString::MyString(const char *s){ len=strlen(s); data=new char[len+ 1]; strcpy(data, s);}int main(){ MyString a("C++ Programing"); MyString b(a); return0;}在运行上面的程序时出错,出错的原因是( )。
A.构造函数的实参不允许是本类的对象
B.没有定义实现深层复制(深拷贝)的复制构造函数
C.构造对象a时实参与形参类型不符
D.系统不能生成默认的复制构造函数