二级C++模拟491Word格式文档下载.docx

上传人:b****4 文档编号:7358728 上传时间:2023-05-08 格式:DOCX 页数:28 大小:28.08KB
下载 相关 举报
二级C++模拟491Word格式文档下载.docx_第1页
第1页 / 共28页
二级C++模拟491Word格式文档下载.docx_第2页
第2页 / 共28页
二级C++模拟491Word格式文档下载.docx_第3页
第3页 / 共28页
二级C++模拟491Word格式文档下载.docx_第4页
第4页 / 共28页
二级C++模拟491Word格式文档下载.docx_第5页
第5页 / 共28页
二级C++模拟491Word格式文档下载.docx_第6页
第6页 / 共28页
二级C++模拟491Word格式文档下载.docx_第7页
第7页 / 共28页
二级C++模拟491Word格式文档下载.docx_第8页
第8页 / 共28页
二级C++模拟491Word格式文档下载.docx_第9页
第9页 / 共28页
二级C++模拟491Word格式文档下载.docx_第10页
第10页 / 共28页
二级C++模拟491Word格式文档下载.docx_第11页
第11页 / 共28页
二级C++模拟491Word格式文档下载.docx_第12页
第12页 / 共28页
二级C++模拟491Word格式文档下载.docx_第13页
第13页 / 共28页
二级C++模拟491Word格式文档下载.docx_第14页
第14页 / 共28页
二级C++模拟491Word格式文档下载.docx_第15页
第15页 / 共28页
二级C++模拟491Word格式文档下载.docx_第16页
第16页 / 共28页
二级C++模拟491Word格式文档下载.docx_第17页
第17页 / 共28页
二级C++模拟491Word格式文档下载.docx_第18页
第18页 / 共28页
二级C++模拟491Word格式文档下载.docx_第19页
第19页 / 共28页
二级C++模拟491Word格式文档下载.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

二级C++模拟491Word格式文档下载.docx

《二级C++模拟491Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《二级C++模拟491Word格式文档下载.docx(28页珍藏版)》请在冰点文库上搜索。

二级C++模拟491Word格式文档下载.docx

