C++复习题全部答案Word格式.docx
《C++复习题全部答案Word格式.docx》由会员分享,可在线阅读,更多相关《C++复习题全部答案Word格式.docx(41页珍藏版)》请在冰豆网上搜索。
43.
下列说法中,错误的是()。
A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号
B.每个函数都有一个函数头和一个函数体,主函数也不例外
C.主函数只能调用用户函数或系统函数,用户函数可以相互调用
D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数
(二)填空题
1.一个C++源程序至少有并且只能有一个main(主)函数。
2.以下程序运行后的输出结果是1012a。
#include<
iostream.h>
iomanip.h>
intmain()
inta=10;
a<
return0;
3.以下程序运行后的输出结果是(252137)。
voidmain()
{
inta,b,c;
a=25;
b=025;
c=0x25;
"
b<
c<
}
4.以下程序运行后的输出结果是21。
{inta=1,b=2;
a=a+b;
b=a-b;
a=a-b;
b;
5.结构化设计中的三种基本结构是__顺序结构__、__选择结构__、__循环结构__。
6.C++语言源程序文件的后缀是___.cpp___,经过编译后生成文件的后缀是__.obj__,经过链接后生成文件的后缀是__.exe__。
7.一个函数由两部分组成,它们是__函数首部__、__函数体__。
8.若x和y均为int型变量,则以下语句的功能是__交换变量x,y的值__。
x+=y;
y=x-y;
x-=y;
二、运算符部分试题:
1.
以下程序的输出结果是()
inta=1,b=2,c=3,d=4;
(a<
b?
a:
d?
d)<
A.4B.3C.2D.1
15.
下列运算符中优先级最高的运算符是()
A.<
=B.=C.%D.&
&
16.
以下程序的输出结果是()
main()
inta=3,b=4;
=b)<
A.3B.4C.1D.0
17.
在C++语言中,以下非法的表达式是()
A.x++B.i=j==0C.(char)(65+3)D.x+1=x+1
18.
在C++语言中,以下非法的赋值语句是()
A.j++;
B.++(i+1);
C.x=j>
0;
D.k=i==j;
19.
表达式3.6-5/2+1.2+5%2的值是()
A.4.3B.4.8C.3.3D.3.8
20.
设有语句:
inta=3;
则执行了语句a+=a-=a*a;
变量a的值是()
A.3B.0C.9D.-12
21.
intx=10;
则执行了语句x+=x-=x-x;
变量x的值是()
A.10B.20C.40D.30
22.
inti=10,j=1;
i--<
“,”<
++j<
A.9,2B.10,2C.9,1D.10,1
23.
intx=100,y=200;
(x,y)<
A.200B.100
C.100200D.200100
24.
intx=10,y=3,z;
(z=(x%y,x/y))<
A.1B.0C.4D.3
25.
intk=0;
以下选项的四个表达式中与其他三个表达式的值不相同的是()
A.k++B.k+=1C.++kD.k+1
26.
intx,y,z;
x=y=1;
z=x++,y++,++y;
x<
"
y<
z<
A.2,3,3B.2,3,2C.2,3,1D.2,2,1
27.
设x、y、t均为int型变量,执行了以下程序后,变量y的值为()。
intx,y,t;
x=y=3;
t=++x||++y;
A.1B.2C.3D.4
28.
设intx=-1;
执行表达式++x||++x||++x||++x,x的值是()
A.0B.1C.2D.4
45.
逻辑运算符两侧运算对象的数据类型()。
A.只能是0或1
B.只能是0或非0正数
C.只能是整型或字符型数据
D.可以是任何类型的数据
46.
以下关于运算符优先顺序的描述中正确的是()。
A.关系运算符<
算术运算符<
赋值运算符<
逻辑与运算符
B.逻辑与运算符<
关系运算符<
赋值运算符
C.赋值运算符<
逻辑与运算符<
算术运算符
D.算术运算符<
48.
判断char型变量s是否为小写字母的正确表达式是()。
A.’a’<
=s<
=’z’B.(s>
=’a’)&
(s<
=’z’)
C.(s>
=’z’)D.(’a’<
=s)and(’z’>
=s)
49.
若希望当x的值为奇数时,表达式的值为“真”,x的值为偶数时,表达式的值为“假”。
则以下不能满足要求的表达式是()。
A.x%2==1B.!
(x%2==0)
C.!
(x%2)D.x%2
50.
已知x=45,y=’a’,z=0;
则表达式(x>
=z&
y<
’z’||!
y)的值是()。
A.0B.语法错
C.1D.“假”
51.
执行以下语句后,y的值为()。
intx,y,z;
x=y=z=0;
++x||++y&
++z;
A.0B.1C.2D.不确定值
55.
则执行下面语句后的w值是()。
voidmain()
{inta=1,b=2,c=3,d=4,w;
w=(a<
b)?
w=(w<
c)?
w:
c;
d)?
d;
w<
A.1B.2C.3D.4
(二)填空题:
1.以下程序运行后的输出结果是2007。
{
intx=2006,y=2007;
(x,y);
2.以下程序运行后的输出结果是D。
charch='
B'
;
ch+=2;
ch<
3.以下程序运行后的输出结果是98。
intc;
charch=97;
c=ch+1;
4.以下程序运行后的输出结果是123.46。
#include<
intmain()
floatx=123.4567f;
(int)(x*100+0.5)/100.0<
5.以下程序运行后的输出结果是14。
a=(3*5,a+4);
6.以下程序运行后的输出结果是-10-10-7。
inta=0,b=0,c=0;
c=(a+=a-=5),(a=b,b+3);
7.以下程序运行后的输出结果是0。
inta=5,b=4,c=3,x;
x=a>
b>
8.以下程序运行后的输出结果是30。
inta=3,b=2;
b=a<
0&
a++>
3;
9.以下程序运行后的输出结果是1。
intx,a=1,b=2,c=3,d=4;
x=(a<
x=(x<
x:
10.设intx=9,y=8;
表达式x==y+1的结果是____1____。
11.定义intx,y;
执行y=(x=1,++x,x+2);
后,y的值是____4____。
12.定义intx=10,y,z;
执行y=z=x;
x=y==z;
后,x的结果是____1____。
三、流程控制语句部分试题:
2.
inti;
for(i=0;
i<
i++)
switch(i)
case0:
cout<
i;
case1:
default:
程序执行后的输出结果是()
A.000112B.012C.012020D.120
7.
以下程序运行后的输出结果是4599。
inta=3,b=4,c=5,t=99;
if(b<
a&
a<
c)t=a;
a=c;
c=t;
if(a<
c&
b<
c)t=b;
b=a;
a=t;
30.以下程序段的输出结果是()
intx=5;
if(x++>
5)
else
x--<
A.4B.5C.6D.7
31.有以下程序:
intn=4;
while(n--)
--n;
A.20B.31C.321D.210
32.有以下程序
inty=10;
while(y--);
A.y=0B.y=-1
C.y=1D.while构成无限循环
44.
为了避免嵌套的if-else语句的二义性,C++语言规定else总是与()组成配对关系。
A.缩排位置相同的if
B.在其之前未配对的if
C.在其之前未配对的最近的if
D.同一行上的if
47.选择出合法的if语句(设intx,a,b,c;
)()。
A.if(a=b)c++;
B.if(a=<
b)c++;
C.if(a<
>
D.if(a=>
52.已知inta=1,b=2,c=3;
以下语句执行后a,b,c的值是()。
if(a>
b)
c=a;
a=b;
b=c;
A.a=1,b=2,c=3B.a=2,b=3,c=3
C.a=2,b=3,c=1D.a=2,b=3,c=2
53.请阅读以下程序:
该程序()。
{intx=-10,y=5,z=0;
if(x=y+z)cout<
***\n"
elsecout<
$$$\n"
A.有语法错不能通过编译
B.可以通过编译但不能通过连接
C.输出***
D.输出$$$
54.执行完下面一段程序后x的值是()。
inta=1,b=2,c=4,d=3,x;
if(a<
if(c<
d)x=1;
else
c)
if(b<
d)x=2;
elsex=3;
elsex=4;
elsex=5;
A.1B.2C.3D.4
56.以下switch语句结构哪一个是正确的?
()
A.
inta=1,b=0,c1,c2,x,y;
switch(a+b);
y=a+b;
break;
y=a-b;
B.
switcha()
casec1:
casec2:
x=a*b;
x=a+b;
C.
switch(a*a+b*b)
case3:
case3:
y=b-a;
D.
y=a*b;
break;
x=a+b;
case10:
case11:
y=a-b;
57.假定等级和分数有以下对应关系:
等级:
A分数:
85——100
B分数:
60——84
C分数:
60以下
对于等级grade输出相应的分数区间,能够完成该功能的程序段是()。
chargrade;
cin>
grade;
switch(grade)
case'
A'
:
85--100\n"
60--84\n"
C'
60\n"
gradeiserror!
break;
58.
当执行以下程序段时,程序将()。
intx=-1;
do
{x=x*x;
while(!
x);
A.循环体将执行一次 B.循环体将执行两次
C.循环体将执行无数多次 D.系统将提示有语法错误
59.
若i,j已定义为int类型,则以下程序段中内循环的总的执行次数是()。
for(i=5;
i;
i--)
for(j=0;
j<
4;
j++)
{…}
A.20B.24C.25D.30
60.
有以下语句:
i=1;
for(;
=100;
i++)sum+=i;
与以上语句序列不等价的有()。
A.for(i=1;
;
i++){sum+=i;
if(i==100)break;
B.for(i=1;
){sum+=i;
i++;
C.i=1;
)sum+=i;
D.i=1;
61.
标有/**/的语句的执行次数是()。
inty,i;
for(i=0;
20;
{if(i%2==0)continue;
y+=i;
/**/
A.20B.19C.10D.9
2.#include<
0
inti,t=0;
for(i=5;
i>
=0;
i--)
t*=i;
t<
3.
写成下列程序的输出结果:
inti=1;
while(i<
=15)
if(++i%3!
=2)continue;
}2581114
4.输入a,输出结果是verygood
输入c,输出结果是pass。
charn;
n;
switch(n)
{case'
a'
case'
verygood\n"
b'
good\n"
c'
d'
D'
pass\n"
e'
E'
warning\n"
error\n"
5.以下程序的功能是计算:
1-2+3-4……+99-100
{inti=1,j=1,s=0;
while(i<
=100)
{s+=i*j;
i++;
j=-j;
s<
6.若从键盘输入58,则输出结果是_585858_______。
inta;
a;
if(a>
50)cout<
40)cout<
30)cout<
7.下面程序根据以下函数关系,对输入的每个x值,计算出y值。
请在【】内填空。
X
y
2<
=10
x(x+2)
-1<
=2
1/x
=-1
x-1
intx,y;
cin>
x;
if(【1】
(x>
2)&
(x<
=10))y=x*(x+2);
elseif(【2】
((x>
-1)&
=2)))