内容正文:
专题5:while循环与do…while循环
一、单项选择题(在每小题列出的四个备选答案中,只有一个是正确选项。)
1.do...while循环的执行特点是( )
A. 先判断条件,后执行循环体
B. 先执行循环体,后判断条件
C. 条件满足时执行循环体,不满足时也执行一次
D. 以上都不对
2.以下能正确计算1+2+3+…+10的while循环是( )
A. int i=1,sum=0; while(i<=10) {sum+=i; i++;}
B. int i=1,sum=0; while(i<10) {sum+=i; i++;}
C. int i=0,sum=1; while(i<=10) {sum+=i; i++;}
D. int i=0,sum=0; while(i<10) {sum+=i; i++;}
3.对于do{循环体}while(条件);,若条件一开始就不满足,循环体执行次数是( )
A. 0次
B. 1次
C. 无数次
D. 不确定
4.执行int i=5; while(i--);后,i的值是( )
A. 0
B. -1
C. 4
D. 5
5.若有int x=3; do{printf("%d",x--);}while(!x);,输出结果是( )
A. 3
B. 32
C. 321
D. 无输出
6.有循环while(a>5) {a--;},若a初始值为8,循环执行次数是( )
A. 2次
B. 3次
C. 4次
D. 5次
7.以下代码的输出是( )
int i=0;
while(i<3) {
printf("%d",i);
i++;
}
A. 012
B. 0123
C. 123
D. 无输出
8.对于do{printf("*");}while(0);,输出结果是( )
A. 一个*
B. 无输出
C. 无数个*
D. 编译错误
9.有代码int i=1,sum=0; while(i<=5) {sum+=i; i++;},执行后sum的值是( )
A. 10
B. 15
C. 20
D. 25
10.比较while和do...while循环,当条件第一次就不满足时,则( )
A. 两者都不执行循环体
B. while不执行,do...while执行一次
C. while执行一次,do...while不执行
D. 两者都执行一次
11.代码int x=2; while(x--); printf("%d",x);的输出是( )
A. 2
B. 1
C. 0
D. -1
12.有do{printf("%c",'A'+i); i++;}while(i<3);,若i初始为0,输出是( )
A. ABC
B. BCD
C. A
D. AB
13.代码int a=0,b=0; while(a<5) {b += a; a++;},执行后b的值是( )
A. 5
B. 10
C. 15
D. 20
14.以下do...while循环的执行过程描述正确的是( )
A. 先判断条件,若满足则执行循环体,再判断条件,直到不满足
B. 先执行循环体,再判断条件,若满足则重复执行循环体,直到不满足
C. 条件满足时执行循环体,不满足时直接退出
D. 以上都不对
15.有代码int i=3; do{printf("%d",i--);}while(i>0);,输出结果是( )
A. 321
B. 32
C. 21
D. 3
二、阅读程序,写出运行结果。
16.下列程序的运行结果是:____________
#include <stdio.h>
int main() {
int i = 1, sum = 0;
while (i <= 4) {
sum += i;
i++;
}
printf("%d", sum);
return 0;
}
17.下列程序的运行结果是:____________
#include <stdio.h>
int main() {
int x = 5;
do {
printf("%d ", x--);
} while (x > 2);
return 0;
}
18.下列程序的运行结果是:____________
#include <stdio.h>
int main() {
int i = 0;
while (i < 3) {
i++;
if (i == 2) continue;
printf("%d", i);
}
return 0;
}
19.下列程序的运行结果是:____________
#include <stdio.h>
int main() {
int a = 1, b = 1;
do {
b += a;
a++;
} while (a <= 3);
printf("%d", b);
return 0;
}
20.下列程序的运行结果是:____________
#include <stdio.h>
int main() {
int n = 0;
while (n < 5) {
if (n % 2 == 0) {
n++;
continue;
}
printf("%d", n);
n++;
}
return 0;
}
21.下列程序的运行结果是:____________
#include <stdio.h>
int main() {
int i = 0, j = 0;
while (i < 2) {
j = 0;
while (j < 3) {
if (j == 1) break;
printf("*");
j++;
}
i++;
}
return 0;
}
22.下列程序的运行结果是:____________
#include <stdio.h>
int main() {
int x = 3;
while (x-- > 0) {
printf("%d", x);
}
return 0;
}
23.下列程序的运行结果是:____________
#include <stdio.h>
int main() {
int i = 1;
do {
if (i % 2 == 0) {
i++;
continue;
}
printf("%d", i);
i++;
} while (i <= 5);
return 0;
}
24.下列程序的运行结果是:____________
#include <stdio.h>
int main() {
int a = 0, b = 5;
while (a < b) {
b--;
a++;
}
printf("%d %d", a, b);
return 0;
}
25.下列程序的运行结果是:____________
#include <stdio.h>
int main() {
int n = 1;
while (n <= 4) {
printf("%d", n * n);
n++;
}
return 0;
}
三、程序填空题。
26.以下程序实现“求1到n的和”,请填空。
#include <stdio.h>
int main() {
int n, i = 1, sum = 0;
scanf("%d", &n);
while (__(1)__) {
sum += i;
__(2)__;
}
printf("sum = %d", sum);
return 0;
}
27.以下程序实现“输出100以内的所有偶数”,请填空。
#include <stdio.h>
int main() {
int i = 0;
while (__(1)__) {
printf("%d ", i);
__(2)__;
}
return 0;
}
28.以下程序实现“计算斐波那契数列的第n项(斐波那契数列:1,1,2,3,5,8…)”,请填空。
#include <stdio.h>
int main() {
int n, i = 3, a = 1, b = 1, c;
scanf("%d", &n);
if (n == 1 || n == 2) {
printf("1");
return 0;
}
while (__(1)__) {
c = a + b;
a = b;
__(2)__;
i++;
}
printf("%d", c);
return 0;
}
29.以下程序实现“计算1! + 2! + 3! + … + 5!”,请填空。
#include <stdio.h>
int main() {
int i = 1, j, fact, sum = 0;
while (__(1)__) {
fact = 1;
j = 1;
while (__(2)__) {
fact *= j;
j++;
}
sum += fact;
__(3)__;
}
printf("sum = %d", sum);
return 0;
}
30.以下程序实现“输入一个整数,逆序输出其各位数字”,请填空。
#include <stdio.h>
int main() {
int num, digit;
scanf("%d", &num);
do {
digit = __(1)__;
printf("%d", digit);
__(2)__;
} while (num != 0);
return 0;
}
学科网(北京)股份有限公司
$
专题5:while循环与do…while循环
一、单项选择题(在每小题列出的四个备选答案中,只有一个是正确选项。)
1.do...while循环的执行特点是( )
A. 先判断条件,后执行循环体
B. 先执行循环体,后判断条件
C. 条件满足时执行循环体,不满足时也执行一次
D. 以上都不对
【答案】B
2.以下能正确计算1+2+3+…+10的while循环是( )
A. int i=1,sum=0; while(i<=10) {sum+=i; i++;}
B. int i=1,sum=0; while(i<10) {sum+=i; i++;}
C. int i=0,sum=1; while(i<=10) {sum+=i; i++;}
D. int i=0,sum=0; while(i<10) {sum+=i; i++;}
【答案】A
3.对于do{循环体}while(条件);,若条件一开始就不满足,循环体执行次数是( )
A. 0次
B. 1次
C. 无数次
D. 不确定
【答案】B
4.执行int i=5; while(i--);后,i的值是( )
A. 0
B. -1
C. 4
D. 5
【答案】B
5.若有int x=3; do{printf("%d",x--);}while(!x);,输出结果是( )
A. 3
B. 32
C. 321
D. 无输出
【答案】A
6.有循环while(a>5) {a--;},若a初始值为8,循环执行次数是( )
A. 2次
B. 3次
C. 4次
D. 5次
【答案】B
7.以下代码的输出是( )
int i=0;
while(i<3) {
printf("%d",i);
i++;
}
A. 012
B. 0123
C. 123
D. 无输出
【答案】A
8.对于do{printf("*");}while(0);,输出结果是( )
A. 一个*
B. 无输出
C. 无数个*
D. 编译错误
【答案】A
9.有代码int i=1,sum=0; while(i<=5) {sum+=i; i++;},执行后sum的值是( )
A. 10
B. 15
C. 20
D. 25
【答案】B
10.比较while和do...while循环,当条件第一次就不满足时,则( )
A. 两者都不执行循环体
B. while不执行,do...while执行一次
C. while执行一次,do...while不执行
D. 两者都执行一次
【答案】B
11.代码int x=2; while(x--); printf("%d",x);的输出是( )
A. 2
B. 1
C. 0
D. -1
【答案】D
12.有do{printf("%c",'A'+i); i++;}while(i<3);,若i初始为0,输出是( )
A. ABC
B. BCD
C. A
D. AB
【答案】A
13.代码int a=0,b=0; while(a<5) {b += a; a++;},执行后b的值是( )
A. 5
B. 10
C. 15
D. 20
【答案】B
14.以下do...while循环的执行过程描述正确的是( )
A. 先判断条件,若满足则执行循环体,再判断条件,直到不满足
B. 先执行循环体,再判断条件,若满足则重复执行循环体,直到不满足
C. 条件满足时执行循环体,不满足时直接退出
D. 以上都不对
【答案】B
15.有代码int i=3; do{printf("%d",i--);}while(i>0);,输出结果是( )
A. 321
B. 32
C. 21
D. 3
【答案】A
二、阅读程序,写出运行结果。
16.下列程序的运行结果是:____________
#include <stdio.h>
int main() {
int i = 1, sum = 0;
while (i <= 4) {
sum += i;
i++;
}
printf("%d", sum);
return 0;
}
【答案】10
17.下列程序的运行结果是:____________
#include <stdio.h>
int main() {
int x = 5;
do {
printf("%d ", x--);
} while (x > 2);
return 0;
}
【答案】5 4 3
18.下列程序的运行结果是:____________
#include <stdio.h>
int main() {
int i = 0;
while (i < 3) {
i++;
if (i == 2) continue;
printf("%d", i);
}
return 0;
}
【答案】13
19.下列程序的运行结果是:____________
#include <stdio.h>
int main() {
int a = 1, b = 1;
do {
b += a;
a++;
} while (a <= 3);
printf("%d", b);
return 0;
}
【答案】7
20.下列程序的运行结果是:____________
#include <stdio.h>
int main() {
int n = 0;
while (n < 5) {
if (n % 2 == 0) {
n++;
continue;
}
printf("%d", n);
n++;
}
return 0;
}
【答案】13
21.下列程序的运行结果是:____________
#include <stdio.h>
int main() {
int i = 0, j = 0;
while (i < 2) {
j = 0;
while (j < 3) {
if (j == 1) break;
printf("*");
j++;
}
i++;
}
return 0;
}
【答案】**
22.下列程序的运行结果是:____________
#include <stdio.h>
int main() {
int x = 3;
while (x-- > 0) {
printf("%d", x);
}
return 0;
}
【答案】210
23.下列程序的运行结果是:____________
#include <stdio.h>
int main() {
int i = 1;
do {
if (i % 2 == 0) {
i++;
continue;
}
printf("%d", i);
i++;
} while (i <= 5);
return 0;
}
【答案】135
24.下列程序的运行结果是:____________
#include <stdio.h>
int main() {
int a = 0, b = 5;
while (a < b) {
b--;
a++;
}
printf("%d %d", a, b);
return 0;
}
【答案】3 3
25.下列程序的运行结果是:____________
#include <stdio.h>
int main() {
int n = 1;
while (n <= 4) {
printf("%d", n * n);
n++;
}
return 0;
}
【答案】14916
三、程序填空题。
26.以下程序实现“求1到n的和”,请填空。
#include <stdio.h>
int main() {
int n, i = 1, sum = 0;
scanf("%d", &n);
while (__(1)__) {
sum += i;
__(2)__;
}
printf("sum = %d", sum);
return 0;
}
【答案】(1)i <= n;(2)i++
27.以下程序实现“输出100以内的所有偶数”,请填空。
#include <stdio.h>
int main() {
int i = 0;
while (__(1)__) {
printf("%d ", i);
__(2)__;
}
return 0;
}
【答案】(1)i <= 100;(2)i += 2
28.以下程序实现“计算斐波那契数列的第n项(斐波那契数列:1,1,2,3,5,8…)”,请填空。
#include <stdio.h>
int main() {
int n, i = 3, a = 1, b = 1, c;
scanf("%d", &n);
if (n == 1 || n == 2) {
printf("1");
return 0;
}
while (__(1)__) {
c = a + b;
a = b;
__(2)__;
i++;
}
printf("%d", c);
return 0;
}
【答案】(1)i <= n;(2)b = c
29.以下程序实现“计算1! + 2! + 3! + … + 5!”,请填空。
#include <stdio.h>
int main() {
int i = 1, j, fact, sum = 0;
while (__(1)__) {
fact = 1;
j = 1;
while (__(2)__) {
fact *= j;
j++;
}
sum += fact;
__(3)__;
}
printf("sum = %d", sum);
return 0;
}
【答案】(1)i <= 5;(2)j <= i;(3)i++
30.以下程序实现“输入一个整数,逆序输出其各位数字”,请填空。
#include <stdio.h>
int main() {
int num, digit;
scanf("%d", &num);
do {
digit = __(1)__;
printf("%d", digit);
__(2)__;
} while (num != 0);
return 0;
}
【答案】(1)num % 10;(2)num /= 10
学科网(北京)股份有限公司
$