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 ...
随机推荐
- NextCloud 17.0.1 升级到NextCloud 23.0.0
NextCloud 版本过低使用时间过长,想升级一下. 问题记录及参考文档 本次采用离线升级(在线不能下载) 官网下载https://nextcloud.com/install/# 23.0.0最新 ...
- 架构的生态系 资讯环境被如何设计至今.PDF
书本详情 架构的生态系 资讯环境被如何设计至今 作者: 濱野智史出版社: 大鴻藝術股份有限公司副标题: 資訊環境被如何設計至今?原作名: アーキテクチャの生態系――情報環境はいかに設計されてきたか译者 ...
- 实现接口开启线程(实现Runnable接口)
步骤 定义类实现Runnable接口 重写run()方法 在测试类创建子类对象 创建线程对象把子类对象作为参数传入构造方法 用线程对象调用start()方法开启线程 //1.类实现Runnable接口 ...
- 路飞前台全局css 全局配置文件,安装axios,安装vue-cookies,安装elementui,安装bootstrap和jq,后台主页模块表设计,后台主页模块轮播图接口,录入数据,跨域问题详解
目录 路飞前台全局css 全局配置文件,安装axios,安装vue-cookies,安装elementui,安装bootstrap和jq,后台主页模块表设计,后台主页模块轮播图接口,录入数据,跨域问题 ...
- (原创)odoo14下qweb模板的前端与后端语法区别
1.后端(qweb打包) 后端使用t-inherit 指定继承的模板,使用t-inherit-mode 指定继承的模式,使用xpath定位标记,使用position指定扩展位置. 2.前端 前端仍旧使 ...
- Linux下添加启动项并简化操作命令-nginx为例
1.添加nginx为启动项 1. vi /etc/rc.d/rc.local 2.将启动命令直接添加到最后即可 *注:通过下图可知 /etc/rc.d/rc.local和 ...
- Linux shell 获取路径、文件名、文件后缀
以 make 文件为例: file=/usr/bin/make [root@CentOs7]# echo ${file%*/} /usr/bin/make [root@CentOs7]# echo $ ...
- Kubernetes-yaml详解
目录: Yaml语法格式 查看api资源版本标签 deployment模板 service模板 查询帮助和格式指令 Pod模板 写 yaml太累怎么办 yaml文件的学习 方法 deployment. ...
- IDEA报错Error running ‘Application‘: Command line is too long解决方案
IDEA报错Error running 'Application': Command line is too long.Shorten command line for Application or ...
- npm 更改在线仓库镜像地址
node 安装后,npm 的默认在线仓库镜像地址为: https://registry.npmjs.org/ 使用 npm get registry 命令可以获取到: 为了使用 npm 能够更快的下载 ...