国家二级(C++)机试模拟试卷511
选择题
1.软件设计中模块划分应遵循的准则是( )。(B)
A. 低内聚低耦合
B. 高内聚低耦合
C. 低内聚高耦合
D. 高内聚高耦合
解析:软件设计中模块划分应遵循的准则是高内聚低偶合、模块大小规模适当、模块的依赖关系适当等。模块的划分应遵循一定的要求,以保证模块划分合理,并进一步保证以此为依据开发出的软件系统可靠性强,易于理解和维护。模块之间的耦合应尽可能的低,模块的内聚度应尽可能的高。
2.有如下程序:
#include<iostream>
using namespace std;
int main()
{
int*p;
*p=9;
cout<<\\(D)
A. 编译时出现语法错误,不能生成可执行文件
B. 运行时一定输出:The value atp:9
C. 运行时一定输出:The value at p:*9
D. 运行时有可能出错
解析:先定义指针变量,然后给指针变量赋初值有三种情况:
①用取地址运算符“&”将变量地址赋给指针变量,如p=&a;
②将一个指针变量中的地址赋给另一个指针变量,如p=p1;
③给指针变量赋空值0,如q=0,表示该指针变量不指向任何变量。而不能用一个常量给指针变量赋初值,所以本题选D。
3.下列对模板的声明中,正确的是( )。(C)
A. template
B. template
C. template
D. template
解析:声明一个函数模板的格式为:template<模板形参表声明>函数声明。调用模板函数时,如果与模板实参中最后的若干个参数有关的信息可以从模板函数的实参中获得,则相关的模板实参可以省略。
4.在函数中,可以用auto、extern、register和static这四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是( )。(A)
A. auto
B. extem
C. register
D. static
解析:变量的存储方法分为静态存储和动态存储两大类,包含4种:自动的(auto)、静态的(static)、寄存器的(register)、外部的(extern)。变量如果没有说明存储类型,那么默认就是auto。
5.下面的函数定义是某函数模板能够生成的函数实例
int square(int n){return n*n;)
double square(double n){return n*n;}
由此可知,该函数模板的定义是( )。(D)
A. template(type n)
B. type square(type n)
C. {return n*n;}
D. template(type n)type square(type n){return n*n;)
解析:这是一个平方运算的函数模板,由上述实例可知道模板有一个形参n,函数名为square,所以可得模板template(type n)typesquare(type n){return n*n;}。
6.层次型、网状型和关系型数据库划分原则是( )。(D)
A. 记录长度
B. 文件的大小
C. 联系的复杂程度
D. 数据之间的联系方式
解析:层次模型的基本结构是树形结构,网状模型是一个不加任何条件限制的无向图,关系模型采用二维表来表示,所以三种数据库的划分原则是数据之间的联系方式。
7.面向对象方法中,继承是指( )。(D)
A. 一组对象所具有的相似性质
B. 一个对象具有另一个对象的性质
C. 各对象之间的共同性质
D. 类之间共享属性和操作的机制
解析:继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。广义的说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,所以说继承是指类之间共享属性和操作的机制。
8.有如下定义:
int a[5]={1,3,5,7,9},*p=a;
下列表达式中不能得到数值5的是( )。(B)
A. a[2]
B. a[3]
C. *(p+2)
D. *p+4
解析:本题考查指向数组的指针,本题中指针变量p指向数组a,直接使用数组下标即可取值,数组下标是从0开始标号的,所以a[2]能取到5,而a[3]取不到5,C选项中使用指针后移方法能够取到5,D选项中*p为1,所以*p+4为5。
9.已知Value是一个类,vMue是Value的一个对象。下列以非成员函数形式重载的运算符函数原型中,正确的是( )。(A)
A. Value operator+(Value V,int i);
B. Value operator+(Value V=value,int i);
C. Value operator+(Value V,int i=0);
D. Value operator +(Value v=value,int i=0);
解析:本题考查运算符重载,其中重载运算符的函数不能有默认的参数,所以本题答案为A。
10.下列叙述中正确的是( )。(B)
A. 有一个以上根结点的数据结构不一定是非线性结构
B. 只有一个根结点的数据结构不一定是线性结构
C. 循环链表是非线性结构
D. 双向链表是非线性结构
解析:线性结构应满足:有且只有一个根结点与每个结点最多有一个前件,也最多有一个后件,所以B)正确。所以有一个以上根结点的数据结构一定是非线性结构,所以A)错误。循环链表和双向链表都是线性结构的数据结构。
11.下面对静态数据成员的描述中,正确的是 ( )。(A)
A. 静态数据成员是类的所有对象共享的数据
B. 类的每个对象都有自己的静态数据成员
C. 类的不同对象有不同的静态数据成员值
D. 静态数据成员不能通过类的对象调用
解析:静态成员表示整个类范围共享的信息;必须对静态数据成员进行初始化;静态数据成员是属于类的,不能通过类的对象调用。
12.下列叙述中正确的是( )。(A)
A. 带链栈的栈底指针是随栈的操作而动态变化的
B. 若带链队列的队头指针与队尾指针相同,则队列为空
C. 若带链队列的队头指针与队尾指针相同,则队列中至少有一个元素
D. 带链栈的栈底指针是固定的
解析:由于带链栈利用的是计算机存储空间中的所有空闲存储结点,因此随栈的操作栈顶栈底指针动态变化。带链的队列中若只有一个元素,则首尾指针相同。故本题答案为A选项。
13.下列关于继承和派生的叙述中,正确的是(D)
A. 派生类中新定义的成员函数可以访问基类的所有成员
B. 在私有继承的情况下,派生类中新定义的成员函数不能访问基类的保护成员
C. 基类对象可以赋值给派生类对象
D. 如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类
解析:本题考查继承与派生,派生类中的成员访问基类中的成员由派生方式决定,如果派生类私有继承基类,那么就不能
本文档预览:3600字符,共17197字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载