2021-11-02

布老师C++学习基础部分练习(Code Practice)

代码链接link.

1. 基础题

1.1 最大值

输入3个数,求最大值

1.2 二次方程的根

编程序,求方程a*x^2+b*x+c=0的根

1.3 是否是三角形

输入3个double类型的值,判断这3个值是否可以表示一个三角形的三条边

2. 控制与循环

2.1 找最大值、最小值和平均数

输入n个数,求其最大值与最小值和平均数。

2.2 多个数排序

从键盘输入一对数,并由小到大输出,当输入数相等时结束输出。

2.3 符合条件的数

输出显示自然数1~100之间除5余2或被9整除的数字。

2.4 没有重复数字

统计数字0~9可以组成多少个没有重复数字的3位数。

2.5 鸡兔的个数

已知鸡兔一共30只,脚共有90指,编剧计算鸡兔各有多少只。

3. 函数

3.1 整数的各位数字求和

求一个整数的各位数之和的函数

3.2 点数统计

掷骰子10000次,统计得到各点数的次数

3.3 素数

写一函数,判断某个数是否素数,以及求1-1000之内的素数

3.4 求自然指数e的值

求 e=1 + 1/1! + 1/2! + 1/3! + …

3.5 求圆周率

求PI值,PI/4 = 1 - 1/3 + 1/5 - 1/7 + …

3.6 数字的统计

输入20个数,统计其中正数、负数和零的个数

3.7 奇数之和、偶数之和

输入若干个整数,计算其中的奇数之和与偶数之和,假设输入0表示结束

3.8 水仙花数

求水仙花数(一个三位数,其各位数字立方和等于该数字本身)

3.9 变量值交换

写一个函数,交换两个整型变量的值

3.10 欧式距离计算

编写计算距离的函数distance,计算两点(x1,y1)和(x2,y2)之间的距离

3.11 矩阵乘积

编一程序,求两个矩阵的乘积

3.12 体育运动成绩

写一个程序,进行体操评分,依次输入10名评委所评分数,去除一个最高分和一个最低分,再算出平均分作为选手的得分

3.13 选数字

从52个数里选13个数

3.14 阶乘计算

求100!

4. 数组

4.1 数组逆序

写一函数,将一数组中的元素反转(第一个元素放到最后,最后的元素放到最前面)

4.2 数组的最大元素

写一函数,在一个数组中找出最大元素的位置

4.3 求鞍点

找出一个二维数组中的鞍点,即该元素在该行上最大,在该列上最小

4.4 查找某个值

写一函数,在一数组里查找某个值(第一次出现即可)

4.5 求子数组的最大和

输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。

例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。

4.6 查找最小的k个元素

输入n个整数,输出其中最小的k个。

例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4。

5. 字符串

5.1 字符串的排列

输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abcacbbacbcacabcba

5.2 统计大小写字母的个数

编一程序,输入一行字符串,统计其中的小写英文字母的个数

5.3 大小写转化

编一程序,输入一行字符串,将其中的大写英文字母改为小写,再输出。

5.4 字符串拷贝

写一个字符串拷贝函数

5.5 字符串比较函数

写一个字符串比较函数

5.6 字符串连接函数

写一个字符串连接函数

5.7 字符串长度

写一个求字符串长度函数

5.8 杨辉三角形

打印杨辉三角形(帕斯卡三角形),打印10行。下面是四行的杨辉三角形示例。

    1
   1  1
 1  2  1
1  3  3  1

5.9 九九乘法表

打印一个九九乘法表

5.10 翻转句子中单词的顺序

输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。

例如输入“I am a student.”,则输出“student. a am I”。

6. 指针

6.1 使用指针改变数组的元素顺序

有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数。运行效果如下:

未改变数组为:   1  2  3   4  5  6  7  8  9  10	
改变后的数组为: 8  9  10  1  2  3  4  5  6  7	

6.2 字符串拷贝

编写一个函数,完成字符串拷贝,要求用字符指针实现。在主函数中输入任意字符串,并显示原字符串,调用该函数之后输出拷贝后的字符串。

6.3 求字符串长度

编写一个函数,求一个字符串的长度,要求用字符指针实现。在主函数中输入字符串,调用该函数输出其长度。

6.4 矩阵转置

编写一个函数(参数用指针),将一个3x3矩阵转置。

6.5 找到矩阵的最大值

找出一个2x3的矩阵中的最大值及其行下标和列下标,需要调用子函数来实现。

6.6 字符串统计

编写一个函数,用于统计一个字符串中字母、数字、空格的个数。

6.7 链表反转

给定一组数字,构建链表。然后通过一个链表反转函数,生成一个新的链表,各个元素的顺序是原数据的逆序。

7. 数据结构

7.1 查找链表中倒数第k个结点

输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。链表结点定义如下:

struct ListNode
{
	int       m_nKey;
	ListNode* m_pNext;
};

7.2 在排序数组中查找和为给定值的两个数字

输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。

例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。

7.3 从上往下遍历二叉树

输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。

例如输入

      8
    /  \
   6    10
    /\    /\
  5  7  9  11

输出:8 6 10 5 7 9 11。

7.4 设计包含min函数的栈

定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。

8. 类与模版

8.1 函数模版

编写一个函数模板,分别求一个组数里面数据的最大值,最小值和平均值。

8.2 数据交换函数模版

编写一个函数模板,实现数据交换的操作。

8.3 类模板

编写一个类模板,完成对不同数据类型的数组的排序(小到大)操作。如下是输入的数据

    int array[5]={3,6,2,1,4};
    double array[5]={3.1,1.2,4.5,1.1,0.2};

8.4 类模版的链表

用类模板创建单链表,并实现在链表里增加一个节点和删除一个节点的操作。

8.5 类与继承

编写一个程序,其中有一个汽车类Vehicle,它具有一个需要传递参数的构造函数,类中的数据成员:车轮个数wheels和车重weight为保护属性;小车类Car是它的私有派生类,其中包含载人数passager_load;卡车类Truck是Vehicle的私有派生类,其中包含载人数passager_load和载重量payload。每个类都有相关数据的输出方法。

9. 文件操作

9.1 读取文本文件

编写一个文本分析的程序,从文本文件读取一段英文文章,统计单词出现的次数。

9.2 输出杨辉三角形

编写一个程序计算杨辉三角形,并输出到一个文本文件。

9.3 图书管理系统

编写一个简单的图书管理系统,通过二进制文件记录用户、图书等数据。在程序运行的时候从二进制文件加载数据生成对象,程序退前将对象保存到二进制文件。包含的功能主要有:1)用户名称,id,借阅的图书,归还时间;2)图书名称,图书iD,借阅人,数量;3)通过书名查询借阅人、剩余数量;4)通过人名,查阅借阅的图书

代码链接link.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值