dowhile循环语句

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

dowhile循环语句
篇一:Java编程-do-while语句语法
5.4.2 do-while语句
do-while语句由关键字do和while组成,是循环语句中最典型的“先循环再判断”的流程控制结构,这个和其它2个循环语句都不相同。

do-while语句的语法格式为:
do{
循环体;
}while(循环条件);
语法说明:在do-while语句中,循环体部分是重复执行的代码部分,循环条件指循环成立的条件,要求循环条件是boolean类型,值为true时循环执行,否则循环结束,最后整个语句以分号结束。

执行流程:当执行到do-while语句时,首先执行循环体,然后再判断循环条件,如果循环条件不成立,则循环结束,如果循环条件成立,则继续执行循环体,循环体执行完成以后再判断循环条件,依次类推。

实现和while语句实现的类似的示例,则死循环的示例代
码为:
do{
System.out.println(‘a’);
}while(true);
实现输出0-9这10个数字的循环为:
int i = 0;
do{
System.out.println(i); //输出变量的值
i++; //变量增加1
}while(i < 10);
实现求1-10这10个数字的和的代码为:
int i = 1;
int sum = 0;
do{
sum += i; //求和
i++; //变量增加1
}while(i < 10);
System.out.println(sum); //输出和
同理,实现求5的阶乘的代码类似,在数学上5的阶乘指1×2×3×4×5,数学上规定0的阶乘等于1,在实际计算时,阶乘的值增加的非常快,所以需要注意结果不能溢出。

其具体代码为:
int i = 1;
int result = 1;
do{
result *= i;
i++;
}while(i <= 5);
System.out.println(result);
在实际的程序中,do-while的优势在于实现那些先循环再判断的逻辑,这个可以在一定程度上减少代码的重复,但是总体来说,do-while语句使用的频率没有其他的循环语句高。

篇二:while及do-while循环语句练习
while语句
5. 8 下面程序的功能是将从键盘输入的一对数,由小到大排序输出。

当输入一对相等数时结束循环,
请选择填空__c___
#include<stdio.h>
void main()
{
int a,b,t;
scanf(“%d%d”,&a,&b);
while(【1】)
{ if(a>b)
{t=a;a=b;b=t;}
printf(“%d,%d\n”,a,b);
scanf(“%d%d”,&a,&a mp;b);
}
A)!a= bB) a!=bC) a== bD) a=b
5. 9下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m,n中的较大者,请选择填空_______
#include<stdio.h>
void main()
{
int m=0,n=0;
char c; while((【1】)!=’\n’)
{
if(c>=’A’&&c<=’Z’) m++;
} pri ntf(“%d\n”,m<n? 【2】);
【1】A) c=putchar() B) getchar() C) c=getchar() D) scanf(“%c”,c)
【2】A) n:m B) m:nC) m:m D) n:n
5.10 下面程序的功能是将小写字母变成对应大写字母后的第二个字母。

其中y变成A, z变成B。

请选择填空________
#include<stdio.h>
main()
{
char c;
while((c=getchar())!=’\n’)
{
if(c>=’a’&&c<=’z’)
{【1】;
if(c>’Z’&&c<=’Z’+2) if(c>=’a’&&c<=’z’) n++; }
【2】;
}
printf(“%c”,c);
}
}
【1】A) c+=2B) c-=32C) c=c+32+2D) c-=30
【2】A) c='B'B) c='A' C) c-=26D) c=c+26
5.11 下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环,请选择填空_____ #include<stdio.h>
main()
int a,max=0;
scanf(“%d”,&a);
while(【1】)
{
if(max<a)max=a;
scanf(“%d”,&a);
}
}
【1】A)a==0 B)a C)!a==1 D)!a
5. 12下面程序的运行结果是______ #include <stdio. h>
void main()
{
int num=0;
while(num<=2)
{
num++;
}
A) 1B) 1C) 1D) 1
2 2 2
3 3
5.13若运行以下程序时,从键盘输入2473<CR> (<CR>表示回车),则下面程序的运行结果是____ #include <stdio.h>
void main()
{
int c; printf (%d\n, num); } printf(“%d”,max);
while((c=getchar ( ))!='\n')
switch (c -‘2') {
case 0:
case 1: putchar(c+4);
case 2: putchar(c+4);break;
case 3: putchar(c+3);
}
A) 668977 B) 668966 C) 66778777 D) 6688766
do-while语句
5. 14 C语言中while和do-while循环的主要区别是______。

A) do-while的循环体至少无条件执行一次
B) while的循环控制条件比do-while的循环控制条件严格
C) do-whi
le允许从外部转到循环体内
D) do-while的循环体不能是复合语句
5. 15以下能正确计算1X2X3X…X10的程序段是_____.
A) do
{ i=1;s=1;
i++;
}while (i<=10);
B) do
{ i=1;s=0;
s=s*i;
i++;
}while (i<=10);
C) i=1;s=1;
do
{ s=s*i;
i++;
}while (i<=10);
D) i=1;s=0;
do
{ s=s*i;
i++; s=s*i; } default: putchar(c+2);break; printf(\n);
}while (i<=10);
5.16 以下程字段_____。

