在线考试系统c++题库填空题 联系客服

发布时间 : 星期三 文章在线考试系统c++题库填空题更新完毕开始阅读4fcafd4987c24028915fc3c7

出,如果不足10个字符,将以\填充,故本题输出应为xxxxxHello。 知识点:C++部分/输入输出流/能够使用格式控制数据的输入输出

58、下列函数的功能是判断字符串str是否对称,对称则返回true,否则返回false。请在横线处填写上适当的内容,实现该函数。 bool fun(char *str) {

int i=0,j=0;

while(str[j])______;

for(j--;i

答案: 1:j++#++j#j=j+1#j=1+j 2:>=

本题主要考查了字符串回文算法。 while循环用来统计字符串的长度,故第一空应为j++,循环判断str[j]是否为0,从而统计出字符串的长度。for循环实现字符串第i个字符与倒数第i个字符的比较,如果两者相等,则继续比较,否则结束循环。当结束循环时,如果i>=j,则说明一圈已比较结束,该字符串回文,否则说明字符串不回文,故第二空应为>=。 知识点:C++部分/输入输出流/能够使用格式控制数据的输入输出 59、执行下列语句序列 int x=10,&r=x;

cout<

本题主要考查了引用类型。

在本题中,首先定义了一个变量x,并初始化为10,然后为x添加一个别名r。第二条语句将依次输出x的值,'-',及r的值,而r是x的别名,故也输出x的值,故本题答案为10-10。

知识点:C++部分/输入输出流/能够使用格式控制数据的输入输出 60、下列程序的输出结果为 Object id=0 Object id=1

请将程序补充完整。 #include using namespace std; class Point {

public:

Point(int xx=0,int yy=0){X=xx;Y=yy;countP++;} ~Point(){countP--;} int GetX(){return X;}

17

int GetY(){return Y;} static void GetC() {

cout<<\ }

private: int X,Y;

static int countP; };

______ //静态数据成员的初始化 int main() {

Point::GetC(); Point A(4,5); A.GetC(); return 0; }

答案: 1:int Point::countP=0;

本题主要考查了静态成员的初始化。

在本题中,由于第一个输出为Object id=0,而执行该输出的语句为Point::GetC(),在该语句前没有对Point进行过实例化(即没有执行过构造函数),根据静态函数的内容可知,该函数仅将静态成员变量countP的值输出,故该静态成员变量应该初始化为0。在对静态成员变量进行初始化时,其格式是: 类型名 类名::成员变量名=初始值;

故本题的答案为:int Point::countP=0;。 注意,前面不能加static。

知识点:C++部分/输入输出流/能够使用格式控制数据的输入输出

61、非成员函数应声明为类的______函数才能访问这个类的private成员。 答案: 1:友元#friend

本题主要考查了友元函数的概念。

在C++中,一个类的private成员不能被该类的外部代码(包括非成员函数)所访问,除非将该函数或类声明为当前类的友元函数或友元类。故本题答案为\友元\或\。

知识点:C++部分/输入输出流/能够使用格式控制数据的输入输出 62、派生类中的成员不能直接访问基类中的______成员。 答案: 1:私有

本题主要考查了类中成员变量的访问权限。

在类中,声明为public型的成员变量将能被所有对象访问,声明为protected的成员只能被其子类访问,而private型的成员只能被该类内部的成员访问。故派生类不能直接访问基类的private(私有)成员,除非声明为友元类。 知识点:C++部分/输入输出流/能够使用格式控制数据的输入输出

18

63、下列程序的输出结果为2,请将程序补充完整。 #include using namespace std; class Base {

public:

______ void fun(){cout<<1;} };

class Derived:public Base {

public:

void fun(){cout<<2;} };

int main() {

Base *p=new Derived; p->fun(); delete p; return 0; }

答案: 1:virtual

本题主要考查了C++中的虚拟函数。 在C++中,如果声明一个类的成员函数为虚拟函数,则一个对象在调用该函数时将根据该对象实际类型调用相应的成员函数,而不是根据其指针所代表的类类型进行调用。在本题中,指针p所指的变量实际上是一个Derived类型的对象,在执行p->fun();时,将调用类Derived的成员函数fun,而不是调用Base的fun函数。 知识点:C++部分/输入输出流/能够使用格式控制数据的输入输出

64、请将下列类定义补充完整。

class Base{public:void fun(){cout<<\class Derived:public Base {

public:

void fun() {

______ //显式调用基类的fun函数 cout<<\ } };

答案: 1:Base::fun();

本题主要考查了子类对基类中函数的调用。

19

要在子类中显式的调用基类中的函数,只要在函数名前加上基类的限定运算符就可以了,即本题的答案为Base::fun();。

知识点:C++部分/输入输出流/能够使用格式控制数据的输入输出

65、多数运算符既能作为类的成员函数重载,也能作为类的非成员函数重载,但[]运算符只能作为类的______函数重载。 答案: 1:成员

本题主要考查了C++中运算符的重载。

在C++中,可以对操作符进行重载,但对于有些运算符不能进行重载,

如::,?:,->*等,有些运算符可以重载,但不能改变其原有语义,如->,有些运算符只能作为成员函数重载,如[]。

知识点:C++部分/输入输出流/能够使用格式控制数据的输入输出

66、下面是一个栈类的模板,其中push函数将元素i压入栈顶,pop函数弹出栈顶元素。栈初始为空,top值为0,栈顶元素在stack[top-1]中,在下面横线处填上适当语句,完成栈类模板的定义。 template class Tstack {

enum{size=1000}; T stack[size]; int top; public:

Tstack():top(0){} void push(const T&i) {

if(top

stack[top++]=i; }

T pop() {

if(top==0)exit(1); return ______; } }; 答案: 1:stack[--top]#stack[top-=1]#stack[top=top-1]#stack[top=-1+top] 本题主要考查了堆栈的操作。

由于在本算法中,栈顶元素为stack[top-1],故要弹出栈顶元素,必须要先将top的值减1,然后取出stack[top]中的元素,能够一次性完成该操作的表达式为stack[--top]或stack[top-=1]或其它类似表示。

知识点:C++部分/输入输出流/能够使用格式控制数据的输入输出 67、有一种只在循环语句或switch 语句中使用的流程控制语句,表示该语句的关键字是______。

20