c++期末练习题(带答案)

上传人:第*** 文档编号:34038741 上传时间:2018-02-20 格式:DOCX 页数:14 大小:59.44KB
返回 下载 相关 举报
c++期末练习题(带答案)_第1页
第1页 / 共14页
c++期末练习题(带答案)_第2页
第2页 / 共14页
c++期末练习题(带答案)_第3页
第3页 / 共14页
c++期末练习题(带答案)_第4页
第4页 / 共14页
c++期末练习题(带答案)_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《c++期末练习题(带答案)》由会员分享,可在线阅读,更多相关《c++期末练习题(带答案)(14页珍藏版)》请在金锄头文库上搜索。

1、(一)读程序题1类中包括其他类的对象成员,构造函数中要列出成员对象名带实参,生成该类对象时,要先调用成员对象的构造函数。如果是成员对象的缺省构造函数可以不列,但生成该类对象时,仍要先调用成员对象的缺省构造函数。1. 如下程序运行时的输出结果是 1135 。#includeclass ONEint c;public:ONE():c(0)coutclass Apublic: int x;A()x=10;A(int i) x=i;void Show()cout class A public : A( ) coutclass Apublic:A()coutclass Apublic: A() cout

2、class Apublic: A() cout#includeclass Bchar str20;public:B (char *s=default) strcpy(str,s); coutclass Apublic:virtual void f1( ) coutf1( ); p-f2( ); p-f3( );9. 如下程序运行时的输出结果是 。#includeclass Apublic:virtual void f( )coutf(); p-g();void main( )B b; show(b);print( 10. 如下程序运行时的输出结果是 。#include #include cla

3、ss Ppublic:P(char *s)name=new charstrlen(s)+1;strcpy(name,s);virtual void print()coutprint();p= p-print();p= p-print();stud.print(a);11. 如下程序运行时的输出结果是 。#include class Aint x, n;int mul;public:A(int a, int b)x=a; n=b; mul=10;virtual int power(void)mul=1;for(int i=1;ipower()class Animal public: virtua

