【计算机类职业资格】二级C++-79及答案解析.doc

上传人:arrownail386 文档编号:1324145 上传时间:2019-10-17 格式:DOC 页数:14 大小:63.50KB
下载 相关 举报
【计算机类职业资格】二级C++-79及答案解析.doc_第1页
第1页 / 共14页
【计算机类职业资格】二级C++-79及答案解析.doc_第2页
第2页 / 共14页
【计算机类职业资格】二级C++-79及答案解析.doc_第3页
第3页 / 共14页
【计算机类职业资格】二级C++-79及答案解析.doc_第4页
第4页 / 共14页
【计算机类职业资格】二级C++-79及答案解析.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、二级 C+-79 及答案解析(总分:60.50,做题时间:90 分钟)一、选择题(总题数:20,分数:29.50)1.下列对于软件测试的描述正确的是 _ 。(分数:2.00)A.软件测试的目的是证明程序是否正确B.软件测试的目的是使程序运行结果正确C.软件测试的目的是尽可能地多发现程序中的错误D.软件测试的目的是使程序符合结构化原则2.设有如下三个关系表: (分数:2.00)A.T=RSB.T=RSC.T=RSD.T=R/S3.以下函数实现的功能是 void fun(char*s) char*p,*q,temp; p=s; q=s+strlen(s)-1; while(pq) temp=*p;

2、 *p=*q; *p=temp; p+; q-; (分数:1.00)A.将一个字符串首尾颠倒B.计算字符串的长度C.统计字符串中的空格个数D.将字符串中的小写字母变成大写字母4.下面关于对象概念的描述中,错误的是(分数:1.00)A.C+中的对象就是 C 语言中的结构变量B.对象代表着正在创建的系统中的一个实体C.对象是一个状态和操作(或方法)的封装体D.对象之间的信息传递是通过消息进行的5.下列叙述中正确的是(分数:2.00)A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列

