1、国家二级( C+)笔试模拟试卷 218及答案与解析 1 设计软件结构是在软件生命周期的 ( )。 ( A)软件定义期 ( B)软件开发期 ( C)软件维护期 ( D)以上 3个都不是 2 数据库技术的根本目标是要解决数据的 ( )。 ( A)存储问题 ( B)共享问题 ( C)安全问题 ( D)保护问题 3 对建立良好的程序设计风格,下面描述正确的是 ( A)程序应简单、清晰、可读性好 ( B)符号名的命名只要符合语法 ( C)充分考虑程序的执行效率 ( D)程序 的注释可有可无 4 5 下列字符串中,正确的 C+标识符是 ( )。 ( A) foo-1 ( B) 2b ( C) new (
2、D) 256 6 7 下面关于面向对象的程序设计方法中 ,正确的是 ( )。 ( A) “多态性 ”是指对象的状态根据运行的要求进行变化 ( B) “封装性 ”是指将不同类型的数据结合在一起作为一个整体来处理 ( C)在面向对象的程序设计中 ,结构化程序设计方法仍有着重要作用 ( D)基类的私有成员在派生类的对象中不可访问 ,也不占内存空间 8 “商品 ”与 “顾客 ”两个实体集之间联系一般是 ( )。 ( A)一对一 ( B)多对多 ( C)一对多 ( D)多对一 9 “软件危机 ”产生的主要原因是 _. ( A)软件日益庞大 ( B)开发方法不当 ( C)开发人员编写程序能力差 ( D)没
3、有维护好软件 10 下列关于队列的叙述中,不正确的是 ( )。 ( A)在队列中能插入数据 ( B)在队列中能删除数据 ( C)队列是先进先出的线性表 ( D)队列是先进后出的线性表 11 下列函数的运行结果是 ( )。 #include iostream h int f(int a, int B) int c; if(a b)c=1; else if(a=b)c=0; else c=-1; return(c); void main() int i=2, j=3; iht p=f(i,j); cout p; ( A) -1 ( B) 1 ( C) 2 ( D)编译出错,无法运行 12 存取指针
4、所指的值时,采用的运算符是 ( A) # ( B) class Stack public: Stack(unsignedn=10):size(n)rep_=new int size;top=O; Stack(Stack fo ( A) 4,3,2,1, ( B) 4,3,6,7,2,1, ( C) 4,3,6,2,1, ( D) 1,2,3,4, 15 下面关于构造函数和析构函数的描述中,错误的是 ( )。 ( A)析构函数可以声明为虚函数 ( B)对虚析构函数的调用可以采用动态联编 ( C)一个类的虚函数仅对派生类中重定义的函数起作用,对其他函数没有影响 ( D)构造函数可以声明为虚函数 1
5、6 设置虚基类的目的是 ( )。 ( A)简化程序 ( B)消除二义性 ( C)提高运行效率 ( D)减少目标代码行 17 下列关于运算符重载的描述中,正确的是 ( )。 ( A)运算符重载可以改变运算符的操作数的个数 ( B)运算符重载可以改变优先级 ( C)运算符重载可以改变结合性 ( D)运算符重载不可以 改变语法结构 18 假定 MyClass为一个类,则该类的拷贝初始化构造函数的声明语句为 ( )。 ( A) MyClass double image()constreturn im; Complex im+=a.im; return *this; ; ostream int main
6、() Complex x(1,2),y(2,3); tout (x+=y) endl; return 0; 执行这个程序的输出结果是( )。 ( A) (1,-2) ( B) (2,3) ( C) (3,5) ( D) (3,1) 33 以下叙述正确的是 ( A)派生类中不可以定义与基类中同名的成员变量 ( B)派生类中不可以重载成员函数 ( C)派生类中不能调用基类中的同名函数 ( D)以上三项均不正确 34 假定 AB为一个类,则执行 AB x;语句时将自动调用该类的 ( A)有参构造函数 ( B)无参构造函数 ( C)拷贝构造函数 ( D)赋值重载函数 35 语句 cout (a 2)
7、if (x y) a=x; x=y; y=a; if (y z) a=y; y=z; z=a; if (x y) a=x; x=y; y=a; 42 语句 cout n还可表示为 _。 43 C中封装性、继承性和 _是面向对象思想的主要特征。 44 _是一种特殊的成员函数,它主要用来为对象分配内存空间,对类的数据成员进行初始化并执行对象的其他内部管理操作。 45 非成员函数应声明为类的【 】函数才能访问这个类的 private 成员。 46 下面程序的功能是:将字符数组 a中下标值为偶数的元素从小到大排列,其他元素不变 。请填空。 #include iostream.h #include st
8、ring.h main() char a=“clanguage“,t; /一定是偶数个数 int i,j,k; k=strlen(a); for(i=0;i =k-2;i+=2) for(j=i+2;j =k; j=j+2) if(【 】 ) t=ai;ai=aj;aj=t; cout a endl; 47 通过使用 new和 delete两个运算符进行的分配为【 】存储分配。 48 有以下程序: #include iostream #include string using nameSpace std; class person int age; Char * name; public: p
9、erson ( int i, Char * str ) int j; j = strlen( str ) + 1; name = new char j ; strcpy( name, str ); age = i; person() delete name; cout “D“; void display() cout name “: “ age; ; int main() person demo( 30, “Smith“ ); demo display(); return 0; 则该程序的输出结果为:【 】。 49 有以下程序: #include iostream using namespac
10、e std; void t(int x, int y, int cp, int dp) cp=x*x+y+y; dp=x*x-y*y; int main() int a=4, b=3, c=5, d=6; t(a, b, c, D) ; cout c “,“ d end1; return 0; 50 为了表明一个函数不带返回值,应在定义函数时指定该函数类型为【 】。 国家二级( C+)笔试模拟试卷 218答案与解析 1 【正确答案】 B 【试题解析】 设计软件结构,是在软件概要设计阶段进行的,而概要设计属于软件开发期。 2 【正确答案】 B 【试题解析】 在数据库系统中,需要对数据进行集中、统
11、一的管理,以达到被多个应用程序共享的目标。 3 【正确答案】 A 【试题解析】 程序设计应该简单易懂,语句构造应该简单直接,不应该为提高效率而把语句复杂化。 4 【正确答案】 A 5 【正确答案】 D 【试题解析】 此题考查的是标识符。标识符是由数字、字母以及下划线构成,其第一个字符必须是 字母或下划线,中间不能有空格:标识符的长度是任意的,但由于编译系统的限制一般不超过 31个字符;标识符中的大小写字母是不同的;定义标识符时不能采用系统的保留字。 6 【正确答案】 B 7 【正确答案】 C 【试题解析】 面向对象中的多态性是指当多种事物继承自一种事物时,同一种操作在它们之间表现出不同的行为;
12、而封装性是指将数据和算法捆绑成一个整体,这个整体就是对象,描述对象的数据被封装在其内部。 C+是起源于 C语言的一种面向对象的程序设计语言,因此 C+语言既保留了传统的结构化程序设计方法,又支持 面向对象程序设计方法;派生类不可访问基类中的私有成员,因此在派生类中直接引用基类的私有变量成员是不允许的,但可以通过基类的公用成员函数来引用基类的私有变量成员。 8 【正确答案】 B 【试题解析】 对于 “商品 ”和 “顾客 ”两个实体集来说,一种商品可被多个顾客来购买,而一个顾客也可以购买多种商品。因此,两者的联系属于多对多的联系。 9 【正确答案】 A 10 【正确答案】 D 【试题解析】 队列是
13、指允许在一端进行插入,而在另一端进行删除的线性表。允许插入的一端称为队尾,允许删除的一端称 为队头,所以在队列中既可以插入数据也能删除数据,所以选项 A、 B是正确的。在这种数据结构中,最先插入的元素最先能够被删除。因此队列又称为先进先出的线性表。答案是 D。 11 【正确答案】 A 【试题解析】 本题的函数是根据 a和 b的值来给 c赋值。 12 【正确答案】 D 【试题解析】 对指针所指向的地址取值时,采用的存取运算符为 *。 表中的一行称为一个元组,相当于汜录值。 38 【正确答案】 软件开发 【试题解析】 基于软件工程的目标,软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件
14、工程管理。软件开发技术包括:软件开发方法学、开发过程、开发工具和软件工程环境,其主体内容是软件开发方法学。软件工程管理包括:软件管理学 、软件工程经济学以及软件心理学等内容。 39 【正确答案】 物理独立性 40 【正确答案】 有穷性 【试题解析】 算法的基本特征是可行性、确定性、有穷性和拥有足够的情报。 41 【正确答案】 T 43 【正确答案】 多态性 【试题解析】 面向对象系统包含了 3个特征 封装性、继承性和多态性,这 3个特征可以很好地实现数据抽象,进行行为共享,完成进化求解和描述一个系统的确定行为。 44 【正确答案】 构造函数 【试题解析】 构造函数的主要作用是对数据成员初始化,
15、系统为成员分配内存时,保留这些存储单元的原状。 45 【正确答案】 友元 46 【正确答案】 aj ai 47 【正确答案】 动态 【试题解析】 本题考查的是对动态分配内存的掌握,在 C+语 言中,使用关键字Hew 和 delete进行动态内存中请和释放。 48 【正确答案】 Smith: 30 D 【试题解析】 本题考核类与对象的操作。主函数中定义类 person 的对象 demo,并赋初值 (30, “smith“)。然后调用成员函数 display()输出赋值结果,即 Smitch:30。程序结束时 demo 对象的析构函数被调用,再输出 “D”。 49 【正确答案】 5,6 【试题解析】 在主函数中定义了 a、 b、 c、 d 等 4个整型变量,并给他们赋初值4、 3、 5、 6。然后调用函数 t(),把 a、 b、 c和 d 的值依次传递给相应的形参 x、y、 cp、卸,形参和实参之间不再存在联系。进入函数 t()后,执行其中的语句序列。函数 t()调用返回后,输出的 c和 d 的值依旧是 5和 6。 50 【正确答案】 void 【试题解析】 void 表明该函数不带返回值,如果没有 void,则系统会返回一个默认类型的随机值,这对程序可能造成不必要的问题。