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

news2024/11/26 18:39:16

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.coloradmin.cn/o/1433297.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode--代码详解 2.两数相加

2.两数相加 题目 难度&#xff1a;中等 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数…

PyQT——蓝牙收发数据(上位机案例-小车控制器)

实现功能 由于本人水平有限&#xff0c;仅用了最简单的进行实现&#xff0c;主要功能&#xff1a; 蓝牙设备扫描以及刷新蓝牙连接蓝牙数据发送蓝牙数据接收 页面实现效果 代码目录结构 代码案例 代码已经全部添加注释&#xff0c;故不再做单独解释。 Main.py ble_contr…

学成在线:媒体资源管理系统(MAM)

媒体资源管理系统(MAM) 媒体资源管理系统(Media Asset Management)是建立在多媒体、网络、数据库和数字存储等先进技术基础上的一个对各种媒体及内容进行数字化存储、管理以及应用的总体解决方案,可以满足媒体资源拥有者收集、保存、查找、编辑、发布各种信息的要求,为媒体资源…

蓝桥杯备战——13.PCF8591芯片的使用

目录 1.芯片简介2.读写时序3.控制字4.代码封装库5.原理图分析6.使用示例 1.芯片简介 截取自NXP的PCF8591芯片数据手册&#xff0c;我把重点关注部分划出来了&#xff0c;请务必自行阅读一遍数据手册&#xff01; 2.读写时序 ①器件地址&#xff1a; Bit0决定是读还是写操作&…

企业网站管理系统(多语言)

应用介绍 响应式PC&#xff1a; https://demo.ldcms.com.cn/ 响应式H5&#xff1a; 前端小程序&#xff1a; 后台登录网址&#xff1a; https://demo.ldcms.com.cn/ESBFdpKflc.php/index/login 前端截图&#xff1a; 后台截图&#xff1a; 本文来自&#xff1a;企业网站管理…

基于若依的ruoyi-nbcio流程管理系统自定义业务回写状态的一种新方法(二)

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a; https://gitee.com/nbacheng/n…

问题:金属电化学反应的实质是氧化还原反应,被腐蚀金属发生还原反应( ) #知识分享#知识分享#媒体

问题&#xff1a;金属电化学反应的实质是氧化还原反应&#xff0c;被腐蚀金属发生还原反应(  ) A、正确 B、错误 参考答案如图所示

项目02《游戏-05-开发》Unity3D

基于 项目02《游戏-04-开发》Unity3D &#xff0c; 【任务】UI背包系统&#xff0c; 首先将Game窗口设置成1920 * 1080&#xff0c; 设置Canvas的缩放模式&#xff0c;&#xff1a;这样设置能让窗口在任意分辨率下都以一个正确的方式显示&#xff0c; 设置数值&…

Angular BaseView抽离页面公用属性

前言 如果有一系列的页面布局很类似&#xff0c;为了节省时间&#xff0c;我们可以把这些类似的页面所通用的属性和方法抽离成一个BaseView&#xff0c;让其它页面继承该基础页面&#xff0c;同时将一些经常改变的属性和差异的属性写到配置文件里。例如树容器初始时是否展开、…

【测试运维】性能测试笔记文档第2篇:性能测试分类和指标(已分享,附代码)

本系列文章md笔记&#xff08;已分享&#xff09;主要讨论性能测试相关知识。入门阶段&#xff1a;认识性能测试分类-(负载测试、压力测试、并发测试、稳定性测试)&#xff0c;常用性能测试指标-(吞吐量、并发数、响应时间、点击数…)&#xff0c;性能测试工具选择。性能脚本&a…

Linux文件编译

目录 一、GCC编译 1.直接编译 2.分步编译 预处理&#xff1a; 编译&#xff1a; 汇编&#xff1a; 链接&#xff1a; 3.多文件编译 4.G 二、Make 1.概述 2.使用步骤 3.makefile创建规则 3.1一个基本规则 3.2两个常用函数 4.示例文件 三、GDB 示例&#xff1a;…

STM32单片机的基本原理与应用(六)

串口测试实验 基本原理 在串口实验中&#xff0c;是通过mini_USB线搭建终端与电脑端&#xff08;也可称终端&#xff0c;为做区分称电脑端&#xff09;的“桥梁”&#xff0c;电脑端的串口调试助手通过mini_USB线向终端发送信息&#xff0c;由CH340芯片将USB接口进行转换&…

PyTorch 2.2 中文官方教程(十五)

&#xff08;beta&#xff09;计算机视觉的量化迁移学习教程 原文&#xff1a;pytorch.org/tutorials/intermediate/quantized_transfer_learning_tutorial.html 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 提示 为了充分利用本教程&#xff0c;我们建议使用这个C…

linux下的预编译、编译、汇编、连接,生成单独文件,感受编译过程

linux下的预编译、编译、汇编、连接&#xff0c;生成单独文件。首先需要确认系统安装了gcc编译器&#xff0c;输入gcc -v或者g -v&#xff0c;如果能看到版本号等信息就是已经存在了&#xff0c;如图&#xff08;centos7&#xff09;&#xff1a; 然后随便vim产生一个.cpp文件&…

什么是前端工程化,请举例说明

前端工程化 前端工程化的定义为什么需要前端工程化前端工程化的核心概念 模块化开发&#xff1a;组件化开发&#xff1a;规范化开发&#xff1a;自动化开发&#xff1a;持续集成 前端工程化的主要工具前端工程化的应用总结&#xff1a; 前端工程化 前端工程化的定义 前端工程…

zabbix监控mariadb数据库

zabbix监控mariadb数据库 1.创建监控用户及授权 [rootchang ~]# mysql -uroot -p123qqq.A MariaDB [(none)]> CREATE USER monitor% IDENTIFIED BY 123qqq.A; MariaDB [(none)]> GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO monitor%; Maria…

使用最大边界相关算法处理文章自动摘要

一、需求背景 对于博客或者文章来说&#xff0c;摘要是普遍性的需求。但是我们不可能让作者自己手动填写摘要或者直接暴力截取文章的部分段落作为摘要&#xff0c;这样既不符合逻辑又不具有代表性&#xff0c;那么&#xff0c;是否有相关的算法或者数学理论能够完成这个需求呢&…

【高质量精品】2024美赛B题22页word版高质量半成品论文+多版保奖思路+数据+前四问思路代码等(后续会更新)

一定要点击文末的卡片&#xff0c;进入后&#xff0c;获取完整论文&#xff01;&#xff01; B 题整体模型构建 1. 潜水器动力系统失效&#xff1a;模型需要考虑潜水器在无推进力情况下的行为。 2. 失去与主船通信&#xff1a;考虑无法从主船接收指令或发送位置信息的情况。…

基于若依的ruoyi-nbcio流程管理系统自定义业务实现一种简单的动态任务标题需求

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a; https://gitee.com/nbacheng/n…

深度学习介绍

对于具备完善业务逻辑的任务&#xff0c;大多数情况下&#xff0c;正常的人都可以给出一个符合业务逻辑的应用程序。但是对于一些包含超过人类所能考虑到的逻辑的任务&#xff0c;例如面对如下任务&#xff1a; 编写一个应用程序&#xff0c;接受地理信息、卫星图像和一些历史…