C++(练习)第2章,程序控制结构
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一,单选题
1. 有如下语句序列:
int k=0;
do
{
k+=5;
cout<<'$';
}while(k<19);
while(k-->0)
cout <<'*';
执行上面的语句序列输出字符“$”和“*”的个数分别是()。
A 4和20
B 5和20
C 4和21
D 5和21
参考答案
A
2. 循环体被至少执行一次的循环语句为_______。
A while
B for
C do ...while
D 多重循环
参考答案
C
3. 有如下程序:
int x=3;
do
{
x-=2;
cout< } while(!(--x)); 执行这个程序的输出结果是()。 A 1 B 3 0 C 1-2 D 死循环 参考答案 C 4. 有如下程序段: int i=1; while(1) { i++; if (i%3==0) cout<<"*"; } 执行这个程序段输出字符*的个数是( )。 A 1 B 2 C 3 D 4 参考答案 C 5. 以下为死循环的程序段是()。 A for ( int x=0; x<3; x-- ) x+=2; B int k = 0; do { ++k; } while ( k>=0 ); C int a = 5; while ( a ) { a--; } D int i = 3; for ( ; i; i-- ); 参考答案 B 6. C++语言的跳转语句中,对于break和continue说法正确的是__________。 A break语句只应用于循环体中 B continue语句只应用于循环体中 C break是无条件跳转语句,continue不是 D break和continue的跳转范围不够明确,容易产生问题 参考答案 B 7. 有如下程序段: int i=1; while(1) { i++; if (i%3==0) cout<<"*"; } 执行这个程序段输出字符*的个数是( )。 A 1 B 2 C 3 D 4 参考答案 C 8. 下列说法不正确的是:____________。 A for,while 和do-while循环体中的语句可以是空语句。 B 使用while 和do-while循环时,循环变量初始化的操作应在循环语句之前完成。 C for和do-while循环都是先执行循环体语句,后判断循环条件表达式。 D while循环是先判断循环条件表达式,后执行循环体语句。 参考答案 C 9. while(!x) 其中表达式!x等价于__________。 A x=1 B x!=0 C x==0 D x!=1 参考答案 C 10. 以下程序段的结果是()。 int m=0, n=0; if ( m++ && n++ ) m++; cout << m << "," << n << endl; A 0,0 B 1,1 C 1,0 D 2,1 参考答案 C 11. 若有定义int i=1;则执行完循环while(i++<5);以后i的值为__________。 A 6 B 5 C 4 D 7 参考答案 A 12. 有以下函数: 以下程序段中不能根据x值正确计算出y值的是()。A if (x>0) y=1; else if (x==0) y=0; else y= -1; B y=0; if (x>0) y=1; else if (x<0) y= -1; C y=0; if (x>=0) if (x>0) y=1; else y= -1; D if (x>=0) if (x>0) y=1; else y=0; else y= -1; 参考答案 C 二.填空题 1. 有如下循环语句: for(int i=50; i>20; i-=2) cout< 运行时循环体的执行次数是__1__次。 参考答案 1:15 2. 符合结构化原则的三种基本控制结构是:选择结构、循环结构和__1__。 参考答案 1:顺序结构 3. 一个数如果等于它的因子(包括1)之和,则称该数为完数,如:6=1+2+3; 编程求2到100之间的完数。填写空缺部分。 #include using namespace std; int main( ) {int m,i,s=0; for(m=2;m<100;m++) {__1__ ; i=1; while( __2__ ) {if(m%i==0) s=s+i; i++; } if( __3__) cout<<" "< } cout< return 0; } 参考答案 1:s=0 2:i 3:s==m 或m==s 4. 求1000内所有的完数。所谓“完数”是指与其因子之和相等的数(除本身之外)。例如:6=1+2+3,而1、2和3都是6的因子。要求以如下形式输出:6——>1,2,3。 #include using namespace std; int main() { int i,j,sum; for(i=2;i<=1000;i++) { for(sum=1,j=2;j<=i/2;j++) //求i的因子和 if(i%j==0)sum+=j; if( __1__ ) //判断i是否为完数 { cout<1"; for(j=2;j<=i/2;j++) //按指定格式输出完数