二级C++212文档格式.docx

上传人:b****1 文档编号:1564542 上传时间:2023-05-01 格式:DOCX 页数:17 大小:23.50KB
下载 相关 举报
二级C++212文档格式.docx_第1页
第1页 / 共17页
二级C++212文档格式.docx_第2页
第2页 / 共17页
二级C++212文档格式.docx_第3页
第3页 / 共17页
二级C++212文档格式.docx_第4页
第4页 / 共17页
二级C++212文档格式.docx_第5页
第5页 / 共17页
二级C++212文档格式.docx_第6页
第6页 / 共17页
二级C++212文档格式.docx_第7页
第7页 / 共17页
二级C++212文档格式.docx_第8页
第8页 / 共17页
二级C++212文档格式.docx_第9页
第9页 / 共17页
二级C++212文档格式.docx_第10页
第10页 / 共17页
二级C++212文档格式.docx_第11页
第11页 / 共17页
二级C++212文档格式.docx_第12页
第12页 / 共17页
二级C++212文档格式.docx_第13页
第13页 / 共17页
二级C++212文档格式.docx_第14页
第14页 / 共17页
二级C++212文档格式.docx_第15页
第15页 / 共17页
二级C++212文档格式.docx_第16页
第16页 / 共17页
二级C++212文档格式.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

二级C++212文档格式.docx

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

二级C++212文档格式.docx

D.语句

[解析]每个C++程序中都要有且仅有一个主函数,该函数是程序的入口,而语句、预处理命令和函数及类在程序中都可以有多个。

5.面向对象程序设计思想的主要特征中不包括

A.继承性

B.功能分解,逐步求精 

C.封装性和信息隐藏

D.多态性

[解析]C++是一种面向对象的程序设计语言,它充分支持面向对象思想中的3个主要特征:

封装性,继承性、多态性。

B选项所描述是结构化程序设计的思想。

6.有如下函数模板:

template<typenameT,typenameU>

Tcast(Uu){returnu;

}

其功能是将U类型数据转换为T类型数据。

已知i为int型变量,下列对模板函数cast的调用中正确的是______。

A.cast(i);

B.cast<>(i);

C.cast<char*,int>(i);

D.cast<double,int>(i);

[解析]本题考查函数模板的基本运用,属于基础知识。

函数模板实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型代表,这个通用函数就是函数模板。

函数模板可以设定默认参数,这样在调用模板函数时就可以省略实参,函数模板的实例就是一个函数的定义。

所以本题答案为D。

7.软件详细设计产生的图如下:

该图是______。

A.N-S图

B.PAD图

C.程序流程图 

D.E-R图

[解析]程序流程图基本图符有:

控制流(用箭头表示)、加工步骤(用方框表示)、逻辑条件(用菱形表示)。

有5种控制结构:

顺序、选择、多分支选择、后判断重复型和先判断重复型。

题目中为选择结构的程序流程图。

8.下面程序的输出结果是______。

#include<iostream.h>

#include<string.h>

voidmain()

