中科大软件学院C++考试试卷
c类考试试题及答案

c类考试试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项不是C语言的基本数据类型?A. intB. floatC. stringD. char答案:C2. C语言中,用于定义变量的关键字是?A. varB. defineC. letD. int答案:D3. 在C语言中,以下哪个运算符用于比较两个值是否相等?A. ==B. !=C. =D. <=答案:A4. 下列哪个选项不是C语言的控制语句?A. ifB. forC. switchD. while答案:C5. C语言中,用于定义函数的关键字是?A. functionB. defC. voidD. int答案:D6. 在C语言中,以下哪个选项是正确的数组声明?A. int array[5] = {1, 2, 3};B. int [5] array = {1, 2, 3};C. int array = [5] {1, 2, 3};D. int array[5] = {1, 2, 3, 4, 5};答案:A7. C语言中,用于输入输出的库函数是?A. stdlib.hB. stdio.hC. string.hD. math.h答案:B8. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. %D. ==答案:A9. 在C语言中,以下哪个选项是正确的指针声明?A. int *ptr;B. int *ptr = 0;C. int ptr *;D. int *ptr = 5;答案:A10. C语言中,用于定义结构体的关键字是?A. structB. unionC. enumD. typedef答案:A二、填空题(每题2分,共20分)1. 在C语言中,定义一个名为“num”的整型变量,其值为10,应该使用语句________。
答案:int num = 10;2. 如果要将一个整数变量的值赋给另一个整数变量,应该使用运算符________。
2023年9月青少年软件编程C语言等级考试试卷一级真题(含答案)

2023年9月青少年软件编程C语言等级考试试卷一级(含答案)分数:100 题数:5一、编程题(共5题,共100分)第1题. 日期输出给定两个整数,表示一个日期的月和日。
请按照"MM-DD"的格式输出日期,即如果月和日不到2位时,填补0使得满足2位。
时间限制:10000内存限制:65536输入2个整数m,d(0 < m <= 12, 0 < d <= 31)。
数据保证日期合法。
输出按照题目要求输出日期样例输入7 18样例输出07-18 。
参考答案:。
第2题. 计算(a+b)*(c-b)的值给定3个整数a、b、c,计算表达式(a+b)*(c-b)的值。
时间限制:1000内存限制:65536输入输入仅一行,包括三个整数a、b、c, 数与数之间以一个空格分开。
(-10,000 < a,b,c < 10,000)输出输出一行,即表达式的值样例输入2 3 5样例输出10 。
参考答案:。
第3题. 有一门课不及格的学生给出一名学生的语文和数学成绩,判断他是否恰好有一门课不及格(成绩小于60分)。
时间限制:10000内存限制:65536输入一行,包含两个在0到100之间的整数,分别是该生的语文成绩和数学成绩。
输出若该生恰好有一门课不及格,输出1;否则输出0。
样例输入50 80样例输出1 。
参考答案:。
第4题. 特殊求和如果一个数能够被7整除或者十进制表示中含有数字7,那么我们称这个数为幻数,比如17,21,73是幻数,而6,59不是。
对于给定的N,求出1~N中所有幻数的和。
时间限制:1000内存限制:65536输入一个整数N(1 < N < 10000)。
输出一个整数,表示1~N中所有幻数的和。
样例输入14样例输出21 。
参考答案:。
第5题. 比n小的最大质数对于给定的n,求比n小的质数中最大的一个。
质数是指一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数。
C阶段测试试卷.doc

