C++有哪些数据类型?为什么long和int都是4字节?
char、int、byte、short、long、long long、double、float
struct
对象类型
long、int占多少字节,得看计算机cpu是多少位的。16位机器上,int2字节,long4字节,32位机器上二者都是4字节,64位机器上,int4字节,long8字节
int是最基本的类型,一般要和cpu的自宽保持一致,保证效率。
JAVA和C++的区别是什么?分别用在什么情景比较好?
Java 和 C++ 都是面向对象的语言,但他们也存在着一些区别
1、Java 不支持多继承
2、Java 没有指针和引用
3、c++ 需要程序员手动管理堆内存,Java有自动垃圾回收机制
Java运行在java虚拟机上,速度相对较慢,在实时性要求高的场合应该用c++
java通常在手机上应用的比较多。
编程题:给定一个文件每一行是字符串,找出所有的逆序对,比如abc和cba是逆序的对。
#include"iostream"
#include"string"
#define MAX 100
using namespace std;
bool check(string str1,string str2)
{
bool flag = true;
for(int i=0; i<str1.length(); i++)
{
if(str1[i]!=str2[str1.length()-1-i])
{
flag = false;
return flag;
}
}
return flag;
}
int main(int argc, char* argv[])
{
string str[MAX];
int n,a[MAX];
bool flag[MAX];
cin>>n;
for(int i=0; i<n; i++)
{
cin>>str[i];
a[i] = str[i].length();
flag[i] = true;
}
int num = 0;
for(int i=0; i<n; i++)
{
int len = a[i];
if(flag[i]==true)
{
for(int j=0;j<n;j++)
{
if(flag[j]==true&&len==a[j])
{
if(check(str[i],str[j]))
{
num++;
flag[i] = false;
flag[j] = false;
break;
}
}
}
}
}
for(int i=0; i<n; i++)
cout<<str[i]<<'\t';
cout<<endl;
cout<<"The Number of Matched String Is: "<<num<<endl;
getchar();
getchar();
return 0;
}
给定一个奇数n,比如n=3,生成1到n平方的数,如1到9,填入九宫格,使得横竖斜的和都相等。
先来个3*3
8 1 6
3 5 7
4 9 2
n奇数幻方口诀:
1. 数字1放在第一行中间
2. 依次放在上一个数的右上角
2.1如果右边出去了就回到左边(3,4)
2.2 如果上面出去了就放下面(1,2)
2.3 如果右上角有了就放在这个数的下面(参考5,6)
5*5
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
C和C++有什么区别,能用C实现C++所有功能吗?C能实现多态吗?
逻辑题:25匹马,5条赛道,一匹马一个赛道,比赛只能得到5匹马之间的快慢程度,而不是速度,求决胜1,2,3名至少多少场。
比赛7场就可以。
(1)先进行5场比赛定出每组最快的马。
(2)每组最快的马进行一场比赛,这样就可以找到第一名。顺便把这5匹马中最后两名淘汰,因为他们永远不可能进入前3。
(3)分别用第一名所属组的第2,3名马和第2名所属组的第1,2名马和第3名组的第1名马进行1场比赛,定出2,3名马
至此比赛完毕
请用c++ 实现stl中的string类,实现构造,拷贝构造,析构,赋值,比较,字符串相加,获取长度及子串等功能。
#include <utility>
#include <string.h>
classString
{
public:
String():data_(newchar[1])
{
*data_ = '\0';
}
String(const char * str):data_(newchar[strlen(str) + 1])
{
strcpy(data_, str);
}
String(const String & rhs)
: data_(newchar[rhs.size() + 1])
{
strcpy(data_, rhs.c_str());
}
/* Delegate constructor in C++11
String(const String& rhs):String(rhs.data_)
{
}
*/
~String()
{
delete[] data_;
}
/* Traditional:
String& operator=(const String& rhs)
{
String tmp(rhs);
swap(tmp);
return *this;
}
*/
String &operator=(String rhs)// yes, pass-by-value
{
swap(rhs);
return*this;
}
// C++ 11
String(String &&rhs): data_(rhs.data_)
{
rhs.data_ = nullptr;
}
String &operator=(String && rhs)
{
swap(rhs);
return*this;
}
// Accessors
size_t size() const
{
return strlen(data_);
}
const char * c_str() const
{
return data_;
}
void swap(String & rhs)
{
std::swap(data_, rhs.data_);
}
private:
char *data_;
};