CC++程序设计教程龚沛曾课后习题答案全集Word文档格式.docx
- 文档编号:17775976
- 上传时间:2022-12-10
- 格式:DOCX
- 页数:21
- 大小:21.22KB
CC++程序设计教程龚沛曾课后习题答案全集Word文档格式.docx
《CC++程序设计教程龚沛曾课后习题答案全集Word文档格式.docx》由会员分享,可在线阅读,更多相关《CC++程序设计教程龚沛曾课后习题答案全集Word文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
6、d>
d<
=100&
d%2==0
7、x%5==0||y%5==08、n%k==0?
n/k:
n/k+1
四、
1、略
.
2、主要语句:
x%2==0?
cout<
<
"
偶数"
:
基数"
3、主要语句:
x/%10<
x/10%10<
x/100;
4、主要语句:
year%400==0||year%4==0&
year%100!
=0?
闰年"
非闰年"
;
5、主要语句:
y=ln(x*x+3)/ln(10)+3.14/2*cos(40*3.14/180);
******************************
第三章一、
1.C2.D3.D(该答案后还应附“其他值”)4.C5.B6.C7.A8.C9.B
(1)输入两个正整数给m和n。
(2)20
(3)s=288(4)AB20ega5
(5)*
**
***
(1)c=='
)'
count==0count>
0count
(2)cin>
>
m>
n
m=m-nn=n-m
(3)n=m
n=n/5m=m+5
1、
#include"
iostream.h"
#include"
math.h"
voidmain()
{floatx,y;
inputx:
endl;
cin>
x;
if(x<
5)
y=fabs(x);
elseif(x<
20)
y=3*x*x-2*x+1;
else
y=x/5;
cout<
x="
x<
y="
}
2、
{
floats,p,t,w;
inputs:
s;
switch(int(s)/1000)
{case0:
p=0;
break;
case1:
p=0.05;
case2:
p=0.08;
case3:
case4:
p=0.1;
default:
p=0.15;
t=s*p;
w=s-t;
纳税款="
t<
实得工资="
w<
3、
{intm,count=0;
for(m=100;
m<
1000;
m++)
{if(m%10+m/10%10+m/100==5)
count++;
count="
count<
4、
{intm,n;
for(m=0;
=30;
m++)for(n=0;
n<
n++)
if(m*2+n*4==90&
m+n==30)
鸡:
兔:
5、
{floate=1,t=1;
intn;
for(n=1;
1/t>
1e-6;
{t=t*n;
e=e+1/t;
e="
e<
6、
{intx,y;
for(x=1;
=100;
x++)
for(y=1;
y++)if(x*x+2*x==y*y*y)
7、
stdio.h"
{charch;
while((ch=getchar())!
='
.'
)if(ch=='
'
)
ch;
8、
{intm,k1,k2;
for(m=0;
=1000;
{k1=sqrt(m+100);
k2=sqrt(m+100+168);
if(k1*k1==m+100&
k2*k2==m+100+168)
是满足条件的数"
9、
二分法的步骤为等分区间[x1,x2]成[x1,x]和[x,x2],其中,若f(x)与f(x1)同号,则取[x,x2]作为新的区间,否则取[x1,x]作为新的区间,
依次类推,当新区间的长度或f(x)的绝对值小于eps时,x就作为所求的实根。
{floatx1=0,x2=10,x,y1,y2,y,eps=1e-6;
do{x=(x1+x2)/2;
y1=pow(x1,9)-4*pow(x1,5)-5*pow(x1,3)-270000;
y=pow(x,9)-4*pow(x,5)-5*pow(x,3)-270000;
if(y1*y>
0)
x1=x;
x2=x;
}while(fabs(x2-x1)>
eps);
第四章一、
1、C2、A、D3、A、B、C4、D5、C6、D7、A8、B
1、678904321
2、144
3、m-n=14
iomanip.h"
{0,1}
x[i]=x[i-1]+x[i-2]setw(5)<
x[i]
rand()%100+1j<
a[i]/2"
A("
i<
)"
b[m]=0n<
m+4b[m]=b[m]/4
gets(ch1)gets(ch2)
*s1==*s2
r=0
j=k=l=0j<
M&
k<
Nc[l]=a[j]
c[l++]=b[k++]k<
N
j<
M
1.
(1)
stdlib.h"
{inta[4][4],b[4][4],c[4][4],i,j;
for(i=0;
4;
i++)
for(j=0;
j++)
a[i][j]=rand()%41+30;
for(i=0;
b[i][j]=rand()%35+101;
矩阵A的内容如下:
\n"
{for(j=0;
a[i][j]<
'
矩阵B的内容如下:
b[i][j]<
c[i][j]=a[i][j]+b[i][j];
矩阵C的内容如下:
c[i][j]<
(2)
{inta[4][4],t,i,j;
i;
{t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
转置后矩阵A的内容如下:
(3)
{inta[4][4],b[4][4],c[4][4],i,j,max,imax,jmax;
max=c[0][0];
if(c[i][j]>
max)
{max=c[i][j];
imax=i;
jmax=j;
max=c["
imax<
]["
jmax<
]="
max<
(4)
{inta[4][4],b[4][4],i,j;
矩阵A的主对角线以下元素内容如下:
=i;
矩阵B的主对角线以上元素内容如下:
{for(j=i;
(5)
{inta[4][4],i,j;
{intt=a[0][j];
a[0][j]=a[2][j];
a[2][j]=t;
}cout<
改变后矩阵A的内容如下:
(6)
{inta[4][4],i,j,s=0;
if(i==j||i+j==3)
s=s+a[i][j];
对角线元素之和为:
"
s<
第五章习题一、选择题
1.下列叙述错误的是A。
(A)主函数中定义的变量在整个程序中都是有效的。
(B)复合语句中定义的变量只在该复合语句中有效。
(C)其它函数中定义的变量在主函数中不能使用。
(D)形式参数是局部变量。
2.若函数的形参为一维数组,则下列说法中错误的是
(A)形参数组可以不指定大小。
(B)调用函数时的对应实参必须是数组名。
B、C。
(C)调用函数时,系统会为形参数组分配存储单元。
(D)函数中对形参的修改将会影响实参值。
3.若函数的类型和return语句中的表达式的类型不一致,则
(A)编译时出错。
(B)运行时出现不确定结果。
D。
(C)不会出错,且返回值的类型以return语句中表达式的类型为准。
(D)不会出错,且返回值的类型以函数类型为准。
4.在函数调用语句f(g(x,y),z=x+y,(x,y));
中,实参的个数是A。
(A)3(B)4(C)5(D)7
5.以下关于定义重载函数的要求中,错误的是
(A)要求参数个数不同。
(B)要求至少有一个参数类型不同。
(C)要求参数个数相同时,参数类型不同。
(D)要求函数的返回值不同。
6.下面的函数定义正确的是D。
(A)floatf(floatx;
floaty)(B)floatf(floatx,y)
{returnx*y;
}{returnx*y;
(C)floatf(x,y)(D)floatf(intx,inty)
{intx,y;
{returnx*y;
returnx*y;
7.下面函数头的定义格式正确的是C。
(A)voidsort(inta[n],intn)(B)voidsort(inta[][],intn)
(C)voidsort(inta[],intn)(D)voidsort(inta[],n)
8.以下几种模板函数的定义错误的是
(A)template<
classT>
Tfun1(Ta,intb)
{}
(C)template<
voidfun1(inta,intb)
{Ti;
}
C。
9.下面4个程序中输出结果是125的有C个。
(1).#include"
voidcube(intx)
{x=x*x*x;
}voidmain()
intx=5;
cube(x);
(3).#include"
intcube(intx)
return(x);
intx=cube(5);
//将x改为5cout<
(A)1(B)2(C)3(D)4
10.下面函数说明正确的是C。
(A)voidf1(inta=3,intb,intc);
(B)voidf2inta,intb=3,intc);
(C)voidf3(inta,intb,intc=3);
(D)voidf4(inta,intb,int3);
11.设函数m()的说明形式为voidm(int,int*);
利用函数m()对数5和整数j作函数m()定义
的计算,正确的调用形式为C。
(A)m(&
5,&
j)(B)m(5,j)(C)m(5,&
j)(D)m(&
5,j)
12.设函数的说明为:
intfun(inta[],int&
x);
则下面调用该函数正确的是
(A)fun(a,n);
(B)x=fun(a,n);
(C)fun(a[10],n);
(D)x=fun(a[],n);
二、写运行结果
三.程序填空
1.【程序说明】分段函数为
B。
【程序段】
floaty(floatx)
{if(x<
=0)
return(x*x-x+1);
elsereturnx*x*x+x+3;
2.【程序说明】
函数backmove()是把字符指针x所指长度为n的字符串后移动m个位置,移出的字符移到串首。
m、n为非负整数。
如“abcdefghij”,后移动3个位置,成“hijabcdefg”。
voidbackmove(char*x,intn,intm)
inti,j;
charw;
m;
{w=*(x+n-1);
i<
n-1;
i++)*(x+n-1-i)=*(x+n-2-i);
*x=w;
3.【程序说明】
函数index()为查找字符串sub是否是字符串st的子串。
若是,返回sub在st中首次出现的下标,否则返回-1。
字符串sub和st非空。
如sub:
cd"
,st:
abcdefcd"
,返回2。
【程序】
#include“iostream.h”
#include<
stdio.h>
{chars1[80],s2[80];
intindex(char[],char[]);
gets(s1);
gets(s2);
if(index(s1,s2))
子串在字符串中首次出现的下标:
index(s1,s2);
找不到"
intindex(charst[],charsub[])
{inti,j,k;
st[i]!
\0'
{for(j=i,k=0;
sub[k]!
='
st[j]==sub[k];
k++,j++);
if(sub[k]=='
)return(i);
return(0);
4.【程序说明】
函数root为用二分法求方程f(x)=0在[x1,x2]的实根,精度为eps。
二分法求根的基本思想为
f(x)在区间[a,b]上连续,f(a)与f(b)异号,区间中点c=(a+b)/2的f(c)符号和f(a)符号确定c代替a或b,使根所在区间每次减半,直到|a-b|<
eps或|f(c)|<
eps,c即为所求的根,其中eps为精度。
下面程序为求方程在[1,7]区间的实根,精度取10-6。
#include“math.h”
iostream.h>
doubleroot(doublex1,doublex2,doubleeps=1e-6)
{doublef(doublex);
doublex,y,y1;
y1=f(x1);
do{x=0.5*(x1+x2);
y=f(x);
0.0)x1=x;
elseif(y1*y<
0.0)x2=x;
}while(fabs(y)>
=eps&
fabs(x2-x1)>
=eps);
return(x);
doublef(doublex)
{returnx*x*x-5*x*x+16*x-80;
}voidmain()
{cout<
root(1,7)<
5.【程序说明】下面程序的功能是求出二维数组中最大的元素所在的行号和列号。
#defineSIZE13
#defineSIZE24
floatmax_value(floatx[][SIZE2],int&
ii,int&
jj)
floatmax;
max=x[0][0];
for(inti=0;
SIZE1;
i++)for(int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CC 程序设计 教程 龚沛曾 课后 习题 答案 全集
![提示](https://static.bdocx.com/images/bang_tan.gif)