"东南大学大一下C++第一次作业,涉及C++编程语言的基础知识,包括数组、多维数组的操作以及一些算法实现。"
在东南大学大一下学期的C++课程中,夏小俊老师的第一次作业主要涵盖了数组和多维数组的基本操作,同时也引入了一些基础算法的实现。以下是作业的详细内容:
1. 实验一:数组与多维数组
- 程序Basic-1:这个任务要求学生定义一个一维数组inta[5],并从用户那里获取5个整数。然后,程序需要在内存中重新排列数组元素,使其内容倒序。例如,如果输入是1, 2, 3, 4, 5,那么在内存中应变为5, 4, 3, 2, 1。这需要理解数组的指针和遍历操作。
2. 程序Basic-2:在这个问题中,学生需要处理一个长度为10的一维数组inta[10],读取10个任意整数。程序需计算正数和负数元素的平均值、最大值和最小值。这涉及到数组遍历、条件判断、基本算术运算以及比较操作。
3. 程序Basic-3:定义两个一维数组inta[5]和b[5],从键盘接收a数组的5个整数。接着,每个a[i]的每一位数字平方后存储到对应的b[i]中。例如,如果a[5] = {1, 2, 3, 4, 5},则b[5]应为{1, 4, 9, 16, 25}。这需要理解位操作和数学运算。
4. 程序Basic-4:定义一个3x3的二维数组inta[3][3],通过循环从用户处获取所有元素的值。然后,计算两条对角线上的元素和,同时注意交叉点的值只能被加一次。这涉及到二维数组的访问和循环控制。
5. 程序Adv-1:通过筛选法找出100以内的所有素数。首先,将2到100的数存入inta[99]数组,然后从2开始检查每个数,将其倍数设为0。重复此过程,最后输出未被标记为0的数,即为素数。这需要理解素数的概念和数组操作。
6. 程序Adv-2:定义两个一维数组inta[5]和b[5],从用户那里获取a数组的5个整数,计算每个数的各位数字之和,并存储到b数组相应位置。例如,如果a[5] = {123, 78, 455, 12345, 2},则b[5]应为{6, 15, 14, 15, 2}。这涉及到整数的位运算和循环结构。
7. 程序Adv-3:创建一个3x4的二维数组inta[3][4],实现数组的向右平移。在平移过程中,需要保存当前列的数据以便正确复制。这涉及到数组的复制和内存管理。
这些作业旨在帮助学生巩固C++中的数组操作、条件判断、循环控制、数学运算、位操作等基础知识,并逐步引导他们掌握更复杂的算法实现。通过解决这些问题,学生可以提升自己的编程技能和逻辑思维能力。