1、二级 C+-199 及答案解析(总分:92.50,做题时间:90 分钟)一、选择题(总题数:35,分数:62.00)1.有如下类定义: class Test char a;const char b; public: Test(char c)a=c;b=c; /第 1 行 void f(char a)constthis-a=a;) /第 2 行 void g(char b)this-b=b;) /第 3 行 char h()constreturn a;) /第 4 行 ; 编译时没有错误的行是_。(分数:2.00)A.第 1 行B.第 2 行C.第 3 行D.第 4 行2.数据库管理系统是_。(
2、分数:2.00)A.操作系统的一部分B.在操作系统支持下的系统软件C.一种编译系统D.一种操作系统3.if 语句的语法格式可描述为: 格式 1:if(条件)语句 或 格式 2:if(条件)语句 1 else语句 2 关于上面的语法格式,下列表述中错误的是_。(分数:1.00)A.条件部分可以是一个 if 语句,例如 if(if(a=0)B.语句部分可以是一个 if 语句,例如 if()if()C.如果在条件前加上逻辑非运算符!并交换语句 1和语句 2的位置,语句功能不变D.语句部分可以是一个循环语句,例如 if()while()4.下面有关 for 循环的正确描述是(分数:1.00)A.for
3、 循环只能用于循环次数已经确定的情况B.for 循环是先执行循环体语句,后判断表达式C.在 for 循环中,不能用 break 语句跳出循环体D.for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来5.下列选项中可以做 C+标识符的是_。(分数:2.00)A._256B.fat/pigC.deleteD.5char6.下列运算符函数中,肯定不属于类 Number 的成员函数的是_。(分数:1.00)A.Number operator+(Number);B.Number operator-(Number);C.Number operator*(int);D.Number opera
4、tor/(Number,Number);7.关于下列程序段的描述中,正确的是 _ 。 #includeiostream.h int fun(int,int); void main() coutfun(1,2)endl; int fun(int x,int y) return X+y; (分数:2.00)A.该函数定义正确,但函数调用方式错误B.该函数调用方式正确,但函数定义错误C.该函数定义和调用方式都正确D.该函数定义和调用方式都错误8.有如下函数定义: void func(int a,intb+; 若执行代码段: int x=0,y=1; func(x,y); 则变量 x 和 y 的值分别
5、是_。(分数:1.00)A.0 和 1B.1 和 1C.0 和 2D.1 和 29.类的析构函数的作用是_。(分数:1.00)A.一般成员函数的初始化B.类的初始化C.对象的初始化D.删除类创建的对象10.下列叙述中正确的是_。(分数:1.00)A.算法的空间复杂度与算法所处理的数据存储空间有关B.算法的空间复杂度是指算法程序控制结构的复杂程度C.算法的空间复杂度是指算法程序中指令的条数D.压缩数据存储空间不会降低算法的空间复杂度11.下列选项中,与实现运行时多态性无关的是_。(分数:2.00)A.重载函数B.虚函数C.指针D.引用12.将 E-R 图转换到关系模式时,实体与联系都可以表示成
6、_ 。(分数:2.00)A.属性B.关系C键D域13.下列关于类、对象、属性和方法的叙述中,错误的是 _ 。(分数:2.00)A.类是对一类相似对象的描述,这些对象具有相同的属性和方法B.属性用于描述对象的状态,方法用于表示对象的行为C.基于同一个类产生的两个对象可以分别设置自己的属性值D.通过执行不同对象的同名方法,其结果必然是相同的14.有如下程序: # include iostream using namespace std; class A public: A(int i=0):r1(i) void print()cout“E“r1“-“; void print()constcout“
7、C“r1*r1“-“; void print(int x)cout“P“r1*r1*r1“-“; private: int r1; ; int main() A a1; const A a2(4); a1.print(2); a2.print(); return 0; 运行时的输出结果是_。(分数:2.50)A.P8-E4B.P8-C16-C.P0-E4-D.P0-C16-15.下列关于 this 指针的描述中,正确的是_。(分数:1.00)A.类的成员函数都有 this 指针B.类的友元函数都有 this 指针C.任何与类相关的函数都有 this 指针D.类的非静态成员函数都有 this 指
8、针16.下列枚举类型的定义中,包含枚举值 3 的是_。(分数:2.50)A.enum testRED,YELLOW,BLUE,BLACK;B.enum testRED,YELLOW=4,BLUE,BLACK;C.enum testRED=-1,YELLOW,BLUE,BLACK;D.enum testRED,YELLOW=6,BLUE,BLACK;17.下列语句中正确的是_。(分数:1.00)A.const int*p NULL;B.const int y=99;C.const int x=0;D.const int z:100;18.下列对于软件测试的描述中正确的是_。(分数:2.50)A.
9、软件测试的目的是证明程序是否正确B.软件测试的目的是使程序运行结果正确C.软件测试的目的是尽可能多地发现程序中的错误D.软件测试的目的是使程序符合结构化原则19.有如下两个类定义: class AA); class l3B AA v1,*v2; BB v3; int*v4; ; 其中有一个成员变量的定义是错误的,这个变量是_。(分数:2.50)Av1Bv2Cv3Dv420.若目前 D 盘根目录下并不存在 test.txt 文件,则下列打开文件方式不会自动创建 test.txt 文件的是_。(分数:2.50)A.ifstream fin; fin.open(“d:/test.txt“,los_b
10、ase:in);B.fstream fio; fio.open(“d:/test.txt“,los_base:out);C.ofstream four; fout.open(“d:/test.txt“,ios_base:out);D.ofstream fout; four.open(“d:/test.txt“,los_base:app);21.数据库的故障恢复一般是由 _ 。(分数:2.00)A.数据流图完成的B.数据字典完成的C.DBA 完成的D.PAD 图完成的22.下列函数中,对调用它的函数没有起到任何作用的是 _ 。(分数:2.00)A.void f1(double B.double
11、f2(double x)return x-1.5;C.void f3(double x)-x;D.double f4(double *x)-*x;return*x;23.下面关于数据库三级模式结构的叙述中,正确的是_。(分数:2.50)A.内模式可以有多个,外模式和模式只有一个B.外模式可以有多个,内模式和模式只有一个C.内模式只有一个,模式和外模式可以有多个D.模式只有一个,外模式和内模式可以有多个24.下面不属于软件设计阶段任务的是_。(分数:2.50)A.数据库设计B.算法设计C.软件总体设计D.制定软件确认测试计划25.下列说法正确的是_。(分数:1.00)A.内联函数在运行时是将该函
12、数的目标代码插入每个调用该函数的地方B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C.类的内联函数必须在类体内定义D.类的内联函数必须在类体外通过加关键字 inline 定义26.每个 C+程序都必须有且仅有一个 _ 。(分数:2.00)A.预处理命令B.函数C.语句D.主函数27.将 x+y*z 中的“+”用成员函数重载,“*”用友元函数重载应写为_。(分数:2.50)A.operator+(operator*(y,z)B.operator+(operator*(y,z)C.operator+(x*(y,z)D.x+(operator*(y,z)28.下列对于线性链表的描述
13、中正确的是(分数:2.00)A.存储空间不一定是连续,且各元素的存储顺序是任意的B.存储空间不一定是连续,且前件元素一定存储在后件元素的前面C.存储空间必须连续,且前件元素一定存储在后件元素的前面D.存储空间必须连续,且各元素的存储顺序是任意的29.在位运算中,操作数每右移一位,其结果相当于(分数:1.00)A.操作数乘以 2B.操作数除以 2C.操作数乘以 4D.操作数除以 430.下列 C+标点符号中表示一条预处理命令开始的是_。(分数:2.50)A.#B.;C./D.31.当使用 ofstream 流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为_。(分数:2.00)A.io
14、s base:inB.ios_base:binaryC.ios_base:in|ios_base:outD.ios_base:out32.下列不能作为类的成员的是_。(分数:2.50)A.自身类对象的指针B.自身类对象C.自身类对象的引用D.另一个类的对象33.对于模板定义关键宁 class 和 typename 说法不正确的是 _ 。(分数:1.00)A.程序中的 class 并不能都替换为 typenameB.class 和 typename 都可互相替换C.程序中的 typename 都能替换为 classD.程序中的部分 class 可以替换为 typename34.下列程序的输出结果
15、为_。 #includeiostream.h class TestClass public: TestClass()val+; static,int val; ; int TestClass: val=0; void main() TestClass csl; coutcsl.val“ “; TestClass cs2; TestClass cs3,cs4; coutcs2.valendl; (分数:1.00)A.03B.13C.14D.2435.数据结构中,与所使用的计算机无关的是数据的(分数:1.00)A.存储结构B.物理结构C.逻辑结构D.物理和存储结构二、填空题(总题数:15,分数:3
16、0.50)36.软件结构是以 1 为基础而组成的一种控制层次结构。 (分数:2.00)37.语句 coutsetiosflags(ios:showpos)38“-38end1;的输出结果为 1。 (分数:2.00)38.表达式 x=operator-(y,z)还可以表示为 1。 (分数:2.00)39.若有: int x=25,y=14,z=19; 则在计算表达式 x+=25 class MyClass public: MyClass(); MyClass(); static int s; void SetValue(int val); ; int MyClass:s=0; MyClass:M
17、yClass() s+; void MyClass:SetValue(int val) ( s=val; int main() MyClass my3,*p; p=my; for(int k=0;k3;k+) p-SetValue(k+l); p+; coutMyClass:send1; return 0; 运行后的输出结果是 _ 1_ 。 (分数:1.00)42.某二叉树中度为 2 的节点有 18 个,则该二叉树中有 _ 1_ 个叶子节点。 (分数:2.00)43.在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,且每一个 1 实际上对应一个处理模块。 (分数:2.00)44.
18、数据字典通常包括 5 个部分,即数据项、数据结构、数据流、 _ 1_ 和处理过程。 (分数:2.00)45.有以下程序: #includefstream #includestring using namespace std; int main() char ch=“The end“; ofstream outstr(“ 1“,ios_base:app); for(int i=0;istrlen(ch); i+) outstr.put(chi); outstr.close(); return 0: 若程序实现的功能是在文件 d:/put.txt 的尾部追加写入一串字符,试将程序补充完整。 (分数
19、:2.00)46.下列软件系统结构图 (分数:2.00)47.如下类定义中包含了构造函数和拷贝构造函数的原型声明,请在横线处填写正确的内容,使拷贝构造函数的声明完整。 Class myClass private: int data; public: myClass(int value);/构造函数 myClass(const _ 1_ anotherObject);/拷贝构造函数 (分数:2.00)48.类中包含了一个静态成员函数,则 main 函数中和 P.f1(P);语句具有同样功能的语句为 1。 #includeiostream.h class M public: M(int A)Aa;
20、B+a; static void f1(M m); private: int A; static int B; void M:f1(M m) cout“A=“m.A(end1; cout“B”m.Bend1; int M:B10; void main() M P(5); P.f1(P); (分数:2.00)49.当输入 d 的值 22 时,以下程序的输出结果是 _ 1_ 。 void bin (int b) if (b= 2) bin(b/2); coutb%2; void main() int d; cind; bin(D) ; (分数:2.00)50.有如下的程序: #include io
21、stream #include cstring using namespace std; class rev char*s; public: rev(const char*s) this-s=new charstrlen(s)+1; strcpy(this-s,s); rev(rev for(int i=0;istrlen(r.s);i+)si=r.sstrlen(r.s)-1-i; sstrlen(r.s)=0; rev() delete s; friend ostream ; ostream1=0;1-) osc.si; return os; int main() char *p=“Hel
22、lo,world!“; rev hay(“Hay!“); coutrev(p)endl; coutrev(hay); return0; 执行上面的程序将输出 1。 (分数:3.50)二级 C+-199 答案解析(总分:92.50,做题时间:90 分钟)一、选择题(总题数:35,分数:62.00)1.有如下类定义: class Test char a;const char b; public: Test(char c)a=c;b=c; /第 1 行 void f(char a)constthis-a=a;) /第 2 行 void g(char b)this-b=b;) /第 3 行 char
23、h()constreturn a;) /第 4 行 ; 编译时没有错误的行是_。(分数:2.00)A.第 1 行B.第 2 行C.第 3 行D.第 4 行 解析:解析 类 Test 中的常成员函数 h()返回数据成员 a 的值。2.数据库管理系统是_。(分数:2.00)A.操作系统的一部分B.在操作系统支持下的系统软件 C.一种编译系统D.一种操作系统解析:数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中数据组织、数据操纵、数据维护、控制及保护和数据服务等。是一种在操作系统之上的系统软件。3.if 语句的语法格式可描述为: 格式 1:if(条件)语句 或 格式 2:if(条件)语句
24、 1 else语句 2 关于上面的语法格式,下列表述中错误的是_。(分数:1.00)A.条件部分可以是一个 if 语句,例如 if(if(a=0) B.语句部分可以是一个 if 语句,例如 if()if()C.如果在条件前加上逻辑非运算符!并交换语句 1和语句 2的位置,语句功能不变D.语句部分可以是一个循环语句,例如 if()while()解析:解析 本题考查 if 语句,if 语句的条件部分不能嵌套 if 语句,所以 A 选项错误;B 选项就是 if语句嵌套;C 选项其实就是将判断条件颠倒,然后执行语句也颠倒,所以效果一样;D 选项也正确。4.下面有关 for 循环的正确描述是(分数:1.
25、00)A.for 循环只能用于循环次数已经确定的情况B.for 循环是先执行循环体语句,后判断表达式C.在 for 循环中,不能用 break 语句跳出循环体D.for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 解析:解析:选项 A) for 循环可以用于循环次数不确定的情况;选项 B) for 循环是先判断表达式,后执行循环体语句;选项 C) 在 for 循环中,可以用 break 语句跳出循环体,从而接着执行循环体后面的语句。5.下列选项中可以做 C+标识符的是_。(分数:2.00)A._256 B.fat/pigC.deleteD.5char解析:6.下列运算符函数中,
26、肯定不属于类 Number 的成员函数的是_。(分数:1.00)A.Number operator+(Number);B.Number operator-(Number);C.Number operator*(int);D.Number operator/(Number,Number); 解析:解析 选项 D 的形式是重载为友元函数,而友元函数不属于类的成员函数。所以重载为友元函数需要两个参数,通过参数传递的方式得到参加运算的两个对象。其他的是重载为类的成员函数,由于对象本身代表了一个操作数,所以其参数只需要一个,其为参加运算的另一个操作数。7.关于下列程序段的描述中,正确的是 _ 。 #in
27、cludeiostream.h int fun(int,int); void main() coutfun(1,2)endl; int fun(int x,int y) return X+y; (分数:2.00)A.该函数定义正确,但函数调用方式错误B.该函数调用方式正确,但函数定义错误C.该函数定义和调用方式都正确 D.该函数定义和调用方式都错误解析:解析 函数定义的一般形式:类型标识符函数名(形式参数列表)声明部分;语句。函数调用的一般格式:函数名(实参列表)。而“int fun(int,int)”为函数声明,可以不写形参名,只写形参的类型。所以,可以看出函数 fun 的定义和调用都是正确
28、的。8.有如下函数定义: void func(int a,intb+; 若执行代码段: int x=0,y=1; func(x,y); 则变量 x 和 y 的值分别是_。(分数:1.00)A.0 和 1B.1 和 1C.0 和 2 D.1 和 2解析:解析 函数参数的 3 种传递方式:将变量名作为形参和实参,即传值方式;传递变量指针;引用形参。本题中实参 x 为传值方式,所以 x 的值不会改变;y 为引用形参,所以会改变。故本题答案为 C。9.类的析构函数的作用是_。(分数:1.00)A.一般成员函数的初始化B.类的初始化C.对象的初始化D.删除类创建的对象 解析:解析 析构函数就是用来释放对
29、象的,它的调用完成之后,对象也就消失了,相应的内存空间也被释放了。10.下列叙述中正确的是_。(分数:1.00)A.算法的空间复杂度与算法所处理的数据存储空间有关 B.算法的空间复杂度是指算法程序控制结构的复杂程度C.算法的空间复杂度是指算法程序中指令的条数D.压缩数据存储空间不会降低算法的空间复杂度解析:解析 算法的空间复杂度是指执行这个算法所需要的内存空间,包括 3 个部分:输入数据所占的存储空间;程序本身所占的存储空间;算法执行过程中所需要的额外空间。为了降低算法的空间复杂度,主要应减少输入数据所占的存储空间以及额外空间,通常采用压缩存储技术。故 A 选项正确。11.下列选项中,与实现运
30、行时多态性无关的是_。(分数:2.00)A.重载函数 B.虚函数C.指针D.引用解析:解析 在 C+中,多态性可以分为两类:编译时的多态性和运行时的多态性。编译时的多态性是通过函数重载和模版体现的,运行时的多态性是通过虚函数体现的。12.将 E-R 图转换到关系模式时,实体与联系都可以表示成 _ 。(分数:2.00)A.属性B.关系 C键D域解析:解析 把概念模型转换成关系数据模型就是把 E-R 图转换成一组关系模式,每一个实体转换为一个关系模式,每个联系分别转换为关系模式。13.下列关于类、对象、属性和方法的叙述中,错误的是 _ 。(分数:2.00)A.类是对一类相似对象的描述,这些对象具有
31、相同的属性和方法B.属性用于描述对象的状态,方法用于表示对象的行为C.基于同一个类产生的两个对象可以分别设置自己的属性值D.通过执行不同对象的同名方法,其结果必然是相同的 解析:解析 对象根据所接受的消息而做出动作,同样的消息被不同的对象接受时可以导致完全不同的行为,该现象称为多态性,这种消息可以是同名的方法。 知识拓展 类是具有共同属性、共同方法的对象的集合。14.有如下程序: # include iostream using namespace std; class A public: A(int i=0):r1(i) void print()cout“E“r1“-“; void prin
32、t()constcout“C“r1*r1“-“; void print(int x)cout“P“r1*r1*r1“-“; private: int r1; ; int main() A a1; const A a2(4); a1.print(2); a2.print(); return 0; 运行时的输出结果是_。(分数:2.50)A.P8-E4B.P8-C16-C.P0-E4-D.P0-C16- 解析:解析 由题中程序可知,其运行时输出的结果是 P0-C16-,故选 D。15.下列关于 this 指针的描述中,正确的是_。(分数:1.00)A.类的成员函数都有 this 指针B.类的友元函
33、数都有 this 指针C.任何与类相关的函数都有 this 指针D.类的非静态成员函数都有 this 指针 解析:解析 this 作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员时,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。另外,全局函数和静态函数都不能使用 this 指针。所以答案为 D。16.下列枚举类型的定义中,包含枚举值 3 的是_。(分数:2.50)A.enum testRED,YELLOW,BLUE,BLACK; B.enum testRED,YELLOW=4,BLUE,BLACK;C.enum testRED=-1,YELLOW,BLUE,BLACK;D
34、.enum testRED,YELLOW=6,BLUE,BLACK;解析:解析 枚举类型是由用户定义的若干枚举常量的集合。枚举元素作为常量,它们是有值的,C+编译系统按定义时的顺序对它们赋值为 0,1,2,3,。也可以在声明枚举类型时另行指定枚举元素的值。选项 A 中,4 个元素值分别为 0,1,2,3,其中,BLACK 的值即为 3,故 A 为正确答案; 选项 B 中,4 个元素值分别为 0,4,5,6;选项 C 中,4 个元素值分别为-1,0,1,2; 选项 D 中,4 个元素值分别为 0,6,7,8。17.下列语句中正确的是_。(分数:1.00)A.const int*p NULL;B.
35、const int y=99;C.const int x=0; D.const int z:100;解析:解析 const int 用来定义一个常整型变量,定义语句的用法与 int 相同,const int*用来定义一个常整型指针变量,用法与 int*相同,所以选项 A、B、D 语句都不合法,答案为 C 选项。18.下列对于软件测试的描述中正确的是_。(分数:2.50)A.软件测试的目的是证明程序是否正确B.软件测试的目的是使程序运行结果正确C.软件测试的目的是尽可能多地发现程序中的错误 D.软件测试的目的是使程序符合结构化原则解析:解析 软件测试是保证软件质量的关键环节,直接影响着软件的质量
36、评估。软件测试不仅要讲究策略,而且要讲究时效性。软件测试的目的是尽可能多地发现程序中的错误。19.有如下两个类定义: class AA); class l3B AA v1,*v2; BB v3; int*v4; ; 其中有一个成员变量的定义是错误的,这个变量是_。(分数:2.50)Av1Bv2Cv3 Dv4解析:解析 本题主要考查类对象的定义,类的对象一般放在类结构体外或在主函数中定义,而不能放在类定义的结构体中,但自身类的指针可以,本题 BB v3 不能被定义于类体内。20.若目前 D 盘根目录下并不存在 test.txt 文件,则下列打开文件方式不会自动创建 test.txt 文件的是_。
37、(分数:2.50)A.ifstream fin; fin.open(“d:/test.txt“,los_base:in); B.fstream fio; fio.open(“d:/test.txt“,los_base:out);C.ofstream four; fout.open(“d:/test.txt“,ios_base:out);D.ofstream fout; four.open(“d:/test.txt“,los_base:app);解析:21.数据库的故障恢复一般是由 _ 。(分数:2.00)A.数据流图完成的B.数据字典完成的C.DBA 完成的 D.PAD 图完成的解析:22.下
38、列函数中,对调用它的函数没有起到任何作用的是 _ 。(分数:2.00)A.void f1(double B.double f2(double x)return x-1.5;C.void f3(double x)-x; D.double f4(double *x)-*x;return*x;解析:解析 此题考查的是函数的调用和函数参数值的传递。选项 C 中函数 f3 的调用采用按值传递的方式,函数中对形参的修改不能改变实参的值,并且 f3 函数没有返回值,所以 f3 对调用它的函数没有起到任何的作用。选项 A 采用的是引用传递方式;选项 B 中 f2 有返回值;选项 D 中函数 f4 是指针调用并
39、且函数有返回值。23.下面关于数据库三级模式结构的叙述中,正确的是_。(分数:2.50)A.内模式可以有多个,外模式和模式只有一个B.外模式可以有多个,内模式和模式只有一个 C.内模式只有一个,模式和外模式可以有多个D.模式只有一个,外模式和内模式可以有多个解析:解析 数据库的三级模式结构是指数据库系统的外模式、模式和内模式。一个数据库可以有多个外模式,但只有一个模式和一个内模式。24.下面不属于软件设计阶段任务的是_。(分数:2.50)A.数据库设计B.算法设计C.软件总体设计D.制定软件确认测试计划 解析:解析 软件概要设计阶段的任务有软件系统的结构设计,数据结构和数据库设计,编写概要设计
40、文档,概要设计文档评审。确认测试时依据需求规格说明书来检验软件的功能和性能。确认测试计划是在需求分析阶段就制定了。25.下列说法正确的是_。(分数:1.00)A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 C.类的内联函数必须在类体内定义D.类的内联函数必须在类体外通过加关键字 inline 定义解析:解析 本题考查的是内联函数的定义,引入内联函数是为了解决程序中函数调用的效率问题,是以目标代码的增加为代价换取时间的节省;一般函数在运行时被调用,而调用的内联函数在编译时就被替代了,如果不加 inline 关键字,
41、则编译器会将在类说明部分定义的任何函数都被认定为内联函数。26.每个 C+程序都必须有且仅有一个 _ 。(分数:2.00)A.预处理命令B.函数C.语句D.主函数 解析:解析 一个 C+程序一般由预处理命令、输入输出、函数、语句、变量这几个基本部分组成。但是,每个 C+程序都必须有且仅有一个主程序。27.将 x+y*z 中的“+”用成员函数重载,“*”用友元函数重载应写为_。(分数:2.50)A.operator+(operator*(y,z)B.operator+(operator*(y,z) C.operator+(x*(y,z)D.x+(operator*(y,z)解析:解析 在定义了重
42、载运算符后的函数后,函数 operator+重载了运算符“+”。如果在类以外的其他地方定义了一个函数,在类体中用 friend 对该函数进行声明,此函数就称为本类的友元函数。“*”用友元函数重载就是运算符函数不作为成员函数,而把它放在类外,“.*”被改写为“operator*”。“+”为成员函数重载,x.operator+。所以“x+y*z”被改写为“x.operator+(operator*(y,z)”。28.下列对于线性链表的描述中正确的是(分数:2.00)A.存储空间不一定是连续,且各元素的存储顺序是任意的 B.存储空间不一定是连续,且前件元素一定存储在后件元素的前面C.存储空间必须连续
43、,且前件元素一定存储在后件元素的前面D.存储空间必须连续,且各元素的存储顺序是任意的解析:解析 在链式存储结构中,存储数据的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,数据元素之间的逻辑关系,是由指针域来确定的。由此可见,选项 A 的描述正确。29.在位运算中,操作数每右移一位,其结果相当于(分数:1.00)A.操作数乘以 2B.操作数除以 2 C.操作数乘以 4D.操作数除以 4解析:解析 右移运算符“”是双目运算符。其功能是把“”左边的运算数的各二进位全部右移若干位,“”右边的数指定移动的位数。例如:设 a=15,a2 表示把 000001111 右移为00
44、000011 (十进制 3)。30.下列 C+标点符号中表示一条预处理命令开始的是_。(分数:2.50)A.# B.;C./D.解析:31.当使用 ofstream 流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为_。(分数:2.00)A.ios base:inB.ios_base:binaryC.ios_base:in|ios_base:outD.ios_base:out 解析:解析 对于 ofstream,默认的打开方式是 ios_base:out,ofstream 只能用于输出,它没有提供任何用于输入的操作。32.下列不能作为类的成员的是_。(分数:2.50)A.自身类对象的
45、指针B.自身类对象 C.自身类对象的引用D.另一个类的对象解析:解析 类的定义,如果有自身类对象,会使其循环定义,选项 B 错误。在类中具有自身类的指针,可以实现链表的操作,当然也可以使用对象的引用,类中可以有另一个类的对象,即成员对象。33.对于模板定义关键宁 class 和 typename 说法不正确的是 _ 。(分数:1.00)A.程序中的 class 并不能都替换为 typenameB.class 和 typename 都可互相替换 C.程序中的 typename 都能替换为 classD.程序中的部分 class 可以替换为 typename解析:34.下列程序的输出结果为_。 #
46、includeiostream.h class TestClass public: TestClass()val+; static,int val; ; int TestClass: val=0; void main() TestClass csl; coutcsl.val“ “; TestClass cs2; TestClass cs3,cs4; coutcs2.valendl; (分数:1.00)A.03B.13C.14 D.24解析:解析 由主函数 main 入手,定义 TestClass 类的对象 cs1,执行 cs1.va1,其中 va1 为静态变量,根据 intTestClass:
47、va1=0;初始化,TestClass 中的 TestClass()val+;构造函数执行后,va1 值为1。主函数中接着定义对象 cs2,cs3,cs4。执行 coutcs2.va1endl;中的 va1 值为 4,所以输出为 14。35.数据结构中,与所使用的计算机无关的是数据的(分数:1.00)A.存储结构B.物理结构C.逻辑结构 D.物理和存储结构解析:解析 数据结构概念一般包括 3 个方面的内容,数据的逻辑结构、存储结构及数据上的运算集合。数据的逻辑结构只抽象的反映数据元素之间的逻辑关系,而不管它在计算机中的存储表示形式。二、填空题(总题数:15,分数:30.50)36.软件结构是以 1 为基础而组成的一种控制层次结构。 (分
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1