南通大学C++期末复习资料含部分课后答案Word格式文档下载.docx
- 文档编号:19822042
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:73
- 大小:31.52KB
南通大学C++期末复习资料含部分课后答案Word格式文档下载.docx
《南通大学C++期末复习资料含部分课后答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《南通大学C++期末复习资料含部分课后答案Word格式文档下载.docx(73页珍藏版)》请在冰豆网上搜索。
t[i]<
人"
return0;
【输入学号、成绩,成绩超过3.5的则输出】
{inti,n,a[100];
if(s[i]>
3.5)a[i]=1;
if(a[i]==1)
{
cout<
s[i-1]<
}
【输入矩阵找出最大最小值和所在位置】
{
inti,j,b[4];
floata[4][4],max,min;
=3;
for(j=0;
j<
j++)
cin>
a[i][j];
}
max=a[0][0];
min=a[0][0];
4;
if(max<
a[i][j])
{
max=a[i][j];
b[0]=i;
b[1]=j;
}
if(min>
a[i][j])
min=a[i][j];
b[2]=i;
b[3]=j;
}
cout<
最大是"
max<
在"
b[0]+1<
行"
b[1]+1<
列"
最小是"
min<
b[2]+1<
b[3]+1<
【用指针交换两个实数】
voidswap(float*a,float*b)
floatt;
t=*a;
*a=*b;
*b=t;
floata,b;
cin>
a>
b;
swap(&
a,&
b);
//swap(a,b);
a<
'
'
【输入6个数字,输出其组合出的最大数字】
{intn,a[6],i,j,t;
n;
6;
a[i]=n%10;
n=n/10;
}
6-i;
if(a[j]<
a[j+1])
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
cout<
a[0]<
a[1]<
a[2]<
a[3]<
a[4]<
a[5];
【求两个集合的并集】
{inti,j=0,n,a[50],b[50],c[100];
50;
a[i];
if(a[i]<
c[i]=a[i];
for(j=0;
b[j];
if(b[j]<
b[j]>
0;
{for(i=0;
)
if(b[j]==a[i]){break;
else{i++;
}//相等就跳出,换下一个
}b[j]进入
if(i>
n)
{c[n+1]=b[j];
n++;
}
n+1;
c[i]<
"
;
return0;
【在10个从小到大的数字中插入一个数字并输出】
#include<
iostream>
usingnamespacestd;
voidmax(floatn,floata[10],floatb[11])
inti,t;
=9;
if(n<
=a[i])break;
t=i;
=t-1;
b[i]=a[i];
b[t]=n;
for(;
t<
=11;
t++)
b[t+1]=a[t];
Floatm,A[10]={1,2,3,4,5,6,7,8,9,10},B[11];
inti;
m;
10;
A[i]<
max(m,A,B);
=10;
B[i]<
【比较两个字符串的大小】
intmystrcmp(chara[],charb[])
a[i]!
='
\0'
b[i]!
if(a[i]!
=b[i])break;
if(a[i]>
b[i])return1;
elseif(a[i]<
b[i])return-1;
elsereturn0;
charA[100],B[100];
cin.getline(A,100);
cin.getline(B,100);
if(mystrcmp(A,B)>
0)cout<
b"
elseif(mystrcmp(A,B)<
elsecout<
sa=b"
【输入三个数,用指针排序】
voidpanduan(float*x,float*y)
if(*x<
*y)
floatt=*x;
*x=*y;
*y=t;
voidsort3(float*a,float*b,float*c)
panduan(a,b);
panduan(a,c);
panduan(b,c);
floata,b,c;
b>
c;
sort3(&
b,&
c);
b<
【输入n个数字,实现排序】
voidsortn(float*a,intn)
for(inti=0;
n-1;
for(intj=i+1;
if(a[i]>
a[j])//if(*(a+i)>
*(a+j))
floatt=a[i];
a[i]=a[j];
a[j]=t;
intn,i;
typenubmers"
float*a=newfloat[n];
if(a==0)
error!
exit(3);
i++)cin>
sortn(a,n);
a[i]<
【直接用指针名表示字符串,并输出指针】
charc[]="
abcdefg"
*p=c;
//*p=&
c[0]
p;
//输出制作时,因为是char类型,所以
//输出所指向的字符串
【用指针来链接两个字符串数组】
voidsAppend(char*a,char*b)
inti,n;
20;
i++,a++)
if(*a=='
)break;
*a++=*b++;
chara[20],b[10];
cin.getline(a,20);
cin.getline(b,20);
sAppend(a,b);
【其函数也可以写成这样:
】
if(a[i]=='
n=i;
i++,n++)
a[n]=b[i];
【输入任意实数,实现升序排列。
输入一个插入一个】
intInsert_Sort(float*p,intn,floatx)
inti,j;
for(j=i+1;
if(*(p+i)>
*(p+j))
t=p[i];
p[i]=p[j];
p[j]=t;
cin>
//初始化动态内存数组
=1)Insert_Sort(a,i,a[i]);
【用指针“数组”排列5个数,只交换指针】
float*t,a[5];
5;
float*p[]={a,a+1,a+2,a+3,a+4};
for(j=1;
for(i=0;
5-j;
if(*p[i]<
*p[i+1])
p[i]=p[i+1];
p[i+1]=t;
排序后"
*p[i]<
float*sp=a;
//这种排序不改变原始数组
【输入字符串个数→输入字符串,用指针排序】
#include<
cstring>
intshuru(intn)
char**p;
p=newchar*[n];
if(!
p)
return1;
{
charc[15];
:
//cin.getline(c,15);
p[i]=newchar[strlen(c)+1];
if(!
p[i])
else
{strcpy(p[i],c);
voidpaixu(char*sp[],intn);
paixu(p,n);
delete[]p;
voidpaixu(char*sp[],intn)
{intk,i,j;
char*p;
for(k=i,j=i+1;
if(strcmp(sp[k],sp[j])>
0)k=j;
if(k!
=i)
p=sp[k],sp[k]=sp[i],sp[i]=p;
sp[i]<
intmain(void)
{intn;
输入字符串个数:
shuru(n);
return0;
【用指针找数组中最大值,输出行列号】
voidInput(inta[][2],intn)
{
Inputa[2][2]:
int*p=&
a[0][0];
*p;
p++;
}cout<
floatAverage(int*p,intn)
floatavg=0;
i++,p++)
avg+=*p;
}
avg=avg/n;
returnavg;
intMax(int(*p)[2],intn,int*h,int*l)
intbig=0;
for(intj=0;
if(p[i][j]>
big)
big=p[i][j];
*h=i;
*l=j;
}
returnbig;
inti,j,n=2,a[2][2],*p;
Input(a,n);
输入的数组:
a[i][j]<
//-------------------------
p=&
a[i][0];
avg+=Average(p,n);
平均值:
avg<
//-------------------------
int(*sp)[2]=a;
inth,l,big;
big=Max(sp,n,&
h,&
l);
最大值:
big<
行号:
h+1
列号:
l+1<
【用“指向函数的指针”计算方程k*k*k-6*k-1的值】
#include<
cmath>
iomanip>
usingnamespacestd;
doublefx(doublek)
{returnk*k*k-6*k-1;
doubleroot(double(*f)(double),doublea,doubleb)
doublek=(a+b)/2;
while(fabs(f(k))>
=1e-9)
if(f(a)*f(k)<
0)b=k;
elsea=k;
k=(a+b)/2;
}returnk;
{doublea=1,b=3;
fixed<
setprecision(8)<
root(fx,a,b)<
【输入任意组字符串,用指针排序,一次动态内存】
voidpaixu(charsp[][15],intn)
intk,i,j;
charp[15];
strcpy(p,sp[i]);
strcpy(sp[i],sp[k]);
strcpy(sp[k],p);
typestring:
char(*a)[15]=newchar[n][15];
exit(3);
i++){cin>
paixu(a,n);
delete[]a;
【冒泡排序】
voidbubblesort(floata[],intsize)
for(inti=1;
size;
size-1;
if(a[j]>
t=a[j],a[j]=a[j+1],a[j+1]=t;
constintn=6;
floatscore[n]={13.89,13.69,12.2,43.2,56.4,5};
bubblesort(score,n);
i++)cout<
score[i]<
【定义并输出二维数组】
{//非完整定义,自动补零
inta[2][3]={{1,2}};
2;
3;
//120000
【二维数组对应相应的函数,并用函数输出】
voidsort(inta[][3])//必须用a[][3]来接受,
//[]and[3]不可少
inta[2][3]={1,2,3,4,5};
sort(a);
【用库函数进行字符串复制】
chars2[]="
abc"
s1[]="
basketball"
strncpy(s1,s2,3);
//3的话会输出abcketball,
//4的话只输出abc
s1;
//因为输出到\0就截止了
【指针对数组,用指针输出】
inta[5]={10,20,30,40,50},*p2,sum=0;
for(p2=a;
*p2<
=a[4];
p2++)
//for(p2=&
a[0];
p2<
=&
a[4];
\t'
【直接用指针名表示
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 南通 大学 C+ 期末 复习资料 部分 课后 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)