Toy(char*_n){strcpy(name,_n);

count++;

~Toy(){count--;

char*GetName(){returnname;

staticintgetCount(){returncount;

private:

charname[10];

staticintcount;

};

intToy:

:

count=0;

intmain(){

Toyt1("

Snoopy"

),t2("

Mickey"

),t3("

Barbie"

);

cout<<t1.getCount()<<endl;

return0;

运行时的输出结果是______。

A.1

B.2

C.3 

D.运行时出错

[解析]创建埘象t1、t2、t3时,调用含参构造函数三次,因为count是静态数据成员,三次count自加都是同一数据的自加,三次调用后count的值为3,利用对象调用静态成员函数输出count的值。

4.设有定义“intx=2;

”,下列表达式中,值不为6的是______。

A.x*=x+1

B.x++,2*x

C.x*=(1+x)

D.2*x,x+=2 

[解析]本题考查了复合运算符“*=”和逗号表达式如何正确求值。

逗号表达式的作用是用逗号将表达式连起来,其有效值为最后一个表达式的值,其运算的结合性从左到右进行运算。

选项D是一个逗号表达式,其值为4。

5.将前缀运算符“--”重载为非成员函数,下列原型中能正确用于类中说明的是______。

A.Decr&

operator--(int);

B.Decroperator--(Decr&

int);

C.friendDecr&

operator--(Decr&

D.friendDecroperator--(Decr&

[解析]非成员函数重载用友元函数的形式实现,“--”运算符重载分为前置和后置两种重载方式。

用友元函数来实现“--”运算符的重载时,前置“--”运算符的重载的一般格式为:

friend<type>operator--(ClassName&

);

后置++运算符的重载的一般格式为:

int)。

所以答案为D。

6.下列函数原型声明中,错误的是______。

2.00)

A.intfunction(intm,intn);

B.intfunction(int,int);

C.intfunction(intm=3,intn);

D.intfunction(int&

m,int&

n);

[解析]在C++中,函数在使用之前要预先声明。

这种声明在标准C++中称为函数原型,函数原型给出了函数名、返回类型以及在调用函数时必须提供的参数个数和类型。

其语法为:

<返回类型><函数名>(<形参列表>);

使用函数原型说明有两种形式:

①直接使用函数定义的头部,并在后面加上一个分号;

②在函数原型说明中省略参数列表中的形参变量名,仅给出函数名、函数类型、参数个数及次序。

在选项C中,给出了形参变量m的初值。

7.关于关键字class和typename,下列表述正确的是______。

3.00)

A.程序中所有的class都可以替换为typename

B.程序中所有的typename都可以替换为class 

C.A和B都可以

D.A和B都不可以

8.对于语句“cout<<setfill("

*"

)<<setw(10)<<1<<setfill("

)<<setw

(2)<<2;

”的输出结果是______。

A.*********1*2 

B.********12

C.*******1*2

D.12********

[解析]C++语言中setfill的意思是在空格的地方填上setfill函数中的参数字符,setw的意思是设置整个输出字符串的字符个数,本题中用*来代替空格。

9.打开文件时可单独或组合使用下列文件打开模式______。

①ios_base:

app②ios_base:

binary

③ios_base:

in④ios_base:

out

若要以二进制读方式打开一个文件,需使用的文件打开模式为

A.①③

B.①④

C.②③

D.②④ 

[解析]模式ios_base:

binary作为二制进文件打开,ios_base:

out为输出而打开文件。

10.包容类Contain和内嵌类Embed定义如下:

classContain

private:

intX;

protected:

intz;

public:

classEmbed

inty;

Embed(){y=100;

intEmbed_Fun();

}MyEmbed;

intContain_Fun();

};

对上面的定义,正确的描述是____。

A.定义类Embed对象的语句是:

Contain?

Embedembed;

B.类Contain的成员函数Contain_Fun()中可以用MyEmbeD.y的方式访问类Embed的私有成员y

C.类Embed的成员函数Embed_Fun()中可以直接访问Contain的私有成员x

D.类Embed的成员函数Embed_Fun()中可以直接访问Contain的保护成员Z

11.下面程序的结果是

#include<iostream.h>

classA

{public:

A(){cout<<"

construtA"

<<end1;

virtual~A(){cout<<"

destructA"

}};

classB:

publicA

{};

classC:

classD:

publicB,publicC

{Dd;

}

A.constructAdestructA

B.constructAconstructAdestructAdestructA 

C.constructAconstructAconstructAdestructAdestructAdestructA

D.constructAconstructAconstructAconstructAdestructAdestructAdestructAdestructA

类D继承了类C和类B,所以在构造的时候分别构造类B和类C。

12.下列代码段声明了3个类

classPerson{};

classStudent:

publicPerson{};

classUndergraduate:

Student{};

下列关于这些类之间关系的描述中,错误的是______。

A.类Person是类Undergraduate的基类

B.类Undergraduate从类student公有继承 

C.类student是类Person的派生类

D.类Undergraduate是类Person的派生类

[解析]Student类公有继承自Person类,Undergraduate类私有继承自Student类。

所以Undergraduate类是从Student类私有继承的。

13.如有以下程序:

usingnamespacestd,

longfun(intn)

if(n>2)

return(fun(n-1)+fun(n-2));

else

return2;

intmain()

cout<<fun(3)<<end1;

则该程序的输出结果应该是______。

A.2

B.3

C.4 

D.5

[解析]主函数中调用fun(3),在fun内部当n>

2时,递归调用fun(n-1)+fun(n-2),否则返回2。

所以当n=3时,调用fun

(2)+fun

(1),即返回2+2,等于4。

14.某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)______。

A.3

B.4

C.6

D.7 

[解析]根据二叉树的基本性质3:

在任意一棵二叉树中,度为0的叶子结点总比度为2的结点多一个,所以本题中度为2的结点为1-1=0个,所以可以知道本题目中的二叉树的每一个结点都有一个分支,所以共7个结点共7层,即度为7。

15.当派生类从一个基类保护继承时,基类中的一些成员在派生类中成为保护成员,这些成员在基类中原有的访问属性是______。

A.任何

B.公有或保护 

C.保护或私有

D.私有

[解析]保护继承时基类的public和protected是保护的,私有继承时基类的public和protected是私有的。

16.下列函数模版中的定义中,合法的是______。

A.template<typenameT>Tabs(Tx){returnx<0?

-x:

x;

B.templateclass<T>Tabs(Tx){returnx<0?

C.templateT<classT>abs(Tx){returnx<0?

D.templateTabs(Tx){returnx<0?

[解析]此题考查的是函数模板。

声明一个函数模板的格式是:

template<模板形参表声明>函数声明,其中的<模板形参表声明>是由一个或多个“模板形参”组成的,每个“模板形参”可具有以下几种形式:

typename参数名;

class参数名;

类型修饰参数名。

17.下列关于虚函数的描述中正确的是______。

A.如果在重定义函数时使用了保留字virtual,则该重定义函数仍然是虚函数

B.虚函数不得声明为静态成员函数 

C.虚函数不得声明为另一个类的友元函数

D.派生类必须重新定义基类的虚函数

[解析]虚函数可以是另一个类的友元函数,但不能是静态成员函数,也不能是内联函数和构造函数。

在派生类中可以重新定义从基类继承下来的虚函数,也可能不需要。

虚函数在派生类中重定义后,重定义的函数仍然是一个虚函数,而且无论是否用virtual修饰。

18.下列关于函数的说法中,正确的是

A.C++允许在函数体中定义其他函数

B.所有的内联函数都要用inline说明

C.仅函数返回类型不同的同名函数不能作为重载函数使用 

D.有默认值的参数应从左至右逐个定义

19.以下选项中合法的实型常数是

A.5E2.0

B.E-3

C..2E0 

D.1.3E

[解析]本题考查实型常数的指数表示法,可以肯定的是指数不能为小数即必须为整数,故排除A.由于符号E前面必须有数字,故B也是错误的。

D在指数符号后面没有数字,是错误的。

答案为C。

20.下列程序的输出结果是____。

main()

intm=5;

if(m++>5)

cout<<m;

elsecout<<m--;

A.7

B.6 

C.5

D.4

[解析]此题中,因为m++>5成立(此时m的值变为6),所以执行语句cout<<m;

输出结果为6。

21.下面程序段的运行结果是

voidmain()

intt,a,b,C;

a=1;

b=2;

C=2;

while(a<b<c)

{t=a;

a=b;

b=t;

c--;

cout<<a<<"

"

<<b<<"

<<C;

A.1,2,0 

B.2,1,0

C.1,2,1

D.2,1,1

[解析]本题中(a<b<c)的运算次序是先算a<b,返回1,再运算1<c,返回1,所以表达式a<b<c的值为1。

22.有如下程序:

#include<iostream>

count++:

char*GetName(){returnname;

snoopy"

),t2("

),t3("

tout<<t1.getCount()<<endl;

[解析]析构函数主要用于最后函数的释放空间。

本题在已输出t1.getCount()后才调用即不影响所输结果。

23.以下程序运行后的输出结果是____。

voidmain()

charaft="

abbcabbcabbc"

;

inti=0,j=0,k=0;

while(a[i])

if(a[i]=="

a"

j++;

b"

k++;

i++;

cout<<j<<"

"

<<k<<end1;

A.2,6

B.3,5

C.4,7

D.3,6 

[解析]程序中首先定义字符数组a,然后在while循环中统计字符a和b的个数。

其中j记录a的个数,k记录b的个数。

第一个if语句是当第i个字符为a时,i加1;

第二个if语句是当第i个字符为b时,k加1。

24.下列叙述中正确的是

A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构

B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况

C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况

D.循环队列中元素的个数是由队头指针和队尾指针共同决定的 

[解析]循环队列是线性表的一种,所以选项A错误。

循环队列的入队和出队需要由队尾指针和队头指针完成,所以选项B和c错误。

25.有如下程序段:

inti=1;

intj=4;

intmain(){

inti=5;

j+=i;

cout<<i<<j<<endl;

运行时的输出结果是

A.14

B.95

C.59 

D.55

[解析]main函数中的局部变量i屏蔽了全局变量的i,即在main函数中的i取值为5,所以j=4+5=9,输出结果为59,答案为C选项。

26.有如下程序:

classA{

staticinta;

voidinit(){a=1;

A(inta=2){init();

a++;

intA:

a=0;

Aobj;

cout<<obj.a;

运行时输出的结果是______。

A.0

B.1 

C.2

D.3

[解析]本题考查构造函数,本题中对类中的a数据成员先是赋值为0,当定义了对象obj时,执行构造函数,将a的值变为了1,所以输出1。

27.下列不构成无限循环的语句或语句组是______。

A.n=0;

do{++n;

}while(n<=0);

B.n=0;

while

(1){n++;

C.while(n=10);

{n--;

D.for(n=0,i=1;

;

i++)n+=i

[解析]选项B中while

(1)永远为真,一直自加下次进入死循环;

选项C中while(n=10)同理死循环,没有下限范围;

选项D中for循环中i也没有循环限定条件也将进入死循环;

只有选项A中while(n<=0)循环判定成立,循环结束。

28.软件按功能可以分为:

应用软件、系统软件和支撑软件(或工具软件)。

下面属于应用软件的是______。

A.编译程序

B.操作系统

C.教务管理系统 

D.汇编程序

[解析]编译软件、操作系统、汇编程序都属于系统软件,只有C教务管理系统才是应用软件。

29.下面叙述中错误的是______。

A.软件测试的目的是发现错误并改正错误 

B.对被调试的程序进行“错误定位”是程序调试的必要步骤

C.程序调试通常也称为Debug

D.软件测试应严格执行测试计划,排除测试的随意性

[解析]软件测试的目的是为了发现错误而执行程序的过程,并不涉及改正错误,所以选项A错误。

程序调试的基本步骤有:

错误定位、修改设计和代码,以排除错误、进行回归测试,防止引进新的错误。

程序调试通常称为Debug,即排错。

软件测试的基本准则有:

所有测试都应追溯到需求、严格执行测试计划,排除测试的随意性、充分注意测试中的群集现象、程序员应避免检查自己的程序、穷举测试不可能、妥善保存测试计划等文件。

30.若有以下函数调用语句:

fun(m+n,x+y,f(m+n,z,(x,y)));

在此函数调用语句中实参的个数是____。

A.6

B.5

C.4

D.3 

[解析]参数之间是用逗号分隔的,不要因为参数是表达式而被迷惑。

函数的第一个参数是表达式m+n,第三个参数是表达式f(m+n,z,(x,y))。

31.结构化分析方法是面向____的自顶向下、逐步求精进行需求分析的方法。

A.对象

B.数据结构

C.数据流 

D.目标

[解析]结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐步求精,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。

32.若有下面的函数调用:

fun(a+b,3,max(n-1,b))

则fun的实参个数是______。

A.3 

D.6

[解析]本题考查函数实参个数的基础知识,根据实参的概念,(a+b)、3、max(n-1,b)分别为其中的3个实参。

故答案为A。

33.实现运行时的多态性要使用____。

A.虚函数 

B.重载函数

C.析构函数

D.构造函数

[解析]虚函数是实现动态联编的必要条件之一,没有虚函数一定不能实现动态联编。

34.______既可重载为一元运算符,义可重载为二元运算符。

A.“*” 

B.“=”

C.“=”和“*”

D.“*”和“*++”

[解析]本题考查的是运算符的有关概念。

“*”是二元运算符,既可用于间接访问也可用于两数相乘;

而“=”和“++”都是一元运算符。

35.关于友元,下列说法错误的是______。

A.如果类A是类B的友元,那么类B也是类A的友元 

B.如果函数fun()被说明为类A的友元,那么在fun()中可以访问类A的私有成员

C.友元关系不能被继承

D.如果类A是类B的友元,那么类A的所有成员函数都是类B的友元

[解析]一个类是另一个类的友元,意味着该类的每一个成员函数都是另—个类的友元函数。

36.已知各变量的定义如下

inti=8,k,a,b;

unsignedlongw=5;

doublex=1.42,y=5.2;

则以下符合C++语言语法的表达式是____。

A.a+=a-=(b=4)*(a=3) 

B.a=a*3+2

C.x%(-3)

D.y=floati

37.关于构造函数A()的拷贝构造函数正确的是

A.A(A*B);

B.A(AB);

C.A(A&

B);

D.A(A);

[解析]考查拷贝构造函数的方法。

[解题要点]固定的一种拷贝方式就是<类名>:

<类名>const<类名>&

<引用对象名>

[考点链接]如果一个类中没有声明,拷贝构造函数,编译器会自动生成一个如上述形成的仅有的拷贝构造函数。

3

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2