C++课后习题答案文档格式.docx
《C++课后习题答案文档格式.docx》由会员分享,可在线阅读,更多相关《C++课后习题答案文档格式.docx(66页珍藏版)》请在冰点文库上搜索。
<
"
My"
sister"
;
is"
a"
beautifulgirl!
endl;
return0;
}
运行结果为:
Mysisterisabeautifulgirl!
2.
inta,b,c;
cin>
>
a>
b;
c=a+b;
a+b="
a+b<
return0;
23↙
a+b=5
第2章C++程序设计基础(上)
一、选择题
(1)在一个C++程序中,main函数的位置()。
A.必须在程序的开头B.必须在程序的后面
C.可以在程序的任何地方D.必须在其他函数中间
【答案】C
(2)用C++语言编写的源程序要变为目标程序必须要经过()。
A.解释B.汇编C.编辑D.编译
【答案】D
(3)C++程序基本单位是()。
A.数据B.字符C.函数D.语句
(4)C++程序中的语句必须以()结束。
A.冒号B.分号C.空格D.花括号
【答案】B
(5)下列选项中,全部都是C++关键字的选项为()。
A.whileIFstaticB.breakchargo
C.sizeofcaseexternD.switchfloatinteger
(6)下列正确的八进制整型常量表示是()。
A.0a0B.015C.080D.0x10
(7)在下列运算符中,()优先级最高。
A.<
=B.*=C.+D.*
(8)在下列运算符中,()优先级最低。
A.!
B.&
&
C.!
=D.:
(9)设i=1,j=2,则表达式i+++j的值为()。
A.1B.2C.3D.4
(10)设i=1,j=2,则表达式++i+j的值为()。
A.1B.2C.3D.4
(11)在下列表达式选项中,()是正确。
A.++(a++)B.a++bC.a+++bD.a++++b
(12)已知i=0,j=1,k=2,则逻辑表达式++i||--j&
++k的值为()。
A.0B.1C.2D.3
(13)执行下列语句后,x的值是(),y的值是()。
intx,y;
x=y=1;
++x||++y;
A.不确定B.1,1C.2,1D.2,2
(14)已知x=5,则执行语句x+=x-=x*x;
后,x的值为()。
A.25B.40C.-40D.20
(15)设a=1,b=2,c=3,d=4,则条件表达式a<
ba:
c<
dc:
d的值为()。
【答案】A
(16)逗号表达式(x=4*5,x*5),x+25的值为()。
A.25B.20C.100D.45
二、写出下列数学表达式的C++算术表达式
(1)
(2)x{x[x(ax+b)+c]+d}+e
(3)
(4)
(5)
(6)log10(a2+ab+b2)
(1)1/(1+1/(1+1/(x+y)))
(2)x*(x*(x*(a*x+b)+c)+d)+e
(3)log(1+pow(fabs((a+b)/(a–b)),10)
(4)sqrt(1+2*cos(48*180))
(5)1/tan((1-x*x)/(1+x*x))
或者cos((1-x*x)/(1+x*x))/sin((1-x*x)/(1+x*x))
(6)log10(a*a+a*b+b*b)
三、用关系表达式或逻辑表达式表示下列条件
(1)i整除j
(2)n是小于正整数k的偶数
(3)1<
=x<
10(4)x,y其中有一个小于z
(5)y
[–100,–10],并且y
[10,100]
(6)坐标点(x,y)落在以(10,20)为圆心,以35为半径的圆内
(7)三条边a,b和c构成三角形
(8)年份Year能被4整除,但不能被100整除或者能被400整除
(1)i%j==0
(2)(n<
k)&
(n%2==0)
=x&
x<
10(4)x<
z||y<
z
(5)!
(y>
=-100&
y<
=-10)&
!
=10&
=100)
(6)sqrt(pow((x-10),2)+pow((y-20),2))<
35
(7)a+b>
c&
b+c>
a&
c+a>
b
(8)(year%4==0)&
(year%100!
=0)||(year%400==0)
四、阅读下列程序,写出执行结果
voidmain()
inta=1,b=2,x,y;
a+++++b<
a%b<
x=!
y=x--&
4
2
-1
0
(2)
intx,y,z,f;
x=y=z=1;
f=--x||y--&
z++;
x="
y="
z="
z<
f="
f<
x=0
y=0
z=2
f=1
五、编程题
(1)输入一个三位整数,将它反向输出。
【解答】
voidmain()
{intx,i,j,k;
cout<
pleaseinputx:
cin>
x;
i=x/100;
j=(x-i*100)/10;
k=x-i*100-j*10;
k<
j<
i<
}
(2)输入平面上某点横坐标x和纵坐标y,若该点在由图2-8表示的方块区域内,则输出1;
否则,输出0。
图2-8正方形
{floatx,y,b;
pleaseinputx,y:
x>
y;
b=(-2<
=x)&
(x<
=2)&
(-2<
=y)&
(y<
=2);
b<
第3章C++程序设计基础(下)
1.设有函数关系为
,下面选项中能正确表示上述关系的语句为()。
A.y=1;
B.y=-1;
if(x>
=)0if(x!
=0)
if(x==0)y=0;
if(x>
0)y=1;
elsey=-1;
elsey=0
C.if(x<
=0)D.y=-1;
if(x<
0)y=-1;
if(x<
elsey=0;
if(x<
0)y=-1;
elsey=1;
elsey=1;
2.假设i=2,执行下列语句后i的值为()。
switch(i)
{case1:
i++;
case2:
i--;
case3:
++i;
break;
case4:
--i;
default:
A.1B.2C.3D.4
3.已知inti=0,x=0;
下面while语句执行时循环次数为()。
while(!
x&
i<
3){x++;
A.4B.3C.2D.1
4.已知inti=3;
下面do~while语句执行时循环次数为()。
do
{i--;
}while(i!
=1);
A.1B.2C.3D.无限
5.下面for语句执行时循环次数为()。
for(inti=0,j=5;
=j;
)
j--;
A.0B.1C.3D.5
6.以下程序段为死循环的是()。
A.for(intx=0;
3;
){x++;
};
B.intk=0;
do{++k;
}while(k>
=0);
C.inta=5;
while(a){a--;
D.inti=3;
for(;
i;
i--);
二、阅读下列程序,写出执行结果
inta,b,c,d,x;
a=c=0;
b=1;
d=20;
if(a)
d=d-10;
elseif(!
b)
if(!
c)
x=15;
elsex=25;
d<
20
inta=0,b=1;
switch(a)
case0:
switch(b)
a="
a<
b="
case1:
a++;
b++;
a=0b=1
a=1b=2
3.
inti=1;
while(i<
=10)
if(++i%3!
=1)continue;
elsecout<
4
7
10
4.
inti=0,j=5;
j--;
if(i>
3)break;
}while(j>
0);
i="
'
\t'
j="
i=4j=1
5.
inti,j;
for(i=1,j=5;
j;
i++)
cout<
33
6.
inti,s=0;
for(i=0;
5;
s+=i;
s+=2;
s="
s<
s=7
7.
inti,j,x=0;
=3;
x++;
for(j=0;
j++)
if(j%2)continue;
x=16
三、编程题
1.输入三个整数,再将这三个整数按从小到大的顺序输出。
inta,b,c,t;
cout<
a,b,c="
cin>
b>
c;
if(a>
b){t=a;
a=b;
b=t;
c){t=a;
a=c;
c=t;
if(b>
c){t=b;
b=c;
2.模拟剪刀、石头和纸游戏,用s表示剪刀,r表示石头,p表示纸。
游戏规则为:
剪刀剪纸,石头砸剪刀,纸包石头。
两名游戏者分别输入s、r或p,按照游戏规则输出结果。
charfirst,second;
Firstinput(s,rorp):
first;
Secondinput(s,rorp):
second;
switch(first)
{case'
s'
:
switch(second)
{case'
Scissortiesscissor."
gotoend;
case'
r'
Scissoriscrushedbyrock."
p'
Scissorcutspaper."
default:
secondinputerror!
}
case'
switch(second)
Rockcrushesscissor."
Rocktiesrock."
Rockiswrappedbypaper."
}
Paperiscutbyscissor."
gotoend;
Paperwrapstherock."
Papertiespaper."
default:
Firstinputerror!
end:
3.输入一个整数,输出该整数的所有素数因子。
例如,输入120,输出为2、2、2、3和5。
intm,i=2;
"
pleaseinputm:
cin>
m;
while(i<
=m)
if(m%i==0)
i<
m=m/i;
elsei++;
4.找出100到200之间满足用3除余2且用5除余3且用7除余2的所有整数。
inti;
for(i=100;
=200;
i++)
if((i%3==2)&
(i%5==3)&
(i%7==2))
endl;
5.如果一个整数恰好等于它的所有因子之和,则这个数称为完数。
例如,6=1+2+3,所以6为完数。
求1000之内的所有完数。
inti,j,s;
for(i=1;
=1000;
s=0;
for(j=1;
j<
j++)
if(i%j==0)s=s+j;
if(i==s)cout<
6.在屏幕上输出如下图案:
*
***
*****
*******
*********
inti,j,k;
=5;
for(k=1;
k<
=5-i;
k++)cout<
=2*i-1;
j++)cout<
*"
第4章函数的应用
1.选择题
(1)下面关于C++语言说法不正确的是()。
A.具有函数式的程序结构,其程序至少由一个函数构成,不论是主函数,还是其他函数
B.变量的数据类型丰富,而且使用不同的存储类别
C.具有编译预处理的功能,为程序的设计与修改、调试、移植带来方便
D.既是面向结构的程序设计语言,又是面向对象的程序设计语言
答案:
A
若只有一个函数,则只能是主函数,否则程序不知从何处开始执行。
(2)所谓模块化程序设计是指,在程序设计中把功能相对独立、单一的模块用一个函数实现,再由若干个函数组成完整程序的程序设计方法。
对于函数,下列说法不正确的是()。
A.函数结构独立、功能单一,便于编写、调试和修改
B.可以并行开发,加快软件开发速度,缩短开发周期
C.函数的重复使用性好,提高开发效率
D.所有函数都可用于整个程序,即使该程序包含了多个文件
D
(3)关于函数调用,下面不正确的是()。
A.由于程序总是从主函数开始执行,所以函数的调用总是在主函数和其他函数之间进行
B.函数的调用可以在任意函数之间进行
C.一个函数可以自己调用自己
D.函数返回时可以不必带回值,这时函数类型应为void
(4)关于函数的声明与定义,正确的是()。
A.函数的声明是必须的,只有这样才能保证编译系统对函数参数进行检测,以确保参数传递正确
B.函数的声明并非必须,即可以只给出函数定义
C.声明函数时参数标识符可省略,但参数的类型、个数必须相同且顺序不能颠倒
D.一个函数可以在另一个函数内定义
C
函数的声明并非必须,可以只要函数定义而不要声明.但要注意符合一定条件。
函数不可嵌套定义。
(5)关于函数的返回值,正确的是()。
A.return语句只返回一个值,该值的类型在函数定义时已确定
B.返回值类型由返回变量类型决定
C.如果不定义函数类型,表示该函数没有返回值
D.函数调用一定要有返回值,否则调用就没有意义了
(6)下列关于形参的说法,正确的是()。
A.函数的形参并非是必须的,有时可以什么都没有
B.函数的形参可以是表达式
C.函数在定义时,形参是不占用存储空间的,只有在被调用时系统才会为其分配存储空间,调用结束时,该空间将被释放
D.形参的名称、类型、数量和顺序必须与实参相同,否则实参不会把信息正确地传递给形参
(7)关于函数的返回,不正确的是()
A.使程序的执行重新返回到主调函数,使程序继续往下执行
B.释放调用函数时临时分配的存储单元
C.一定要返回一个值给主调函数
D.其返回值可有可无
被调用函数可以不返回任何值,仅完成某功能。
voidincx();
voidincy