江苏科技大学Visual C++阶段测验试卷班级:学号:姓名:答题注意事项:1.所有答案必须写在答题纸上;考试完毕只交答题纸,不交试卷。
2.填写答案时,注意题号;特别是填空题,做到题号、空格号与试题对应,3.编程题,注意书写的规范、工整,字迹(包括标点符号)清楚。
一、选择题(每题2分,计30分)1、下列符号中,能用作VC++标识符的是________ oA^ 5A B、_double C、a$ D、switch2、下列实数表示中不正确的是__________ 。
A、.25B、12E-5.0C、35.D、2.5f3、下列字符表示中正确的是__________ 。
A、'\b'B、“b”C、‘46’D、'\x250'4、下列变量的定义和赋值屮,不正确的是__________ oA、int x,*y=&x;B、int x,*y; y=&x;C、int x,&y=&D、int x,&y=x;5、设有定义“float x=4,y=2;”,则卜•列表达式中,正确的是_______ 。
A、x%yB、x+y=x*yC、x++=y++D、++x=++y6、设有定义“intk二3,j=4;”,则执行表达式“j二5||k+++k++;”后______ 。
A、j的值为4, k的值为4B、j的值为0, k的值为4C、j的值为5, k的值为5D、j的值为1, k的值为37、执行语句“b二(a=2*5,a*4),a+15J之后,b的值是_______ 。
A、10B、25C、40D、608> 执行语句“intk二12;k=l/2*k++;”后,k 的值是_________ 。
A、0B、1C、6D、79、设有定义"char a=100;int b=100;float c=100;double d=100;“,则表达式“a+b+c+d,啲数据类型是 ________ oA、char int C、float D、double10、__________________________________________________________ 设有说明语句“int x=4,y=3;”,则表达式x->++y?x:y的值是___________________ 。
2023年9月青少年软件编程C语言等级考试试卷二级真题(含答案)

2023年9月青少年软件编程C语言等级考试试卷二级(含答案)分数:100题数:5一、编程题(共5题,共100分)第1题.数组指定部分逆序重放将一个数组中的前k项按逆序重新存放,例如,将数组8,6,5,4,1前3项逆序重放得到5,6,8,4,1。
时间限制:1000内存限制:65536输入:有两行,第一行两个整数,以空格分隔,分别为数组元素的个数n(1<n<100)以及指定的k(1<=k<=n)。
第二行是n个整数,每两个整数之间用空格分隔。
输出:只有一行,输出按题目要求逆序后数组的整数,每两个整数之间用空格分隔。
样例输入:5386541样例输出:56841参考答案:#include<bits/stdc++.h>using namespace std;int a[1000],b[1000];int main(){int n,k;cin>>n>>k;for(int i=0;i<n;i++){cin>>a[i];b[i]=a[i];}for(int i=k-1;i>=0;i--){cout<<b[i]<<';';}for(int i=k;i<n;i++){cout<<a[i]<<';';}}第2题.谁考了第k名在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学.号和成绩,求考第k名学生的学.号和成绩。
时间限制:1000内存限制:65536输入:第一行有两个整数,分别是学生的人数n(1≤n≤100),和求第k名学生的k(1≤k≤n)。
其后有n行数据,每行包括一个学.号(整数)和一个成绩(浮点数),中间用一个空格分隔。
输出:输出第k名学生的学.号和成绩,中间用空格分隔。
(注:请用%g输出成绩)。
样例输入:539078800167.89078800290.390788003619078800468.49078800573.9样例输出:9078800468.4参考答案:#include<bits/stdc++.h>using namespace std;int sum(int n){int s=0;while(n>0){s+=n%10;n/=10;}return s;}int main(){int i,j,t,n,a[1000],b[1000];cin>>n;for(i=0;i<n;i++){cin>>a[i];b[i]=sum(a[i]);}for(i=0;i<n-1;i++){for(j=0;j<n-i-1;j++){if((b[j]<b[j+1])||((b[j]==b[j+1])&&(a[j]<a[j+1]))){t=b[j];b[j]=b[j+1];b[j+1]=t;t=a[j];a[j]=a[j+1];a[j+1]=t;}}}for(i=0;i<n;i++){cout<<a[i]<<"";}return0;}第3题.内部元素之和输入一个整数矩阵,计算位于矩阵内部的元素之和。
2013年中国科学院大学计算机软件基础考研试题

