2017年苏州大学837复试机试C/C++

2017年苏州大学复试机试

要求

  1. 要求用C/C++编程;
  2. 对程序中必要的地方进行注释。
  3. 上机规则
    1. 请在电脑桌面上新建一个文件夹文件夹名为考试姓名(中文);
    2. 考试完毕后,将所编写的文件放在上述文件中。

第一题(20分)

题目

有一数列如下:

数列AxMath制作

求此数列的前20个数,并输出结果,要求每行输出5个数。

代码

#include <iostream>
using namespace std;int main() {int Arr[20] = {0};//Arr[0] = 0;Arr[1] = 1;Arr[2] = 2;//赋值for (int i = 3; i < 20; ++i) {Arr[i] = Arr[(i - 1)] + Arr[(i - 2)] + Arr[(i - 3)];}// 输出结果,每行5个数for (int i = 0; i < 20; ++i) {cout << Arr[i] << " ";if ((i + 1) % 5 == 0) {cout << endl;  // 当输出了5个数时换行}}return 0;
}

结果

第二题(30分)

题目

以下三个问题要求用函数编写,从键盘输入一个3*4的矩阵A编程求:

  1. 矩阵A的最小值最大值及它们所在的行号和列号;
  2. 每一行平均值;
  3. 从键盘输入一个4*3的矩阵B,计算矩阵A和B的乘积。

博主注:此版本采用了容器操作解决同时存在两个及其以上的最大值或者最小值问题,对于纯C语言版本暂无很好的解决办法,使用数组来存储最值的方法参考:2014年苏州大学837复试机试C/C++

代码

