第四章 习题答案(6页).doc
-第四章 习题答案-第 6 页1、C语言中while和do-while循环的主要区别是答案A. do-while的循环体至少无条件执行一次B. while的循环控制条件比do-while的循环控制条件严格C. do-while允许从外部转到循环体内D. do-while的循环体不能是复合语句2、下列叙述中正确的是答案A. break 语句只能用于 switch 语句体中B. continue语句的作用是使程序的执行流程跳出包含它的所有循环C. break 语句只能用在循环体内和 switch 语句体内D. 在循环体内使用 break语句和 continue 语句的作用相同3、下列叙述中正确的是答案A. do-while语句构成的循环不能用其它语句构成的循环来代替B. do-while语句构成的循环只能用break语句退出C. 用do-while语句构成的循环,在while后的表达式为非零时结束循环D. 用do-while语句构成的循环,在while后的表达式为零时结束循环4、执行x=-1; do x=x*x; while (!x); 循环时,下列说法正确的是答案A. 循环体将执行一次B. 循环体将执行两次C. 循环体将执行无限次D. 系统将提示有语法错误5、假设变量s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0),则与以下程序段s=a; for(b=1;b<=c;b+) s=s+1; 功能等价的赋值语句是答案A. s=a+b;B. s=a+c;C. s=s+c;D. s=b+c;6、以下程序段的输出结果是int main(void) int num = 0,s = 0;while(num <= 2) num+; s += num; printf("%dn",s); return 0;答案A. 10 B. 6 C. 3 D. 1 7、运行以下程序后,如果从键盘上输入65 14<回车>,则输出结果为int main(void) int m, n;printf("Enter m,n;"); scanf("%d%d", &m,&n): while (m!=n) while (m>n) m=m-n; while (n>m) n=n-m; printf("m=%dn",m); return 0;答案A. m=3B. m=2C. m=1D. m=08、下列程序段的输出结果是int main(viod) for(int i=1;i<6;i+) if( i%2 != 0) printf("#");continue; printf("*"); printf("n"); return 0;答案A. #*#*#B. #C. *D. *#*#*9、若s0,执行循环语句"for(i=1; i<=10; i=i+3) s=s+i; "后,i的值为x x 的答案1310、问题 下列程序段的输出结果是xint x=2;do printf(“*”); x-; while(!x=0); x 的答案*11、下列程序段的功能是计算:s=1+12+123+1234+12345。则划线处应填xint t=0,s=0,i;for(i=1;i<=5;i+) t=i+ s=s+t; printf("s=%dn",s); x 的答案t*1010*t12、以下程序的输出结果是xint main(void)int num=0; while(num<6) num+; if(num=3) break; printf("%d",num); return 0; x 的答案1213、阅读下列程序并回答问题。main() int i, j, k=0, m=0; for(i=0; i<2; i+) /* 第6行*/ for(j=0; j<3; j+) k+; m+; /* 第9行*/ printf("k=%d,m=%dn", k, m); (1)程序的输出是x(2)将第9行改为 " m=m+k; ",程序的输出是y(3) 将第6行改为"k=0; " ,将第9行改为 " m=m+k; " ,程序的输出是z x 的答案k=6,m=2y 的答案k=6,m=9z 的答案k=3,m=614、输入 happy$new$year!<回车>,则下列程序的运行结果是xint main(void) int i,word=0; char c; while(c=getchar()!='n') if (c='$') word=0; else if(word=0) if (c>='a'&&c<='z') c=c-'a'+'A' word=1; else word=0; putchar(c); return 0; x 的答案Happy$New$Year!