ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:28.08KB ,
资源ID:10750771      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10750771.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(二级C++模拟491.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

二级C++模拟491.docx

1、二级C+模拟491二级C+模拟491(总分:162.00,做题时间:90分钟)一、选择题(总题数:40,分数:74.00)1.若有如下语句 #includeiostream.h void main( ) int x=3; do x=x-2; coutx; while(!(-x); 则上面程序段(分数:1.00)A.输出的是1B.输出的是1和-2C.输出的是3和0D.是死循环解析:解析 do-while语句的一般格式为do循环体语句while(表达式);先执行循环体语句一次,再判断表达式的值,若为真则继续执行循环,否则终止循环。本题中,先执行x=x-2,即为1。判断表达式的值,!(-x)为真,x

2、=0,继续循环。再次执行循环体语句后,x=-2,此时表达式的值为0,结束循环。2.关于关键字class和typename,下列表述中正确的是_。(分数:2.50)A.程序中的typename都可以替换为classB.程序中的class都可以替换为typenameC.在模板形参表中只能用typename来声明参数的类型D.在模板形参表中只能用class或typename来声明参数的类型解析:3.有如下程序: #includeiostream using namespace std; class Toy public: Toy(char*_n)strcpy(name, _n); count+; T

3、oy()count-; char* GetName()return name; static int getCount()return count; private: char name10; static int count; ; int Toy:count=0; int main() Toy t1(Snoopy), t2(Mickey), t3(Barbie); coutt1.getCount()endl; return 0; 运行时的输出结果是_。(分数:2.50)A.1B.2C.3D.运行时出错解析:解析 创建埘象t1、t2、t3时,调用含参构造函数三次,因为count是静态数据成员,

4、三次count自加都是同一数据的自加,三次调用后count的值为3,利用对象调用静态成员函数输出count的值。4.设有定义“int x=2;”,下列表达式中,值不为6的是_。(分数:2.50)A.x*=x+1B.x+,2*xC.x*=(1+x)D.2*x,x+=2解析:解析 本题考查了复合运算符“*=”和逗号表达式如何正确求值。逗号表达式的作用是用逗号将表达式连起来,其有效值为最后一个表达式的值,其运算的结合性从左到右进行运算。选项D是一个逗号表达式,其值为4。5.将前缀运算符“-”重载为非成员函数,下列原型中能正确用于类中说明的是_。(分数:1.00)A.Decr&operator-(in

5、t);B.Decr operator-(Decr&,int);C.friend Decr&operator-(Decr&);D.friend Decr operator-(Decr&,int);解析:解析 非成员函数重载用友元函数的形式实现,“-”运算符重载分为前置和后置两种重载方式。用友元函数来实现“-”运算符的重载时,前置“-”运算符的重载的一般格式为:friendtypeoperator-(ClassName&);后置+运算符的重载的一般格式为:friendtypeoperator-(ClassName&,int)。所以答案为D。6.下列函数原型声明中,错误的是_。(分数:2.00)A.

6、int function(int m,int n);B.int function(int,int);C.int function(int m=3,int n);D.int function(int&m,int&n);解析:解析 在C+中,函数在使用之前要预先声明。这种声明在标准C+中称为函数原型,函数原型给出了函数名、返回类型以及在调用函数时必须提供的参数个数和类型。其语法为:返回类型函数名(形参列表);使用函数原型说明有两种形式:直接使用函数定义的头部,并在后面加上一个分号;在函数原型说明中省略参数列表中的形参变量名,仅给出函数名、函数类型、参数个数及次序。在选项C中,给出了形参变量m的初值

7、。7.关于关键字class和typename,下列表述正确的是_。(分数:3.00)A.程序中所有的class都可以替换为typenameB.程序中所有的typename都可以替换为classC.A和B都可以D.A和B都不可以解析:8.对于语句“coutsetfill(*)setw(10)1setfill(*)setw(2)2;”的输出结果是_。(分数:2.50)A.*1*2B.*12C.*1*2D.12*解析:解析 C+语言中setfill的意思是在空格的地方填上setfill函数中的参数字符,setw的意思是设置整个输出字符串的字符个数,本题中用*来代替空格。9.打开文件时可单独或组合使用

8、下列文件打开模式_。 ios_base:app ios_base:binary ios_base:in ios_base:out 若要以二进制读方式打开一个文件,需使用的文件打开模式为(分数:2.00)A.B.C.D.解析:解析 模式ios_base:binary作为二制进文件打开,ios_base:out为输出而打开文件。10.包容类Contain和内嵌类Embed定义如下: #includeiostream.h class Contain private: int X; protected: int z; public: class Embed private: int y; public

9、: Embed()y=100; int Embed_Fun(); MyEmbed; int Contain_Fun(); ; 对上面的定义,正确的描述是 _ 。(分数:1.00)A.定义类Embed对象的语句是:Contain? Embed embed;B.类Contain的成员函数Contain_Fun()中可以用MyEmbe D.y的方式访问类Embed的私有成员yC.类Embed的成员函数Embed_Fun()中可以直接访问Contain的私有成员xD.类Embed的成员函数Embed_Fun()中可以直接访问Contain的保护成员Z解析:11.下面程序的结果是 #includeios

10、treamh class A public: A( ) cout construtA end1; virtual A( ) cout destructA end1; ; class B:public A ; class C:public A ; class D:public B,public C ; void main( ) Dd;(分数:1.00)A.constructAdestructAB.constructAconstructAdestructAdestructAC.constructAconstructAconstructAdestructAdestructAdestructAD.co

11、nstructAconstructAconstructAconstructAdestructAdestructAdestructAdestructA解析:解析:类D继承了类C和类B,所以在构造的时候分别构造类B和类C。12.下列代码段声明了3个类 class Person; class Student:public Person; class Undergraduate:Student; 下列关于这些类之间关系的描述中,错误的是_。(分数:2.00)A.类Person是类Undergraduate的基类B.类Undergraduate从类student公有继承C.类student是类Perso

12、n的派生类D.类Undergraduate是类Person的派生类解析:解析 Student类公有继承自Person类,Undergraduate类私有继承自Student类。所以Undergraduate类是从Student类私有继承的。13.如有以下程序: #includeiostream using namespace std, long fun(int n) if(n2) return(fun(n-1)+fun(n-2); else return 2; int main() coutfun(3)end1; return 0; 则该程序的输出结果应该是_。(分数:2.50)A.2B.3C

13、.4D.5解析:解析 主函数中调用fun(3),在fun内部当n2时,递归调用fun(n-1) +fun(n-2),否则返回2。所以当n=3时,调用fun(2)+fun(1),即返回2+2,等于4。14.某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)_。(分数:1.00)A.3B.4C.6D.7解析:解析 根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子结点总比度为2的结点多一个,所以本题中度为2的结点为1-1=0个,所以可以知道本题目中的二叉树的每一个结点都有一个分支,所以共7个结点共7层,即度为7。15.当派生类从一个基类保护继承时,基类中的一

