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

2018年苏州大学复试机试

要求

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

第一题(20分)

题目

按下式要求计算e的近似值,n=5由键盘输入。
e = 1+1/1! + 1/2! + 1/3! +…+1/n!

代码

#include <iostream>  
using namespace std;  double Factorial(int n);  int main() {  int n = 1;  double Sum = 0;  cout << "请输入n=" << endl;  cin >> n;  //计算和  for (int i = 0; i < n; ++i) {  Sum += Factorial(i + 1);  }  cout << "e的计算值为:" << Sum << endl;  return 0;  
}  //计算单个1/n!,返回数值  
double Factorial(int n){  double Ele = 1;  double Sum_Eone = 0;  for (int i = 0; i < n; ++i) {  Ele *= i + 1;  }  Sum_Eone = 1.0 / Ele;  return Sum_Eone;  
}

结果

第二题(30分)

题目

以下三个问题,要求用函数编写:
有一个班的学生,本学期学了四门课,从键盘输入该班各同学各门课的成绩,假设学生数为3。

  1. 求出每门课程的平均成绩
  2. 求出全班的平均成绩
  3. 求出课程最低分的学生和成绩。

代码

#include <iostream>  
#include <iomanip>  //用来精确浮点数位数,fixed << setprecision(2),限定小数点后两位  using namespace std;  const int NUM_STUDENTS = 3;  
const int NUM_COURSES = 4;  // 函数声明  
void inputGrades(double grades[NUM_STUDENTS][NUM_COURSES]);  
void displayCourseAverages(double grades[NUM_STUDENTS][NUM_COURSES]);  
void displayClassAverage(double grades[NUM_STUDENTS][NUM_COURSES]);  
void findMinScoreStudent(double grades[NUM_STUDENTS][NUM_COURSES], int& minStudent);  
double calculateClassTotalScore(double grades[NUM_STUDENTS][NUM_COURSES], int studentIndex);  int main() {  double grades[NUM_STUDENTS][NUM_COURSES];  // 输入成绩  inputGrades(grades);  // 显示每门课程的平均成绩  displayCourseAverages(grades);  // 显示全班平均成绩  displayClassAverage(grades);  // 找到课程最低分的学生  int minStudent;  findMinScoreStudent(grades, minStudent);  // 显示结果  cout << "课程最低分的学生是学生 " << minStudent + 1 << ",成绩为:" << endl;  for (int j = 0; j < NUM_COURSES; ++j) {  cout << "课程 " << j + 1 << ": " << fixed << setprecision(2) << grades[minStudent][j] << endl;  }  cout << "总成绩: " << fixed << setprecision(2) << calculateClassTotalScore(grades, minStudent) << endl;  return 0;  
}  // 输入成绩  
void inputGrades(double grades[NUM_STUDENTS][NUM_COURSES]) {  cout << "请输入每位学生的四门课程成绩:" << endl;  for (int i = 0; i < NUM_STUDENTS; ++i) {  for (int j = 0; j < NUM_COURSES; ++j) {  cout << "学生 " << i + 1 << " 课程 " << j + 1 << " 成绩:";  cin >> grades[i][j];  }  }  
}  // 计算每门课程的平均成绩并显示  
void displayCourseAverages(double grades[NUM_STUDENTS][NUM_COURSES]) {  cout << "每门课程的平均成绩:" << endl;  for (int i = 0; i < NUM_COURSES; ++i) {  double courseAverage = 0;  for (int j = 0; j < NUM_STUDENTS; ++j) {  courseAverage += grades[j][i];  }  courseAverage /= NUM_STUDENTS;  cout << "课程 " << i + 1 << ": " << fixed << setprecision(2) << courseAverage << endl;  }  
}  // 计算全班平均成绩并显示  
void displayClassAverage(double grades[NUM_STUDENTS][NUM_COURSES]) {  double classAverage = 0;  for (int i = 0; i < NUM_STUDENTS; ++i) {  for (int j = 0; j < NUM_COURSES; ++j) {  classAverage += grades[i][j];  }  }  classAverage /= (NUM_STUDENTS * NUM_COURSES);  cout << "全班平均成绩: " << fixed << setprecision(2) << classAverage << endl;  
}  // 计算每个学生的总分  
double calculateClassTotalScore(double grades[NUM_STUDENTS][NUM_COURSES], int studentIndex) {  double totalScore = 0;  for (int j = 0; j < NUM_COURSES; ++j) {  totalScore += grades[studentIndex][j];  }  return totalScore;  
}  // 找到总分最低的学生  
void findMinScoreStudent(double grades[NUM_STUDENTS][NUM_COURSES], int& minStudent) {  minStudent = 0; // 初始化为第一个学生  for (int i = 1; i < NUM_STUDENTS; ++i) {  double totalScoreCurrent = calculateClassTotalScore(grades, i);  double totalScoreMin = calculateClassTotalScore(grades, minStudent);  if (totalScoreCurrent < totalScoreMin) {  minStudent = i;  }  }  
}

