C++程序设计习题与实验教程参考答案习题部分文档格式.docx

上传人:b****5 文档编号:21163832 上传时间:2023-01-28 格式:DOCX 页数:61 大小:36.59KB
下载 相关 举报
C++程序设计习题与实验教程参考答案习题部分文档格式.docx_第1页
第1页 / 共61页
C++程序设计习题与实验教程参考答案习题部分文档格式.docx_第2页
第2页 / 共61页
C++程序设计习题与实验教程参考答案习题部分文档格式.docx_第3页
第3页 / 共61页
C++程序设计习题与实验教程参考答案习题部分文档格式.docx_第4页
第4页 / 共61页
C++程序设计习题与实验教程参考答案习题部分文档格式.docx_第5页
第5页 / 共61页
点击查看更多>>
下载资源
资源描述

C++程序设计习题与实验教程参考答案习题部分文档格式.docx

《C++程序设计习题与实验教程参考答案习题部分文档格式.docx》由会员分享,可在线阅读,更多相关《C++程序设计习题与实验教程参考答案习题部分文档格式.docx(61页珍藏版)》请在冰豆网上搜索。

C++程序设计习题与实验教程参考答案习题部分文档格式.docx

6.x>

5&

&

!

(x%2)或x>

x%2!

=0

7.true或1

8.b%a==0&

c%a==0

9.(float)x或float(x)

10.5.4

11.①1②2

12.①4②5

a和b的值分别为①、②。

13.①20②32③32④16⑤20

14.①A②B

15.①3②1

16.9.0

17.13

18.4

1.交换两个整数的位置

intx,y,t;

cin>

>

x>

y;

x<

’\t’<

y<

t=x;

x=y;

y=t;

交换后的两个数为:

x<

2.求三角形面积

#include<

math.h>

voidmain(void)

{

inta,b,c;

doubles,area;

输入三角形三边长a,b,c:

a>

b>

c;

s=(a+b+c)/2.0;

area=sqrt(s*(s-a)*(s-b)*(s-c));

三角形面积为:

area<

第3章流程控制语句

19

20

21

22

23

24

25

26

27

28

29

30

3.A选项改为“if(x>

3)if(y>

5)z=6;

elsez=7”

7.其中“合法的”改为“不合法的”

1.switch

2.字符型

3.4

4.①5②3③y=0

5.1,**

6.5,y=-8

7.2,3,y=5

8.3,0

9.4,0,B

10.1,2,3

11.5,0,D

12.0,5,50

13.①1②5

14.***

15.①@@###②###

16.0123401234

17.3571113

18.3

19.①y1*y2>

0②x1=x,y1=3*x1*x1*x1-5*x1+13③x2=x

20.①n<

999②b=n/10%10③(a+b+c)%5==0

“各个数位的数字之和等于5的整数”改为“各位数字之和是5的倍数的整数”

21.①12②15

22.(100-cock-hen)%3==0)

for(cock=0;

cock<

=20;

cock++)

for(hen=0;

hen<

=33;

hen++)

23.①n++②r>

eps

24.①isprime=1②j>

25.①intr=1②break

26.①x<

=200②x%2==0

27.①c!

='

'

②c>

A'

c<

Z'

||c>

a'

z'

③c=cin.get()

28.①s=0②t+=i

“t=1”改为“t=0”

29.①s2=1②n③s1+=n%10

30.①9②min>

s③n/=10

1.从大到小排列3个整数

inta,b,c,d;

if(a<

b){d=a;

a=b;

b=d;

}