中国科学院中国科学院大学大学大学2013年招收攻读硕士学位研究生入学统一考试试题年招收攻读硕士学位研究生入学统一考试试题科目名称科目名称::计算机软件基础计算机软件基础考生须知考生须知::1.本试卷满分为150分,全部考试时间总计180分钟。
2.所有答案必须写在答题纸上,写在试题纸上或草稿纸上一律无效。
第一部分第一部分::数据结构数据结构((共70分)一、单选单选题题(每题2分,共20分)1. 下列关于数据的逻辑结构的叙述中,不正确的是【 】。
(A) 数据的逻辑结构是数据间关系的描述(B) 线性表是典型的线性结构(C) 数据的逻辑结构分为线性结构和非线性结构(D) 数据的逻辑结构不仅反映数据间的逻辑关系,而且包含其在计算机中的存储方式2. 下列关于数据运算的叙述中,不正确的是【 】。
(A) 数据运算是数据结构的一个重要方面(B) 数据运算的具体实现是在数据的逻辑结构上进行(C) 检索是一种常用的运算(D) 插入是一种常用的运算3. 在包含1000个元素的线性表中实现如下各运算,所需执行时间最长的是【 】。
(A) 线性表按顺序方式存储,删除线性表的第900个结点(B) 线性表按链式方式存储,删除指针P 所指向的结点(C) 线性表按顺序方式存储,在线性表的第100个结点后面插入一个新结点(D) 线性表按链式方式存储,在线性表的第100个结点后面插入一个新结点 科目名称:计算机软件基础 第 1 页 共 7 页4. 设某散列表的当前状态如下:0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 190 75 194 768 559 582 208 该散列表的负载因子约为【】。
(A) 0.37 (B) 0.42 (C) 0.58 (D) 0.735. 设有关键码序列(Q,G,M,Z,A,N,B,P,X,H,Y,S,T,L,K,E),采用堆排序法进行排序,经过初试建堆后关键码值A在序列中的序号是【】。
计算机二级c语言考试真题及答案详解

计算机二级c语言考试真题及答案详解一、单项选择题(每题2分,共40分)1. 在C语言中,以下哪个选项是合法的整型常量?A. 0x12B. 0x12.3C. 0x12LD. 0x12.3L答案:A2. 若有定义int a=1, b=2;,则以下哪个表达式的值不为真?A. a<bB. a<=bC. a>bD. a!=b答案:C3. 在C语言中,以下哪个选项是合法的字符串字面量?A. "Hello, World"B. 'Hello, World'C. "Hello, World\n"D. "Hello, World\0"答案:A4. 下列哪个函数不能正确计算数组元素的总和?A. sum = 0; for(i=0; i<n; i++) sum += array[i];B. sum = 0; for(i=0; i<n; i++) sum = sum + array[i];C. sum = 0; for(i=0; i<n; i++) sum = array[i];D. sum = 0; for(i=0; i<n; i++) sum += array[i];答案:C5. 在C语言中,以下哪个选项是合法的函数声明?A. int add(int, int);B. int add();C. int add(int a, int b);D. int add(a, b);答案:C6. 若有定义int a[10];,则以下哪个表达式是合法的数组元素访问?A. a[10]B. a[-1]C. a[3.5]D. a[3]答案:D7. 在C语言中,以下哪个选项是合法的指针声明?A. int *ptr;B. int *ptr[];C. int ptr*;D. int ptr[];答案:A8. 若有定义int x=10;,则以下哪个表达式是合法的赋值语句?A. x = x + 1;B. x = 1 + x;C. x = x++;D. x = ++x;答案:A9. 在C语言中,以下哪个选项是合法的循环语句?A. for(;;)B. while(1)C. do {} while(0)D. for(;;) {}答案:D10. 若有定义int a[5] = {1, 2, 3, 4, 5};,则以下哪个表达式是合法的数组元素访问?A. a[5]B. a[-1]C. a[2.5]D. a[2]答案:D11. 在C语言中,以下哪个选项是合法的switch语句?A. switch(x) { case 1: break; }B. switch(x) { default: break; }C. switch(x) { case 1: case 2: break; }D. switch(x) { case 1: default: break; }答案:C12. 若有定义int x=5;,则以下哪个表达式是合法的自增运算?A. x++;B. ++x;C. x--;D. --x;答案:A13. 在C语言中,以下哪个选项是合法的函数原型声明?A. void func();B. int func(int);C. void func(int a);D. All of the above答案:D14. 若有定义int a=3;,则以下哪个表达式是合法的位运算?A. a & 2B. a | 2C. a ^ 2D. All of the above答案:D15. 在C语言中,以下哪个选项是合法的宏定义?A. #define PI 3.14159B. #define PI 3.14159fC. #define PI 3.14159LD. All of the above答案:A二、编程题(每题30分,共60分)1. 编写一个函数,计算并返回一个整数数组中所有元素的和。
中科大软件学院算法复习概念综合题

一、概念题:(1)排序算法时间复杂度:排序算法最好最坏平均插入O(n)O(n2)O(n2)归并O(nlogn)O(nlogn)O(nlogn)快排O(nlogn)O(n2)O(nlogn)排序算法空间复杂度:1、所有简单排序和堆排序都是0(1)2、快速排序为0(logn),要为递归程序执行过程栈所需的辅助空间3、归并排序和基数排序所需辅助空间最多,为O(n)(2)渐近记号1、渐近确界:Θ(g(n))={f(n):存在正常数c1和c2和n0,使对所有的n>= n0,都有0<=c1g(n)<=f(n)<=c2g(n)}。
大Θ记号给出函数的渐进确界。
2、渐近下界:Ω(g(n))={f(n):存在正常数c和n0,使对所有的n>=n0,都有0<=cg(n)<=f(n)}。
大Ω记号给出函数的渐进下界。
3、渐近上界:O(g(n))={f(n):存在正常数c和n0,使对所有的n>=n0,都有0<=f(n)<=cg(n)}。
大O记号给出函数的渐进上界。
(3)二叉查找树:执行基本操作的时间与树的高度成正比。
搜索、插入、删除的复杂度等于树高,期望O(lgn),最坏O(n)(数列有序,树退化成线性表)(4)红黑树:1、时间复杂度:基本动态集合操作:O(log n),n是树中元素的数目。
2、性质:1)节点是红色或黑色。
2)根节点是黑色。
3)每个叶节点(NIL节点)是黑色的。
4)如果一个结点是红的,则它的两个儿子都是黑的(不能有两个连续红结点)5)从任一节点到其子孙结点的所有路径都包含相同数目的黑色节点。
3、相关概念,定理:1)黑高度:从某个结点出发(不包括该结点)到达一个叶结点的任意一条路径上,黑色结点的个数称为该结点x的黑高度,bh(x)。
红黑树的黑高度定义为其根节点的黑高度。
2)一颗有n个内结点的红黑树的高度至多为2lg(n+1)。
(用2-3-4树理解)3)在一颗黑高度为K的红黑树中,总结点数最多有22k+1-1,此时内结点最多为22k-1(满二叉树,红黑交替),内结点最少有2k-14)RB-INSERT-FIXUP操作所作的旋转不超过两次,RB-DELETE-FIXUP所作的操作至多三次旋转(5)动态规划:1、装配线调度:FASTEST-WAY时间复杂度O(n)2、矩阵链乘法:MATRIX-CHAIN-ORDER时间复杂度O(n3)3、最长公共子序列:LCS-LENGTH时间复杂度为O(mn),m、n为序列的长度4、最优二叉查找树:OPTIMAL-BST时间复杂度为O(n3)(6)贪心算法:1、活动选择问题:初试时活动已按结束时间排序,O(n),否则可在O(nlgn)内排序2、哈夫曼编码:Q用最小二叉堆实现,运行时间在O(nlgn)3、任务调度问题:时间复杂度为O(n2),因为算法中O(n)次独立性检查中每一次都有花O(n)的时间(7)二项堆:1、可合并堆时间复杂度过程二叉堆(最坏)二项堆(最坏)Fibonacci(平摊)MAKE-HEAPΘ(1)Θ(1)Θ(1)INSERTΘ(lgn)Ω(lgn)Θ(1)MINIMUMΘ(1)Ω(lgn)Θ(1) EXTRACT-MINΘ(lgn)Θ(lgn)O(lgn) UNIONΘ(n)Θ(lgn)Θ(1) DECREASE-KEYΘ(lgn)Θ(lgn)Θ(1) DELETEΘ(lgn)Θ(lgn)O(lgn)2、二项树B k是一种递归定义的树,由两颗B k-1连接而成,其中一颗树的根是另一颗树的根的最左孩子性质:1)共有2k个结点2)树的高度为k3)在深度i处恰有(上k,下i)(因此叫二项树)个结点,其中i=0,...,k;4)根的度数为k,它大于任何其他结点的度数,并且,如果对根的子女从左到右编号为k-1,k-2,...,0,子女i是子树Bi的根。
青少年软件编程(C语言)等级考试试卷(二级)202312

