课后习题113章答案Word文档格式.docx
《课后习题113章答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《课后习题113章答案Word文档格式.docx(99页珍藏版)》请在冰豆网上搜索。
A)1.8B)1C)2.24444D)2
13.若变量a是int类型,并执行了语句a='
A'
+1.6;
则下列叙述正确的是D。
A)a的值是字符AB)a的值是浮点型
C)不允许字符型和浮点型相加D)a的值是字符'
的ASCII值加上1
14.变量x.、y和z均为double类型且已正确赋值,不能正确表示数学式子
的C++语言表达式是B。
A)x*(1/(y*z))B)x/y*zC)x/y*1/zD)x/y/z
15.若a为int类型,且其值为5,则执行表达式a-=a+=a*a后,a的值是C。
A)-5B)25C)0D)-20
16.设x、y、z均为int型变量,则执行x=y=5;
z=++x||++y后,变量x的值是
(1)C,变量y的值是
(2)B,变量z的值是(3)1。
(1)A)4B)5C)6D)7
(2)A)不定值B)5C)6D)7
(3)A)10B)11C)12D)13
17.表达式16/4*float(4)+2.0的数据类型是C。
A)intB)floatC)doubleD)不确定
18.设有说明语句:
intm=13,n=3,则执行m%=n+2后,n的值是C。
A)5B)1C)3D)0
19.设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>
b)&
&
(n=c>
d)运算后,n的值为B。
//逻辑运算优化的副作用
A)3B)2C)1D)0
20.设有说明语句:
intx=8,floaty=8.8;
则下列表达式中错误的是D。
A)x%3+yB)y*y&
++xC)(x>
y)+(int(y)%3)D)---x+y
21.整型变量m和n的值相等,且为非0值,则以下选项中,结果为零的表达式是B。
A)m|nB)m^nC)m||nD)m&
n
22.能正确表示逻辑关系:
“age≥=18或age≤60”的C++语言的表达式是D。
A)age>
=18orage<
=60B)age>
=18|age<
=60
C)age>
=18&
age<
=60D)age>
=18‖age<
=60
23.下列关于类型转换的描述中,错误的是D。
A)赋值表达式的类型是左值的类型
B)逗号表达式的类型是最后一个表达式的类型
C)在由低到高精度的类型转换中精度不会降低
D)在不同类型对象组成的表达式中,其表达式类型一定是double型
24.设x是int型变量,请写出判断x为奇数的关系表达式x%2==1或x%2!
=0或x/2*2==x或x%2。
25.表示“整数y的绝对值大于8”时值为“真”的C++语言表达式是y>
8||y<
-8。
26.下列表达式的值分别是00.33317。
A)1/3B)1/3.0C)1%3D)21/3
27.设有说明语句:
inta=9,b=9,c=9;
下列表达式的值分别是4278162。
A)a/=2+b++-c++B)a+=b+c++C)a-=++b-c--D)a*=b+c--
28.下列运算符中,B的结合性是从左到右。
A)单目运算符B)关系运算符C)三目运算符D)赋值运算符
29.下列表达式的值分别是1131(1f)0。
//'
(a'
==('
b'
<
=3))&
5
A)!
('
5'
>
'
8'
)||3<
9;
B)6>
3+2-('
0'
-8)C)3*5|6<
2D)'
a'
=='
=3&
30.这些语句:
x++;
++x;
x=x+1;
都使变量x中的值加1,请写出一条能使x值加1的赋值语句(不得与列举的相同)x+=1;
。
第三章
1.设变量ch1,ch2,ch3为char类型,通过cin>
ch1>
ch2>
ch3;
分别将字符a输入给ch1,字符b输入给ch2,字符c输入给ch3,不正确的输入形式是B。
A)a<
换行符>
B)a,b,c<
b<
c<
C)a<
D)ab<
bc<
c<
2.下列程序的运行结果是A。
#include<
iostream.h>
voidmain(void)
{
cout<
"
Zhao:
Hello!
;
cout<
Howareyou?
\n"
cout<
Liu:
Iamfine,\t"
Thankyou\n"
6+'
\012'
’\t’;
\x12'
endl;
}
A)Zhao:
B)Zhao:
Iamfine,ThankyouLiu:
Iamfine,Thankyou
16241818
C)Zhao:
D)Zhao:
18241618
3.下列程序的运行结果是D。
{
inti=3;
i+20.5<
"
i=20.5+i;
i<
A)2323B)23.523.5C)2323.5D)23.523
4.下列程序的运行结果是C。
inta=9,b=2;
floatx=6.6f,y=1.1f,z;
z=a/2+b*x/y+1/2;
z<
A)17B)15C)16D)18
5.下列程序的运行结果是B。
{intx=178;
cout<
oct<
x<
hex<
A)178178B)262b2C)262262D)b2b2
6.下列程序的运行结果是A。
{intx=0;
x+=(x=5);
A)10B)5C)0D)15
7.下列程序的运行结果是D。
{inta=5,b=4,c=3,d;
d=(a>
b>
c);
d<
}
A)5B)3C)1D)0
8.下列程序的运行结果是D。
intx=4,y=14,z=15,w;
w=x+y+z;
dec<
w="
w<
A)w=33w=33w=33B)w=33w=42w=22
C)w=34w=41w=22D)w=33w=41w=21
9.下列程序的运行结果是。
charch1='
ch2='
ch3='
c'
inti=9,j=8,k=7;
doublex=3.6,y=5.8,z=6.9;
ch1=ch2;
ch2=ch3;
ch3=ch1;
ch1="
ch1<
ch2="
ch2<
ch3="
ch3<
j=k;
k=i;
j=k;
i="
j="
j<
k="
k<
x=y;
y=x;
x=z;
z=y;
x="
y="
y<
z="
ch1=bch2=cch3=b
i=9j=9k=9
x=6.9y=5.8z=5.8
10.下列程序的运行结果是。
inta=1,b=2,c=3;
++a;
c+=++b;
{
intb=4,c;
c=b*3;
a+=c;
first:
a<
secord:
}
third:
14412
second:
26412
third:
2636
11.给出下列程序的运行结果。
iomanip.h>
doublee=2.718282828,d;
e<
setiosflags(ios:
:
scientific)<
fixed)<
d=12.0/3;
2.71828
2.718283e+000
2.71828
4
12.给出下列程序的运行结果。
inta=1,b=2,c;
a=1,b=2"
-(c=a==1):
-(c=a==1)<
c=a>
=b:
(c=a>
=b)<
a=1b=2
-(c=a==1):
-1
c=a>
0
13.根据题目要求,编写完整的程序。
(1)从键盘上输入一个整数x后,将其低六位全部置1,其余各位不变。
然后,用十进制和十六制输出x的值。
voidmain()
intx;
输入一个整数:
cin>
x;
x=x|63;
//或x=x|0x3f;
或x|=0x3f;
十进制输出整数:
十六进制输出整数:
(2)从键盘上输入一个整数x后,将其高六位全部置0,其余各位不变。
x=x&
67108863;
//或x&
=0x3ff;
(3)从键盘上输入任意一个摄氏温度C,求该温度对应的华氏温度F(F=5/9(c-32))及绝对温度T(273.15+C)。
floatc,f,t;
摄氏温度:
cin>
c;
f=c*9/5+32;
t=273.15+c;
华氏温度:
f<
绝对温度:
t<
(4)从键盘上输入任意一个字符,求出它的ASCII码值并输出。
charc;
输入任意一个字符:
它的ASCII码值是:
c+0<
//或int(c)
(5)从键盘上输入任意两个实数,求它们的和、差与积,并输出。
doubler1,r2;
输入任意两个实数:
r1>
r2;
它们的和:
r1+r2<
它们的差:
r1–r2<
它们的积:
r1*r2<
(6)输入任意一个实数,将其整数部分与小数部分分开,并分别输出在两行上。
例如,实数32.68,输出:
32
0.68
doubletrans;
输入要转换的实数:
trans;
(int)trans<
trans-(int)trans<
或者:
floatx,b;
inta;
”x=”;
a=x;
b=x-a;
//仅仅是编译时警告有可能会丢失精度
”a=”<
endl<
”b=”<
(7)从键盘上输入三角形的三边长(均为实数),求三角形的面积和周长,并输出计算结果。
math.h>
floata,b,c,s,area;
”a,b,c=”;
a>
if((a+b>
c)&
(b+c>
a)&
(c+a>
b)){
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
”s=”<
s<
”area=”<
area<
elsecout<
”Error!
”<
第四章
1.C++语言程序设计的三种基本结构是A。
A)顺序结构、选择结构、循环结构B)循环结构、转移结构、顺序结构
C)递归结构、循环结构、转移结构D)嵌套结构、递归结构、顺序结构
2.为了避免嵌套的条件语句if-else的二义性,C++语言规定else与B配对。
A)缩排位置相同的ifB)在其之前未配对的最近的if
C)在其之后最近的ifD)同一行上的if
3.下列关于条件语句的描述中,错误的是D。
A)一个if只能有一个else与之配对B)if语句中可以包含循环语句
C)if语句中可以有多个elseif子句D)if语句中不能包含switch语句
4.下列关于switch语句的描述中,正确的是D。
A)switch语句中default子句只能放在最后
B)switch语句中case后边的表达式可以是实型表达式
C)switch语句中,每个语句序列中必须有break语句
D)在switch语句中可以有default子句,也可以没有
5.下列关于for循环的描述中,正确的是B。
A)for循环只能用于循环次数确定的情况B)for循环语句中,可以包含其它循环语句
C)for循环是先执行循环体语句,后测试条件D)在for循环中,不能用goto语句跳出循环体
6.下列关于break语句的描述中,不正确的是B。
A)break语句可用于循环体内,终止循环的执行
B)break语句可用于if体内,终止if语句的执行
C)break语句可用于switch体内,终止switch语句的执行
D)在一个循环体内,break语句可以出现多次。
7.下列for语句的循环次数是D次。
for(inti=1;
=5;
sum++)sum+=i;
A)5B)4C)0D)无限
8.下列for语句的循环次数是A次。
for(intk=0;
;
k++)
A)无限B)0C)有语法错,不能执行D)1
9.以下程序段的输出结果是C。
intx=3;
do{
(x-=2)<
}while(!
(--x));
A)1B)30C)1–2D)死循环
10.若a、b、c1、c2、x、y、均是整型变量,正确的switch语句是B。
A)swich(a+b);
{ B}switch(a*a+b*b){
case1:
y=a+b;
break;
case3:
case0:
y=a-b;
case1:
y=a+b;
break;
}case3:
y=b-a,break;
}
C)switcha{ D}switch(a-b){
casec1:
y=a-b;
break;
default:
y=a*b;
break;
casec2:
x=a*d;
break;
case3:
case4:
x=a+b;
default:
x=a+b;
casec1+10:
} }
11.下列程序的输出结果是C。
intx=1,i=1;
for(;
50;
i++){
if(x>
=10)break;
if(x%2!
=0){
x+=3;
continue;
x-=-1;
'
A)127B)116C)126D)117
12.下列程序的输出结果是C。
intn='
m'
switch(n++){
default:
error"
case'
k'
case'
K'
l'
L'
good"
M'
pass"
\t'
n'
N'
warn"
A)passB)warnC)passwarnD)error
13.编写完整的程序。
(1)任意输入两个数,完成这两个数的四则运算。
就是完成+、-、×
、/ 运算
stdlib.h>
inta,b,c;
charch;
”请输入计算式:
(如:
3+5)”;