结果

最后

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

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

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

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

相关文章

Kubernetes集群搭建

一、概述 Kubernetes是一个Google开源的全新的分布式容器集群管理系统&#xff0c;由于从第一个字母到字母s中间有8个字母&#xff0c;所以简称K8s。 二、准备 ip角色内存192.168.187.130master4G192.168.187.131node2G192.168.187.132node2G 小提示&#xff1a; 设置静态i…

代码随想录刷题笔记 DAY 21 | 二叉搜索树的最小绝对值差值 No.530 | 二叉搜索树中的众数 No.501 | 二叉树的最近公共祖先 No.236

Day 21 01. 二叉搜索树的最小绝对值差值&#xff08;No. 530&#xff09; 题目链接 代码随想录题解 1.1 题目 给你一个二叉搜索树的根节点 root &#xff0c;返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数&#xff0c;其数值等于两值之差的绝对值。 示例 …

Caffeine史上最快的内存缓存

引言 在现代的Web应用程序中&#xff0c;缓存是提升性能&#xff0c;减少数据库负载&#xff0c;加快响应速度的关键技术之一。Spring Boot作为一个简化Spring应用开发的框架&#xff0c;提供了与多种缓存技术集成的支持。Caffeine是一个高性能&#xff0c;灵活的缓存库&#…

Transformer 自然语言处理(三)

原文&#xff1a;Natural Language Processing with Transformers 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第八章&#xff1a;使 transformers 在生产中更高效 在之前的章节中&#xff0c;您已经看到了 transformers 如何被微调以在各种任务上产生出色的结果。…

C++STL之容器

STL的概述 STL(Standard Template Library,标准模板库) STL的6大组件&#xff1a;容器、算法、迭代器、适配器、仿函数、空间配置 容器&#xff1a;存放数据 算法&#xff1a;操作数据 迭代器&#xff1a;算法 通过迭代器 操作 容器 适配器&#xff1a;为算法 提供更多的接口 …

SQL报错注入

SQL注入报错注入 报错注入原理:报错注入是通过特殊函数错误使用并使其输出错误结果来获取信息的在遇到有报错回显的时候&#xff0c;但是没有数据回显的情况下可以利用报错注入的函数: 1.floor():向下取整 2.extractvalue(): 对XML文档进行查询的函数&#xff0c;当参数的格式…

202416读书笔记|《总有人会拥抱满身带刺的你》——今天我请客,想请你快乐

202416读书笔记|《总有人会拥抱满身带刺的你》——今天我请客&#xff0c;想请你快乐 这是一篇暖萌轻松的绘本推荐记录书评&#xff0c;《总有人会拥抱满身带刺的你》纳米著&#xff0c;《今天我请客&#xff0c;想请你快乐》燕七著&#xff0c;都还不错&#xff0c;截取摘录了…

C++-模板基础

1. 泛型编程 大家在学习过程中一定写过swap函数吧&#xff0c;那么swap函数的可以写成很多种形式&#xff0c;因为形参的类型可以是任意类型&#xff0c;那么我们如果想用多种swap函数的话&#xff0c;就意味着我们必须写多个swap函数吗&#xff1f;不是的&#xff0c;C为了解…

Web项目利用OSS进行图像存储服务

一、OSS介绍 在Web项目中&#xff0c;一些常见的功能&#xff0c;比如展示图片&#xff0c;修改头像等&#xff0c;都需要进行图片的上传操作&#xff0c;但是如果是存储在Web服务器中&#xff0c;在读取图片的时候会占用比较多的资源&#xff0c;影响服务器的性能。 常…

Node需要了解的知识

Node能执行javascript的原因。 浏览器之所以能执行Javascript代码&#xff0c;因为内部含有v8引擎。Node.js基于v8引擎封装&#xff0c;因此可以执行javascript代码。Node.js环境没有DOM和BOM。DOM能访问HTML所有的节点对象&#xff0c;BOM是浏览器对象。但是node中提供了cons…

音箱、功放播放HDMI音频解决方案之HDMI音频分离器HHA

HDMI音频分离器HHA简介 HDMI音频分离器HHA具有一路HDMI信号输入&#xff0c;转换成一路HDMI信号、一路5.1光纤音频信号、一路5.1 SPDIF/同轴音频信号和一路模拟左右声道立体声信号输出&#xff0c;同时还支持EDID存储及兼容HDCP功能&#xff1b;分辨率最高支持1920*1080p&#…

Ainx框架实现 一

&#x1f4d5;作者简介&#xff1a; 过去日记&#xff0c;致力于Java、GoLang,Rust等多种编程语言&#xff0c;热爱技术&#xff0c;喜欢游戏的博主。 &#x1f4d7;本文收录于Ainx系列&#xff0c;大家有兴趣的可以看一看 &#x1f4d8;相关专栏Rust初阶教程、go语言基础系列…