14、些成员在派生类中成为保护成员,这些成员在基类中原有的访问属性是_。(分数:1.00)A.任何B.公有或保护C.保护或私有D.私有解析:解析 保护继承时基类的public和protected是保护的,私有继承时基类的public和protected是私有的。16.下列函数模版中的定义中,合法的是_。(分数:2.00)A.templatetypename TT abs(T x)return x0?-x:x;B.template classTT abs(T x)return x0?-x:x;C.template Tclass Tabs(T x)return x0?-x:x;D.template T

15、abs(T x)return x0?-x:x;解析:解析 此题考查的是函数模板。声明一个函数模板的格式是:template模板形参表声明函数声明,其中的模板形参表声明是由一个或多个“模板形参”组成的,每个“模板形参”可具有以下几种形式:typename参数名;class参数名;类型修饰参数名。17.下列关于虚函数的描述中正确的是_。(分数:2.50)A.如果在重定义函数时使用了保留字virtual,则该重定义函数仍然是虚函数B.虚函数不得声明为静态成员函数C.虚函数不得声明为另一个类的友元函数D.派生类必须重新定义基类的虚函数解析:解析 虚函数可以是另一个类的友元函数,但不能是静态成员函数,也

16、不能是内联函数和构造函数。在派生类中可以重新定义从基类继承下来的虚函数,也可能不需要。虚函数在派生类中重定义后,重定义的函数仍然是一个虚函数,而且无论是否用virtual修饰。18.下列关于函数的说法中,正确的是(分数:2.50)A.C+允许在函数体中定义其他函数B.所有的内联函数都要用inline说明C.仅函数返回类型不同的同名函数不能作为重载函数使用D.有默认值的参数应从左至右逐个定义解析:19.以下选项中合法的实型常数是(分数:2.00)A.5 E 2.0B.E-3C.2 E0D.1.3 E解析:解析 本题考查实型常数的指数表示法,可以肯定的是指数不能为小数即必须为整数,故排除A由于符号