3、中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针共同决定的6.有如下程序段: int a10,*p3,*pp,i; for(i=0;i3:i+) pi= pp=p; 则正确表示数组 a 元素的表达式是 _。(分数:2.00)A.ppB.a10C.p3D.*(*(p+2)7.软件生命周期是指 _ 。(分数:1.00)A.软件产品从提出、实现、使用维护到停止使用退役的过程B.软件产品从提出、实现到使用维护的过程C.软件产品从提出到实现的过程D.软件产品从提出、实现到使用的过程8.对于重载的运算符,它是一个(分数:1.00)A.用于输入的友元函数B.用于输入的成员函数C.用于输出的

4、友元函数D.用于输出的成员函数9.下面程序的运行结果为 _ 。 #includeiostream using namespace std; void main() int a=1; switch(a) case 1:cout“1“; case 2:cout“2“; break; default:cout“0“; (分数:2.00)A.12B.120C.1D.1010.C+中设置虚基类的目的是_。(分数:1.00)A.简化程序B.消除二义性C.提高运行效率D.实现数据的隐藏性11.如下函数模板: template class T T square(T x) return x*x; 其中 T 是_

5、。(分数:1.00)A.函数形参B.函数实参C.模板形参D.模板实参12.下列关于 goto 语句的描述中,正确的是 _ 。(分数:1.00)A.goto 语句可在一个文件中随意转向B.goto 语句后面要跟一个它所转向的语句C.goto 语句可以同时转向多条语句D.goto 语句可以从一个循环体内转到循环体外13.有如下类和对象的定义: class Constants public: static double get PI()return 3.1416; ; Constants constants; 下列各组语句中,能输出 3.1416 的是(分数:2.00)A.coutconstants

6、-getPI();和 coutConstants:getPI();B.coutconstants. getPI();和 coutConstantsgetPI();C.coutconstants-getPI();和 coutConstants-getPl();D.coutconstants. getPI();和 coutConstants:getPI();14.关于二义性的描述错误的是(分数:1.00)A.一个子类的两个父类中都有某个同名成员,在子类中对该成员访问可能出现二义性B.解决二义性可以用对成员名的限定法C.父类和子类中同时出现同名函数,也可能存在二义性D.一个子类是从两个父类派生出来的

7、,而这两个父类又有一个共同的父类,对该父类成员进行访问时,可能出现二义性15.当执行以下程序时,_ 是正确的 k=1; do k=k*k; while(!k)(分数:2.00)A.循环体将执行一次B.循环体将执行两次C.循环体将执行无限次D.系统将提示有语法错误16.在 32 位的计算机中,一个 char 型数据所占的内存长度的字节是_。(分数:2.50)A.4B.1C.2D.817.有如下程序: #includeiostream using namespace std; class Book public: Book(char*t=“ “)strcpy(title,t); _ pnvate:

8、 char title40; ; class Novel:public Book public: Novel(char*t=“ “):Book(t) char*Category()constretum“文学“; ; int main() Book*pb; pb=new Novel(); coutpb-Category(); delete pb; retum 0; 若程序运行时输出结果是“文学“,则横线处缺失的语句是_。(分数:1.00)A.char*Category();B.char*Category()const;C.virtual char*Category()const;D.virtua

9、l char*Category()const=0;18.若定义 cinstr;当输入 Hello World!,所得的结果是 str _。(分数:2.00)A.Hello World!B.HelloC.WorldD.Hello World19.关于 continue 语句叙述不正确的是(分数:1.00)A.continue 语句用于循环体中,结束循环B.continue 语句用于循环体中,它使执行流跳出循环体中尚未执行的语句,并进行下一循环判断C.continue 可以用于 if 语句中D.continue 语句不能代替 break 语句20.下列关于队列的叙述中正确的是(分数:1.00)A.

10、在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表二、填空题(总题数:18,分数:31.00)21.若要想进行标准输入输出则头文件必须包含 1 件。 (分数:1.00)22.C语言支持的两种多态性分别是编译时的多态性和 1 的多态性。 (分数:2.00)23.下列程序的输出结果为 2,请将程序补充完整。 #includeiostream using namespace std; class Basc public: _ 1_ void fun()cout1; ; class Dcrived:public Base public: void fun(

11、)cout2; ; int main() Base*p=new Derived; p-fun(); delete p; return 0; (分数:1.00)24.C+本身没有定义 I/O 操作,但 I/O 操作包含在 C+实现中。C+标准库 iostream 提供了基本的 I/O 类。I/O 操作分别由类 istream 和 _ 1_ 提供。 (分数:2.00)25.类 1 支持输入操作,类 2 支持输出操作。 (分数:1.00)26.使用如 setw()的操纵符对数据进行格式输出时,应包含 1 文件。 (分数:2.00)27.类模板不同于函数模板,类模板只可用 1 型参数。 (分数:2.0

12、0)28.表达式 x.operator+(y.operator+(0)还可以写成 1。 (分数:2.00)29.C+是一种面向对象的程序设计语言,它充分支持面向对象思想中的三个主要特征是 1 性; 2 性和 3性。 (分数:1.00)30.下面程序的输出结果是 1。 #include iostream #include math using namespace std; class point private: double x; double y; public: point(double a,double b) x=a, y=b; friend double distance(point

13、a,point b); ; double distance(point a,point b) return sqrt(a.x-b.x)*(a.x-b.x)+(a.y-b,y)*(a.y-b.y); int main() point p1(1,2); point p2(5,2); coutdistance(p1,p2)endl; return 0; (分数:2.00)31.具有记忆作用的线性表称为 _ 1_ 。 (分数:2.00)32.已知 int DBL(int n)return n+n;和 long DBL(long n)return n+n)是一个函数模板的两个实例,则该函数模板的定义是

