计算机二级考试C++语言笔试试题.docx
- 文档编号:30746383
- 上传时间:2023-08-20
- 格式:DOCX
- 页数:15
- 大小:27.63KB
计算机二级考试C++语言笔试试题.docx
《计算机二级考试C++语言笔试试题.docx》由会员分享,可在线阅读,更多相关《计算机二级考试C++语言笔试试题.docx(15页珍藏版)》请在冰豆网上搜索。
计算机二级考试C++语言笔试试题
一、选择题(每题2分,共计70分)
1.
(1)软件是指
A)程序 B)程序和文档
C)算法加数据结构 D)程序、数据与相关文档的完整集合
ABCD
2.
(2)软件调试的目的是
A)发现错误 B)改正错误
C)改善软件的性能 D)验证软件的正确性
ABCD
3.
(3)在面向对象方法中,实现信息隐蔽是依靠
A)对象的继承 B)对象的多态
C)对象的封装 D)对象的分类
ABCD
4.
(4)下列叙述中,不符合良好程序设计风格要求的是
A)程序的效率第一, 清晰第二 B)程序的可读性好
C)程序中要有必要的注释 D)输入数据前要有提示信息
ABCD
5.
(5)下列叙述中正确的是
A)程序执行的效率与数据的存储结构密切相关
B)程序执行的效率只取决于程序的控制结构
C)程序执行的效率只取决于所处理的数据量
D)以上三种说法都不对
ABCD
6.
(6)下列叙述中正确的是
A)数据的逻辑结构与存储结构必定是一一对应的
B)由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构
C)程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构
D)以上三种说法都不对
ABCD
7.
(7)冒泡排序在最坏情况下的比较次数是
A)n(n+1)/2 B)nlog2 n C)n(n-1)/2 D)n/2
ABCD
8.
(8)一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为
A)219 B)221 C)229 D)231
ABCD
9.
(9)下列叙述中正确的是
A)数据库系统是一个独立的系统,不需要操作系统的支持
B)数据库技术的根本目标是要解决数据的共享问题
C)数据库管理系统就是数据库系统
D)以上三种说法都不对
ABCD
10.
(10)下列叙述中正确的是
A)为了建立一个关系,首先要构造数据的逻辑关系
B)表示关系的二维表中各元组的每一个分量还可以分成若干数据项
C)一个关系的属性名表称为关系模式
D)一个关系可以包括多个二维表
ABCD
11.
(11)在函数中,可以用auto、extern、register和static这四个关键字中的一个来说明变量
的存储类型,如果不说明存储类型,则默认的存储类型是
A)auto B)extern C)register D)static
ABCD
12.
(12)对于一个类定义,下列叙述中错误的是
A)如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数。
B)如果没有定义缺省的构造函数,编译器将一定生成一个缺省的构造函数。
C)如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数。
D)如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数。
ABCD
13.
(13)如果派生类以protected方式继承基类,则原基类的protected成员和public成员在派
生类中的访问属性分别是
A)public和public B)public和protected
C)protected和public D)protected和protected
ABCD
14.
(14)下列运算符函数中肯定不属于类FunNumber的成员函数的是
A)int operator-(FunNumber);
B)FunNumber operator -();
C)FunNumber operator -(int);
D)int operator -(FunNumber,FunNumber);
ABCD
15.
(15)C++中的模板包括
A)对象模板和函数模板 B)对象模板和类模板
C)函数模板和类模板 D)变量模板和对象模板
ABCD
16.
(16)如果利用C++流进行输入输出,下面的叙述中正确的是
A)只能借助于流对象进行输入输出。
B)只能进行格式化输入输出。
C)只能借助于cin和cout进行输入输出。
D)只能使用运算符>>和<<进行输入输出。
ABCD
17.
(17)下列符号中不属于C++关键字的是
A)friend B)namespace C)continue D)byte
ABCD
18.
(18)下列各组类型声明符中,含义想通的一组是
A)unsigned long int 和 long B)signed short int 和 short
C)unsigned short 和 short D)short int 和 int
ABCD
19.
(19)必须用一对大括号括起来的程序段是
A)switch语句中的case标号语句。
B)if语句的分支。
C)循环语句的循环体。
D)函数的函数体。
ABCD
20.
(20)语句 int *p=&k;定义了指针p,与这个语句等效的语句序列是
A) int *p;p=&k; B)int *p;p=k;
C) int *p;*p=&k; D)int *p;*p=k;
ABCD
21.
(21)关于函数重载,下列叙述中错误的是
A)重载函数的函数名必须相同。
B)重载函数必须在参数个数或类型上有所不同。
C)重载函数的返回值类型必须相同。
D)重载函数的函数体可以有所不同。
ABCD
22.
(22)有如下头文件:
int f1();
static int f2();
class MA{
public:
int f3();
static int f4();
}
在所描述的函数中,具有隐含的this指针的是
A)f1 B)f2 C)f3 D)f4
ABCD
23.
(23)派生类的成员函数不能访问基类的
A)公有成员和保护成员 B)公有成员
C)私有成员 D)保护成员
ABCD
24.
(24)下列关于运算符重载的描述中,正确的是
A)运算符重载为成员的函数时,若参数表中无参数,重载的是一元运算符
B)一元运算符只能作为成员函数重载
C)二元运算符重载为非成员函数是,参数表中有一个参数
D)C++中可以重载所有的运算符
ABCD
25.
(25)下列关于类木不安的模板参数的叙述中,错误的是
A)模板参数可以作为数据成员的类型
B)模板参数可以作为成员函数的返回类型
C)模板参数可以作为成员函数的参数类型
D)模板参数不能作为成员函数的局部不按量的类型
ABCD
26.
(26)已知一程序运行后执行的第一个输出操作是
cout< 此操作的输出结果是 A)1234 B)******1234 C)**********1234 D)1234****** ABCD 27. (27)有如下程序: #include using namespace std; class MyClass{ public: MyClass(){++count;} ~MyClass(){--count;} static int getCount(){return count;} private: static int count; }; int MyClass: : count=0; int main(){ MyClass obj; cout< MyClass *ptr=new MyClass; cout< getCount(); delete ptr; cout< : getCount(); return 0; } 程序的输出结果是 A)121 B)232 C)221 D)122 ABCD 28. (28)有如下程序: #include using namespace std; class MyClass{ public: MyClass(int x): val(x){} void Print() const {cout<<"const: val="< void Print(){cout<<"val="< private: int val; }; int main(){ const MyClass obj1(10); MyClass obj2(20); obj1.Print(); obj2.Print(); return 0; } 程序的输出结果是 A)val=10 const: val=20 B)const: val=10 const: val=20 C)const: val=10 val=20 D)val=10 val=20 ABCD 29. (29)有如下程序: #include using namespace std; class Part{ public: Part(int x=0): val(x){cout< ~Part(){cout< private: int val; }; class Whole{ public: Whole(int x,int y, int z=0): p2(x),p1(y),val(z){cout< ~Whole(){cout< private: Part p1,p2; int val; }; int main(){ Whole obj(1,2,3); return 0; } 程序的输出结果是 A)123321 B)213312 C)213 D)123123 ABCD 30. (30)有如下程序: #include using namespace std; class Base{ public: Base(int x=0){cout< }; class Derived: public Base{ public: Derived(int x=0){cout< private: Base val; }; int main(){ Derived d (1); return 0; } 程序的输出结果是 A)0 B)1 C)01 D)001 ABCD 31. (31)若有如下类定义 class B{ void fun1(){} protected: double var1; public: void fun2(){} }; class D: public B{ protected: void fun3(){} }; 已知obj是类D的对象,下列语句中不违反类成员访问控制权限的是 A)obj.fun1(); B)obj.var1; C)obj.fun2(); D)obj.fun3(); ABCD 32. (32)有如下程序: #include using namespace std; class Base{ public: void output(){cout<<1;} virtual void Print(){cout<<'B';} }; class derived: public Base{ public: void output(){cout<<2;} void Print(){cout<<'D';} }; int main(){ Base *ptr=new Derived; ptr->output(); ptr->Print(); delete ptr; return 0; } 程序的输出结果是 A)1B B)1D C)2B D)2D ABCD 33. (33)下列是重载惩罚运算符的函数原型生命,其中错误的是 A)MyClass operator *(double,double); B)MyClass operator * (double,MyClass); C)MyClass operator * (MyClass,double); D)MyClass operator * (MyClass,MyClass); ABCD 34. (34)如下函数的作用是以双倍行距输出文件: void double_space(ifstream& f,ofstream& t){ char c; while (__________){ ____________; if(c=='\n') t.out(c); } } 画线处缺失的部分是 A)f.get(c)与t.put(c) B)f.put(c)与t.get(c) C)t.get(c)与f.put(c) D)t.put(c)与f.get(c) ABCD 35. (35)有如下程序: #include using namespace std; class B{ public: virtual void show(){cout<<"B";} }; class D: public B{ public: void show(){cout<<"D";} }; void fun1(B *ptr){ptr->show();} void fun2(B &ref){ref.show();} void fun3(B b){b.show();} int main(){ B b,*p=new D; D d; fun1(p); fun2(b); fun3(d); return 0; } 程序的输出结果是 A)BBB B)BBD C)DBB D)DBD ABCD 二、填空题(每空2分,共计30分) 1. (1)软件需求规格说明书应具有完整性,无岐义性、正确性、可验证性、可修改性等特征,其中最重要的是【1】 。 输入答案,中间不含空格: 2. (2)在两种基本测试方法中,【2】 测试的原则之一是保证所测模块中每一个独立路径至少执行一次。 输入答案,中间不含空格: 3. (3)线性表的存储结构主要分为顺序存储结构和链式存储结构。 队列是一种特殊的线性表,循环队列是队列的【3】 存储结构。 输入答案,中间不含空格: 4.(4)对下列二义树进行中序遍历的结果为【4】 。 输入答案,中间不含空格: 5. (5)在E-R图中,矩形表示【5】 。 输入答案,中间不含空格: 6. (6)若有定义语句: int a=3,b=2,c=1;,则表达式a a: b的值是【6】 输入答案,中间不含空格: 7. (7)执行下列语句后,变量sum的值是【7】 int sum=0; for(int i=1;i<=3;i++) for(int j=1;j<=i;j++) sum++; 输入答案,中间不含空格: 8. (8)已知有函数f的定义如下: int f(){ static int s=0; s+=2; return s; } 则在程序中第二次执行函数调用语句f();时,函数f的返回值是【8】。 输入答案,中间不含空格: 9. (9)已知如下程序的输出结果是23,请将画线处缺失的部分补充完整。 #include using namespace std; class MyClass{ public: void Print() const{cout<<23;} }; int main(){ MyClass *p=new MyClass(); 【9】.Print(); return 0; } 输入答案,中间不含空格: 10. (10)有如下程序: #include using namespace std; class A{ public: A(){cout<<"A";} ~A)(){cout<<"A";} }; class B{ A a; public: B(){cout<<"B";} ~B(){cout<<"B";} }; int main(){ B b; return 0; } 程序的输出结果是【10】。 输入答案,中间不含空格: 11. (11)请在如下程序中的空格处填写正确的语句: #include using namespace std; class Base{ public: void fun(){cout<<"Base fun"< } class Derived: public Base{ public: void fun(){ 【11】;//调用基类的函数fun() cout<<"Derived fun"< } }; 输入答案,中间不含空格: 12. (12)已知类sample是一个抽象类,其成员函数display是无形参,无返货类型的纯虚函数, 请完成其声明: class sample{ public: sample(){}; 【12】 }; 输入答案,中间不含空格: 13. (13)有如下复数类的生命,请补充完整。 class complex{ double real; //实部 double imag; //虚部 public: complex(double x,double y){ real=x; imag=y; } complex operator +(complex c){//重载加法运算符“+” return complex(【13】); } }; 输入答案,中间不含空格: 14. (14)请将如下程序补充完整,使得输出结果为: bbaa #include using namespace std; class A{ public: 【14】{cout<<"aa";} }; class B: public A{ public: ~B(){cout<<"bb";} }; int main(){ B *p=new B; delete p; return 0; } 输入答案,中间不含空格: 15. (15)请将下列栈类Stack补充完整 class Stack{ private: int pList[100]; int top; public: Stack(): top(0){} void Push (const int &item); //新元素item压入栈 int Pop(void); //将栈顶元素弹出栈 }; void Stack: : Push(const int &item){ if(top==99) //如果栈满,程序终止 exit (1); top++; 【15】; } int Stack: : Pop(){ if(top<0) //如果栈空,程序终止 exit (1); return pList[top--]; } 输入答案,中间不含空格: 答案: 序号 正确答案 1 D 2 B 3 C 4 A 5 A 6 D 7 C 8 A 9 B 10 C 11 A 12 B 13 D 14 D 15 C 16 A 17 D 18 B 19 D 20 A 21 C 22 C 23 C 24 A 25 D 26 B 27 A 28 C 29 B 30 D 31 C 32 B 33 A 34 A 35 C 36 无歧义性 37 路径覆盖 38 顺序存储结构 39 ACBDFEHGP 40 实体集 41 2 42 6 43 4 44 (*p) 45 ABBA 46 Base: : fun() 47 virtual void di
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 考试 C+ 语言 笔试 试题