#include <iostream>
#include <climits>
#include <vector>
using namespace std;void Input_Function();
void Average_lacedelmenets();
void New_Arr();int Arr_A[3][4];
int Arr_B[4][3];
int Arr_AB[3][3];
int Max_element = INT_MIN; //整数类型最小值
int Min_element = INT_MAX; //整数类型最大值
vector<pair<int, int>> Max_positions;  // 存储最大值位置的向量
vector<pair<int, int>> Min_positions;  // 存储最小值位置的向量int main() {//矩阵A的最小值最大值及它们所在的行号和列号Input_Function();// 求各一元各行元素的平均值Average_lacedelmenets();//A*BNew_Arr();system("pause");return 0;
}void Input_Function(){int Temp = 0;cout << "请输入3*4矩阵A的元素:" << endl;//输入矩阵元素:for (int i = 0; i < 3; ++i) {for (int j = 0; j < 4; ++j) {cout << "请输入第 " << (i + 1) << " 行,第 " << (j + 1) << " 列的元素:";cin >> Arr_A[i][j];//找最大值和最小值Temp = Arr_A[i][j];if (Temp > Max_element) {Max_element = Temp;Max_positions.clear();  // 清空之前记录的最大值位置Max_positions.push_back({i, j});} else if (Temp == Max_element) {Max_positions.push_back({i, j});  // 记录相同最大值的位置}if (Temp < Min_element) {Min_element = Temp;Min_positions.clear();  // 清空之前记录的最小值位置Min_positions.push_back({i, j});} else if (Temp == Min_element) {Min_positions.push_back({i, j});  // 记录相同最小值的位置}}}//输出矩阵cout << "输入的矩阵为:" << endl;for (int i = 0; i < 3; ++i) {for (int j = 0; j < 4; ++j) {cout << Arr_A[i][j] << " ";}cout << endl;}// 输出最大值和最小值及其位置cout << "矩阵A的最大值为 " << Max_element << ",位于以下位置:" << endl;for (const auto& pos : Max_positions) {cout << "第 " << (pos.first + 1) << " 行,第 " << (pos.second + 1) << " 列" << endl;}cout << "矩阵A的最小值为 " << Min_element << ",位于以下位置:" << endl;for (const auto& pos : Min_positions) {cout << "第 " << (pos.first + 1) << " 行,第 " << (pos.second + 1) << " 列" << endl;}
}void Average_lacedelmenets() {cout << "各行元素的平均值为:" << endl;for (int i = 0; i < 3; ++i) {int rowSum = 0;for (int j = 0; j < 4; ++j) {rowSum += Arr_A[i][j];}double average = static_cast<double>(rowSum) / 3;cout << "第 " << (i + 1) << " 行元素的平均值为:" << average << endl;}
}void New_Arr(){//输入矩阵Bcout << "请输入4*3矩阵B的元素:" << endl;for (int i = 0; i < 4; ++i) {for (int j = 0; j < 3; ++j) {cout << "请输入第 " << (i + 1) << " 行,第 " << (j + 1) << " 列的元素:";cin >> Arr_B[i][j];}}//计算矩阵A和B的乘积for (int i = 0; i < 3; ++i) {for (int j = 0; j < 3; ++j) {Arr_AB[i][j] = 0;for (int k = 0; k < 4; ++k) {Arr_AB[i][j] += Arr_A[i][k] * Arr_B[k][j];}}}// 输出矩阵乘积cout << "矩阵 A 和 B 的乘积为:" << endl;for (int i = 0; i < 3; ++i) {for (int j = 0; j < 3; ++j) {cout << Arr_AB[i][j] << " ";}cout << endl;}}

结果

最后

此代码为个人编写,题目参考互联网资源,使用平台为Clion,C++17标准。

由于博主才疏学浅,如有错误请多多指正,如有更好解法请多多交流!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/451167.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 多线程 | 线程的概念

线程的概念 线程是一个执行分支&#xff0c;执行粒度比进程更细&#xff0c;调度成本更低&#xff1b; 线程是进程内部的一个执行流&#xff1b; 线程是CPU调度的基本单位&#xff0c;进程是承担分配系统资源的基本实体。 之前我们学习过虚拟地址空间的知识&#xff0c;知道…

倾斜摄影轻量化,这样才规范!

自然资源部发布了《倾斜数字摄影测量技术规程》等17项行业标准报批稿公示&#xff0c;其中高频出现的倾斜摄影技术&#xff0c;重回大众视野。 倾斜摄影技术是国际测绘领域近些年发展起来的一项高新技术&#xff0c;它颠覆了以往正射影像只能从垂直角度拍摄的局限&#xff0c;通…

69.请描述Spring MVC的工作流程?描述一下 DispatcherServlet 的工作流程?

69.请描述Spring MVC的工作流程&#xff1f;描述一下 DispatcherServlet 的工作流程&#xff1f; 核心架构的具体流程步骤如下&#xff1a; 首先用户发送请求——>DispatcherServlet&#xff0c;前端控制器收到请求后自己不进行处理&#xff0c;而是委托给其他的解析器进行…

Windows内存管理 - 虚拟内存地址概念(Virtual Memory Address)

虽然可以寻址4GB的内存&#xff0c;而在PC里往往没有如此多的真实物理内存。操作系统和硬件&#xff08;这里指的是CPU中的内存管理单元MMU&#xff09;为使用者提供了虚拟内存的概念。Windows的所有程序&#xff08;包括Ring0层和Ring3层的程序&#xff09;可以操作的都是虚拟…

React实例之完善布局菜单(一)

今天我们来用所学的知识来做一个布局菜单的组件, 针对这个组件我之前写过一个教程 React之布局菜单-CSDN博客&#xff0c;那个呢比较基础&#xff0c;这节课算是对那个教程的一个扩展和补充。这个实例讲完&#xff0c;这个系列就算告一段落了。先看效果 这个教程要求对React知识…

Java中动态修改注解的值

1. 描述 部分场景需要动态修改注解的值。例如&#xff0c;我们使用自定义注解控制接口流量&#xff0c;如果需要动态修改流量值&#xff0c;可以使用反射的方法实现。 2. 步骤 获取注解从注解中获取memberValues属性(map)使用put方法更新对象的值 3. 代码实现 该部分代码主…

YOLO部署实战(3):Darknet训练模型权重

1 一些概念和问题 YOLO中的darknet到底指的是什么&#xff1f; darknet到底是一个类似于TensorFlow、PyTorch的框架&#xff0c;还是一个类似于AlexNet、VGG的模型&#xff1f; 其实都是。YOLO作者自己写的一个深度学习框架叫darknet&#xff08;见YOLO原文2.2部分&#xff…

Hexo设置少量固定的动态背景图

文章目录 前言先准备素材问题分析代码实现逻辑写在哪先搭建基本框架然后添加图片链接动画效果 前言先准备素材问题分析代码实现逻辑写在哪先搭建基本框架然后添加图片链接动画效果 前言 在以前的这篇文章中&#xff0c;我们设置了一些动态背景。 这次我们加一丁点优化&#x…

MySQL 用户管理

重点&#xff1a; 视图&#xff0c;函数&#xff0c;存储过程&#xff0c;触发器&#xff0c;事件&#xff08; 了解 &#xff09; 用户管理&#xff0c;密码管理 grant revoke 权限管理 MySQL 架构&#xff08; 了解 &#xff09; 存储引擎&#xff1a;MyISAM 和 InnoDB …

展馆设计的必备要素有哪些

1、空间的设计 展馆要想配得上优秀这两个字眼&#xff0c;那么比较基本的表现就是要具有美感&#xff0c;要规划&#xff0c;合理美观的造型&#xff0c;并在此基础上重视互动融合&#xff0c;既要拥有特色具有创意的风格&#xff0c;又要能够和整个空间和谐又统一。布展内容结…

Python入门:生成器迭代器

一、列表生成式 现在有个需求&#xff0c;列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]&#xff0c;要求你把列表里的每个值加1&#xff0c;怎么实现&#xff1f;你可能会想到2种方式 二逼青年版 1 2 3 4 a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] b [] for i in a:b.append(i1) print(b) …

ele-h5项目使用vue3+vite+vant4开发:第四节、业务组件-SearchView组件开发

需求分析 展示切换动画搜索框输入文字&#xff0c;自动发送请求搜索结果展示搜索状态维护历史搜索展示&#xff0c;点击历史搜索后发送请求历史搜索更多切换动画效果 <script setup lang"ts"> import OpSearch from /components/OpSearch.vue import { ref } f…