c++练习题文档格式.docx
- 文档编号:21771924
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:29
- 大小:342.52KB
c++练习题文档格式.docx
《c++练习题文档格式.docx》由会员分享,可在线阅读,更多相关《c++练习题文档格式.docx(29页珍藏版)》请在冰豆网上搜索。
doublemsd(inta[],doublex)
doublesum1=0;
{
sum1+=(a[i]-x)*(a[i]-x);
}
returnsqrt(sum1/n);
【2】4.4.2
ctime>
inti,s,a[10];
计算机随机产生10个互不相同的两位整数,并输出其中的素数\n"
srand(int(time(0)));
a[0]=rand()%90+10;
for(i=1;
10;
A:
s=rand()%90+10;
intj;
for(j=0;
j<
i;
j++)
{if(s==a[j])break;
if(j==i)
a[i]=s;
else
gotoA;
计算机随机产生的10个数为:
\n"
for(i=0;
cout<
a[i]<
'
\t'
其中的素数有:
intp,j;
p=int(sqrt(double(a[i])));
for(j=2;
=p;
{
if(a[i]%j==0)
break;
}
if(j>
p)
【3】4.4.7
iomanip>
voidfun(inta[][20]);
inta[20][20];
输入矩阵的层数:
fun(a);
voidfun(inta[20][20])
inti,j,sum=0;
if(j<
i)
a[i][j]=i+1-j;
else
a[i][j]=1;
for(j=0;
setw(3)<
a[i][j];
新的"
n-2<
阶矩阵为:
n-2;
主对角线下元素之和为:
sum+=a[i][j];
sum<
/*注意:
voidfunc(int(*a)[10]);
//这样可以
voidfunc1(inta[5][10]);
//这样也可以
voidfunc2(inta[][]);
//这样不可以!
*/
【4】4.4.8
intprice[3],a[3][3]={{300,250,150},{200,240,200},{280,210,180}};
price[0]=3500;
price[1]=3300;
price[2]=3800;
3;
intsum=0;
for(intj=0;
sum+=a[i][j]*price[j];
第"
i+1<
百货公司的营业额为:
【5】4.4.9
voidfun(int[]);
inta[10]={32,6,4,9,11,22,3,7,8,5};
voidfun(int*x)
数组的各元素为:
x[i]<
'
intt=x[0],j=1;
for(inti=1;
if(x[i]<
t)
t=x[i];
j=i+1;
最小元素为:
t<
下标值为:
【6】4.4.10
voidfun(int[],int);
intn,a[10]={2,5,7,8,10,11,11,13,14,17};
原数组为:
{cout<
请输入一个2到17之间的整数:
fun(a,n);
调整后的数组为:
voidfun(intx[],intn)
9;
if(n>
=x[i]&
&
=x[i+1])
for(intj=9;
j>
=i+1;
j--)
{
x[j]=x[j-1];
}
x[i+1]=n;
if(x[9]!
=17)
break;
【7】4.4.5
voidfun(int[],int,int[],int);
//合并数组的函数
intpartition(intx[],intp,intr);
//快算排序用到的函数
voidQuick_sort(intx[],intp,intr);
voidshengcheng(intx[],intn);
intc[100000];
intn,m,*a,*b;
clock_tstart,finish;
a数组元素的个数:
shengcheng(a,n);
b数组元素的个数:
m;
b=newint[m];
shengcheng(b,m);
start=clock();
//执行合并函数的开始时间
fun(a,n,b,m);
finish=clock();
//结束时间
合并后的数组元素的序列:
(n+m);
c[i]<
\t"
if((i+1)%10==0)
n+m<
个数合并所用的时间:
(double)(finish-start)/CLK_TCK<
//计算所用时间
voidshengcheng(intx[],intn)
intp=0,r=n-1;
{x[i]=rand()%(10*n);
数组"
个元素排序后为:
Quick_sort(x,p,r);
//调用快排函数
voidfun(inta[],intn,intb[],intm)
inti,j=0,k=0,sum=n+m;
sum;
if(j==n&
k<
=m-1)//若有j(或k)大于n(或m),则以后的c[i]均为a[k](或a[j])的值
{c[i]=b[k];
k++;
if(k==m&
=n-1)
{c[i]=a[j];
j++;
if(j==n||k==m)
{continue;
}//跳出此次循环,执行下一步循环
if(a[j]<
b[k])
}
else
intpartition(inta[],intp,intr)
intpivotkey=a[p];
while(p<
r)
while(p<
r&
a[r]>
=pivotkey)
{r=r-1;
a[p]=a[r];
a[r]=pivotkey;
a[p]<
{p=p+1;
a[r]=a[p];
a[p]=pivotkey;
returnp;
voidQuick_sort(inta[],intp,intr)
intloc;
if(p<
loc=partition(a,p,r);
Quick_sort(a,p,loc-1);
Quick_sort(a,loc+1,r);
【8】4.4.11
int*a=NULL;
请输入数组长度:
{a[i]=rand()%100+1;
逆置前数组元素序列:
逆置后数组元素序列:
voidfun(inta[])
inttemp;
n/2;
{temp=a[i];
a[i]=a[n-i-1];
a[n-i-1]=temp;
【9、10】
intn,a[50][50];
请输入n:
for(intj=0;
{a[i][j]=n*i+j+1;
i++)//矩阵1
*(a[i]+j);
i++)//矩阵2
*(a[j]+i);
i++)//矩阵3
if(i%2==0)
cout<
*(a[i]+n-j-1);
//矩阵4
voidf1(int,int);
voidf2(int,int);
voidf3(int,int);
voidf4(int,int);
intn,i,j,a[10][10]={0};
输入行数n:
n+2;
if(i==0||i==n+1)
for(j=0;
a[i][j]=-1;
a[i][0]=-1;
a[i][n+1]=-1;
i=1;
j=1;
a[1][1]=1;
f1(i,j);
n+1;
for(j=1;
voidf1(ints,intt)
for(j=t+1;
if(a[s][j]==0)
a[s][j]=a[s][j-1]+1;
if(a[s+1][j-1]==0)
f2(s,j-1);
return;
voidf2(ints,intt)
for(i=s+1;
if(a[i][t]==0)
a[i][t]=a[i-1][t]+1;
break;
f3(i-1,t);
voidf3(ints,intt)
for(j=t-1;
=0;
a[s][j]=a[s][j+1]+1;
if(a[s-1][j+1]==0)
f4(s,j+1);
voidf4(ints,intt)
for(i=s-1;
i>
i--)
a[i][t]=a[i+1][t]+1;
f1(i+1,t);
intn,i,j,a[50][50];
{a[i][0]=i*(i+1)/2+1;
}//给矩阵的第一列赋值
for(j=1;
{a[n-1][j]=a[n-1][j-1]+n-j+1;
}//给矩阵的最后一行赋值
for(i=0;
if((i<
=n-2)&
=1)
a[i][j]=a[i+1][j-1]+1;
i++)//矩阵5
i++)//矩阵6
a[j][i];
inttemp,p;
for(i=2;
i+=2)
p=i;
j=0;
A:
temp=a[p][j];
a[p][j]=a[j][p];
a[j][p]=temp;
p--;
if(j<
gotoA;
for(j=2;
j+=2)
p=j;
i=n-1;
B:
temp=a[i][p];
a[i][p]=a[p][i];
a[p][i]=temp;
p++;
i--;
if(i>
gotoB;
i++)//矩阵7
【11】
voidshengcheng(chara[],charb[],int);
voidyidong(chara[],charb[],int);
chara[100],b[100];
intn;
游戏的目的是用最少的步数将下图中白子和黑子的位置进行交换。
游戏的规则是:
"
(1)一次只能移动一个棋子;
(2)棋子可以向空格中移动,"
也可以跳过一个对方的棋子进入空格,但不能向后跳,也不能跳过两个子。
请输入一种棋子的个数n="
shengcheng(a,b,n);
yidong(a,b,n);
voidshengcheng(chara[],charb[],intn)
inti,j,p,sum=0,c[100]={0};
2*n;
p=rand()%(2*n);
{if(p==c[j])break;
=i)c[i]=p;
elsegotoA;
if(sum<
n)
{a[p]='
+'
b[p]='
-'
sum++;
a[2*n]='
0'
b[2*n]='
原棋子的排列为:
=2*n;
voidyidong(chara[],charb[],intn)
inti,j,k,m,sum=0,temp,work;
for(j=2*n;
=1;
i=j;
work=0,m=0;
while(a[j]!
=b[j-1])
if(j==1)
temp=a[1];
a[1]=a[0];
a[0]=temp;
for(k=0;
k++)
{cout<
a[k]<
if(i<
a[1]=a[2];
a[2]=temp;
i++;
while(a[i-1]!
=a[i-2]&
a[i]!
a[j-1]!
if(work==0)
temp=a[i-2];
a[i-2]=a[i];
a[i]=temp;
m++;
for(k=0;
{cout<
cout<
if(a[j]==b[j-1])break;
else{i-=2;
work=1;
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
if(m==4){work=0;
m=0;
while(a[i-1]==a[i-2]||a[i-1]=='
||a[j-1]==b[j-1])
if(a[j]==b[j-1])break;
if(a[i-1]=='
){i-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 练习题
![提示](https://static.bdocx.com/images/bang_tan.gif)