当前位置: 首页 > news >正文

C++基础-编程练习题1

文章目录

  • 一、哥德巴赫猜想
  • 二、哥德巴赫猜想2
  • 三、打印成绩单
  • 四、成绩输入输出
  • 五、数组输出奇数位偶数位


一、哥德巴赫猜想

【试题描述】
哥德巴赫提出了以下的猜想:任何一个大于 2 的偶数都可以表示成 2 个质数之和。 质数是指除了 1 和本身之外没有其他约数的数, 如 2 和 11 都是质数,而 6 不是质数,因为 6 除了约数 1 和 6 之外还有约数 2 和 3。 需要特别说明的是 1 不是质数。
请你编一个程序验证哥德巴赫猜想
【输入要求】
n 的值
【输出要求】
多组由两个素数之和组成的表达式, 每组第一个数字要从小到大排列
【输入样例】
14
【输出样例】
3+11
7+7

#include <bits/stdc++.h>
using namespace std;  // 函数用于检查一个数是否为质数  
bool isPrime(int n) {  //小于等于1的数不是质数if (n <= 1) return false;  //2是质数if (n == 2) return true;  //除2外能被2整除的数不是质数if (n % 2 == 0) return false;  for (int i = 3; i < n; i += 1) {//能被小于自身的数整除,说明不是质数if (n % i == 0) return false;  }  return true;  
}  // 函数用于验证哥德巴赫猜想  
void goldbachConjecture(int n) {  if (n <= 2 || n % 2 != 0) {  cout << "输入错误,请输入大于 2 的偶数." << endl;  return;  }  //从2开始循环找到满足条件的两个质数for (int i = 2; i <= n / 2; ++i) {//第一个质数if (isPrime(i)) {  //第二个质数int second = n - i;  if (isPrime(second)) {  //质数之和,并输出结果  cout << i << "+" << second << endl;  }}  }  }  int main() {  //定义变量n,存放输入的大于2的偶数int n;  //输入大于 2 的偶数cin >> n;  //调用goldbachConjecture函数goldbachConjecture(n);  return 0;  
}

二、哥德巴赫猜想2

【试题描述】
求出哥德巴赫猜想的所有解(将一个大于 9 的奇数拆分成三个素数之和),并按从小到大的顺序写出。
【输入要求】
一行, 一个大于 9 的奇数。
【输出要求】
每行一个解。
【输入样例】
15
【输出样例】
15=2+2+11
15=3+5+7
15=5+5+5

#include <bits/stdc++.h>
using namespace std; 
// 判断是否为素数的函数  
bool isPrime(int num) {  if (num <= 1) return false;  if (num == 2) return true;  if (num % 2 == 0) return false;  for (int i = 3; i < num; i += 1) {  if (num % i == 0) return false;  }  return true;  
}/*** 求解哥德巴赫猜想  * /
void goldbachConjecture(int oddNum) {  //取oddNum前三分之一段的数,因2是质数故从2开始for (int i = 2; i <= oddNum / 3; ++i) {  //i第一个质数//取剩下的前半段数for (int j = i; j <= (oddNum - i) / 2; ++j) {  //j第二个质数//求第三个质数kint k = oddNum - i - j;  //三个数均为素数时,满足要求if (isPrime(i) && isPrime(j) && isPrime(k)) {  //按题目要求输出cout << oddNum << "=" << i << "+" << j << "+" << k << endl;  }  }  }  
}  int main() {  int oddNum;  //输入大于9的奇数cin >> oddNum;  if (oddNum <= 9 || oddNum % 2 == 0) {  cout << "输入错误,请输入一个大于9的奇数." << endl;  return 1;  }  goldbachConjecture(oddNum);  return 0;  
}

三、打印成绩单

【试题描述】
输入 N 个同学的语文成绩, 算出总分, 打印出成绩单
【输入要求】
N 个同学的成绩
【输出要求】
N 个同学的成绩及总分。
【输入样例】
5
98 78 98 65 90
【输出样例】
total:429
98
78
98
65
90

#include <bits/stdc++.h>
using namespace std;  
/**输入 N 个同学的语文成绩, 算出总分, 打印出成绩单*/
int main() {  int n;  cin >> n; // 读取同学的数量  int scores[n]; // 创建一个存储成绩的数组  int total = 0; // 用于计算总分的变量  // 读取每个同学的成绩  for (int i = 0; i < n; ++i) {  cin >> scores[i];  //将每个成绩相加,得到总分total = total+ scores[i]; }  // 打印总分  cout << "total:" << total << endl;  // 打印每个同学的成绩  for (int i = 0; i < n; ++i) { cout << scores[i] << endl;  }  return 0;  
}

四、成绩输入输出

