第2章C++测试答案Word格式文档下载.docx
- 文档编号:22539262
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:38
- 大小:26.91KB
第2章C++测试答案Word格式文档下载.docx
《第2章C++测试答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《第2章C++测试答案Word格式文档下载.docx(38页珍藏版)》请在冰豆网上搜索。
(8)以下描述正确的是(C)。
A.由于do-while循环中循环体语句只是一条可执行语句,所以循环体内不能使用复合语句
B.do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C.在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作
D.do-while循环中,根据情况可以省略while
(9)C++语言中while和do-while循环的主要区别是(A)。
A.do-while的循环体至少无条件执行一次
B.while的循环控制条件比do-while的循环控制条件严格
C.do-while允许从外部转到循环体内
D.do-while的循环体不能是复合语句
(10)下面有关for循环的正确描述是(D)。
A.for循环只能用于循环次数已经确定的情况
B.for循环是先执行循环体语句,后判断表达式
C.在for循环中,不能用break语句跳出循环体
D.for循环的循环体语句中,可以包含多条语句,但必须用大括号括起来
(11)对for(表达式1;
;
表达式3)可理解为(B)。
A.for(表达式1;
0;
表达式3)B.for(表达式1;
1;
表达式3)
C.for(表达式1;
表达式1;
表达式3)D.for(表达式1;
表达式3;
(12)for(i=2;
i==0;
)printf(“%d”,I--);
循环执行的次数是(B)。
A.无限次B.0次C.1次D.2次
(13)下面程序段的运行结果为(C)。
for(y=1;
10;
)y=((x=3*y,x+1),x-1);
“x=”<
x<
”y=”<
y;
A.x=27,y=27B.x=12,y=13
C.x=15,y=14D.x=y=27
(14)以下不是无限循环的语句为(D)。
A.for(y=0,x=1;
x>
++y;
x=I++)I=x;
B.for(;
;
x++=I);
C.while
(1){x++;
}D.for(I=10;
I--)sum+=I;
(15)下面程序的运行结果是(D)。
#include<
>
viodmain()
{inti,b,k=0;
for(i=1;
i<
=5;
i++)
{b=i%2;
while(b-->
=0)k++;
cout<
k<
b;
}
A.3,-1B.8,-1C.3,0D.8,-2
(16)以下正确的描述是(B)。
A.continue语句的作用是结束整个循环的执行
B.只能在循环体内和switch语句体内使用break语句
C.在循坏体内使用break语句或continue语句的作用相同
D.从多层循环嵌套中退出,只能使用goto语句
(17)下面程序段(D)。
for(t=1;
t<
=100;
t++)
{cin>
if(x<
0)continue;
t;
A.当x<
0时整个循环结束B.x>
=0时什么也不输出
C.cout永远也不执行D.最多允许输出100个非负整数
(18)下面程序段(B)。
x=3;
do{y=x--;
if(!
y){cout<
”x”;
continue;
”#”;
}while(1<
=x<
=2);
A.将输出##B.将输出##*
C.是死循环D.含有不合法的控制表达式
(19)下面程序的运行结果是(B)。
voidmain()
{inta,b;
for(a=1,b=1;
a++)
{if(b>
=20)break;
if(b%3==1){b+=3;
continue;
b-=5;
endl;
A.7B.8C.9D.10
(20)下面程序段的运行结果是(B)。
voidmain()
{inti,j,x=0;
for(i=0;
2;
{x++;
for(j=0;
j<
=3;
j++)
{if(j%2)continue;
x++;
A.x=4B.x=8C.x=6D.x=12
(21)下面程序段的运行结果是(A)。
{inti;
{if(I%2)cout<
“*”;
elsecontinue;
“#”;
}
“$\n”;
A.*#*#*#$B.#*#*#*$C.*#*#$D.#*#*$
(22)下面程序段的运行结果是(A)。
{inti,j,a=0;
{for(j=0;
4;
{if(j%2)break;
a++;
A.4B.5C.6D.7
2.填空题:
(1)下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环,
请填空。
intn=0,c;
c=();
while(c!
=’\n’)
{if(c>
=’0’&
&
c<
=’9’)n++;
c=();
(2)1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完
main()
{intday,x1,x2;
day=0;
x1=1020;
while(x1>
0){x2=(x1/2-2);
x1=x2;
day++;
x1<
“day=”<
day<
(5)运行下面程序段后,k值为(36)。
k=1;
n=263;
do{k*=n%10;
n/=10;
}while(n);
(6)下面程序段中循环体的执行次数是(3)。
a=10;
b=0;
do{b+=2;
a-=2+b;
}while(a>
=0);
(7)下面程序段的运行结果为(**)。
x=2;
do{cout<
x--;
}while(!
x==0);
(8)下面程序段的运行结果是(a=-5)。
i=1;
a=0;
do{a=a+s*i;
s=-s;
}while(I<
“a=”<
a;
(9)下面程序段的运行结果是()。
for(a=1,i=-1;
-1<
=i<
i++)
{a++;
}
分析:
本题循环条件是假值,所以什么也不输出。
(10)鸡、兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,x代表有多少只鸡,y代表有多少只兔子,请填空。
for(x=1;
=29;
x++)
{y=30-x;
if(2*x+4*y==90)cout<
’‘<
(11)下面程序的功能是从3个红球、5个白球、6个黑球中任意取出8个球,且其中必须有白球,输出所有可能的方案,请填空。
{
inti,j,k;
“\nhongbaihei\n”;
for((j=1);
{k=8-i-j;
if(k>
0&
k<
=6)
}}
(12)下面程序的功能是求出用数字0至9可以组成多少个没有重复的三位偶数,请填空。
{intn=0,i,j,k;
=9;
for(k=0;
=8;
(k+=2))
if(k!
=i)
for(j=0;
if(j!
=i&
j!
=k)n++;
“n=”<
n<
3.看程序,写结果
(1)#include<
{inti=0,x=0,y=0;
do{++i;
if(i%2!
=0){x=x+i;
y=y+i++;
}while(i<
=7);
}
运行结果:
x=1,y=20
(2)#include<
{inti,t,sum=0;
for(t=i=1;
=10;
)
{sum+=t;
++i;
if(i%3==0)t=-i;
elset=i;
“sum=”<
sum;
sum=19
(3)nclude<
switch(i%2)
{case0:
break;
case1:
i+=2;
default:
“\n”;
}}
运行果为:
*
#
(4)#include<
{inty=2,a=1;
while(y--!
=-1)
{do{a*=y;
a++;
}while(y--);
运行结果:
1-2
(5)#include<
voidmain()
{inti,j;
for(i=4;
i>
=1;
i--)
{for(j=1;
=i;
j++)putchar(‘#’);
for(j=1;
=4-i;
j++)putchar(‘*’);
putchar(‘\n’);
####
###*
##**
#***
(6)#include<
{inti,k=0;
{k++;
if(k%3==0)break;
k;
33
(7)#include<
{inti=1;
=15)
if(++i%3!
=2)continue;
elsecout<
’\t’;
2581114
(8)#include<
{inta=10,y=0;
do{a+=2;
y+=a;
if(y>
50)break;
}while(a=14);
”y=”<
a=16y=60
(9)#include<
{inti,k=19;
while(i=k-1)
{k-=3;
if(k%5==0){i++;
elseif(k<
5)break;
“i=”<
”k=”<
i=6k=4
(10)#include<
{inti=5;
do{switch(i%2)
{case4:
i--;
case6:
i--;
i;
}while(i>
0);
31-1
4.按下列要求编写程序
(1)有一个函数如下:
x(x<
5)
y=x+6(5<
15)
x-6(x>
输入x的值,计算出相应的y值。
程序为:
intx,y;
cin>
5)y=5;
if(x>
=5&
15)y=x+6;
=15)y=x-6;
(2)编程要求输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。
intmain()
inta,b,n;
a>
"
a="
'
\t'
b="
if(a*a+b*b>
100)n=(a*a+b*b)/100;
elsen=a+b;
return0;
(3)根据π/4=1-1/3+1/5-1/7+…求π的近似值,直到最后一项的值小于为止。
doublei,p,pai;
i=1;
pai=0;
do{
p=pow(-i,i-1)*(2*i-1);
pai=pai+4*p;
}while(p>
=;
cout<
pai="
pai<
(4)编程输出如下图形:
(例n=6)
*
*****
*********
*************
*****************
*********************
方法1:
{inti,j,k;
=6;
{for(k=1;
=20-2*i;
k++)
'
;
=4*i-3;
*'
方法2:
#include<
{
inti,j;
{
for(j=1;
=12-2*i;
j++)
"
{
for(j=13-2*i;
=9+2*i;
j++)
cout<
*"
}
return0;
(5)求1!
+2!
+3!
+…8!
。
intmain(){
inti;
doublem=,s=;
{m=m*i;
s=s+m;
s<
(6)打印出所有的“水仙花数“(它是一个三位数,其各位数字立方和等于该数本身)。
iostream>
iomanip>
usingnamespacestd;
inta,b,c,n,m;
所有的\"
水仙花数\"
:
for(a=1;
for(b=0;
b++)
for(c=0;
c++)
{
n=100*a+10*b+c;
m=a*a*a+b*b*b+c*c*c;
if(n==m&
=999)
cout<
}
return0;
(7)编写一个程序,输入年、月,打印出该年份该月的天数。
{intyear,month,days;
year>
month;
switch(month)
{case1:
case3:
case5:
case7:
case8:
case10:
case12:
days=31;
case4:
case9:
case11:
days=30;
case2:
if(year%400==0||year%4==0&
year%100!
=0)days=29;
elsedays=28;
year<
年"
month<
月有"
days<
天\n"
(8)输入一个自然数,输出其各因子的连乘形式,如输入12,则输出12=1*2*2*3。
inti,n;
cin>
n;
n="
1"
for(i=2;
=n;
)
{
if(n%i==0)
{n=n/i;
i++;
{intn,i;
=1"
i=2;
while(n>
1)
{while(n%i==0)
{cout<
n=n/i;
(9)求一个整数任意次方的最后三位数。
#include<
cmath>
输入a,n:
的"
次方的最后三个数字是:
b=pow(a,n);
b%=1000;
if(b>
=100)cout<
if(b<
100&
b>
=10)cout<
0"
elseif(b<
10)cout<
00"
法2:
{intx,n,p=1,i;
p=p*x%1000;
p<
(10)猴子吃桃问题。
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,发现只剩一个桃子了,求猴子第一天究竟摘了多少个桃子
{intp=1,i;
p=(p+1)*2;
5.选择题
(1)以下程序的输出结果是(C)。
#include<
{inta=100,x=10,y=20,ok1=5,ok2=0;
y)
if(y!
=10)
ok1)a=1;
elseif(ok2)a=10;
a=-1;
cou<
A.1B.0C.-1D.值不确定
(2)以下不正确的if语句形式是(C)。
A.if(x>
y&
x!
=y);
B.if(x==y)x+=y;
C.if(x!
=y)cin>
xelsecin>
y;
D.if(x<
y){x++;
y++;
(3)设有以下程序段,则(B)。
inta=0,b=0;
a!
=0)b+=++a;
A.程序运行后输出0B.程序运行后输出1
C.程序执行无数次D.循环控制条件表达式是非法的
(4)当a=1,b=3:
c=5,d=4时,执行下面一段程序后x的值是(B)。
if(a<
b))
if(c<
d)x=1;
else
c)
d)x=2;
elsex=3;
elsex=6;
elsex=7;
A.1B.2C3.D.6
(5)以下for循环的循环次数是(C)。
for(x=0,y=0;
(y=123)&
(x<
4);
x++);
A.是无限循环B.循环次数不定C.执行4次D.执行3次
(6)下面程序的运行结果是(A)。
{intx=6,y=8;
if(x++<
6)
++y<
y<
y++<
A.8B.9C.7D.编译不成功
(7)关于for循环语句下面不正确的是(A)。
.
A.在循环体中,不能改变循环控制变量
B.在执行中循环控制变量初值、终值可变
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 测试 答案