c){d=a;

a=c;

c=d;

if(b<

c){d=b;

b=c;

a<

'

\t'

b<

\n'

;

2.100~300满足条件的数

intk=0;

for(inti=101;

i<

300;

i+=2)

if((i*i)%6==3){

cout<

k++;

if(k%5==0)cout<

}

3.逆序显示16进制数

inta,k,n;

a;

k=a;

while(k){

n=k%16;

k/=16;

switch(n){

case10:

cout<

break;

case11:

B'

case12:

C'

case13:

D'

case14:

E'

case15:

F'

default:

n;

第4章数组

15.其中“s3[20]=”abc””改为“s3[20]=”abc””(字符c后有一个空格)

1.①3②24

2.首地址

3.①i②i+j③i/7④i%7⑤i*7+j

4.①7②8③7④50

5.①字符(char)型②cin.getline(str,80);

6.123456

7.FMBS

“for(inti=0;

4;

i++,p++)cout<

*p[i];

”改为“for(inti=0;

i++)cout<

*s[i];

8.①a:

5d:

1e:

4f:

1g:

1

②i:

1l:

1m:

1o:

3r:

③s:

2u:

1y:

9.①Itis4:

30pm.②I③430

10.①<

100:

3②<

200:

2③<

300:

5④<

400:

2⑤<

500:

3

11.D80

12.①500②800③900

13.①26②20

14.①s2+31②n③t%2+'

0'

④!

strcmp(s1,p2)

15.①num[i++]②s=0③flag=1④j<

=k

16.①i<

len1②j>

=len2③b[k]=b[k-1]④++i%5==0

17.①pa>

=a&

pb>

=b②j+k+carry③ps++④p<

ps

18.①t[n++]②continue③t[k+1]=t[k]④n++

19.①*p1②*p1++③p1++,p2++④*p1='

\0'

20.①n/10%10②i==j||j==k||i==k③i*i==n④(i+1)%5==0

21.①char*p3②*p1>

*p1<

||*p1>

③p2++④char(*p4)[20]

22.①&

a[i]②*p[k]<

*p[j]③int*t④*p[i]

1.交换一维数组中的最大元素与最小元素的位置

voidmain(void)

inta[6]={18,16,19,15,11,8};

inti,max,min,j,k,t;

原数组为:

\n"

for(i=0;

6;

i++)

cout<

a[i]<

for(j=k=0,max=min=a[0],i=1;

{

if(max<

a[i])max=a[i],j=i;

if(min>

a[i])min=a[i],k=i;

t=a[j],a[j]=a[k],a[k]=t;

交换后的数组为:

2.二维数组右移一列

#defineROW3

#defineCOL4

voidmain(void)

inta[ROW][COL]={1,2,3,4,5,6,7,8,9,10,11,12},i,j,t;

移动前的数组为:

ROW;

for(j=0;

j<

COL;

j++)

a[i][j]<

t=a[i][COL-1];

for(j=COL-1;

j>

0;

j--)

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

a[i][j]=t;

//a[i][0]=t;

移动后的数组为:

3.统计字符串中种类字符的个数

charstr[50],*p=str;

intcon=0,num=0,eng=0,oth=0;

请输入一个字符串:

cin.getline(str,50);

while(*p)

if(*p<

32)con++;

elseif(*p>

*p<

9'

)num++;

||*p>

)eng++;

elseoth++;

p++;

str<

中有控制字符"

con<

个,数字字符"

num<

个,英文字母"

eng<

个,其它字符"

oth<

个。

4.一维数组插入有序二维数组

iomanip.h>

#defineROW4

#defineCOL3

inta[ROW][COL]={{1,3,2},{4,6,8},{8,9,10}},b[COL]={2,7,1};

inti,j;

插入前的数组为:

ROW-1;

for(intj=0;

setw(5)<

a[i][j];

}

for(j=ROW-1;

if(a[j-1][i]>

b[i])

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

elsebreak;

a[j][i]=b[i];

插入后的数组为:

i++){

5.二维数组正数和负数的均值

intb[3][5]={{1,12,3,0,-2},{7,-12,-13,18},{-20,0,9,-5,7}};

floatave1=0,ave2=0;

inti,j,count1=0,count2=0,(*p)[5]=b;

3;

5;

{

if(p[i][j]>

0)

{

ave1+=b[i][j];

count1++;

}

if(*(*(p+i)+j)<

ave2+=b[i][j];

count2++;

正数的平均值为"

ave1/count1<

,负数的平均值为"

ave2/count2<

6.查找一维数组中的元素

floata[10]={3,5,8,1,7,9,10,2,6,4};

floatk,*p=a;

输入要查找的元素:

k;

inti,index=-1;

10;

if(*p==k)

index=i;

break;

if(index==-1)cout<

k<

没有出现在数组中。

elsecout<

是数组中下标为"

index<

的元素。

7.删除字符串中的指定字符

string.h>

charstring[100],ch,*p=string;

请输入字符串:

cin.getline(p,100);

请输入要删除的字符:

cin.get(ch);

if(*p==ch)

strcpy(p,p+1);

elsep++;

删除字符"

ch<

后的字符串为:

string<

第5章函数与编译预处理

15.D选项“和类型均不同”改为“或类型不同”

1.①值传递②地址传递③引用传递

2.inline

3.①文件包含②宏定义③条件编译

4.①形参名②函数先使用后定义

5.①形式参数②实际参数③参数类型④参数个数⑤参数顺序

6.①void②int

7.①静态存储区域②0

8.①void(*fp)(char*s,inta[])②fp=f;

或(*fp)=f;

9.①sum1=5②sum2=-15

10.①s3=2.8②s1=0,s2=4,s3=2③50

11.①11②1331③31

12.①0101②010111③0

13.①12345②32145

14.①-414②-1814③-3214

15.①x=5,y=3②y=10

16.①15-1121410②267143320

17.①1a②3b③5c

18.①i+1②k=j③str[k]=str[k+1]④del(s)

19.①i++②a[j]=x③add_sort(b,x,n)④n

20.①*sum②n/=10③fun(i,&

s)④i%11==0&

s==13

21.①k=j②a[i]%2!

=0③count++④on_off(a,LAMP,CHILD)

22.①str[i]②substr[k+1]=='

③k++④f(s1,s2)

1.字符排序

voidsort_char(char*str)

char*p1,*p2,*q;

charc;

for(p1=str;

*(p1+1)!

p1++){

q=p1;

for(p2=p1+1;

*p2!

p2++)

if(*p2<

*q)q=p2;

if(q!

=p1){

c=*p1;

*p1=*q;

*q=c;

chars[]="

gabhdecf"

原字符串为:

s<

sort_char(s);

排序后的字符串为:

2.互换前后奇数位置的元素

voidfun(char*str)

if(strlen(str)<

3)return;

if(strlen(str)%2==0)j=strlen(str)-1;

elsej=strlen(str);

for(i=1;

j;

i+=2,j-=2){

c=str[i];

str[i]=str[j];

str[j]=c;

ggoiromndno"

fun(s);

交换后的字符串为:

3.查找自反数

intfun(intn)

inta[50];

inti=0,k=n;

a[i]=k%10;

k/=10;

i++;

i--;

for(intj=0;

i;

j++,i--)

if(a[j]!

=a[i])break;

if(j>

=i)return1;

elsereturn0;

intbase,num;

请输入基数base和需要查找的自反数的个数num:

base>

num;

intn=base,count=0;

while(count<

num){

if(fun(n)){

n<

count++;

if(count%5==0)cout<

n++;

第6章结构体与简单链表

11.其中“不正确”改为“有语法错误”

1.结构体变量各成员所占内存长度之和

2.①typedefnodeNODE;

②NODEs1,s2;

3.delete

4.动态

5.new或delete

6.p->

next->

next==NULL

7.①p==head②p->

③p0->

next=p->

next④deletep

⑤p0->

next=p1⑥p1->

next=p

8.2012

9.13431

10.gh

11.①a[i].con=0②a[i].con++③continue

12.①h1->

data>

=h2->

data②h1!

=NULL&

h2!

=NULL

③p->

next=h1④h=merge(h1,h2)

13.①head->

next=p1②returnhead

③head->

next=p2④p2=p2->

next

14.①newNode②p->

next=top

③top->

next④deletep

15.①p②returnh

③p=newND④p->

next=h

16.①node*h②h2->

③temp④h2

17.①p=p->

next②p1->

next=p

③h=h->

next④p->

next=h1

18.①p->

next=head②p1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1