常见机试基础类题目

1.计算字符串最后一个单词的长度,单词以空格隔开。

常见机试基础类题目

#include<iostream> 

#include<string> 

using namespace std; 

int main()
 {
    string line;   
    while(getline(cin,line))
    {   
        int len=line.length()-1;
        int num=0;
        while(len>=0)
        {
            if(line[len]==' ')
            {   len--;continue; }
            else
                break;
        }
        while(line[len]!=' ')
        {
            len--;num++;
            if(len<0)
                break;
        }
        cout<<num<<endl;
    }
    return 0;
}

常见机试基础类题目

2.写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。

常见机试基础类题目

#include<iostream>
#include<string>  
#include<stdio.h>
using namespace std;
int main()
{
    string str;
    char f;
    char f_max;
    char f_min;
    getline(cin,str);
    cin>>f;
    if (isupper(f))
    {
        f_max=f;
        f_min=f+'a'-'A';
    }
    else
    {   f_min=f;
        f_max=f+'A'-'a';
    }
    int str_len=str.length();
    int count=0;
    for(int i=0;i<str_len;i++)
    {
        if(str[i]==f_min ||str[i]==f_max )
           count++;        
    }
    cout<<count<<endl;

    return 0;

}

常见机试基础类题目

3.连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;
   长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。

常见机试基础类题目

#include<iostream>
#include<string>
using namespace std;  
int main()
{
    int xuhuan=2;
    string line;
    while(getline(cin,line))
    {
        int len_str=line.length();
        int m=len_str/8;
        int n=len_str%8;
        for (int i=0;i<m*8;i++)
        {   cout<<line[i];
            if ((i+1)%8==0)
            {
                 cout<<endl;
            }
        }
        if(n)
        {
            for (int i=m*8;i<m*8+8;i++)
            {   if (i<len_str)
                    cout<<line[i];
                else
                    cout<<0;
            }
            cout<<endl;
        }
    }
}

常见机试基础类题目

4.写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入

常见机试基础类题目

#include<iostream>
#include<string>
using namespace std;
int main()
{   
    int len_str=0;
    int s;
    while(cin>>hex>>s)
    {
        cout<<s<<endl;
    }
    return 0;

}

常见机试基础类题目

5.功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )

   最后一个数后面也要有空格
常见机试基础类题目
#include<iostream>
using namespace std;
int main()
{
    long n;
    while(cin>>n)
    {
        while(n != 1)
        {
             for(int i=2; i<=n; i++)
             {
                 if(n % i == 0)
                 {
                     n = n / i;          
                     cout<<i<<' ';
                     break;          
                 }
             }
        }
    }    
    return 0;
}

常见机试基础类题目

6.写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。

常见机试基础类题目

#include<iostream>
#include<string>
#include<math>
using namespace std;
int main()
{
    double num=0;
    cin>>num;
    double results=0;
    if (num==0)
    {    
        results=0;
     }
    else
    {
        results=(num>0)?(num+0.5):(num-0.5);
    }
    results=floor(results);
    cout<<results;
    return 0;

}

常见机试基础类题目

7.输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。

常见机试基础类题目

#include<iostream>
#include<string>
#include<math.h>
using namespace std;
int main()
{
    string str;
    int flag[10]={0};
    while(cin>>str)
    {   
        for(int i=0;i<10;i++)
            flag[i]=0;
        int str_size=str.size();
        for (int i=str_size-1;i>=0;i--)
        {  
            if(!flag[str[i]-'0'])
            {
                cout<<str[i];
                flag[str[i]-'0']=1;
            }
        }
        cout<<endl;
    }
    return 0;

}

常见机试基础类题目

8.编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127)。不在范围内的不作统计。

常见机试基础类题目

#include<iostream>
#include<string>
#include<numeric>
using namespace std;
int main()
{
    string str;
    while(cin>>str)
    {
        int str_long=str.length();
        vector<int> str_flag(128,0);
        int flag=0;
        for(int i =0;i<str_long;i++)
        {
            if (str[i]>=0&&str[i]<=127)  
                str_flag[str[i]]=1;     
        }
        cout<<accumulate(str_flag.begin(),str_flag.end(),0);
    }
    return 0;
}

常见机试基础类题目

9.正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。

常见机试基础类题目

#include<iostream>
#include<string>
using namespace std;
int gcb(int n1,int n2)
{
    int t=0;
    if(n2==0)
        return n1;
    if(n1%n2==0)
    {
        return n2;
    }
    else
    {
        t=n1%n2;
        n1=n2;
        n2=t;
        return gcb(n1,n2);
    }
}
int main()
{
    int n1,n2;
    while(cin>>n1>>n2)
    {
        int t=gcb(n1,n2);
        long long out=n1/t*n2;
        cout<<out<<endl;
    }
    return 0;
}