x=-1;
do
{
x=x*x;
}while(!x);
A)是死循环
B)循环执行二次
D)有语法错误
5. 17 以下描述中正确的是_______
A)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B) do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C)在do-while循环体中,一定要有能使while后面表达式的值变为零(”假”)的操作
D) do-while循环中,根据情况可以省略while
5. 18 若有如下语句
int x=3;
do
{
printf (%d\n, x-=2);
}while(!(--x));
则上面程序段_________
A)输出的是1 B)输出的是1和-2 C)输出的是3和0 D)是死循环
5. 19 下面程序的功能是计算正整数2345的各位数字平方和,请选择填空________.
#include <stdio.h>
void main()
{
int n,sum = 0;
n=2345;
do
{
sum=sum+【1】;
n=【2】;
}while(n);
printf (sum='%d,sum);
}
【1】A) n%10B) (n%10)*(n%10) C)n/10 D) (n/10)*(n/10) 【2】A) n%1000B) n/100 C)n/10 D)n%10
C)循环执行一次
5. 20下面程序是从键盘输入学号.然后输出学号中百位数字是3的学号,输入0时结束循环。

请选择填空。

#include
<stdio. h>
void main()
{
long int num;
scanf(%ld,&num);
do
{
}while(【2】);
【1】A) num%100/10==3 B) num/100%10==3 C) num%10/10==3D) num/10%10==3
【2】A)!num B)num>0==0C)!num==0 D)!num!=0
5. 22下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除。

请选择填空。

#include <stdio.h>
void main()
{
int i=0,j,k;
do
{
i++;
k=316-13*i;
}while (【1】);
}
【1】A) k/11 B) k%11C) k/11==0 D) k/11=0
5.23 下面程序的运行结果是________
#include <stdio.h>
void main()
{
int y=10;
do
{
y--;
}while(--y);
printf (%d\n,y--);
}
A)-1 B) 1 C) 8D) 0
5. 24 若运行以下程序时,从键盘输入ADescriptor<CR>(<CR>表示回车),则下面程序的运行结果是__。

