第6章 循环控制Word下载.docx
《第6章 循环控制Word下载.docx》由会员分享,可在线阅读,更多相关《第6章 循环控制Word下载.docx(17页珍藏版)》请在冰豆网上搜索。
C)循环执行一次 D)有语法错误
6.以下描述中正确的是()。
A)do-while循环中循环体内不能使用复合语句
B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C)在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作
D)do-while循环中,根据情况可以省略while
7.若有如下语句
intx=3;
do{printf(“%3d”,x-=2);
}while(!
(--x));
则上面程序段()。
A)输出的是1 B)输出的是1和-2
C)输出的是3和0 D)是死循环
8.下面有关for循环的正确描述是()。
A)for循环只能用于循环次数已经确定的情况
B)for循环是先执行循环的循环体语句,后判断表达式
C)在for循环中,不能用break语句跳出循环体
D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
9.对for(表达式1;
;
表达式3)可理解为()。
A)for(表达式1;
0;
表达式3) B)for(表达式1;
1;
表达式3)
C)for(表达式1;
表达式1;
表达式3) D)for(表达式1;
表达式3;
10.若i为整型变量,则以下循环执行次数是()。
for(i=2;
i==0;
)printf(“%d”,i--);
A)无限次 B)0次 C)1次 D)2次
11.以下不是无限循环的语句为()。
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;
12.下面程序段的运行结果是()。
for(y=1;
y<
10;
)y=((x=3*y,x+1),x-1);
printf(“x=%d,y=%d”,x,y);
A)x=27,y=27 B)x=12,y=13 C)x=15,y=14 D)x=y=27
13.执行语句for(i=1;
i++<
4;
);
后变量i的值是()。
A)3 B)4 C)5 D)不定
14.有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;
若分成7个零件一组,则多3个零件;
若分成9个零件一组,则多5个零件。
下面程序是求这堆零件总数,请选择填空()。
{inti;
for(i=100;
i<
200;
i++)
if((i-2)%4==0)
if(!
((i-3)%7))
if(______)
printf(“%d”,i);
A)i%9=5 B)i%9!
=5 C)(i-5)%9!
=0 D)i%9==5
15.下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空()。
{inti=0,j,k;
do{i++;
k=316-13*i;
}while(_______);
j=k/11;
printf(“316=13*%d+11*%d”,i,j);
A)k/11 B)k%11 C)k/11==0 D)k%11==0
16.下面程序的运行结果是()。
{inty=10;
do{y--;
}while(--y);
printf(“%d\n”,y--);
A)-1 B)1 C)8 D)0
17.若运行以下程序时,从键盘输入ADescriptor<
CR>
(<
表示回车),则下面程序的运行结果是()。
{charc;
intv0=1,v1=0,v2=0;
do{
switch(c=getchar())
{case‘a’:
case‘A’:
case‘e’:
case‘E’:
case‘i’:
case‘I’:
case‘o’:
case‘O’:
case‘u’:
case‘U’:
v1+=1;
default:
v0+=1;
v2+=1;
}
}while(c!
=’\n’);
printf(“v0=%d,v1=%d,v2=%d\n”,v0,v1,v2);
A)v0=7,v1=4,v2=7 B)v0=8,v1=4,v2=8
C)v0=11,v1=4,v2=11 D)v0=12,v1=4,v2=12
18.下面程序的运行结果是()。
{inta=1,b=10;
do
{b-=a;
a++;
while(b--<
0);
printf(“a=%d,b=%d\n”,a,b);
A)a=3,b=11 B)a=2,b=8
C)a=1,b=-1 D)a=4,b=9
19.以下程序的输出结果是()。
{intnum=0;
while(num<
=2)
{num++;
printf(“%d\n”,num);
A)1 B)1 C)1 D)l
2 2 2
3 3
4
20.设有程序段
intk=10;
while(k=0)k=k-1;
则下面描述中正确的是()。
A)while循环执行10次 B)循环是无限循环
C)循环体语句一次也不执行 D)循环体语句执行一次
21.设有以下程序段
intx=0,s=0;
x!
=0)s+=++x;
printf("
%d"
s);
则()。
A)运行程序段后输出0 B)运行程序段后输出1
C)程序段中的控制表达式是非法的 D)程序段执行无限次
22.语句while(!
E);
中的表达式!
E等价于()。
A)E==0 B)E!
=1 C)E!
=0 D)E==1
23.下面程序段的运行结果是()。
a=1;
b=2;
c=2;
while(a<
b<
c){t=a;
c--;
%d,%d,%d"
a,b,c);
A)1,2,0 B)2,1,0 C)1,2,1 D)2,1,1
24.下面程序段的运行结果是()。
x=y=0;
while(x<
15)y++,x+=++y;
%d,%d"
y,x);
A)20,7 B)6,12 C)20,8 D)8,20
25.以下程序段的执行结果是()。
inta,y;
a=10;
y=0;
{a+=2;
y+=a;
a=%dy=%d\n"
a,y);
if(y>
20)break;
}while(a=14);
A)a=12y=12 B)a=12y=12
a=14y=16 a=16y=28
a=16y=20
a=18y=24
C)a=12y=12 D)a=12y=12
a=14y=26
a=14y=44
26.t为int类型,进人下面的循环之前,t的值为0,则以下叙述中正确的是()。
while(t=l)
{……}
A)循环控制表达式的值为0 B)循环控制表达式的值为1
C)循环控制表达式不合法 D)以上说法都不对
27.有以下程序段
intk=0;
while(k=1)k++;
while循环执行的次数是()。
A)无限次 B)有语法错,不能执行
C)一次也不执行 D)执行1次
28.以下程序执行后sum的值是()。
{inti,sum;
for(i=1;
6;
i++)sum+=i;
%d\n"
sum);
}
A)15 B)14 C)不确定 D)0
29.有以下程序段
{printf("
x-=2);
while(!
其输出结果是()。
A)1 B)30 C)1-2 D)死循环
30.若输入12、8,以下程序的输出结果是()。
{inta,b,num1,num2,temp;
scanf(“%d,%d”,&
num1,&
num2);
if(num1>
num2)
{temp=num1;
num1=num2;
num2=temp;
a=num1,b=num2;
while(b!
=0)
{temp=a%b;
a=b;
b=temp;
printf(“%d,%d”,a,num1*num2/a);
A)4,24 B)3,24 C)5,25 D)4,25
31.以下程序的输出结果是()。
#include<
math.h>
{ints=1;
floatn=1,pi=0;
doublet=1;
while(fabs(t)>
=2e-6)
{pi+=t;
n+=2;
s=-s;
t=s/n;
pi*=4;
printf(“pi=%.6f\n”,pi);
A)3.141592 B)1 C)2e-6 D)0
32.以下程序的输出结果是()。
{inti,f1,f2;
f1=f2=1;
for(i=0;
{printf(“%d%d”,f1,f2);
f1+=f2;
f2+=f1;
A)12345678 B)1123581321
C)1135791113 D)13579111315
33.下列叙述中,正确的一条是()。
A)语句“goto12;
”是合法的
)语句相当于while
(1)语句
C)if(表达式)语句中,表达式的类型只限于逻辑表达式
D)break语句可用于程序的任何地方,以终止程序的执行
34.以下程序的输出结果是()。
{inta,b;
for(a=1,b=1;
a<
=100;
a++)
{if(b>
=20)break;
if(b%3==1)
{b+=3;
continue;
b-=5;
printf(“%d\n”,a);
A)7 B)8 C)9 D)10
35.以下的for循环()
for(x=0,y=0;
(y!
=123)&
&
(x<
4);
x++);
A)是无限循环 B)循环次数不定
C)执行4次 D)执行3次
36.C语言中()
A)不能使用do-while语句构成的循环
B)do-while语句构成的循环必须用break语句才能退出
C)do-while语句构成的循环,当while语句中的表达式值为非零时结束循环
D)do-while语句构成的循环,当while语句中的表达式值为零时结束循环
37.以下程序的输出结果是()。
for(i=1;
=5;
{if(i%2)
printf(“*”);
else
printf(“#”);
printf(“$\n”);
A)*#*#*#$ B)#*#*#*$ C)*#*#$ D)#*#*$
38.有以下程序,从第一列开始输入数据2473<
代表一个回车符),则程序的输出结果为()。
{intc;
while((c=getchar())!
=’\n’)
{switch(c-‘2’)
{case0:
case1:
putchar(c+4);
case2:
break;
case3:
putchar(c+3);
default:
putchar(c+2);
printf(“\n”);
A)668977 B)668966 C)6677877 D)6688766
39.执行以下程序片段的结果是()。
intx=23;
{printf(“%d”,x--);
while(!
A)打印出321 B)打印出23
C)不打印任何内容 D)陷入死循环
40.若x是int型变量,则执行以下程序片段的结果是()。
for(x=3;
x<
x++)printf((x%2)?
(“**%d”):
(“##%d\n”),x);
A)**3##4**5 B)##3**4##5 C)##3 D)**3##4
**4##5**5
41.有以下程序,若运行时从键盘输入3.62.4<
{floatx,y,z;
scanf(“%f%f”,&
x,&
y);
z=x/y;
while
(1)
{if(fabs(z)>
1.0)
{x=y;
y=z;
z=x/y;
elsebreak;
printf(“%f\n”,y);
A)1.500000 B)1.600000 C)2.000000 D)2.400000
42.以下程序的输出结果是()。
{intx=10,y=10,i;
8;
y=++i)
printf(“%d%d”,x--,y);
A)10192 B)9876 C)10990 D)101091
43.以下程序的输出结果是()。
{intn=4;
while(n--)
printf(“%d”,--n);
A)20 B)31 C)321 D)210
44.以下程序的输出结果是()。
for(i=’A’;
’I’;
i++,i++)
printf(“%c”,i+32);
A)编译通不过,无输出 B)aceg C)acegi D)abcdefghi
45.若i、j已定义为int型,则以下程序段中内循环体的总的执行次数是()。
for(i=5;
i;
i--)
for(j=0;
j<
j++){}
A)20 B)24 C)25 D)30
46.若j为int型变量,则以下for循环语句的执行结果是()。
for(j=10;
j>
3;
j--)
{if(j%3)j--;
--j;
printf(“%d”,j);
A)63 B)74 C)62 D)73
47.以下程序的执行结果是()。
{inti,x;
=50;
{x=i;
if(++x%2==0)
if(x%3==0)
if(x%7==0)
A)28 B)27 C)42 D)41
48.以下程序的执行结果是()。
{inti,j;
for(j=10;
11;
j++)
{for(i=9;
j;
(j%i))break;
if(i>
=j-1)printf(“%d”,j);
A)11 B)10 C)9 D)1011
49.在下列选项中,没有构成死循环的程序段是()。
A)inti=100;
B)for(;
);
while
(1)
{i=i%100+1;
100)break;
C)intk=1000;
D)ints=36;
do{++k;
}while(s);
--s;
while(k>
=10000);
50.以下程序的输出结果是()。
{inti,j,x=0;
2;
{x++;
=3;
{if(j%2)continue;
x++;
printf(“x=%d\n”,x);
A)x=4 B)x=8 C)x=6 D)x=12
51.运行以下程序后,如果从键盘上输入6514<
回车>
,则输出结果是()。
{intm,n;
m,&
n);
while(m!
=n)
{while(m>
n)m-=n;
while(n>
m)n-=m;
printf(“m=%d\n”,m);
A)m=3 B)m=2 C)m=1 D)m=0
52.以下程序的输出结果是()。
{inti,j,m=0,n=0;
if(j>
=i)m=1;
n++;
printf(“%d\n”,n);
A)4 B)2 C)1 D)0
53.以下程序执行后sum的值是()。
{inti,sum=0;
sum++)sum+=i;
A)6 B)3 C)死循环 D)0
二填空题
1.以下程序运行后的输出结果是。
{inti=10,j=0;
{j=j+i;
i--;
while(i>
2);
j);
2.设有以下程序:
{intn1,n2;
scanf("
n2);
while(n2!
{n1=n2%10;
n2=n2/10;
n1);
程序运行后,如果从键盘上输入1298,则输出结果为。
3.若输入字母b,程序输出结果为;
若输入字符*,程序将怎样。
{charc1,c2;
c1=getchar();
while(c1<
97||c1>
122)
c1=getchar();
c2=c1-32;
%c,%c\n"
c1,c2);
4.用以下程序计算1到100的整数的累加和。
{inti=1,sum=;
for()
{sum+=i;
i++;
printf("
sum=%d\n"
);
5.以下程序的功能是:
从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束。
请填空。
{floatx,amax,amin;
scanf(“%f”,&
amax=x;
amin=x;
while()
{if(x>
amax)amax=x;
if()amin=x;
amax=%f\namin=%f\n"
amax,amin);
6.设i、j、k均为int型变量,则执行完下面的for循环后,k的值为。
for(i=0,j=10;
=j;
i++,j--)k=i+j;
7.下面程序的功能是:
计算1到10之间的奇数之和及偶数之和,请填空。
{inta,b,c,i;
a=c=0;
=10;
i+=2)
{a+=i;
;
c+=b;
偶数之和=%d\n"
a);
奇数之和=%d\n"
c-11);