17、E前面必须有数字,故B也是错误的。D在指数符号后面没有数字,是错误的。答案为C。20.下列程序的输出结果是 _ 。 #includeiostream.h main() int m=5; if(m+5) coutm; else coutm-; (分数:2.00)A.7B.6C.5D.4解析:解析 此题中,因为m+5成立(此时m的值变为6),所以执行语句coutm;输出结果为6。21.下面程序段的运行结果是 void main ( ) int t, a, b, C; a1;b2;C2; while(abc) ta;ab;bt;c; cout a , b , C; (分数:2.00)A.1,2,0B

18、.2,1,0C.1,2,1D.2,1,1解析:解析 本题中(abc) 的运算次序是先算ab,返回1,再运算1c,返回1,所以表达式a bc的值为1。22.有如下程序: # includeiostream using namespace std; class Toy public: Toy(char*_n)strcpy(name, _n);count+: Toy()count-; char*GetName()return name; static int getCount()return count; private: char name10; static int count; ; int T

19、oy:count=0; int main() Toy t1(snoopy),t2(Mickey),t3(Barbie); toutt1.getCount()endl; return 0; 运行时的输出结果是_。(分数:2.50)A.1B.2C.3D.运行时出错解析:解析 析构函数主要用于最后函数的释放空间。本题在已输出t1.getCount()后才调用即不影响所输结果。23.以下程序运行后的输出结果是 _ 。 #includeiostream.h void main() char aft=abbcabbcabbc; int i=0,j=0,k=0; while(ai) if(ai=a) j+;

20、 if(ai=b) k+; i+; coutjkend1; (分数:2.00)A.2,6B.3,5C.4,7D.3,6解析:解析 程序中首先定义字符数组a,然后在while循环中统计字符a和b的个数。其中j记录a的个数,k记录b的个数。第一个if语句是当第i个字符为a时,i加1;第二个if语句是当第i个字符为b时,k加1。24.下列叙述中正确的是(分数:2.00)A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针

21、共同决定的解析:解析 循环队列是线性表的一种,所以选项A错误。循环队列的入队和出队需要由队尾指针和队头指针完成,所以选项B和c错误。25.有如下程序段: int i=1; int j=4; int main() int i=5; j+=i; coutijendl; 运行时的输出结果是(分数:1.00)A.14B.95C.59D.55解析:解析 main函数中的局部变量i屏蔽了全局变量的i,即在main函数中的i取值为5,所以j=4+5=9,输出结果为59,答案为C选项。26.有如下程序: #includeiostream using namespace std; class A public:

22、 static int a; void init()a=1; A(int a=2)init();a+; ; int A:a=0; A obj; int main() coutobj.a; return 0; 运行时输出的结果是_。(分数:1.00)A.0B.1C.2D.3解析:解析 本题考查构造函数,本题中对类中的a数据成员先是赋值为0,当定义了对象obj时,执行构造函数,将a的值变为了1,所以输出1。27.下列不构成无限循环的语句或语句组是_。(分数:2.50)A.n=0;do+n;while(n=0);B.n=0;while(1)n+;C.while(n=10);n-;D.for(n=0,

23、i=1; ;i+)n+=i解析:解析 选项B中while(1)永远为真,一直自加下次进入死循环;选项C中while(n=10)同理死循环,没有下限范围;选项D中for循环中i也没有循环限定条件也将进入死循环;只有选项A中while(n=0)循环判定成立,循环结束。28.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是_。(分数:1.00)A.编译程序B.操作系统C.教务管理系统D.汇编程序解析:解析 编译软件、操作系统、汇编程序都属于系统软件,只有C教务管理系统才是应用软件。29.下面叙述中错误的是_。(分数:1.00)A.软件测试的目的是发现错误并改正错误

24、B.对被调试的程序进行“错误定位”是程序调试的必要步骤C.程序调试通常也称为DebugD.软件测试应严格执行测试计划,排除测试的随意性解析:解析 软件测试的目的是为了发现错误而执行程序的过程,并不涉及改正错误,所以选项A错误。程序调试的基本步骤有:错误定位、修改设计和代码,以排除错误、进行回归测试,防止引进新的错误。程序调试通常称为Debug,即排错。软件测试的基本准则有:所有测试都应追溯到需求、严格执行测试计划,排除测试的随意性、充分注意测试中的群集现象、程序员应避免检查自己的程序、穷举测试不可能、妥善保存测试计划等文件。30.若有以下函数调用语句:fun(m+n,x+y,f(m+n,z,(

25、x,y);在此函数调用语句中实参的个数是 _ 。(分数:2.00)A.6B.5C.4D.3解析:解析 参数之间是用逗号分隔的,不要因为参数是表达式而被迷惑。函数的第一个参数是表达式m+n,第三个参数是表达式f(m+n,z,(x,y)。31.结构化分析方法是面向 _ 的自顶向下、逐步求精进行需求分析的方法。(分数:2.00)A.对象B.数据结构C.数据流D.目标解析:解析 结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐步求精,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。32.若有下面的函数调用: fun(a+b,3,max(n-1,b) 则fun的实参

26、个数是_。(分数:1.00)A.3B.4C.5D.6解析:解析 本题考查函数实参个数的基础知识,根据实参的概念,(a+b)、3、max(n-1,b)分别为其中的3个实参。故答案为A。33.实现运行时的多态性要使用 _ 。(分数:2.00)A.虚函数B.重载函数C.析构函数D.构造函数解析:解析 虚函数是实现动态联编的必要条件之一,没有虚函数一定不能实现动态联编。34._既可重载为一元运算符,义可重载为二元运算符。(分数:1.00)A.“*”B.“=”C.“=”和“*”D.“*”和“* +”解析:解析 本题考查的是运算符的有关概念。“*”是二元运算符,既可用于间接访问也可用于两数相乘;而“=”和

27、“+”都是一元运算符。35.关于友元,下列说法错误的是_。(分数:2.00)A.如果类A是类B的友元,那么类B也是类A的友元B.如果函数fun()被说明为类A的友元,那么在fun()中可以访问类A的私有成员C.友元关系不能被继承D.如果类A是类B的友元,那么类A的所有成员函数都是类B的友元解析:解析 一个类是另一个类的友元,意味着该类的每一个成员函数都是另个类的友元函数。36.已知各变量的定义如下 int i=8,k,a,b; unsigned long w=5; double x= 1.42,y=5.2; 则以下符合C+语言语法的表达式是 _ 。(分数:2.00)A.a+=a-=(b=4)*(a=3)B.a=a*3+2C.x%(-3)D.y=float i解析:37.关于构造函数A()的拷贝构造函数正确的是(分数:1.00)A.A(A *B) ;B.A(AB) ;C.A(A&B);D.A(A);解析:解析 考查拷贝构造函数的方法。 解题要点 固定的一种拷贝方式就是类名: 类名const类名&引用对象名 考点链接 如果一个类中没有声明,拷贝构造函数,编译器会自动生成一个如上述形成的仅有的拷贝构造函数。3

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1