14、_ 1_ 。 (分数:1.00)33.在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,并且每一个 1 实际上对应一个处理模块。 (分数:2.00)34.问题处理方案的正确而完整的描述称为 1。 (分数:2.00)35.关系数据库管理系统能实现的专门关系运算包括选择、连接和 _ 1_ 。 (分数:2.00)36.若要作为类 A 的成员函数重载前置“+”运算符,使其作用于类 A 的对象,则该运算符函数的声明部分应该是 1。 (分数:2.00)37.以下程序的运行结果是 _ 1_ 。 #includeiostream #includestring using namespace st

15、d; void main() chara10=“China“,b=“Chin“,c=“ese“; coutstrlen(strcat(strcpy(a,b),c)endl; (分数:2.00)38.插入排序算法的主要思想是:每次从未排序序列中取出一个数据,插入到已排序序列中的正确位置。InsertSort 类的成员函数 sort( )实现了插入排序算法。请将画线处缺失的部分补充完整。 class InsertSort public: InsertSort(int*aO,int nO):a(aO),n(nO) /参数 a0 是某组首地址,n 是数组元素个数 void sort( ) /此函数假设

16、已排序序列初始化状态只包含 a0,未排序序列初始为 a1.an-1 for(int i=1;in;+i); int t=ai; int j; for( 1;j0;-j) if(taj-1)break; aj=aj-1; aj=t; protected: int*a,n; /指针 a 用于存放数组首地址,n 用于存放数组元素个数 ; (分数:2.00)二级 C+-79 答案解析(总分:60.50,做题时间:90 分钟)一、选择题(总题数:20,分数:29.50)1.下列对于软件测试的描述正确的是 _ 。(分数:2.00)A.软件测试的目的是证明程序是否正确B.软件测试的目的是使程序运行结果正确C

17、.软件测试的目的是尽可能地多发现程序中的错误 D.软件测试的目的是使程序符合结构化原则解析:解析 软件测试是为了尽可能多地发现程序中的错误,尤其是发现至今尚未发现的错误。2.设有如下三个关系表: (分数:2.00)A.T=RSB.T=RSC.T=RS D.T=R/S解析:解析 关系代数中的集合运算有并、差、交和笛卡儿积四种。根据本题关系 T 中的元组可知,它是由关系 R 和关系 S 进行笛卡儿积运算得到的。3.以下函数实现的功能是 void fun(char*s) char*p,*q,temp; p=s; q=s+strlen(s)-1; while(pq) temp=*p; *p=*q; *

18、p=temp; p+; q-; (分数:1.00)A.将一个字符串首尾颠倒 B.计算字符串的长度C.统计字符串中的空格个数D.将字符串中的小写字母变成大写字母解析:解析 本题考核 while 循环语句和指针的使用。在该函数中,循环开始时,指针 p 指向字符串的第 1 个字符,指针 q 指向字符串的最后一个字符,首先交换这两个字符:然后,指针 p 前进一个字符位置(指向下一个字符),指针 q 后退一个字符位置(指向前一个字符);经过若干次循环,条件 pq 将为假(即指针 p 和指针 q 相遇),循环结束。从而实现了将一个字符串首尾颠倒的功能。4.下面关于对象概念的描述中,错误的是(分数:1.00

19、)A.C+中的对象就是 C 语言中的结构变量 B.对象代表着正在创建的系统中的一个实体C.对象是一个状态和操作(或方法)的封装体D.对象之间的信息传递是通过消息进行的解析:解析 本题考核对象的概念。C+中的对象与 C 语言中的结构变量是不一样的。对象是某一类类型的变量,而结构变量是结构类型的变量。同时 C+对 C 的结构有了扩展,结构可以和类一样使用。结构除了可以包含数据成员外,还可以包含成员函数:成员也可以加上 public、private 和 protected 访问控制;结构之间也可以继承。两者惟一的不同之处是,结构中的成员默认是公有的,结构的继承默认是公有的,而类的继承默认是私有的,类

20、的成员默认也是私有的。5.下列叙述中正确的是(分数:2.00)A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针共同决定的 解析:解析 循环队列是线性表的一种,所以选项 A 错误。循环队列的入队和出队需要由队尾指针和队头指针完成,所以选项 B 和 c 错误。6.有如下程序段: int a10,*p3,*pp,i; for(i=0;i3:i+) pi= pp=p; 则正确表示数组 a 元素的表达式是 _。(分数:2

21、.00)A.ppB.a10C.p3D.*(*(p+2) 解析:7.软件生命周期是指 _ 。(分数:1.00)A.软件产品从提出、实现、使用维护到停止使用退役的过程 B.软件产品从提出、实现到使用维护的过程C.软件产品从提出到实现的过程D.软件产品从提出、实现到使用的过程解析:解析 软件生命周期是一个重要概念,考生应很好掌握。它是指软件产品从提出、实现、使用维护到停止使用退役的整个过程。一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。8.对于重载的运算符,它是一个(分数:1.00)A.用于输入的友元函数 B.用于输入的成员函数C.用于输出的友元函数D.用于输出的成员函数解

22、析:9.下面程序的运行结果为 _ 。 #includeiostream using namespace std; void main() int a=1; switch(a) case 1:cout“1“; case 2:cout“2“; break; default:cout“0“; (分数:2.00)A.12 B.120C.1D.10解析:解析 switch 语句检测到符合条件 case 执行后面语句不再判断。10.C+中设置虚基类的目的是_。(分数:1.00)A.简化程序B.消除二义性 C.提高运行效率D.实现数据的隐藏性解析:解析 多重继承的派生类有可能从两个或多个基类中继承同名成员,

23、对该成员不加限定的访问就会造成二义性,虚基类就是为了解决这个二义性问题,无论该类在派生层次中作为虚基类出现多少次,都只继承一个共享的基类子对象,从而消除二义性。答案选 B 选项。11.如下函数模板: template class T T square(T x) return x*x; 其中 T 是_。(分数:1.00)A.函数形参B.函数实参C.模板形参 D.模板实参解析:解析 本题考查模板函数的基本概念,根据模板函数的定义,T 是模板形参,所以答案为 C。12.下列关于 goto 语句的描述中,正确的是 _ 。(分数:1.00)A.goto 语句可在一个文件中随意转向B.goto 语句后面要

24、跟一个它所转向的语句C.goto 语句可以同时转向多条语句D.goto 语句可以从一个循环体内转到循环体外 解析:解析 goto 语句也可以跳出循环和 switch 语句,goto 语句无条件地转移程序的执行控制。它总是与一标号相匹配,其形式为:goto 标号;,标号是用户自定义的标识符,它可以处于 goto 语句的前面,也可以处于其后,但标号必须与 goto 语句处于同一个函数中。定义标号时,由一个标识符后面跟一个冒号组成。13.有如下类和对象的定义: class Constants public: static double get PI()return 3.1416; ; Constan

25、ts constants; 下列各组语句中,能输出 3.1416 的是(分数:2.00)A.coutconstants-getPI();和 coutConstants:getPI();B.coutconstants. getPI();和 coutConstantsgetPI();C.coutconstants-getPI();和 coutConstants-getPl();D.coutconstants. getPI();和 coutConstants:getPI(); 解析:14.关于二义性的描述错误的是(分数:1.00)A.一个子类的两个父类中都有某个同名成员,在子类中对该成员访问可能出现

26、二义性B.解决二义性可以用对成员名的限定法C.父类和子类中同时出现同名函数,也可能存在二义性 D.一个子类是从两个父类派生出来的,而这两个父类又有一个共同的父类,对该父类成员进行访问时,可能出现二义性解析:解析 基类和其继承类同时出现同名函数,则在继承类中实现对象中调用该函数是使用继承类中的定义,这种情况下是不会产生二义性的。15.当执行以下程序时,_ 是正确的 k=1; do k=k*k; while(!k)(分数:2.00)A.循环体将执行一次 B.循环体将执行两次C.循环体将执行无限次D.系统将提示有语法错误解析:16.在 32 位的计算机中,一个 char 型数据所占的内存长度的字节是

27、_。(分数:2.50)A.4B.1 C.2D.8解析:解析 在 32 位的计算机中,一个 char 型数据所占的内存长度的字节是 1。17.有如下程序: #includeiostream using namespace std; class Book public: Book(char*t=“ “)strcpy(title,t); _ pnvate: char title40; ; class Novel:public Book public: Novel(char*t=“ “):Book(t) char*Category()constretum“文学“; ; int main() Book*

28、pb; pb=new Novel(); coutpb-Category(); delete pb; retum 0; 若程序运行时输出结果是“文学“,则横线处缺失的语句是_。(分数:1.00)A.char*Category();B.char*Category()const;C.virtual char*Category()const;D.virtual char*Category()const=0; 解析:解析 本题考查纯虚函数和抽象类,纯虚函数是在声明虚函数时被“初始化”为 0 的函数,包含纯虚函数的类为抽象类,抽象类是不能被实例化的,但是可以定义指向抽象类数据的指针变量,当派生类成为具体类

29、后,就可以用这种指针指向派生类的对象,然后通过该指针调用虚函数,实现多态性的操作。所以本题答案为 D。18.若定义 cinstr;当输入 Hello World!,所得的结果是 str _。(分数:2.00)A.Hello World!B.Hello C.WorldD.Hello World解析:19.关于 continue 语句叙述不正确的是(分数:1.00)A.continue 语句用于循环体中,结束循环 B.continue 语句用于循环体中,它使执行流跳出循环体中尚未执行的语句,并进行下一循环判断C.continue 可以用于 if 语句中D.continue 语句不能代替 break

30、 语句解析:20.下列关于队列的叙述中正确的是(分数:1.00)A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表 D.队列是先进后出的线性表解析:解析 队列是指允许在一端进行插入、而在另一端进行删除的线性表,选项 A 和选项 B 错误。允许插入的一端称为队尾,允许删除的一端称为队头。在队列中,最先插入的元素将最先能够被删除,反之,最后插入的元素将最后才能被删除。所以,队列又称为“先进先出”或“后进后出”的线性表,它体现了“先来先服务”的原则,选项 C 正确,选项 D 错误。二、填空题(总题数:18,分数:31.00)21.若要想进行标准输入输出则头文件必须包含 1 件

31、。 (分数:1.00)解析:iostream.h22.C语言支持的两种多态性分别是编译时的多态性和 1 的多态性。 (分数:2.00)解析:运行时解析 本题考查的是多态性的概念,多态性主要是指发出同样的消息而被不同类型的对象接收时导致完全不同的行为,它一般分为编译时的多态性和运行时的多态性,比如函数重载和虚函数。23.下列程序的输出结果为 2,请将程序补充完整。 #includeiostream using namespace std; class Basc public: _ 1_ void fun()cout1; ; class Dcrived:public Base public: vo

32、id fun()cout2; ; int main() Base*p=new Derived; p-fun(); delete p; return 0; (分数:1.00)解析:virtual解析 利用虚函数实现多态。24.C+本身没有定义 I/O 操作,但 I/O 操作包含在 C+实现中。C+标准库 iostream 提供了基本的 I/O 类。I/O 操作分别由类 istream 和 _ 1_ 提供。 (分数:2.00)解析:ostream25.类 1 支持输入操作,类 2 支持输出操作。 (分数:1.00)解析:istream、ostream26.使用如 setw()的操纵符对数据进行格式

33、输出时,应包含 1 文件。 (分数:2.00)解析:iomanip.h27.类模板不同于函数模板,类模板只可用 1 型参数。 (分数:2.00)解析:类。解析 本题考查的是类模板的定义,C+语言中模板分为两种:类模板和函数模板,类模板只能用于类型参数,函数模板可以重载。28.表达式 x.operator+(y.operator+(0)还可以写成 1。 (分数:2.00)解析:x+y+或 x+(y+)29.C+是一种面向对象的程序设计语言,它充分支持面向对象思想中的三个主要特征是 1 性; 2 性和 3性。 (分数:1.00)解析:封装、继承、多态30.下面程序的输出结果是 1。 #includ

34、e iostream #include math using namespace std; class point private: double x; double y; public: point(double a,double b) x=a, y=b; friend double distance(point a,point b); ; double distance(point a,point b) return sqrt(a.x-b.x)*(a.x-b.x)+(a.y-b,y)*(a.y-b.y); int main() point p1(1,2); point p2(5,2); c

35、outdistance(p1,p2)endl; return 0; (分数:2.00)解析:431.具有记忆作用的线性表称为 _ 1_ 。 (分数:2.00)解析:栈解析 栈具有记忆作用。32.已知 int DBL(int n)return n+n;和 long DBL(long n)return n+n)是一个函数模板的两个实例,则该函数模板的定义是 _ 1_ 。 (分数:1.00)解析:templateclass TTDBL(Tn)return n+n;解析 本题考核函数模板的使用。函数模板的一般说明形式如下:template类型 形参表返回类型函数名(形参表)函数体。函数调用方式为:函数

36、名(实参表);。形参表中的类型以实参表中的实际类型为依据。由此易得答案。33.在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,并且每一个 1 实际上对应一个处理模块。 (分数:2.00)解析:加工解析 数据流图是从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程,其中的每一个加工对应一个处理模块。34.问题处理方案的正确而完整的描述称为 1。 (分数:2.00)解析:算法解析 本描述是算法的概念。35.关系数据库管理系统能实现的专门关系运算包括选择、连接和 _ 1_ 。 (分数:2.00)解析:投影解析 关系运算的具体内容。36.若要作为类 A 的成员函数重载前置“

37、+”运算符,使其作用于类 A 的对象,则该运算符函数的声明部分应该是 1。 (分数:2.00)解析:A operator+()解析 类 A 的对象本身作为前置“+”运算符的一个参数,故该函数括号中没有形参,返回值类型为 A。37.以下程序的运行结果是 _ 1_ 。 #includeiostream #includestring using namespace std; void main() chara10=“China“,b=“Chin“,c=“ese“; coutstrlen(strcat(strcpy(a,b),c)endl; (分数:2.00)解析:7解析 本题主要考查 C+中字符串函

38、数的使用。strcpy(s1,s2)将 s2 的内容赋值到 s1 中; strcat(s1,s2)连接 s1 和 s2 两个字符串;strlen(s)返回字符数组 s 的长度。因此最后输出的结果是 b和 c 进行连接后的字符串长度,即 7。38.插入排序算法的主要思想是:每次从未排序序列中取出一个数据,插入到已排序序列中的正确位置。InsertSort 类的成员函数 sort( )实现了插入排序算法。请将画线处缺失的部分补充完整。 class InsertSort public: InsertSort(int*aO,int nO):a(aO),n(nO) /参数 a0 是某组首地址,n 是数组

39、元素个数 void sort( ) /此函数假设已排序序列初始化状态只包含 a0,未排序序列初始为 a1.an-1 for(int i=1;in;+i); int t=ai; int j; for( 1;j0;-j) if(taj-1)break; aj=aj-1; aj=t; protected: int*a,n; /指针 a 用于存放数组首地址,n 用于存放数组元素个数 ; (分数:2.00)解析:j=i解析 插入排序算法的主要思想是:每次从未排序序列中取出一个数据,插入到已排序序列中的正确位置,外循环控制待插入的元素,内循环控制在已经有序的元素中查找位置。采用倒序查找办法,所以 j 的初始值从 i 位置开始往前查,该处填“j=i”。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1