C语言谭浩强版本第6章课后练习题答案
第6章课后练习题
一、单项选择题
1.以下程序执行后,a是:
int a =0,i,j;
for (i=5;i>0;i--)
for(j=0;j<4;j++) a++;
A)20
B)25
C)24
D)30
2.执行以下程序段,正确的是:
int x=-1;
do {x=x*x; } while(! x);
A)循环体将执行一次
B)循环体将执行两次
C)循环体将执行无限次
D)系统将提示有语法错误
3.执行以下程序int y=10; do { y - -;} while(- - y); printf("%d\n",y - -);输出的结果是:
A)-1
B)1
C)8
D)0
4.在下列选项中,没有构成死循环的程序段是:
A)int i=100 ;
while(1)
{ i=i%100+1;
if(i>100) break; }
B)for( ; ;) ;
C)int k=1000; do{++k;} while(k>=10000);
D)int s=36; while(s);--s;
5.执行语句: for(i=l;i<4;i++);后,变量i的值是:
A)3
B)4
C)5
D)不定
6.以下叙述正确的是:
A)do-while语句构成的循环不能用其它语句构成的循环来代替。
B)do-while语句构成的循环只能用break语句退出。
C)用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D)用do-while语句构成的循环,在while后的表达式为零时结束循环。7.下列程序执行后,输出结果是:
main()
{ int i, j, m=0;
for(i=0; i<2; i++)
for(j=0; j<2; j++)
if(j>=i) m++;
printf("%d \n",m);
}
A)1
B)2
C)3
D)4
8.以下程序段的执行结果是:
int a, y;
a=10; y=0;
do
{ a+=2; y+=a;
printf("a=%d y=%d\n",a,y);
if(y>20) break;
} while(a=14);
A)a=12 y=12
B)a=12 y=12回车换行a=16 y=28
C)a=12 y=12回车换行a=14 y=26
D)a=12 y=12回车换行a=14 y=26回车换行a=16 y=28 9.Break语句的正确的用法是:
A)无论在任何情况下,都中断程序的执行,退出到系统下一层。
B)在多重循环中,只能退出最靠近的那一层循环语句。
C)跳出多重循环。
D)只能修改控制变量。
10.忽略循环体后面语句,继续执行下一次循环的是:
A)break语句
B)return语句
C)continue语句
D)空语句。
11.语句while(!E); 中的条件!E 等价于:
A)E = = 0
B)E !=1
C)E !=0
D)~E
12.关于for(x=0,y=0; (y!=123)&&(x<4); x + + );正确的是:
A)是无限循环
B)循环次数不定
C)执行4 次
D)执行3 次
13.关于C 语言,正确的是:
A)不能使用do-while 语句构成的循环
B)do-while 语句构成的循环必须用break 语句才能退出
C)do-while 语句构成的循环,当while 语句中的表达式值为非零时结束
循环
D)do-while 语句构成的循环,当while 语句中的表达式值为零时结束循
14.以下正确的描述是:
A)continue 语句的作用是结束整个循环的执行
B)只能在循环体内和switch 语句体内使用break 语句
while语句简单例子C)在循环体内使用break 语句或continue 语句的作用相同
D)从循环嵌套中退出时,只能使用goto 语句
15.设有程序段
t=0;
while(printf(“*”))
{
t++;
if(t<3) break;
}
则下面描述正确的是。
A)其中循环控制表达式与0等价B)其中循环控制表达式与…0?等价
C)其中循环控制表达式是不合法的D)以上说法都不对
16.C语言中while和do-while循环的主要区别是:
A)d o-while的循环体至少无条件执行一次
B)w hile的循环控制条件比do-while的循环控制条件严格
C)d o-while允许从外部转到循环体内
D)d o-while的循环体不能是复合语句
17.以下能正确计算1×2×3×…×10的程序段是:
A)do{i=1; s=1; B)do{i=1; s=0;
s=s*i; s=s*i;
i++; i++;
}while(i<=10); }while(i<=10);
C)i=1; s=1;D)i=1; s=0;
do{s=s*i; do{s=s*i;
i++; i++;
}while(i<=10); }while(i<=10);
18.下面有关for循环的正确描述是:
A)f or循环只能用于循环次数已经确定的情况
B)f or循环是先执行循环体语句,后判断表达式
C)在for循环中,不能用break语句跳出循环体
D)f or循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
19.对for(表达式1;;表达式3)可理解为:
A)for(表达式1;0;表达式3) B)for(表达式1;1;表达式3)
C)for(表达式1; 表达式1;表达式3)
D)for(表达式1; 表达式3;表达式3)
20.以下不是无限循环的语句为:
A)f or(y=0,x=1;x>++y;x=i++) i=x
B)f or(;;x++=i);
C)w hile(1) { x++; }
D)f or(i=10;;i--) sum+=i;
21.以下描述正确的是:
A)g oto语句只能用于退出多层循环
B)s witch语句中不能出现continue语句
C)只能用continue语句来终止本次循环
D)在循环中break语句不能独立出现
二、判断题
1.int sum=0 , k=1 ; while (k < =100 ) sum = sum+k ; k + + ; 可以求得1+..+100的和。( ×)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。