
2021年山东省日照市全国计算机等级考试C++语言程序设计测试卷(含答案).docx
41页2021年山东省日照市全国计算机等级考试C++语言程序设计测试卷(含答案)学校:________ 班级:________ 姓名:________ 考号:________一、1.选择题(10题)1. 下列对类的构造函数和析构函数描述正确的是 ______A.构造函数不能重载,析构函数可以重载 B.构造函数可以重载,析构也可以重载 C.构造函数不能重载,析构函数也不能重载 D.构造函数可以重载,析构函数不能重载 2.对类的构造函数和析构函数描述正确的是( )A.构造函数可以重载,析构函数不能重载 B.构造函数不能重载,析构函数可以重载 C.构造函数可以重载,析构函数也可以重载 D.构造函数不能重载,析构函数也不能重载 3.c++语言类体系中,不能被派生类继承的有( )A.转换函数 B.构造函数 C.虚函数 D.静态成员函数 4.结构化程序设计主要强调的是( )A.程序的规模 B.程序的效率 C.程序设计语言的先进性 D.程序的易读性 5. 若已知char str[20];,有语句cin>>str; 当输入为; This is a program 所得的结果是str=( )A.This is a program B.This C.This is D.This is a 6. 下面程序段的输出结果是 ______。
char *s="12345"; s+=2; cout<<*s;A.345 B.字符'3' C.字符'3'的地址 D.无确定的输出结果 7. 对于下面的程序 ifstream fin(c:\test.txt); if(fin) cout<<"ok"; else cout<<"wrong"; 对于if语句中的内容可以换为A.fin.fail( ): B.fin.bad( ); C.fin.good( ); D.fin.eof( ); 8. 以下正确的描述为A.每个C++语言程序必须在开头用预处理命令: B.预处理命令必须位于C++源程序的首部 C.在C++语言中预处理命令都以“#”开头 D.C++语言的预处理命令只能实现宏定义和条件编译的功能 9. 面向对象程序设计将数据和( )放在一起,作为一个相互依存、不可分割的整体来处理A.对数据的操作 B.信息 C.数据隐藏 D.数据抽象 10. 下面关于C++语言变量的叙述错误的是A.C++语言中变量分为auto,static,extern和register四种存储类型 B.自动变量和外部变量的作用域为整个程序 C.内部静态变量的作用域是定义它的函数 D.外部静态变量的作用域是定义它的文件 二、单选题(13题)11. 数据结构分为逻辑结构和存储结构,下列数据结构中不属于存储结构的是A.线性链表 B.二叉链表 C.栈与队列 D.循环队列 12. 假定MyClass为一个类,则该类的拷贝构造函数的声明语句为 ( )。
A.MyClass&(MyClass x); B.MyClass(MyClass x) C.MyClass(MyClass &x); D.MyClass(MyClass *x) 13.对C++编译器区分重载函数无任何意义的信息是_________A.参数类型 B.参数个数 C.返回值类型 D.常成员函数关键字const 14. 下列函数的运行结果是( ) #include<iostream.h> int f(int a,int b) {int c; if(a>b) c=1; else if(a==b)c=0 elsec=-1; return(c);} void main() {int i=2,j=3; int p=f(i,j); cout<<p:}A.-1 B.1 C.2 D.编译出错,无法运行 15. 下面关于纯虚函数和抽象类的描述中, ______ 是错误的A.纯虚函数是一种特殊的虚函数,它没有具体意义 B.一个基类中的说明有纯虚函数,该基类的派生类一定不再是抽象类 C.抽象类只能作为基类来使用,其纯虚函数的定义由派生类给出 D.抽象类是指具有纯虚函数的类 16.下面有关重载函数的描述中正确的是( )。
A.重载函数必须具有不同的返回值类型 B.重载函数形参个数必须不同 C.重载函数必须具有不同的形参列表 D.重载函数名可以不同 17.在软件开发中,需求分析阶段产生的主要文档是( )A.可行性分析报告 B.软件需求规格说明书 C.概要没计说明书 D.集成测试计划 18.关于类和对象描述错误的是( )A.对象(Object)是现实世界中的客观事物,对象具有确定的属性 B.类是具有相同属性和行为的一组对象的集合 C.对象是类的抽象,类是对象的实例 D.类是对象的抽象,对象是类的实例 19. 下列叙述中错误的是A.在数据库设计的过程中,需求分析阶段必须考虑具体的计算机系统 B.在数据库设计的过程中,概念结构设计与具体的数据库管理系统有关 C.在数据库设计的过程中,逻辑结构设计与具体的数据库管理系统有关 D.在数据库设计的过程中,物理结构设计依赖于具体的计算机系统 20.下面关于break语句的描述中,不正确的是( )A.A.break可以用于循环体内 B.break语句可以在for循环语句中出现多次 C.break语句可以在switch语句中出现多次 D.break语句可用于if条件判断语句内21. 若有以下程序: #include <iostream> using namespace std; int f() { static int i = 0; int s = 1; s+=i; i++; return s; } int main() { int i,a = 0; for(i = 0;i<5;i++) a+=f(); cout<<a<<endl; return 0; } 程序运行后,输出的结果是A.20 B.24 C.25 D.15 22.关于友元,下列说法错误的是A.如果类A是类B的友元,那么类B也是类A的友元 B.如果函数fun()被说明为类A的友元,那么在fun()中可以访问类A的私有成员 C.友元关系不能被继承 D.如果类A是类B的友元,那么类A的所有成员函数都是类B的友元函数 23.下面关于数组的初始化正确的是( )。
A.char str[]={’a’,’b’,’C’} B.char str[2]={’a’,’b’,’c’} C.char str[2][3]={{’a’,’b’},{’C’,’d’},{’e’,’f’}} D.char str={~a,~b,~C} 三、2.填空题(12题)24. 头文件______中包含了执行内部格式化所需的信息25. 关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、______和自定义完整性26. 函数不能直接引用类中说明的非静态成员,这里指的成员是【 】27. 数据管理技术发展过程经过了人工管理、文件系统和数据库系统3个阶段,其中数据独立性最高的阶段是______28. 算法复杂度主要包括时间复杂度和______复杂度29. 已知程序的结果为1 2 3,请填空include<iostream.h>template<class T>class A{public:T x,y,Z;void display( ) {cout << x << " " << y << " " << z;}};void main( ){A<int>al; 【 】 【 】 【 】 al.display( ); }30. 以随机访问方式读取文件中的数据通常使用istream的成员函数______。
31. 在C++语言中,访问一个对象的成员所用的运算符是【 】,访问一个指针所指向的对象的成员所用的运算符是【 】32. 友元类的所有成员函数都是另一个类的【 】函数33. ______是实现C++语言编译时多态性的机制,______是实现C++语言运行时多态性的机制34. Staff类含有int型数据成员ID,两个Staff对象相等是指它们的ID相同下面的函数重载了运算符“==”,它用来判断两个Staff对象是否相等,相等时返回true,否则返回false请将横线处缺失部分补充完整bool Staff::Staff==(const Staff &s){return(______);}35. 如果表达式--x中的“--”是重载的类运算符,采用运算符函数调用格式,该表达式还可以表示为【 】四、程序改错题(10题)36.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为 Constructor,i=0, Destructor注意:错误的语句在//******error******的下面,修改该语句即可 试题程序: #include(iostream.h)classTC{inti; public: TC; voiddisplay; ~TC; }; //******error******TC:TC{cout<<"Constructor"<<","; i=0; )//******error******TC:display{tout<<"i="<
也不能更改程序的结构,错误的语句在//******error******的下面试题程序:#include