{

charp1[10],p2[10];

strcpy(p1,"

abc"

);

strcpy(p2,"

ABC"

charstr[50]="

xyz"

;

strcpy(str+2,strcat(p1,p2));

cout<<str;

}

A.xyzabcABC

B.zabcABC

C.xyabcABC 

D.yzabcABC

[解析]该函数的调用方式是strcpy(字符数组,字符串),其中字符串可以是串常量,也可以是字符数组。

函数的功能是将字符串完整地复制到字符数组中,字符数组中原有内容被覆盖。

使用该函数时注意:

①字符数组必须定义得足够大,以便容纳复制过来的字符串,复制时,连同结束标志/0一起复制;

②连接前两个字符串都有结束标志"

/0"

,连接后"

符数组"

中存储的字符串的结束标志"

被舍弃,只在目标串的最后保留一个"

③不能用赋值运算符=将一个字符串直接赋值给一个字符数组,只能用strcpy()函数来处理,strcat(字符数组,字符串)的功能是把字符串连接到字符数组中的字符串尾端,并存储于字符数组中,字符数组中原来的结束标志,被字符串的第一个字符覆盖,而字符串在操作中未被修改。

9.有如下程序:

#include<iostream>

usingnamespacestd;

voidfun(inti){cout<<"

/inti"

voidfun(chare){cout<<"

/charc"

intmain(){

fun(0);

fun("

0"

retum0;

运行后的输出结果是______。

A./inti/inti

B./inti/charc 

C./charc/inti

D./charc/charc

[解析]本题考查的是重载函数的匹配。

在main函数中,fun(0)中的参数是整数0,所以最佳匹配函数是fun(inti),即调用函数fun(inti),输出“/inti”;

同样,fun("

)中的参数是字符"

,最佳匹配函数是fun(charc),所以调用函数fun(charc),输出”/charc”,选项B正确;

答案为B选项。

10.设有定义charstr[80]以下不能将输人数据nrst/nsecond/<CR)读取到数组str的语句是____。

A.cin.get(str,strlen(str));

B.cin.getline(str,strlen(str));

C.cin>>str;

D.dn.read(str,strlen(str));

[解析]本题考查cin流对象的几种成员函数get,getline,read及流提取符>>的使用规则。

11.在对象方法中,一个对象请求另一个对象为其服务的方式是通过发送______来实现。

A.调用语句

B.命令

C.中令

D.消息 

[解析]在面向对象方法中,对象之间通过消息进行通信。

消息中只包含传递者的要求,它告诉接受者需要做哪些处理,但并不指示接受者应该怎么完成这些处理,接受者独立决定采用什么方式完成所需的处理。

12.有如下类定义:

classMyClass{

public:

______

private:

intdata;

};

若耍为Myclass类重载流输入运算符>>,使得程序中可以“cin>>obj;

”形式输入MyClass类的对象obj,则横线处的声明语句应为______。

A.friendistream&operator>>(istream&is,MyClass&-a);

B.friendistream&operator>>(istream&is,MyClassa);

C.istream&operator>>(istream&is,MyClass&a);

D.istrcam&operator>>(istream&is,Myclassa);

[解析]重载输入、输出的声明必须是友元.传入的对象必须是地址,否则操作对象的值是没有意义的,

下面是重载输入运算符示例:

(DewC++)

#include<cstdlib>

intdala;

MyClass(intdata);

friendistrcam&operator>>(istream&is,MyClass&obj);

MyClass:

MyClass(intdata){

data=data;

istream&operator>>(istream&is,MyClass&obj){

is>>obj.data;

returnis;

intmain(void)

MyClassobj(12);

cin>>obj;

cout<<endl;

cout<<obj.data;

system("

PAUSE"

returnEXITSUCCESS;

13.若有如下程序:

usingnarnespacestd;

classTestClass

voidwho(){cout<<"

TestClass"

<<endl;

classTestClassl:

publicTestClass

TestClass1"

}};

intmain()

TestClass*p;

TcstClass1obj1;

p=&obj1;

p->who();

return0;

则该程序运行后的输出结果是______。

A.TestClassl 

B.TestClass

C.0

D.无输出

[解析]程序中的TestClassl为TestClass的派生类,主函数maln中定义TestClass对象*p,TestClass1对象obj1,然后p引用obj1,执行p->who()则是调用基类中的who函数,输出TestClass。

14.计算数列第n项的函数定义如下:

intfa(intn){

if(n==0)return0;

elseif(n==1)return1;

elsereturnfa(n-1)+fa(n-2);

若执行函数调用表达式fa(3)时,返回的函数值为______。

A.0

B.1

C.2 

D.3

[解析]本题考查的是递归函数。

函数fa是一个递归函数,递归退出条件为n=0或1,否则为fa(n-1)+fa(n-2)。

所以fa(3)展开如下:

fa(3)=fa

(2)+fa

(1)=fa

(1)+fa(0)+fa

(1)=1+0+1=2。

答案为C选项。

15.以下正确的描述为

A.每个C++语言程序必须在开头用预处理命令:

B.预处理命令必须位于C++源程序的首部

C.在C++语言中预处理命令都以“#”开头 

D.C++语言的预处理命令只能实现宏定义和条件编译的功能

[解析]本题中,A和B的描述是一样的,故可以捧除。

在C++中,建议用inline函数取代C语言中的宏定义功能。

16.VisualFoxPro是一种____。

A.数据库管理系统软件 

B.操作系统软件

C.文字处理软件

D.CAD软件

[解析]VisualFoxPro属于小型数据库管理系统软件,它是微软的产品,只具备数据库管理系统的一些简单功能。

17.已知类Time的定义如下:

classTime{//时间类

inthour,minute,second;

//时、分、秒

Time(inth,intm,ints):

hour(h),minute(m),second(s){}

______{

switch(index){

case0:

returnhour;

case1:

returnminute;

default:

returnsecond;

其中横线处应为下标访问运算符[]的重载函数的函数头,横线处应填入的代码是

A.int&

operator[](Time&

t,intindex)

B.int&

operator[](intindex) 

C.friendint&

operator[](Time&

D.friendint&

operator[](intindex)

18.有如下程序:

classBase{

classDerived1:

publicBase{};

classDerived2:

protectedBase{};

Derived1d1;

Derived2d2;

d1.data=0;

//①

d2.data=0;

//②

下列关于程序编译结果的描述中,正确的是______。

A.①②皆无编译错误

B.①有编译错误,②无编译错误

C.①无编译错误,②有编译错误 

D.①②皆有编译错误

[解析]本题考查公用继承和保护继承对基类成员的访问属性。

在公用继承中,基类的公用成员和保护成员在派生类中保持原有访问属性,其私有成员仍为基类私有。

在受保护继承中,基类的公用成员和保护成员在派生类中成了保护成员,其私有成员仍为基类私有。

本题中Derived1公用继承Base,所以①编译正确,Derived2保护继承Base,所以②编译不正确。

19.对于算法的每一步,指令必须是可执行的。

算法的____要求算法在有限步骤之后能够达到预期的目的。

A.可行性 

B.有穷性

C.正确性

D.确定性

20.下面有关类模板的说法中不正确的是____。

A.类模板的成员函数都是模板函数

B.类模板本身在编译中不会生成任何代码

C.类模板只是虚拟类型的参数 

D.用类模板定义一个对象时,不能省略实际参数

[解析]C++中类模板的声明格式为template<模板形参表声明><类声明>,并且类模板的成员函数都是模板函数。

21.下列不属于软件工程过程的基本活动的是____。

A.软件规格说明

B.软件开发

C.软件确认

D.软件需求分析 

[解析]软件工程过程是把输入转化为输出的一组彼此相关的资源和活动。

软件工程的过程是将软件工程的方法和工具综合起来,以达到合理、及时地进行计算机软件开发的目的。

它的基本活动包括软件规格说明、软件开发、软件确认、软件演进。

22.运算符重载是对已有的运算符赋予多重含义,因此______。

A.可以对基本类型(如int类型)的数据,重新定义“+”运算符的含义

B.可以改变一个已有运算符的优先级和操作数个数

C.只能重载C++中已经有的运算符,不能定义新运算符 

D.C++中已经有的所有运算符都可以重载

[解析]此题考查的是运算符重载。

运算符重载是针对C++语言原有的运算符进行的,并不能创造新的运算符。

23.数据库系统的三级模式不包括______。

A.概念模式

B.内模式

C.外模式

D.数据模式 

[解析]数据库系统的三级模式是概念模式、外模式和内模式,所以选择D。

24.单个用户使用的数据视图的描述称为

A.外模式 

B.概念模式

C.内模式

D.存储模式

[解析]选项A)正确,外模式是用户的数据视图,也就是用户所见到的数据模式;

选项B)不正确,全局数据视图的描述称为概念模式,即数据库中全部数据的整体逻辑结构的描述;

选项C)不正确,物理存储数据视图的描述称为内模式,即数据库在物理存储方面的描述;

选项D)不正确,存储模式即为内模式。

25.有如下函数模板定义:

template<classT>

Tfunc(Tx,Ty){returnx*x+y*y;

在下列对func的调用中,错误的是______。

A.func(3,5);

B.func(3.0,5.5);

C.func(3,5.5);

D.func<int>(3,5.5);

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

引用模板函数和引用一般函数在语法形式上基本相同。

需要注意的是说明一个函数模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的类型来确认是否匹配函数模板中的对应形参。

本题C选项中,编译系统从第一个参数“3”获得信息“int”和从第二个参数获得信息“double”两者矛盾,错误;

A、B选项正确;

D选项中,函数名后的<int>是模板实参表,编译系统会将double型的形参“5.5”自动转化成int类型。

26.表示在输出时显示小数位,和在文件输入时判断文件尾的函数分别是____。

A.showbase()和eof()

B.showpoint()和eof() 

C.showpoint()和bad()

D.showpoint()和good()

27.若有定义语句“inti=2,j=3;

”,则表达式i/j的结果是______。

A.0 

B.0.7

C.0.66667

D.0.66666667

[解析]由于变量i、j都是整型变量,所以两者相除所得的商也是整型数据。

28.两个或两个以上模块之间联系的紧密程度称为______。

A.耦合性 

B.内聚性

C.复杂性

D.数据传输特性

[解析]耦合性是模块间互相连接的紧密程度的度量,取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。

29.下面程序的运行结果为

voidmain()

chara="

3"

switch(a)

case"

cout<<"

2"

break;

default:

1"

A.3

B.321

C.31

D.32 

[解析]本题主要考查的是switch语句的使用,在第一个case处,因为满足条件所以输出字符3,但这个分支没有break语句终止,所以会继续执行下面的分支语句,即输出字符2,这时出现break语句,结束整个语句,即输出32。

30.下列关于运算符重载的叙述中,错误的是______。

A.有的运算符可以作为非成员函数重载

B.所有的运算符都可以通过重载而被赋予新的含义 

C.不得为重载的运算符函数的参数设置默认值

D.有的运算符只能作为成员函数重载

[解析]重载运算符的规则如下:

①C++不允许用户自己定义新的运算符,只能对已有的c++运算符进行重载;

②c+十不能重载的运算符只有5个;

③重载不能改变运算符运算对象的个数;

④重载不能改变运算符的优先级和结合性;

⑤重载运算符的函数不能有默认的参数;

⑥重载的运算符必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对象,即不允许参数全部是C++的标准类型。

所以答案为B。

31.对于一个类定义,下列叙述中错误的是______。

A.如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数

B.如果没有定义缺省的构造函数,编译器一定将生成一个缺省的构造函数 

C.如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数

D.如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数

[解析]本题考查构造函数和复制构造函数,如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数,如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数。

如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数。

32.有如下的运算符重载函数定义:

doubleoperator+(inti,intk){returndouble(i+k);

但定义有错误,对这个错误最准确的描述是______。

3.00)

A.+只能作为成员函数重载,而这里的+是作为非成员函数重载的

B.两个int型参数的和也应该是int型,而这里将+的返回类型声明为double

C.没有将运算符重载函数声明为某个类的友元

D.C++已经提供了求两个int型数据之和的运算符+,不能再定义同样的运算符 

[解析]此题考查的是运算符的重载。

C++语言规定,不能作为非成员函数重载的运算符有=、[]、()、->以及所有的类型转换运算符,故选项A错误;

运算符重载对返回值类型没有限制,故选项B错误;

C++并不强制要求非成员重载的运算符一定是某个类的友元,所以C选项错误;

题目中重载的“+”运算符的两个参数都是int类型,而C++已经提供了求两个int型数据之和的运算符+,编译器无法区分应该调用哪一个,所以应该选择D选项。

33.下列关于运算符重载的描述中,正确的是______。

A.运算符重载为成员函数时,若参数表中无参数,重载的是一元运算符 

B.一元运算符只能作为成员函数重载

C.二元运算符重载为非成员函数时,参数表中有一个参数

D.C++中可以重载所有的运算符

运算符重载为成员函数时,形参个数一般为运算符元数减1;

重载为非成员函数时,形参个数一般和运算符元数相等。

所以二元运算符重载为非成员函数时,参数表中应有两个参数,C选项错误;

运算符重载为成员函数,若参数表中无参数,重载的是一元运算符,选项A正确;

一元运算符中,“-”(取负)、“++”、“--”等均可重载为成员函数;

C++语言中,“.”、“.*”、“->*”、“:

”、“?

”五个运算符不能重载。

34.有如下程序:

classToy{

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

count++;

~Toy(){count--;

char*GetName(){returnname;

staticintgetCount(){returncount;

charname[10];

staticintcount;

intToy:

count=0;

Toyt1("

Sn

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

当前位置:首页 > 表格模板 > 书信模板

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

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