#include <stdio.h>
void main() j=k/11;printf (316=13*%d+11*%d”,i,j); if(【1】)printf(“学号百分位为3的学号为%d”,num);scanf (“%ld”,&num);
篇三:while循环和do-while循环的主要区别是(
第4章
一、选择题
1. while循环和do-while循环的主要区别是()。

A. do-while的循环体至少无条件执行一次
B. while的循环控制条件比do-while的控制条件严格
C. do-while允许从循环外部转到循环体内
D. do-while的循环体不能是复合语句
2. 关于for循环的正确描述是()。

A. for循环只能用于循环次数已经确定的情况
B. for循环是先执行循环体语句后判断表达式
C. for循环中不能用break语句结束循环
D. for循环体可以包含多条语句,但必须用花括号括起来
3. 以下正确的说法是()。

A. continue语句的作用是结束整个循环的执行
B. 只能在循环体内和swtich语句体内使用break语句
C. 在循环体内使用break或continue语句的作用相同
D. 从多层嵌套中退出只能使用goto语句
4. 以下描述正确的是()。

A. goto语句只能用于退出多层循环
B. swtich语句中不能使用continue语句
C. 只能用continue语句来终止本次循环
D. 在循环中break语句不能独立出现
5. 求“s=1+2+3+...+9+10”,下列语句中错误的是()。

A. s=0;for(i=1;i<=10;i++) s+=i;
B. s=0;i=1;for(;i<=10;i++) s=s+i;
C. for(i=1,s=0;i<=10;s+=i,i=i+1);
D. for(i=1;s=0;i<=10;i++) s=s+i;
6. 下列语句中,哪一个可以输出26个大写英文字母()。

A. for(a=’A’;a<=’Z’;printf(%c,++a));
B. for(a=’A’;a<’Z’;a++)printf(%c,a);
C. for(a=’A’;a<=’Z’;printf(%c,a++));
D. for(a=’A’;a<’Z’;printf(%c,++a));
7. 有程序段“int k=10;while(k=0) k=k-1;”,则正确的是()。

A. while循环10次
B. 循环是无限循环
C. 循环体一次也不执行
D. 循环体只执行一次
8. 语句“while(!E);”中的表达式!E等价于()。

A. E==0
B. E!=1
C. E!=0
D. E==1
9. 程序段“int n=0; while(n++<=2);printf(“%d ”,n);”的运行结果是(
A. 2
B. 3
C. 4
D. 1 2 3
10. 程序段“int i=4; while(--i) printf(%d,i);”中循环体将执行()。

A. 3次
B. 4次
C. 0次
D. 无限次
11. 执行“for(s=0,k=1;s<20||k<10;k=k+2) s+=k;”后,s、k的值为()。

A. 25、9
B. 25、11
C. 36、11
D. 36、9
12. 执行“int k=4,s=0; while(--k) s+=k;”后k、s值分别为()。

A. 10、0
B. 0、10
C. 6、0
D. 0、6 。


13. 执行“float s,x;for(x=0,s=0;x!=10;x=x+0.3)s=s+x;”后,变量x的值()。

A. 远大于10
B. 等于10
C. 小于10
D. 语法错误
14.与while(i>=0&&i<=10) {if(i++==5)continue; printf(%f\n,1.0/(i-5));}功能相同的是()。

A. for(;i>=0&&i<=10;i++) if(i!=5) printf(%f\n,1.0/(i-5));
B. for(;i>=0&&i<=10;i++) if(i==5) printf(%f\n,1.0/(i-5));
C. for(;i>=0&&i<=10;i++) if(i!=5) printf(%f\n,1.0/(i-5)); else break;
D. for(;i<=0&&i>=10;i++) if(i!=5) printf(%f\n,1.0/(i-5));
15. 下面程序段的运行结果是()。

x=y=0;
while(x<15) y++,x+=++y;
printf(“%d,%d”,y,x);
A. 20,7
B. 6,12
C. 20,8
D. 8,20
16. 与while(1){if(i>=100)break;s+=i;i++;} 功能相同的是()。

A. for(;i<100;i++) s=s+i;
B. for(;i<100;i++;s=s+i);
C. for(;i<=100;i++) s+=i;
D. for(;i>=100;i++;s=s+i);
二、填空题
1.循环结构可分为_____循环和_____两种结构,前者是“先判断,后循环”,相应的循环语句有_____和_____,后者是“先循环,后判断”,相应的循环语句有_____。

2. do while循环是一种___型循环,其特点是_____。

3. for循环是一种___型循环,其特点是_____。

4.for语句中表达式1、表达式2和表达式3分别是:__________、__________和__________。

5. 对于同一个循环问题,3种循环语句for、while和do.while_____(随便哪一个都可以/只能是其中一个)实现。

6. for循环中如果有多个变量需要进行初始化,可以使用_____。

7. for循环中的3个表达式_____(是/不是)必需的。

8. 循环的嵌套是指_______________。

9. 在循环嵌套结构中,内层循环执行的次数等于_______________,循环的层数越多,程序执行的速度就越慢。

10. break语句用于_______________,continue语句用于_______________。

三、判断题
1. 循环结构中语句中循环体至少被执行一次。

()
2. 复合语句、选择语句和循环语句都可以嵌套使用。

()
3. 循环体可以是一个空语句,但不可为空。

()
4. 开关语句可以有一个或多个default子句。

()
5. for循环结构是一种“当型”循环。

()
6. while是一种“先判断,后执行”的循环结构。

()
7. do while是一种“当型”循环结构。

()
8. for(;;)或while (1)形式的循环都是永久循环。

()
9. for循环语句格式中可以使用逗号表达式,它可以给多个变量进行初始化;也允许存在两个或多个循环控制变量。

()
10. 没有循环体的循环是不正确的,即不允许有空循环。

()
11. continue和break语句功能相同。

()
四、写出下列程序运行结果
1. #include <stdio.h> main()
{ int i=1;
while(i<=15)
if(++i%3!=2) continue;
else printf(%d,i);
printf(\n);
}
2. #include <stdio.h> main()
{ int a,b,i;
a=1;b=3;i=1;
do { printf(%d,%d,,a,b);
a=(b-a)*2+b;
b=(a-b)*2+a;
if (i++%2==0) printf(\n); } while (b<100);
}
3. #include <stdio.h> main()
{ int i,j=4;
for (i=j;i<=2*j;i++)
switch (i/j)
{ case 0:
case1: printf(*); break;
case2: printf(#);
}
}
五、编程题
1. 编程计算1至50中是7的倍数的数值之和。

2. 从键盘输入的字符中统计数字字符的个数,用换行符结束循环。

3. 输入一批正整数,输出其中的最大值和最小值,输入数字“0”结束循环。

4. 输入一个整数,将其数值按小于10,10-99,100-999,1000以上分类并显示。

例如:输入358时,显示358 is 100 to 999。

5. 编程实现屏幕输出“九九乘法表”,要求以三角形形式输出。

(提示:外循环变量i从1开始到9,内循环变量j从1开始到i)。

6. 求3到M之间的全部素数,M为任意整数。

7. 用公式e=1+1/1!+1/2!+1/3!+ ??+1/n!求e的近似值,精度
为1/n!<10-6。

8. 从键盘输入一位整数,当输入数字0叶程序结束;当输入1~7时,显示下面对应的英文星期名称缩写。

1: MON 2: TUE 3: WED 4: THU 5: FRI 6: SAT 7: SUN。

相关文档
最新文档