结构化程序设计习题答案
cout<<s;
则( )
(A)运行程序段后输出0
(B)运行程序段后输出1
(C)程序段中的控制表达式是非法的
(D)程序段执行无限次
3、语句while(!E);中的表达式!E等价于( )
(A) E==0
(B) E!=1
(C) E!=0
(D) E==1
4、下面程序段的运行结果是( )
a=1; b=2; c=2;
{
if(++i%2==0) continue;
if(++i%3==0) break;
}
(B) i=32767;
do{if(i<0) break;}while(++i);
(C) for(i=1; ; ) if(++i<10) continue;
(D) i=1;
while(i--);
36、下面程序的运行结果是( )
while(num<=2)
{num++;
cout<<num<<endl;
}
}
(A) 1
(B) 1
2
(C) 1
2
3
(D) 1
2
3
4
13、C语言中while和do-while循环的主要区别是( )
(A) do-while的循环体至少无条件执行一次
(B) while的循环控制条件比do-while的循环控制条件严格
while(1)
{
i=i%100+1;
if(i>100) break;
}
(B) for( ; ; );
(C) int k=0;
do{++k;}while(k>=0);
(D) int s=36;
while(s); --s;
28、执行语句for(i=1;i++<4; );后变量i的值是( )
(A) 3 (B) 4 (C) 5 (D)不定
(D) 10
19、下面程序的运行结果是( )
#include<iostream.h>
void main()
{
int a=1,b=10;
do{ b-=a; a++; }
while(b--<0);
cout<<”a=”<<a<<”,b=”<<b;
}
(A) a=3,b=11
(B) a=2,b=8
(C) a=1,b=-1
(C) i=1; s=1;
do{s=s*i;
i++;
}while(i<=10);
(D) i=1; s=0;
do{s=s*i;
i++;
}while(i<=10);
15、以下程序段( )
x=-1;
do{x=x*x;}while(!x);
(A)是死循环
(B)循环执行二次
(C)循环执行一次
(D)有语法错误
16、若有如下语句
void main()
{
int n,sum=0;
n=2345;
do{
sum=sum+①;
n=②;
}while(n);
cout<<sum;
}
①(A) n%10
(B) (n%10)*(n%10)
(C) n/10
(D) (n/10)*(n/10)
②(A) n/1000
(B) n/100
(C) n/10
(D) n%10
{
int a,max=0;
cin>>a;
while(①)
{
if(max<a) max=a;
cin>>a;
}
cout<<max;
}
①(A) a==0
(B) a
(C) !a==1
(D) !a
12、下面程序的运行结果是( )
#include <iostream.h>
void main()
{
int num=0;
(A) 0
(B) 1
(C) 2
(D) 3
8、下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循环,①处应选择( )
#include <iostream.h>
void main()
{
int a,b,t;
cin>>a>>b;
while(①)
{
if(a>b)
{t=a; a=b; b=t
Cout<<"奇数之和="<<②);
}
①(A) b=i--
(B) b=i+1
(C) b=i++
(D) b=i-1
②(A) c-10
(B) c
(C) c-11
(D) c-b
31、下面程序的运行结果是( )
#include<iostream.h>
void main()
{
int i;
for(i=1;i<=5;i++)
(A) 20,7
(B) 6,12
(C) 20,8
(D) 8,20
6、下面程序段的运行结果是( )
int n=0;
while(n++<=2); cout<<n;
(A) 2
(B) 3
(C) 4
(D)有语法错
7、设有程序段
t=0;
while(1)
{
t++;
if(t<3) break;
}
cout<<t;
程序运行结果是( )
(D) 2次
23、以下for循环的执行次数是( )
for(x=0,y=0;(y=123)&&(x<4);x++);
(A)是无限循环
(B)循环次数不定
(C)执行4次
(D)执行3次
24、以下不是无限循环的语句为( )
(A) for(y=0,x=1;x>++y;x=i++) i=x;
(B) for( ; ; x++=i);
while(a<b<c) {t=a; a=b; b=t; c--;}
cout<<a<<’,’<<b<<’,’<<c;
(A) 1,2,0
(B) 2,1,0
(C) 1,2,1
(D) 2,1,1
5、下面程序段的运行结果是( )
x=y=0;
while(x<15) y++,x+=++y;
cout<<y<<’\t’<<x;
void main()
{
int i=5;
do{
switch(i%2)
{
case 4: i--; break;
case 6: i--; continue;
}
i--; i--;
cout<<i<<'\t';
}while(i>0);
}
2、下面程序的运行结果是__a=16,y=60_。
else continue;
cout<<"#";
}
cout<<"$\n";
}
(A) *#*#*#$
(B) #*#*#*$
(C) *#*#$
(D) #*#*$
11、下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环,请选择①( )
#include <iostream.h>
void main()
void main()
{
int i,j,a=0;
for(i=0;i<2;i++)
{
for(j=0;j<4;j++)
{
if(j%2) break;
a++;
}
a++;
}
cout<<a;
}
(A) 4
(B) 5
(C) 6
(D) 7
二、填空题
1、下面程序的运行结果是__31-1______。
#include<iostream.h>
第三章结构化程序设计部分习题
一、选择题
1、设有程序段
int k=10;
while(k=0) k=k-1;
则下面叙述中正确的是( )
(A) while循环执行10次
(B)循环是无限循环
(C)循环体语句一次也不执行
(D)循环体语句执行一次
2、设有以下程序段
int x=0,s=0;
while(!x!=0) s+=++x;
29、下面程序的功能是计算1至50中是7的倍数的数值之和,请选择填空。①( )
#include<iostream.h>
void main()
{
int i,sum=0;
for(i=1;i<=50;i++)
if(①) sum+=i;
cout<<sum;
}
(A) (int)(i/7)==i/7