栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++基础练习题(一些零散知识点)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++基础练习题(一些零散知识点)

1、统计字符串中各类型字符的个数

描述
输入一行字符串(无中文字符),分别统计出其中英文字母、空格、数字和其它字符的个数。
输入描述:
输入任意字符串(注:测试用例输入字符串保证无中文字符)
输出描述:
输出字符串中包含的英文字母个数,数字个数,空格个数,其它字符个数。

#include 
#include 
using namespace std;

int main() {

    int letter = 0;
    int digit = 0;
    int space = 0;
    int other = 0;
    
    char buf[1024] = {0};
    cin.getline(buf, sizeof(buf));

    // write your code here......
    for(unsigned i=0;i
        if(isalpha(buf[i]))
        {
            letter++;
        }else if(isdigit(buf[i]))
        {
            digit++;
        }else if(isspace(buf[i]))
        {
            space++;
        }else
        {
            other++;
        }
    }

    cout << "letter:" << letter << " digit:" << digit << " space:" << space << " other:" << other << endl;

    return 0;
}
2、十进制整数转十六进制字符串

描述
编写一个函数,传入一个十进制的正整数,将十进制整数转换为十六进制的字符串并返回。(十六进制字符串中的字母全部大写)
输入描述:
键盘输入一个十进制的正整数
输出描述:
输出该十进制整数转换后的十六进制字符串

162

A2
#include 
using namespace std;
#include
string toHexString(int n);
//该函数可以将10进制转换为任意的radix进制数,n是要转换的十进制数
string intToA(int n,int radix)
{
    string ans="";
    do{
        int t=n%radix;
        if(t>=0&&t<=9)ans+=t+'0';
        else ans+=t-10+'A';
        n/=radix;
    }while(n);
    reverse(ans.begin(),ans.end());
    return ans;
}
int main() {

    int n;
    cin >> n;

    string hexStr = toHexString(n);
    cout << hexStr << endl;

    return 0;
}

string toHexString(int n) {
    // write your code here......
    return intToA(n,16);
}

3、实现简单计算器功能

描述
键盘输入一个字符串,格式:运算方式 整数1 整数2,编写程序解析出字符串中的 3 部分内容,然后做相应的运算,并输出结果。
例如:
输入“add 10 20”,则做加法运算(10+20);
输入“sub 10 20”,则做减法运算(10-20);
输入“mul 10 20”,则做乘法运算(10*20);
输入“div 10 20”,则做除法运算(10/20),如果除数为 0,则不做运算,输出“Error”;
注意:运算方式忽略大小写,即 “add” 同 “Add”、“ADD”等。
输入描述:
键盘输入一个字符串,格式:运算方式 整数1 整数2
整数范围为[-100, 100]
输出描述:
输出运算后的结果(除法不考虑小数),如果除数为 0,则不做运算,输出“Error”

#include 
using namespace std;
#include
#include

int main() {

    char str[100] = { 0 };//定义并初始化
    cin.getline(str, sizeof(str));

    // write your code here......
    string op="";
    string num1="";
    string num2="";
    int space=0;//记录空格
    //字符数组的遍历,str[i]!=''说明未遍历完
    for(int i=0;str[i]!='';i++)
    {
        if(str[i]==' ')
        {
            space++;
            continue;
        }else if(space==0)//第一个空格前的都是运算符
        {
            op+=str[i];
        }else if(space==1)//第二个空格和第三个空格之间的是操作数1
        {
            num1+=str[i];
        }else if(space==2)//第二个空格后面的都是操作数2
        {
            num2+=str[i];
        }
    }
    //stoi()函数可以将数字字符串转换为int型整数
    int x=stoi(num1);
    int y=stoi(num2);
    //strcasecmp()函数比较字符数组型字符串不区分大小写
    //要先把string类型的字符串转换为char[]类型的字符串,使用函数c_str()
    if(strcasecmp(op.c_str(),"add")==0)
        cout<
        if(y==0)
            cout<<"Error"< 
4、计算小球走过的路程和反弹高度 

描述
一球从 h 米高度自由落下,每次落地后反跳回原高度的一半再落下,求它在第 n 次落地时共经过了多少米?第 n 次返弹多高?
输入描述:
输入小球下落的高度和落地的次数(先输入小球初始高度再输入反弹次数)
输出描述:
输出小球第 n 次 落地时经过的距离和第 n 次反弹的高度(保留小数点后1位)

#include 
#include 
using namespace std;

int main() {

    // 下落的高度和落地的次数
    double h;
    int n;

    cin >> h;
    cin >> n;

    // write your code here......
    double sum=0;
    for(int i=0;i
        if(i==0)
        {
            sum=h;
        }else
        {
            sum=sum+2*h;
        }
        h/=2;
    }
    //设置精度
    //fixed实现精度控制是小数点后面的1位,即如果小数点后面为0,也会输出0,而不是忽略
    cout<
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/979702.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号