文档库 最新最全的文档下载
当前位置:文档库 › 【精选资料】9月全国计算机等级考试二级C笔试试卷

【精选资料】9月全国计算机等级考试二级C笔试试卷

2011年9月全国计算机等级考试二级C++笔试试卷

C++语言程序设计

(考试时间90分钟,满分100分)

一、选择题(每小题2分,共70分)

下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。

(1)下列叙述中正确的是(D)。

A)算法就是程序

B)设计算法时只需要考虑数据结构的设计

C)设计算法时只需要考虑结果的可靠性

D)以上三种说法都不对

(2)下列关于线性链表的叙述中,正确的是(C)。

A)各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致

B)各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续

C)进行插入与删除时,不需要移动表中的元素

D)以上三种说法都不对

(3)下列关于二叉树的叙述中,正确的是(B)。

A)叶子结点总是比度为2的结点少一个

B)叶子结点总是比度为2的结点多一个

C)叶子结点数是度为2的结点数的两倍

D)度为2的结点数是度为1的结点数的两倍

(4)软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是(A)。

A)学生成绩管理系统B)C语言编译程序

C)UNIX操作系统D)数据库管理系统

(5)某系统总体结构图如下图所示:

该系统总体结构图的深度是(C)。

A)7 B)6 C)3 D)2

(6)程序调试的任务是(D)。

A)设计测试用例B)验证程序的正确性

C)发现程序中的错误D)诊断和改正程序中的错误

(7)下列关于数据库设计的叙述中,正确的是(A)。

A)在需求分析阶段建立数据字典B)在概念设计阶段建立数据字典

C)在逻辑设计阶段建立数据字典D)在物理设计阶段建立数据字典

(8)数据库系统的三级模式不包括(D)。

A)概念模式B)内模式C)外模式D)数据模式

(9)有三个关系R、S和T如下:

则由关系R和S得到关系T的操作是(B)。

A)自然连接B)差C)交D)并

(10)下列选项中属于面向对象设计方法主要特征的是(A )。

A)继承B)自项向下C)模块化D)逐步求精

(11)在对函数进行原型声明时,下列语法成分中,不需要的是( D )。

A)函数返回类型B)函数参数列表

C)函数名D)函数体

(12)下列关于this指针的描述中,正确的是( D )。

A)类的成员函数都有this指针B)类的友元函数都有this指针

C)任何与类相关的函数都有this指针D)类的非静态成员函数都有this指针

(13)有如下类定义:

class AA{

public:

AA(int n=0):a(n){}

};

Class BB::public AA{

public:

BB(int n)__________

其中横线处缺失部分是(B )。

A) :a(n){} B) :AA(n){} C) {a(n);} D) {a=n;}

(14)为类Matrix重载下列运算符时,只能作为Matrix类成员函数重载的运算符是(B )。

A)+ B)= C)<< D)++

(15)下列关于模板的描述中,错误的是( D )。

A)类模板的成员函数都是模板函数B)函数模板是一种参数化类型的函数

C)满足一定条件时可以省略模板实参D)模板形参只能由关键字typename声明

(16)要利用C++流实现输入输出的各种格式控制,必须在程序中包含的头文件是(D )。

A)fstream B)istreara C)ostream D)iomanip

(17)下列选项中,不是C++关键字的是(B )。

A)class B)functi013 C)friend D)virtual

(18)若有定义语句“int i=2,j=3;”,则表达式i/j的结果是(A )。

A)0 B)0.7 C)0.66667 D)0.66666667

(19)下列语句中,与语句“n=(a>b?(b>c?1:0):0);”的功能等价的是(C )。

A)if(a<=b) n=0;

B)if((a>b)||(b>c)) n=1; else n=0;

C)if(a>b)if(b>c) n=1; else n=0; else n=0;

D)if(a>b) n=1;else if(b<=c) n=1; else if(b>c) n=1;else n=0;

(20)有如下语句序列:

int x=100,&r=x;

cout<

已知其中变量x的地址为0012FF7C,则执行该语句序列的输出结果为(A )。

A)100-100 B)100-0012FF7C

C) 0012FF7C-100 D) 0012FF7C-0012FF7C

(21)已知函数f的原型是“void f(int *x,int &y);”,变量v1、v2的定义是“int v1,v2;”,下列调用语句中,正确的是(C )。

A) f(v1,v2) B) f(v1,&v2)

C) f(&v1,v2) D) f(&v1,&v2)

(22)有如下类定义:

class Sample {

public:

Sample(int x):ref(x){} //①

Private:

Sample():ref(0){} //②

Static int val=5; //③

Const int ref; //④

}

上述程序段中,错误的语句是(C )。

A)①B)②

C)③D)④

(23)有如下类定义:

class B{

public:void fun1(){}

private: void fun2(){}

protected:void fun3(){}

};

class D:public B{

protected:void fun4(){}

};

若obj是类D的对象,则下列语句中不违反访问控制权限的是(A )。

A) obj.fun1( ) B) obj.fun2( )

C) obj.fun3( ) D) obj.fun4( )