青少年软件编程(C语言)等级考试试卷(四级)2023-12202312C语言四级真题编程题1.移动路线桌子上有一个m行n列的方格矩阵,将每个方格用坐标表示,行坐标从下到上依次递增,列坐标从左至右依次递增,左下角方格的坐标为(1,1),则右上角方格的坐标为(m,n)。
小明是个调皮的孩子,一天他捉来一只蚂蚁,不小心把蚂蚁的右脚弄伤了,于是蚂蚁只能向上或向右移动。
小明把这只蚂蚁放在左下角的方格中,蚂蚁从左下角的方格中移动到右上角的方格中,每步移动一个方格。
蚂蚁始终在方格矩阵内移动,请计算出不同的移动路线的数目。
对于1行1列的方格矩阵,蚂蚁原地移动,移动路线数为1;对于1行2列(或2行1列)的方格矩阵,蚂蚁只需一次向右(或向上)移动,移动路线数也为1……对于一个2行3列的方格矩阵,如下图所示:-------------------|(2,1)|(2,2)|(2,3)|-------------------|(1,1)|(1,2)|(1,3)|-------------------蚂蚁共有3种移动路线:路线1:(1,1) → (1,2) → (1,3) → (2,3)路线2:(1,1) → (1,2) → (2,2) → (2,3)路线3:(1,1) → (2,1) → (2,2) → (2,3)时间限制:1000内存限制:65536输入输入只有一行,包括两个整数m和n(0输出输出只有一行,为不同的移动路线的数目。
样例输入2 3样例输出32.公共子序列我们称序列Z = < z1, z2, ..., zk >是序列X = < x1, x2, ..., xm >的子序列当且仅当存在严格上升的序列< i1, i2, ..., ik >,使得对j = 1, 2, ... ,k, 有xij = zj。
比如Z = < a, b, f, c > 是X = < a, b, c, f, b, c >的子序列。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《面向对象编程技术》试卷注:1)请将答案写在答题纸上,写在试卷上不算分。
答题纸在试卷的最后页。
2)交卷时,试卷和答题纸一起交。
一、单选题(每小题分,共30分)1. C++中,以下有关构造函数的叙述不正确的是______ 。
A. 构造函数名必须和类名一致B. 构造函数在定义对象时自动执行C. 构造函数无任何函数类型D. 在一个类中构造函数有且仅有一个2.以下叙述不正确的是______ 。
A. 在类的定义中,通常是成员变量描述对象的属性;用成员函数描述对象的行为B. 类的一个成员只能具有一种访问控制属性C. 构造函数和析构函数是特殊的成员函数,因此不允许重载D. 通过对象只能访问类的公有成员3. 以下关于虚函数的叙述不正确的是______ 。
A. 虚函数属于成员函数B. 虚函数不允许说明成静态的C. 凡是虚函数必须用virtual说明D. 虚函数可以被继承4. cout是I0流库预定义的______ 。
A.类 B. 对象 C. 包含文件 D. 常量5.面向对象程序设计中的数据隐藏指的是______ 。
A.输入数据必须输入保密口令B.数据经过加密处理C. 对象内部数据结构上建有防火墙D.对象内部数据结构的不可访问性6.拷贝(复制)构造函数的作用是______ 。
A.进行数据类型的转换B.用对象调用成员函数C.用对象初始化对象D.用一般类型的数据初始化对象7. 下列不是描述类的成员函数的是______ 。
A.构造函数B.析构函数C.友元函数D.拷贝构造函数8. 如果类A被说明成类B的友元,则______ 。
A. 类A的成员即类B的成员B. 类B的成员即类A的成员C. 类A的成员函数不得访问类B的成员D. 类B不一定是类A的友元9. 对于任何一个类,析构函数最多有______ 个。
A. 0B. 1C. 2D. n10. 下列特性中,C与C++共有的是______ 。
A.继承B.封装C.多态性D.函数定义不能嵌套11. 在公有继承的情况下,基类公有和保护成员在派生类中的访问权限______ 。
A. 受限制B. 保持不变C. 受保护D. 不受保护12. 通过______ 调用虚函数时,采用动态束定。
A. 对象指针B. 对象名C. 成员名限定D. 派生类名13. C++ 类体系中,不能被派生类继承的有______ 。
A. 成员转换函数B. 构造函数C. 虚函数D. 静态成员函数14. 假定ab 为一个类,则执行ab x;语句时将自动调用该类的______ 。
A. 有参构造函数B. 无参构造函数C. 拷贝构造函数D. 赋值构造函数15. 静态成员函数不能说明为______ 。
A. 整型函数B. 浮点函数C. 虚函数D. 字符型函数16. 在C++ 中,数据封装要解决的问题是______ 。
A. 数据规范化排列B. 数据高速转换C. 避免数据丢失D. 保证数据完整性17.关于友元函数的描述中,错误的是________ 。
A. 友元函数不是成员函数B. 友元函数只能访问类中私有成员C. 友元函数破坏隐藏性,尽量少用D. 友元函数说明在类体内,使用关键字friend18. 实现运行时的多态性用______。
A. 重载函数B. 构造函数C. 析构函数D. 虚函数19. 关于new和new[] 运算符的下列描述中,______ 是错误的。
A.它可以用来动态创建对象和对象数组;B.使用它创建的对象或对象数组可以使用运算符delete和delete[] 删除;C.使用它创建对象时要调用构造函数;D.使用它创建对象数组时必须指定初始值;20.下列关于虚函数的说明中,正确的是______ 。
A.从虚基类继承的函数都是虚函数。
B.虚函数不得是静态成员函数。
C.只能通过指针和引用调用虚函数。
D.抽象类中的成员函数都是虚函数。
二、写出下列程序的运行结果,如您觉得有错,写明出错原因;如你觉得无输出,请明确写出。
(每小题5分,共40分)1.#include <iostream>using namespace std;class A{protected:int a;public:A(int p1) { a=p1; }int inc1(void) { return ++a; } };class B1:public A{protected: int b1;public: B1(int p1,int p2):A(p1) { b1=p2; }int inc1(void) { return A::inc1(); }void display(void) { cout<<"a="<<a<<" b1="<<b1<<"\n"; } };class B2:public A{private: int b2;public: B2(int p1,int p3):A(p1) { b2=p3; }int inc1(void) { A::inc1(); A::inc1(); return A::inc1(); }void display(void) { cout<<"a="<<a<<" b2="<<b2<<"\n"; } };class C:private B1,public B2{private: int c;public: C(int p11,int p12,int p21,int p22,int p):B1(p11,p12),B2(p21,p22){ c=p; }int inc1(void) { return B2::inc1(); }void display(void) { B1::display(); B2::display(); cout<<"c="<<c<<"\n";} };int main(void){C d(1,2,3,4,5); cout<<"\n"; (); cout<<"\n";(); (); return 0; }2.#include <iostream>using namespace std;template<class T>class Tclass{T x,y;public:Tclass (T a,T b):x(a) { y=b; }Tclass (T a) { y=(T)0, x=a; }void pr( ) { char c; c=(y>=(T)0) '+':'-';cout<<x<<c<< (y>(T)0 y : -y) <<"i"<<endl; } }; int main( ){Tclass<double> a,; ( );Tclass<int> b(10); ( ); return 0; }3.#include <fstream>#include <iostream>#include <vector>using namespace std;int main (){ vector<vector<int> > datas;Ifstream ifs("");int m, n;ifs >> m >> n;int i, j;for (i = 0; i < m; i ++) {vector<int> V;for (j = 0; j < n; j ++ ) { int x; ifs>>x; (x); }(V); }for (i = 0; i < m; i ++) {for (j = 0 ;j < n; j ++) { cout << datas [i][j]<< " ";}cout << endl; }}文件内容如下:3 4 1 2 3 4 5 6 7 8 9 10 11 124.#include <iostream>using namespace std;class CAT{ public: CAT(){ itsAge=new int; *itsAge=5;}~CAT(){ delete itsAge; itsAge=NULL;}int GetAge(){ return *itsAge; }void SetAge(int age) { *itsAge=age; }protected: int *itsAge; };int main(){ CAT a; cout<<"a's age:"<<()<<endl; (6);CAT b(a); cout<<"a's age:"<<()<<endl;cout<<"b's age:"<<()<<endl; (7);cout<<"a's age:"<<()<<endl; cout<<"b's age:"<<()<<endl; }5.#include <iostream>using namespace std;#include <string>class Base{ private: char msg[30];protected: int n;public: Base(char s[],int m=0):n(m) { strcpy(msg,s); }void output(void) { cout<<n<<endl<<msg<<endl; } }; class Derived1:public Base{ private: int n;public: Derived1 (int m=1): Base("Base",m-1) { n=m; }void output(void) { cout<<n<<endl; Base::output();} };class Derived2:public Derived1{ private: int n;public: Derived2(int m=2):Derived1(m-1) { n=m; }void output(void) { cout<<n<<endl; Derived1::output();} };int main(){ Base B("Base Class",1); Derived2 D; (); ();}6.#include <iostream>using namespace std;class Rr{ public: Rr(int a){ data=a;}operator int(){ r eturn data;}operator double(){ return double(data);}private: int data; };int main(){ Rr r1(2),r2(4); int x=int(r1)+int(r2);double y=double(r1)/double(r2); cout<<"x="<<x<<",y="<<y<<endl;return 0; }7.#include <iostream>using namespace std;class sz { i nt intT1;public: sz() { intT1=5;}void Set1(int t) {intT1=t;}int Get1() { return intT1; } };class sz2{ public: sz2() { mszT=new sz(); mszT2=new sz();}sz *f1() { mszT2=new sz(); mszT2->Set1(1); return mszT2; }sz *f2() const { return mszT; }const sz *f3() { return mszT; }const sz *f4() const {return mszT2;}private:sz *mszT;sz *mszT2; };int main(){ sz t; sz2 f;sz *s1=(); cout<<s1->Get1()<<endl;s1->Set1(10); cout<<s1->Get1()<<endl;s1=(); cout<<s1->Get1()<<endl;s1->Set1(20); cout<<s1->Get1()<<endl;const sz *s2=(); t=*s2; cout<<()<<endl;s2=(); t=*s2; cout<<()<<endl;sz * const s3=(); t=*s3; cout<<()<<endl;s3->Set1(30); cout<<s3->Get1()<<endl;return 0; }8.#include <iostream>using namespace std;class A { public: virtual void print(int x) {cout <<"A:"<< x << '\t' ;} };class B:public A { public: virtual void print(float x) {cout <<"B:"<< x << '\t';} };class C:public A{ public: virtual void print(int x) {cout <<"C:"<< x <<endl;} };void show(A &a) { (3); }void main( ){ A a; B b; C c;(1); (2); (3);show(a); show(b); show(c); }三、程序填空题(每空分,共25分)1.下面程序定义了一个圆类,其数据成员为圆心坐标和半径,成员函数area()计算圆的面积,应用程序生成两个圆类实例,若是同心圆则计算圆环的面积。