4、l char * getType( ) return “Animal”; virtual char * getVoice( ) return “Voice”; ;class Dog: public Animal public:char * getType( ) return “Dog”; char *getVoice( ) return “Woof” ;void type( Animal void main( )Dog d; type(d); coutclass Samplefriend long fun(Sample s);public:Sample(long a) x=a; private

5、:long x;long fun(Sample s)if (s.xclass Arrayfloat *pa;int n;public:Array(float *p,int x)n=x;pa=new floatn;for(int i=0;in;i+)pai=pi; /Avoid operator+=(Array /Bfriend void operator-=(Array &t1,Array &t2)for(int i=0;it1.n;i+)t1.pai-=t2.pai; /Cvoid print()for(int i=0;in;i+)coutpait; /Dif(i+1)%5=0)coutn;

6、Array()delete pa;void main()float a10=1,2,3,4,5,6,7,8,9,10,b10=0,1,2,3,4,5,6,7,8,9;Array a1(a,10),a2(b,10);a1+=a2;a1.print();a1-=a2;a1.print();一、函数编程1.求素数问题:定义函数判断一个整数是否为素数,求 300 以内的素数,每行 3 个数形式输出。2.最大公约数和最小公倍数问题:求两分数之和并输出结果,要求:将求最小公倍数和最大公约数设计成独立的函数。 (提醒:分子、分母可分别用两个整型变量表示。之和的分母就是两分数分母的最小公倍数;输出示例: co

7、ut3”/”7; 就完成了分数 3/7 的输出显示。 )3.一维数组排序与元素移动综合题:(1)定义整型数组 a10,从键盘输入 10 个数为数组赋值,并分别定义两个独立函数,void print(int b)实现将一维数组元素输出 ,void sort(int b,int n)实现将一维数组的元素按从小到大排序(用两种方法实现) 。最后在主函数中分别调用两个函数。4.二维数组与元素移动:(1 )定义一个二维数组 int b23,从键盘输入为二维数组赋值,将二维数组中按列循环前移或后移一位,并以矩阵形式输出二维数组元素。(2 )定义一个二维数组,int a44,求其外围元素之和与对角线之和,并

8、以矩阵形式输出二维数组元素。 (求和用两种方法实现)5.字符串处理:设计一个通用函数实现在字符串 s1 中从第 m 个字符开始插入字符串 s2,在主程序中对该函数进行测试。初始状态:s1: abcdefgs2: 1234输入插入字符串的位置:3目标状态:s1: ab1234cdefg s2: 12346.拼数与合数问题:(1)在主函数中定义一个一维数组 a4用来存放 4 个整型数 3,12,0,1,并依次输出一维数组中的元素。(2)依次取出数组中的元素,利用合数算法将这些元素合成一个数,要求合数的过程写成独立函数的形式,编写 int fun(int b,int n)函数,其中 b 为一维数组,

9、n 为 b 数组中包含的元素个数。该函数用来实现合数过程,并在主函数中调用该函数,并在主函数中输出合成之后的数。7.数字字符与整数转换算法:将字符串#ab78c15fk23d* 中整型数据提取出来,合成一个整型数 781523 并输出来。再将 781523 整数的各个数位数字拆开存放到一维数组 int b10中,并将一维数组中的元素转换为数字字符存放到字符数组 s100中,并输出该数字字符串325187.8.字符数组:(1)定义一个字符数组 char s100=abc123;定义两个函数分别实现将字符串逆序排序和按照字符的 ASCII 码从小到大排序,输出并操作后的字符串。(2)定义两个字符数

10、组:char s1100=apple,s2100=tree;将两个字符数组拼接成一个字符串(不用拼接函数),并输出拼接前和拼接后的两个字符串。9.请从键盘输入一个正整数,求这个数是几位数,并求出该正整数的各个位上的数字之和。如输入 1234,该正整数是 4 位数,各个数位上的数字之和为 10.10、循环结构:请从键盘输入一个正整数,求这个数是几位数,并求出该正整数的各个位上的数字之和。如输入 1234,该正整数是 4 位数,各个数位上的数字之和为 10.11、从键盘上输入一个整数 n 的值,按下式求出 y 的值,并输出 n 和 y 的值。 y=1!+2!+3!+ +n!12、求 1-1/2+1

11、/3-1/4+1/99-1/100 的和。13、求 1+1/1!+1/2!+1/10!的和14、从键盘输入一个整数 n,将该整数的每一位上的数字拆开,存放到一维数组 int a10中,该过程用独立函数形式实现。并将一维数组中的元素取出合成一个数,并输出合成的数和一维数组元素。如 n:1234,存放到一维数组中的顺序为 4 3 2 1,合成一个数为4321。二、类的编程:用类解决实际问题的方法分三个步骤,如下:1、定义类的框架2、公有成员函数的实现3、在主函数中测试类(用类定义对象,并用对象调用成员函数)(一)数据成员为一维数组时问题描述如下:(1 )定义一个类 Array, 它的数据成员和成员

12、函数如下:私有数据: int b10,int m;公有成员函数: Array(int t);/功能为一维数组 b 初始化Void fun();/ 求一维数组 b 的最大值为 mvoid sort();/功能为实现对一维数组从大到小排序void move();/ 功能为将一维数组元素循环后移一位void print();/功能为输出一维数组元素(2 )用类定义对象 arr,并用对象 arr 调用成员函数,实现对一维数组元素排序和数组元素循环后移一位,并输出每次操作的结果。(二)数据成员为二维数组时1、问题描述如下:(1 )定义一个类 Array, 它的数据成员和成员函数如下:私有数据: int

13、a45; int s;公有成员函数:Array(int t5);/功能为二维数组 b 初始化 void sum();/ 功能为求二维数组 b 外围元素之和为 svoid fun();/对二维数组 b 按列前移void print();/功能为以矩阵形式输出二维数组元素(2 )用类定义对象 array,并用对象 array 调用成员函数求出二维数组外围元素之和,按列前移,再求二维数组外围元素之和,输出二维数组元素。2、问题描述如下:(1 )定义一个类 Array, 它的数据成员和成员函数如下:私有数据: int b44; int s;公有成员函数:Array(int t4);/功能为二维数组 b

14、 初始化void sum();/ 功能为求二维数组 b 对角线元素之和为 svoid fun();/将二维数组 b 最小元素所在的列与第 0 列对调void print();/功能为以矩阵形式输出二维数组元素(2 )用类定义对象 array,并用对象 array 调用成员函数求出二维数组对角线元素之和,对调最小元素所在的列与第 0 列,输出二维数组元素。(三)数据成员为字符数组时问题描述如下:定义一个字符串类 String,将字符串 b 拼接到字符串 a 中, (不能用拼接函数) 。具体要求如下:(1 )私有数据成员char a100,b100;(2)公有成员函数String(char c,c

15、har d):构造函数,用参数初始化数据成员void fun():功能函数,实现将 b 拼接到 a 的后面void insert(int m);实现将字符数组 b 中的字符串插入到字符数组 a 中的第 m 个字符的位置。void show():功能函数, 输出数据成员(3 )用数据123456789,abc在主函数中对类测试。(四)数据成员为指针变量时1、定义一个字符串类 String,为指针变量 p 动态申请空间,并初始化。对 p 所指向的字符串进行逆序操作。具体要求如下:(1 )私有数据成员char *p;(2)公有成员函数String(char *t):构造函数,用参数初始化数据成员void fun():功能函数,实现对字符串进行逆序。void show():功能函数, 输出数据成员String();析构函数,撤销对象。(3 )用数据123456789在主函数中对类测试。2、定义一个类名为 Array,为指针变量 p 动态申请空间,并初始化。对 p 所指向的一维数组逆序排序。具体

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号