900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > C/C++程序员面试宝典-2

C/C++程序员面试宝典-2

时间:2022-11-09 14:34:48

相关推荐

C/C++程序员面试宝典-2

9. 关系数据库的范式

10. 数据库操作中的事务

事务的4个特性:

11. 数字矩阵的生成:

对应的代码如下:

#include<iostream>

#include<algorithm>

#include<iomanip>

#defineprint_arr2d(arr,N){for(inti=0;i<N;i++){\

for(intj=0;j<N;j++)\

cout<<setw(3)<<arr[i][j];\

cout<<endl;\

}}

usingnamespacestd;

/*

1291025

4381124

5671223

1615141322

171819

*/

voidmat_1(){

constintN=5;

intarr[N][N];

intm=1;

for(inti=0;i<N;i++){

if(i&0x1){

for(intj=0;j<=i;j++)

arr[j][i]=m++;

for(intj=i-1;j>=0;j--)

arr[i][j]=m++;

}

else{

for(intj=0;j<=i;j++)

arr[i][j]=m++;

for(intj=i-1;j>=0;j--)

arr[j][i]=m++;

}

}

print_arr2d(arr,N);

}

/*

126715

3581416

49131722

1012182123

1119202425

*/

voidmat_2(){

constintN=5;

inta[N][N];

intm=1;

intK=0;

for(inti=0;i<N;i++,K++){

for(intj=0;j<=i;j++)

if(K%2==0)

a[K-j][j]=m++;

else

a[j][K-j]=m++;

}

for(inti=1;i<N;i++,K++){

for(intj=i;j<N;j++)

if(K%2==0)

a[K-j][j]=m++;

else

a[j][K-j]=m++;

}

print_arr2d(a,N);

}

/*

12345

161718196

152425207

142322218

131211109

*/

voidmat_3(){

constintN=6;

inta[N][N]={0};

intm=1;

intK=N/2;

if(N%2!=0)

a[K][K]=N*N;

for(inti=0;i<K;i++){

for(intj=i;j<=N-1-i;j++)

a[i][j]=m++;

print_arr2d(a,N);

cout<<"================="<<endl;

for(intj=i+1;j<=N-1-i;j++)

a[j][N-1-i]=m++;

print_arr2d(a,N);

cout<<"================="<<endl;

for(intj=N-2-i;j>=i;j--)

a[N-1-i][j]=m++;

print_arr2d(a,N);

cout<<"================="<<endl;

for(intj=N-2-i;j>=i+1;j--)

a[j][i]=m++;

print_arr2d(a,N);

cout<<"================="<<endl;

}

print_arr2d(a,N);

}

/*

1312111025

1432924

1541823

1656722

171819

*/

voidmat_4(){

constintN=6;

inta[N][N]={0};

intm=N*N;

intK=N/2;

if(N%2!=0)

a[K][K]=1;

for(inti=0;i<K;i++){

for(intj=i;j<=N-1-i;j++)

a[j][N-1-i]=m--;

for(intj=N-2-i;j>=i;j--)

a[N-1-i][j]=m--;

for(intj=N-2-i;j>=i;j--)

a[j][i]=m--;

for(intj=i+1;j<=N-2-i;j++)

a[i][j]=m--;

}

print_arr2d(a,N);

}

intmain(){

mat_4();

}

12. 大数乘法问题:

#include<string>

#include<iostream>

usingnamespacestd;

stringbig_multi(conststring&x,

conststring&y){

intszx=x.size();

intszy=y.size();

int*C=newint[szx+szy+1]();

for(inti=szx-1,k=0;i>=0;i--,k++){

intcarry=0;

intm=k;

for(intj=szy-1;j>=0;j--,m++){

intval=(x[i]-'0')*(y[j]-'0')+carry+C[m];

C[m]=val%10;

carry=val/10;

}

if(carry!=0)

C[m]=carry;

}

stringz;

inti=szx+szy;

while(C[i]==0)

i--;

for(;i>=0;i--)

z+=(char)(C[i]+'0');

deleteC;

returnz;

}

intmain(){

inta=78,b=42;

stringx="78",y="42";

stringz=big_multi(x,y);

cout<<z<<""<<a*b<<endl;

}

13. 递归的方法将两个有序链表进行合并

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。