c++基础技能练习详解(回文数,字符串计数,指针比大小,递归求和,类的应用)
//1. 调用函数实现判定用户输入的正整数是否为“回文数“,所谓“回文数”是指正读反读都相同的数。 (25分)
bool hw(string s) {
for (int i = 0; i < (s.length()) / 2; i++) {
if (s[i] != s[s.length() - 1 - i]) {
return false;
}
}
return true;
}
int main()
{
string s;
cin >> s;
cout<<hw(s);
}
**************************************************
bool hw() {
string s;
cout << "请输入一行数字" << endl;
cin >> s; for (int i = 0; i < s.length() / 2.0; i++) {
if (s[i] != s[s.length() - i - 1]) {
cout << "该数是不回文数" << endl;
return false;
}
}
cout << "该数是回文数" << endl;
return true;
} //2. 编程实现从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔。
int main() {
string s;
cin >> s;
getline(cin,s);
int count = 1;
for (int i = 0; i < s.length(); i++) {
if (s[i] == ' ') {
count += 1;
}
}
cout << count;
} //3. 计算一个字符串中子串出现的次数。 注意:strstr(str1,str2) 此时千万要记住,这是在判断str2是否是str1的子串!!
int count(char* str1, char * str2) {
int len = strlen(str2);
int n = 0;
while (str1 = strstr(str1, str2)) {
n += 1;
str1 += len;
}
return n;
}
int main() {
char str1[100];
char str2[100];
cin >>str1;
cin >>str2;
cout<<count(str1,str2);
} **********************************
char str1[100];
char str2[100];
cout << "请输入父串" << endl;
cin >> str1;
//gets_s(str1); cout << "请输入子串" << endl;
cin >> str2;
//gets_s(str2);
int a=countshu(str1, str2);
cout << a << endl; //4. 从键盘输入一行字符,将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。
int main() {
int arr[10];
for (int i = 0; i < 10; i++) {
cin >> arr[i];
}
for (int i = 0; i < 10; i++) {
cout << arr[i]<<"\t";
} for (int i = 0; i < 8; i+=2) {
for (int j = 0; j < 10 - 2 - i; j+=2) {
if (arr[j] > arr[j + 2]) {
int temp = arr[j];
arr[j] = arr[j + 2];
arr[j + 2] = temp;
}
}
}
cout << "\n";
for (int i = 0; i < 10; i++) {
cout << arr[i]<<"\t";
}
}
5.使用指针比较2个数的大小,并输出最大的数。
int *p1,*p2;
int *p; //临时指针
int a,b;
cout << "input a: " << endl;
cin >> a;
cout << "input b: " << endl;
cin >> b;
p1=&a;p2=&b;
if(a<b)
{
p=p1;
p1=p2;
p2=p;
}
cout << "a=" << a;
cout << " ";
cout << "b=" << b;
cout << endl;
cout << "较大的数:" << *p1 << "较小的数: "<< *p2 <<endl;
6.//2. 输入6个数,输出6个数,调用排序函数对6个数进行冒泡排序,并输出排序后的值,要求形参为指针变量。 (共50分)
//输入正确 10分
//输出正确 10分
//排序函数正确 20分
//输出排序后值 10分
void zhizhen(char *arr) {
int temp;
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5-i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
cout << "排序后" << endl;
for (int i= 0; i < 6; i++) {
cout << arr[i] << "\t";
}
} cout << "请输入6个数" << endl;
char arr[6];
for (int i = 0; i < 6; i++) {
cin >> arr[i];
}
cout << "排序前" << endl;
for (int i = 0; i < 6; i++) {
cout << arr[i] << "\t";
}
zhizhen(arr);
6.编写一个函数用递归的方法求1+2+3+4+…+n的值。在主函数中进行输入输出。
int digui(int a) {
if (a==1) {
return 1;
}
return a + digui(a - 1);
} int a=digui(100);
cout << a;
7.编写一个函数power(float x,int n),用于计算x的n次幂。在主函数中实现输入输出
float power(float x ,int n) {
float sum = 0;
sum=pow(x, n);
cout << "幂次方" << sum;
return sum;
} cout << "请输入一个数" << endl;
int n,x;
cin >> x;
cout << "请输入次方数" << endl;
cin >> n;
power(x, n);
8.1. 定义一个学生成绩类Score,描述学生成绩的公有数据成员为学号(No)、姓名(Name[8])、数学(Math)、物理(Phi)、总分(Sum)。在主函数中用Score类定义学生成绩对象数组s[3],输入学生成绩,计算每个学生的总分,最后显示每个学生的成绩。 (100分)
定义学生成绩类 20分
定义类对象数组 10分
输入学生成绩 25分
计算每个学生的总分 20
显示每个学生的成绩 25
class Score {
public:
int Num;
char Name[8];
int Math;
int Poi;
int Sum;
int Total;
Score(int Num,char *name,int Math,int Poi,int Sum) {
this->Num = Num;
this->Math = Math;
this->Poi = Poi;
this->Sum = Sum;
strcpy_s(Name, name);
}
void sum() {
Total = Num + Math + Poi;
}
void show() {
cout << "学号=" << Num << ",姓名=" << Name << ",数学=" << Math << ",物理=" << Poi << ",总分=" << Total << endl;
}
};
int main()
{
char name[10] = "MH";
Score s1 = Score(1001, name, 100, 98, 97);
s1.sum();
s1.show();
}
c++基础技能练习详解(回文数,字符串计数,指针比大小,递归求和,类的应用)的更多相关文章
- python基础练习题(题目 回文数)
day21 --------------------------------------------------------------- 实例030:回文数 题目 一个5位数,判断它是不是回文数.即 ...
- Newtonsoft.Json C# Json序列化和反序列化工具的使用、类型方法大全 C# 算法题系列(二) 各位相加、整数反转、回文数、罗马数字转整数 C# 算法题系列(一) 两数之和、无重复字符的最长子串 DateTime Tips c#发送邮件,可发送多个附件 MVC图片上传详解
Newtonsoft.Json C# Json序列化和反序列化工具的使用.类型方法大全 Newtonsoft.Json Newtonsoft.Json 是.Net平台操作Json的工具,他的介绍就 ...
- C语言实现计算双基回文数详解
双基回文数的定义: 如果一个正整数n至少在两个不同的进位制(二进制<=进制=<十进制)b1和b2下都是回文数,则称n是双基回文数. 根据定义,简单的说就是在二进制到十进制之间(包括十进制和 ...
- lqb 基础练习 回文数
基础练习 回文数 时间限制:1.0s 内存限制:512.0MB 问题描述 1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数. 输出格式 按从小到大的顺 ...
- lqb 基础练习 特殊回文数
基础练习 特殊回文数 时间限制:1.0s 内存限制:512.0MB 问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的. 输入一个正整数n, 编程求所有这样的五位和六位 ...
- Java实现蓝桥杯基础练习特殊回文数
基础练习 特殊回文数 时间限制:1.0s 内存限制:512.0MB 提交此题 锦囊1 锦囊2 问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的. 输入一个正整数n, 编程求所有这 ...
- JAVA 基础编程练习题25 【程序 25 求回文数】
25 [程序 25 求回文数] 题目:一个 5 位数,判断它是不是回文数.即 12321 是回文数,个位与万位相同,十位与千位相同. package cskaoyan; public class cs ...
- hadoop基础-SequenceFile详解
hadoop基础-SequenceFile详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.SequenceFile简介 1>.什么是SequenceFile 序列文件 ...
- leetcode-479-Largest Palindrome Product(找到两个乘数相乘得到的最大的回文数)
题目描述: Find the largest palindrome made from the product of two n-digit numbers. Since the result cou ...
- Cisco路由技术基础知识详解
第一部分 请写出568A的线序(接触网络第一天就应该会的,只要你掐过,想都能想出来) .网卡MAC地址长度是( )个二进制位(16进制与2进制的换算关系,只是换种方式问,不用你拿笔去算) A.12 ...
随机推荐
- k8s如何配置secret保存harbor仓库账号密码、pod中怎么使用harbor仓库镜像
转载: https://blog.csdn.net/MssGuo/article/details/127312239
- (0617 ) centos7运行脚本提示: 没有那个文件或目录 :No such file or directory
https://blog.csdn.net/hehuihh/article/details/88174007 之前也 遇到: https://www.cnblogs.com/fancy2333/p/1 ...
- sqlalchemy+pandas:错误 'OptionEngine' object has no attribute 'execute','str' object has no attribute '_execute_on_connection'
场景:使用 sqlalchemy+pandas 1. 'OptionEngine' object has no attribute 'execute' import pandas as pd fro ...
- 怎么才能卸载inventor?完全彻底卸载删除干净inventor各种残留注册表和文件的方法和步骤
怎么才能卸载inventor?完全彻底卸载删除干净inventor各种残留注册表和文件的方法和步骤.如何卸载inventor呢?有很多同学想把inventor卸载后重新安装,但是发现inventor安 ...
- torch& tensorflow
#torchimport torch import torch.nn as nn import torch.nn.functional as F class Net(nn.Module): def _ ...
- 登录他人mysql
//登录参数:mysql -u用户名 -p密码 -h要连接的mysql服务器的ip地址(默认127.0.0.1) -P端口号(默认3306)
- 线上服务Java进程假死快速排查、分析
引用 https://zhuanlan.zhihu.com/p/529350757 最近我们有一台服务器上的Java进程总是在运行个两三天后就无法响应请求了,具体现象如下: 请求业务返回状态码502, ...
- fetchAllAssoc 小分析
这个函数出现在了两个地方 includes\database\database.inc line 2245 includes\database\prefetch.inc line 481 foreac ...
- Java字段名由驼峰命名转换为下划线命名
private String toUnderlineName(String name) { StringBuilder result = new StringBuilder(); if (name = ...
- @order(1)
@order(num),数字表示加载顺序 1.AOP加载顺序(切面加载顺序) 2.配置类加载顺序