全国计算机等级考试《二级C++语言程序设计》历年真题精选及详解
选择题(每题1分,共40分。下列各题A、B、C、D四个选项中,只有一个选项是正确的。)1.下列数据结构中,属于非线性结构的是()。A.双向链表B.循环链表C.二叉链表D.循环队列【答案】C【解析】线性结构要满足两个条件:有且仅有一个根结点;每个结点最多有一个前驱,也最多有一个后继。线性表、栈、队列都是线性结构,循环链表和双向链表是线性表的链式存储结构,属于线性结构,只是存储结构不连续;循环队列是一个头结点和尾结点互为前驱结点和后继结点的特殊的队列,属于线性结构;二叉链表是二叉树的链式存储结构,因为二叉树有些结点有两个后继结点,不符合线性结构的定义,所以二叉链表是非线性结构。答案选择C选项。2. 基本操作题(18分。)1.请使用“答题”菜单或使用VC6打开考生文件夹proj1下的工程文件projl。此工程包含程序文件main.cpp,其中有类Door和主函数main的定义。程序中位于每个“//ERROR********found*********”下的语句行有错误,请加以更正。更正后程序的输出应该是:打开503号门 门是锁着的,打不开。打开503号门的锁锁开了。打开503号门 门打开了。 锁上503号门 先关门 门锁上了。注意:只能修改每个“//ERROR*********found*********”下的那一行,不要改动程序中的其他内容。#include<iostream>using 简单应用题(24分。)1.请使用“答题”菜单或使用VC6菜单打开考生文件夹proj2下的工程proj 2,其中包含抽象类Shape的声明,以及在此基础上派生出的类Rectangle和Circle的声明,两者都有计算对象面积的函数Gethrea()和计算对象周长的函数GetPerim()。The area of the Circle is 78.5The perimeter of the Circle is 31.4The area of the Rectangle is 24The perimeter of the Rectangle is 20注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不能删除或移动“//********************”。 综合应用题(18分。)1.请使用“答题”菜单或使用VC6打开考生文件夹proj3下的工程文件proj 3,其中声明了CDeepCopy类,它是一个用于表示动态数组的类。请编写其中的复制构造函数。要求:补充编制的内容写在//***************与//**************行之间。不得修改程序的其他部分。注意:程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。部分源程序如下:/**********code.c***********#include"CDeepCopy.h"CDeepCopy::~CDeepCopy(){