(24)有如下类定义:

class MyClass {

public:

__________

private:

int data;

};

若要为MyClass类重载流输入运算符>>,使得程序中可以“cin>>obj;”形式输入MyClass类的对象obj,则横线处的声明语句应为(A )。

A) friend istream& operator>>(istream& is,MyClass& a);

B) friend istream& operator>>(istream& is,MyClass a);

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

D) istream& operator>>(istream& is,MyClass a);

(25)已知主函数中通过如下语句序列实现对函数模版swap的调用:

int a[10,b[10];

swap(a,b,10);

下列对函数模版swap的声明中,会导致上述语句序列发生编译错误的是(B )。

A) template

void swap(T a[],T b[],int size);

B) template

void swap(int size ,T a[],T b[]);

C) template

void swap(T1 a[],T2 b[],int size);

D) template

void swap(T1 a[],T2 b[],int size);

(26)若目前D盘根目录下并不存在test.txt文件,则下列打开文件方式不会自动创建test.txt文件的是(A )。

A) ifstream fin; fin.open(“d:\\test.txt”,ios_base::in);

B) fstream fio; fio.open(“d:\\test.txt”,ios_base::out);

C) ofstream fout; fout.open(“d:\\test.txt”, ios_base::out);

D) ofstream fout; fout.open(“d:\\test.txt”, ios_base::app);

(27)已知类MyClass的定义如下:

class MyClass {

public:

void function1(MyClass& c){ cout<

static void function2(MyClass& c){ cout<

void function3(){cout<

static void function4(){cout<

private:

int data;

};

其中有编译错误的函数是(D )。

A) function1 B) function2 C) function3 D) function4

(28)有如下程序:C

A) *@#@ B) #@*@ C) *#@@ D) #*@@

(29)已知类MyClass的定义如下:

class MyClass {

public:

MyClass(int d) {data=d;}

~MyClass() {}

private:

int data;

};

下列对MyClass类对象数组的定义和初始化语句中,正确的是(C )。

A) MyClass array[2];

B) MyClass array[2]={MyClass (5)};

C) MyClass array[2]={MyClass (5), MyClass (6),};

D) MyClass* arrays=new MyClass[2];

(30)有如下程序:

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

A) ①②皆无编译错误B)①有编译错误,②无编译错误C) ①无编译错误,②有编译错误D)①②皆有编译错误

(31)有如下程序:

运行时的输出结果是(D )。

A) 1234 B) 2134 C) 12 D) 21

(32)有如下程序:

运行时的输出结果是(B )。

A) 01 B) 21 C) 03 D) 23

(33)若为Fraction类重载前增1运算符++,应在类体中将其声明为(A )。

A) Fraction& operator ++( );

B) Fraction& operator ++(int );

C) friend Fraction& operator ++( );

D) friend Fraction& operator ++(int );

(34)有如下程序:

#include

#include

using namespace std;

int main(){

cout<

return 0;

}

运行时的输出结果是(C )。

A) ***123***456 B) ***123456*** C) ***123456 D) 123456

(35)有如下程序:

下列关于程序运行情况的描述中,正确的是(D )。

A) function1运行1次,function2运行2次

B) function1运行2次,function2运行1次

C) function1运行2次,function2运行3次

D) function1运行2次,function2运行2次

二、填空题(每空2分,共30分)

请将每一个空的正确答案写在答题卡【1】~【15】序号的横线上,答在试卷上不得分。

(1)数据结构分为线性结构与非线性结构,带链的栈属于【线性结构1】。

(2)在长度为n 的顺序存储的线性表中插入一个元素,最坏情况下需要移动表中【n】个元素。

(3)常见的软件开发方法有结构化方法和面向对象方法。对某应用系统经过需求分析建立数据流图(DFD),则应采用【3结构化】方法。

(4)数据库系统的核心是【4数据库管理系统】。

(5)在进行关系数据库的逻辑设计时,E-R图中的属性常被转换为关系中的属性,联系通常被转换为【5关系】。

(6)若有“int x=15,y=20”,则执行表达式y-=x++后,表达式x+y的值为【21】。

(7)执行语句序列“int k=0;do k++;while(k*k<20);”后,k的值为【5】,

(8)下列程序运行时的输出结果是【23】。

(9)下列程序运行时的输出结果是【19】。

(10)若Xcs是一个类,该类中具有一个函数体为空的不带参数的构造函数,此构造函数的类外定义为【Xcs::Xcs(){}】。

(11)有如下程序:运行时的输出结果是【4382】。

(12)有如下两个类声明

calss AA {

public:

int m;

};

class BB:protected AA{

int n;

};

在类中,数据成员m的访问属性是【保护】,数据成员n的访问属性是【13公有】。

(13) 已知类Ben中将二元运算符“/”重载为友元函数,若c1、c2是Ben的两个对象,当使用运算符函数进行显示调用时,与表达式c1/c2等价的表示为【14 operator /(c1,c2)】。

(14) C++中模板分为函数模板和【15类模板】。

相关文档
相关文档 最新文档