【试题描述】
全班 n 个同学的成绩需要按学号读入计算机并输出, 请编程实现。
【输入要求】
两行, 第一行为一个正整数 n, 第二行为 n 个实数。
【输出要求】
n 行, 包括所有同学的成绩, 每行包括学号和成绩, 之间用一个“: ” 分隔, 成绩保留一
位小数。
【输入样例】
5
92 97.5 93 87 89
【输出样例】
1: 92.0
2: 97.5
3: 93.0
4: 87.0
5: 89.0

#include <bits/stdc++.h>  
using namespace std;  
/**全班 n 个同学的成绩需要按学号读入计算机并输出* @return */
int main() {  int n;  cin >> n; // 读取学生数量  double scores[n]; // 创建包含n个元素的double类型数组用于存储成绩  for (int i = 0; i < n; ++i) {  cin >> scores[i]; // 读取每个学生的成绩  }  // 遍历数组并输出每个学生的学号和成绩  for (int i = 0; i < n; ++i) {  //fixed确保了使用固定小数点格式,而setprecision(1)则设置了小数点后要显示的位数cout << (i + 1) << ": " << fixed << setprecision(1) << scores[i] << endl;  }  return 0;  
}

五、数组输出奇数位偶数位

【试题描述】
对输入的数据分两行输出, 第一行为输入顺序的奇数位置数据, 第二行为输入顺序的偶数位置数据。
【输入要求】
共两行。
第一行为整数 n。
第二行为 n 个整数。
【输出要求】
两行。
第一行为奇数位置的数。
第二行为偶数位置的数。
注意: 每个元素右边都有一个空格。
【输入样例】
9
1 5 4 7 8 5 6 9 3
【输出样例】
1 4 8 6 3
5 7 5 9

#include <bits/stdc++.h>  
using namespace std;  
/**
* 对输入的数据分两行输出, 第一行为输入顺序的奇数位置数据, 第二行为输入顺序的偶数位置数据。
**/
int main() {  int n;  cin >> n; // 读取整数n  int nums[n]; // 创建一个大小为n的数组来存储整数  for (int i = 0; i < n; ++i) {  cin >> nums[i]; // 读取整数并存入数组}  // 输出奇数位置的数  for (int i = 0; i < n; i =i+ 2) {  cout << nums[i];  if ((i + 2) < n) {  cout << " "; // 如果不是最后一个数,则输出一个空格  }  }  cout << endl; // 换行  // 输出偶数位置的数  for (int i = 1; i < n; i += 2) {  cout << nums[i];  if (i + 2 < n) {  cout << " "; // 如果不是最后一个数,则输出一个空格  }  }  cout << endl; // 换行  return 0;  
}
http://www.lryc.cn/news/349044.html

相关文章:

  • 四十九坊股权设计,白酒新零售分红制度,新零售策划机构
  • 如何将公众号添加到CSDN个人主页
  • 64K方法数限制原理及解决方案
  • 产品品牌CRUD
  • 惠普发布全新AI战略,重塑办公空间 引领企业智能化新浪潮
  • python中的数据可视化:极坐标散点图
  • 5.12.1 Detecting and classifying lesions in mammograms with Deep Learning
  • Python爬虫——如何使用urllib的HTTP基本库
  • OceanBase v4.3特性解析:新功能“租户克隆”的场景与应用指南
  • RS3236-3.3YUTDN4功能和参数介绍及PDF资料
  • Vue如何引入公用方法
  • Java面试题:ConcurrentHashMap
  • 现在闪侠惠递寄快递有福利了,千万不要因没把握住而后悔呀!
  • vue+ant-design+formBuiler表单构建器——技能提升——form design——亲测有效
  • Git 如何管理标签命令(tag)
  • 零样本身份保持:ID-Animator引领个性化视频生成技术新前沿
  • 在Go语言中,可以这样使用Json
  • React useEffect Hook: 理解和解决组件双重渲染问题
  • 【C语言】—— 动态内存管理
  • Oracle到PostgreSQL的不停机数据库迁移
  • OpenAI 发布新款大型语言模型 GPT-4o,带大家了解最新ChatGPT动态。
  • 网络编程套接字(一) 【简单的Udp网络程序】
  • 【CANoe】CAPL中生成报告常用的测试函数
  • WEB后端复习——MVC、SSM【含登录页面代码】
  • 灵卡科技HDMI音视频采集及H.264编码一体化采集卡—LCC260
  • 智能自助终端主板RK3288/RK3568在酒店前台自助机方案的应用,支持鸿蒙,支持免费定制
  • Visual Studio环境搭载
  • 添砖Java之路(其八)——继承,final关键字
  • 一篇详解Git版本控制工具
  • 谷歌邮箱2024最新注册教程