猎豹移动(金山网络)2015校园招聘(c++project师)
生活随笔
收集整理的這篇文章主要介紹了
猎豹移动(金山网络)2015校园招聘(c++project师)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.已知類MyString的原型為:
class MyString{
public:MyString(const char *str=NULL);//普通構造函數
MyString(const MyString);//拷貝構造函數
~MyString(void);//析構函數
MyString&operator=(const MyString);//賦值構造函數
private:char *m_c_data;//用于保存字符串
};請編寫MyString的上述4個函數。
程序猿面試寶典p112
class MyString { public:MyString(const char *str=NULL);//普通構造函數MyString(const MyString &other);//拷貝構造函數~MyString(void);//析構函數MyString&operator=(const MyString &other);//賦值構造函數 private:char *m_data;//用于保存字符串 };MyString::MyString(const char *str)//構造函數 {if(str==NULL){m_data=new char[1];*m_data='\0';}else{int length=strlen(str);m_data=new char[length+1];strcpy(m_data,str);} }MyString::~MyString(void)//析構函數 {delete [] m_data;//因為m_data是內部數據類型,也能夠寫出delete m_data; }MyString::MyString(const MyString &other)//拷貝構造函數 {int length=strlen(other.m_data);m_data=new char[length+1];strcpy(m_data,other.m_data); }MyString&MyString::operator=(const MyString &other)//賦值函數 {if(this==&other)//檢查自賦值return *this; delete [] m_data;//釋放原有的內存資源int length=strlen(other.m_data);//分配新的內存資源,并復制內容m_data=new char[length+1];strcpy(m_data,other.m_data); return *this;//返回本對象的引用 }2.請將兩個數據序列合并成一個有序并無同樣元素的數據。 如s1[5]={23,14,62,57,24},s2[5]={14,19,10,14,25}
運行后輸出10,14,19,23,24,25,57,62
注:不能夠使用庫函數
#include<iostream> using namespace std; int main() {int s1[5]={23,14,62,57,24},s2[5]={14,19,10,14,25};int s3[10],i,j,k,t;int flag;s3[0]=s1[0];k=1;for(i=1;i<5;i++){flag=1;for(j=0;j<k;j++){if(s1[i]==s3[j]){flag=0;break;}}if(flag==1)s3[k++]=s1[i];}for(i=0;i<5;i++){flag=1;for(j=0;j<k;j++){if(s2[i]==s3[j]){flag=0;break;}}if(flag==1)s3[k++]=s2[i];}for(i=0;i<k-1;i++){for(j=0;j<k-1-i;j++){if(s3[j]>s3[j+1]){t=s3[j];s3[j]=s3[j+1];s3[j+1]=t;}}}for(i=0;i<k;i++){cout<<s3[i]<<" ";}return 0; }3.打印一個N*N的方陣。N為每邊字符的個數(3<N<20),要求最外層為“A”,第二層為“B”。從第三層起每層依次打印數字0,1,2,3,……樣例:當N=5。打印出以下的圖形
AAAAA
ABBBA
AB0BA
ABBBA
AAAAA
#include<cstring> #include<iostream> using namespace std; int main() {int N;int i,j,k,m;char a[20][20];cin>>N;for(i=0;i<(N+1)/2;i++){ if(i==0) {for(j=0;j<N;j++) a[j][i]=a[i][j]=a[j][N-i-1]=a[N-i-1][j]='A';}else if(i==1){for(j=1;j<N-i;j++) a[j][i]=a[i][j]=a[N-i-1][j]=a[j][N-i-1]='B';}else {for(j=i;j<N-i;j++) a[j][i]=a[i][j]=a[N-i-1][j]=a[j][N-i-1]=i-2+'0';}} for(i=0;i<N;i++){for(j=0;j<N;j++){cout<<a[i][j]<<" ";}cout<<endl;}return 0; }紙上敲代碼。都沒寫對~有的時候真是快崩潰,找不到工作的憂傷~誰能懂
總結
以上是生活随笔為你收集整理的猎豹移动(金山网络)2015校园招聘(c++project师)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 第一篇:python简介和
- 下一篇: s3c2440移植MQTT