循环结构练习题

第4章循环结构

(一)、是非题

1. C语言中,do-while语句构成的循环只能用break语句退出。

A.对

B.错

2.在循环外的语句不受循环的控制,在循环内的语句也不受循环的控制。

A.对

B.错

3.从语法角度看,for(表达式1;表达式2;表达式3)语句中的3个表达式均可省略。

A.对

B.错

4.for、while和do while循环结构的循环体均为紧接其后的第一个语句(含复合语句)。

A.对

B.错

5.由i=-1;while(i<10) i+=2;i++;可知,此while循环的循环体执行次数为6次。

A.对

B.错

6.循环for( ; ; )的循环条件始终为真。

A.对

B.错

7.do…while语句的循环体至少执行1次,while和for循环的循环体可能一次也不执行。

A.对

B.错

8.break;语句执行时退出本层循环,continue;语句结束本次循环。

A.对

B.错

9.for循环、while循环和do while循环结构之间可以相互转化。

A.对

B.错

10.break;语句执行时退出到包含该break;语句的所有循环外。。

A.对

B.错

11.二重循环for(i=0;i<5;i+=2) for(j=0;j<5;j++)的循环体的执行次数为15。

A.对

B.错

12.执行i=-1; while(i<10) i+=2;i++; 后,i的值为11。

A.对

B.错

13.int i=1;while(1) i++; 则在任何条件下,该循环语句都会执行无穷多次

A.对

B.错

14.while和do…while的功能完全相同。

A.对

B.错

15.while后的表达式只能是逻辑或关系表达式。

A.对

B.错

16.语句while(E);中的表达式E等价于E!=0。

A.对

B.错

17.只能在循环体内和switch语句体内使用break语句。

A.对

B.错

18.程序段 int k=10; while(k=0)k=k-1; 中,while循环执行10次。

A.对

B.错

19.若i为整型变量,则 for(i=2;i= =0;)printf("%d",i--);循环执行次数是0次。

A.对

B.错

20.执行语句for(i=1;i++<4; );后,变量i的值是4。

A.对

B.错

(二)、选择题

1.下列程序的输出结果是______。

#include "stdio.h"

void main()

{ int i,a=0,b=0;

for(i=1;i<10;i++)

{ if(i%2==0) {a++; continue;}

b++;}

printf("a=%d,b=%d",a,b); }

A.a=4,b=4

B.a=4,b=5

C.a=5,b=4

D.a=5,b=5

2.已知:int t=0; while(t=1) { ... } ,则以下叙述正确的是______。

A.循环表达式的值为0

B.循环表达式的值为1

C.循环表达式不合法

D.以上说法都不对

3.设有以下程序段,则 _____。

int x=0,s=0; while(!x!=0) s+=++x; printf("%d",s);

while(!0!=0)

while(1!=0)

while(1) 执行 s=s+(++x) s=1

A.运行程序段后输出0

B.运行程序段后输出1

C.程序段中的表达式是非法的

D.程序段执行无限次

4.以下程序的运行结果是______。

#include

void main()

{ int y=9;

for( ; y>0;y--)

if(y%3==0) printf("%d",--y); }

A.741

B.963

C.852

D.875421

5.以下描述中正确的是______。

A.由于do-while的循环体只能有一条语句,所以循环体内不能使用复合语句

B.do-while由do开始,用while结束,在while(表达式)后面不能写分号

C.在do-while循环中,是先执行一次循环体,再进行判断

D.在do-while循环中,根据情况可以省略while

6.以下程序段的运行结果是______。

i=0; do printf("%d,",i); while(i++); printf("%d\n",i);

A.0,0

B.0,1

C.1,1

D.程序进入无限循环

7.若程序执行时的输入数据是2473<回车>,则下述程序的输出结果是______。

#include

void main()

{ int cs;

while((cs=getchar())!='\n')

{switch(cs-'2')

{ case 0:

case 1: putchar(cs+4);

case 2: putchar(cs+4); break;

case 3: putchar(cs+3);

default: putchar(cs+2); }

}

}

A.668977

B.668966

C.6677877

D.6688766

8.以下程序的输出结果是______。

#include "stdio.h"

void main()

{ int a,i;a=0;

for(i=1;i<5;i++)

switch(i)

{ case 0: case 3:a+=2;

case 1: case 2:a+=3;

default:a+=5 ; }

printf("%d\n",a); }

A.31

B.13

C.10

D.20

9.以下程序的运行结果是______。

#include

void main()

{ int i,j,m=55;

for(i=1;i<=3;i++)

for(j=3;j<=i;j++) m=m%j;

printf("%d\n",m); }

A.0

B.1

C.2

D.3

10.以下程序的运行结果是______。

#include

void main()

{ int i;

for(i='a';i<'f';i++,i++)printf("%c",i-'a'+'A');

printf("\n"); }

A.ACE

B.BDF

C.ABD

D.CDE

11.以下程序运行后的输出结果是______。

#include

void main()

{ int k=5,n=0;

do {switch(k)

{ case 1: case 3:n+=1;k--;break;

default:n=0;k--;

case 2: case 4:n+=2;k--;break; }

printf("%d",n);

}while(k>0 && n<5); }

A.235

B.0235

C.02356

D.2356

12.下面程序的输出结果是______。

#include

void main()

{ int n=9; while(n>6){n--; printf("%d",n);} }

A.987

B.876

C.8765

D.9876

13.下述程序的输出结果是_______。

#include

void main()

{ int x=0,y=0,i;

for(i=1;;++i)

{ if(i%2==0) {x++;continue;}

if(i%5==0) {y++;break;}

}

printf (" %d,%d",x,y); }

A.2,1

B.2,2

C.2,5

D.5,2

14.下述程序的输出结果是_______。

#include

void main()

{ int x=8;

for( ; x>0; x--)

{ if(x%3) {printf("%d,",x--); continue; }

printf("%d,",--x); } }

A.7,4,2,

B.8,7,5,2,

C.9,7,6,4,

D.8,5,4,2,

15.以下不会构成无限循环的语句或语句组是_______。

A.n=0; do{++n;}while(n<=0);

B.n=0; while(1){n++;}

C.n=10; while(n);{n--;}

D.for(n=0,i=1; ;i++)n+=i;

16.以下程序的运行结果是_______。

#include "stdio.h"

void main()

{ int k=0,m=0,i,j;

for(i=0;i<2;i++)

{ for(j=0;j<3;j++) k++; k-=j; }

m=i+j;

printf("k=%d,m=%d",k,m); }

A.k=0,m=3

B.k=0,m=5

C.k=1,m=3

D.k=1,m=5

17.若int i,j;,则for(i=j=0;i<10&&j<8;i++,j+=3)控制的循环体的执行次数是_______。

A.9

B.8

C.3

D.2

18.下述程序的输出结果是_______。

#include "stdio.h"

void main()

{ int i=6;

while(i--) printf("%d",--i);

printf("\n"); }

A.531

B.420

C.654321

D.死循环

19.下述程序的输出结果是_______。

#include "stdio.h"

void main()

{ int a=0,b=0,c=0,i;

for(i=0;i<4;i++)

switch(i)

{ case 0:a=i++;

case 1:b=i++;

case 2:c=i++;

case 3:i++; }

printf("%d,%d,%d,%d\n",a,b,c,i);}

A.0,1,3,4

B.1,2,3,4

C.0,1,2,5

D.0,2,3,4

20.下面程序的运行结果是_______。

a=1;b=2; c=2; while(a

printf("%d,%d,%d",a,b,c);

A.1,2,0

B.2,1,0

C.1,2,1

D.2,1,1

VB循环结构测试题及答案

循环结构测试题(四) 一:选择题 1:以下()是正确的for….next结构。 (A)for x=1 to step 10 (B) for x=3 to –3 step -3….. ….. next x next x (C ) for x=1 to 10 (D) for x=3 to step 3 re: …. …… Next x next y If I=10 then goto re 2:下列循环语句能正常结束循环的是() (A)I=5 (B) I=1 do do I=I+1 I=I+2 Loop until I<0 loop until I=10 (C) I=10 (D) I=6 do do

I=I-1 I=I-2 Loop until I<0 loop until I=1 3:下面程序段的运行结果为( ) for I=3 to 1 step –1 print spc(5-I); for j=1 to 2*I-1 print “*”; next j print next I 4下列程序在文本框输入“ABCD ”四个字符时,窗体上显示的是( ) private sub text1_change( ) print ; end sub (A) ABCD (B) ( C ) AABABCABCD * * * * (B) * * * * * * * * (C) * * * * * * * * (D) * * * * * * * * A B C (D) A AB ABC

5哪个程序段不能分别正确显示1!,2!,3!,4!的( ) 二:填空题 1:要使下列For 语句循环执行20次,循环变量的初值应当是: for k=( ① ) to –5 step –2 2:下面程序段显示( ② )个“*” 。 For I=1 to 5 For j=2 to I Print “*”; Next j Next I 3: 下列第40句共执行了( ③ )次,第41句共执行(④ )次。 30 for j=1 to 12 step 3 40 for k=6 to 2 step –2 41 print j,k 42 next k (A ) for I=1 to 4 n=1 for j=1 to I (B ) for I=1 to 4 for j=1 to I n=1 (C) N=1 for j=1 to 4 (D) N=1 J=1 Do while j<=4

循环练习

1.下面程序的循环次数是: int k=0; while(k<10) {if(k<1) continue; if(k==5) break; k++; } A. 5 B 6 C 4 D 死循环,不能确定循环次数 2.运行下面程序: main() { int i=10,j=0; do { j=j+i; i--; }while(i>5); printf(“%d\n”,j); } 输出结果是: A 45 B 40 C 34 D 55 3.运行下面程序 #include “stdio.h” main() { int k=0,a=1; while(k<10) { for( ; ;) { if((k%10)==0) break; else k--; } k+=11; a+=k; } printf(“%d %d\n”,k,a); } 则输出的结果是() A 21 32 B 21 33 C 11 12 D 10 11

4.以下叙述正确的是: A.do---while语句构成的循环不能用其他语句构成的循环来代替。 B.do---while语句构成的循环只能用break语句退出。 C.用do---while语句构成的循环,在while 后的表达式为非零时结束循环。 D.用do---while语句构成的循环,在while后的表达式为零时结束循环。 5.有如下程序: main() { int x=3; do{ printf(“%d”,x--); }while(!x); } 该程序的执行结果是: A 3 2 1 B 2 1 0 C 3 D 2 6.若k为整型变量,则下面while循环执行的次数为: k=10; while(k==0) k=k-1; A 0 B 1 C 10 D无限次 7.执行以下程序后,输出结果是: main() { int y=10; do { y--;}while(--y); printf(“%d”,y--); } A -1 B 1 C 8 D 0 8.求1-2+3-4+…+99-100。 9.计算1---100以内的所有含6的数的和。 10.输出所有的3位水仙花数。所谓水仙花数是指所有位的数字的立方之和等于该数,例如:153=13+33+53

最新实验四分支循环结构程序设计

实验四分支循环结构 程序设计

实验四、分支循环结构程序设计 一、实验目的 1.通过本实验,加深对循环控制结构有关概念的理解。 2.熟练掌握while、do-while和for三种循环控制语句的特点,掌握循环结构程序设计和调试方法。 3.掌握二重循环结构程序的设计方法。 二、实验内容 1.用while循环实现数据统计问题。 数据统计问题:从键盘输入一批任意数量的整数,统计其中不大于100的非负数数值的个数。 2.编写并调试程序,使用do-while循环控制语句实现上面的数据统计问题。调试数据仍参照上面给出的几种情况设计使用。 3.编写并调试程序,使用for循环控制语句实现上面的数据统计问题。4.阶乘累加问题。编写程序,求1+2!+3!+…+n!的值(习题5.9)。三、实验指导 1.用while循环实现数据统计问题。 ⑴编程分析 由于输入数据个数是不确定的,因此每次执行程序时,循环次数都是不 确定的。在进行程序设计时,确定循环控制的方法是本实验的一个关键 问题。循环控制条件可以有多种确定方法: ①使用一个负数作为数据输入结束标志。 ②输入一个数据后通过进行询问的方式决定是否继续输入下一个数据。 ⑵参考程序 l 参考程序一 /* 使用负数作为数据输入结束标志的程序 */ #include "stdio.h" void main() { int m,counter=0; while(1) { printf("请输入一个整数:"); scanf("%d",&m); if(m<0)break; if(m<=100)counter++; printf("\n"); } printf("符合要求的整数个数为: %d\n",counter); } l 参考程序二 /* 通过进行询问的方式决定是否继续输入下一个数据的程序 */ #include "stdio.h" void main() { int m,counter=0; char ask; while(1) { printf("请输入一个整数:"); scanf("%d",&m);

循环结构程序设计练习题 内含答案

第三单元循环结构练习题 选择题: 1、有以下程序执行后的输出结果是( D )。 main( ) { int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf("%d\n",s);} A.自然数1~9的累加和 B.自然数1~10的累加和 C.自然数1~9中的奇数之和 D.自然数1~10中的偶数之和 2、以下关于for语句的说法不正确的是( A )。 A. for循环只能用于循环次数已经确定的情况 B. for循环是先判断表达式,后执行循环体语句 C. for循环中,可以用break跳出循环体 D. for循环体语句中,可以保含多条语句,但要用花括号括起来 3、若i和k都是int类型变量,有以下for语句 for(i=0,k=-1;k=1;k++) printf("*****\n"); 下面关于语句执行情况的叙述中正确的是( d )。 A.循环体执行两次 B.循环体执行一次 C.循环体一次也不执行 D.构成无限循环 4、以下程序程序的执行后的输出结果是( c )。 main() {int i,t[][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<3;i++) printf(“%d”,t[2-i][i]);} A.7 5 3 B. 3 5 7 C.3 6 9 D.7 5 1 5、以下程序运行后的输出结果是( A )。 void fun(char*s) { while(*s) { if(*s%2==0) printf(“%c”,*s); s++;} } main() { char a[]={“good”};fun(a);printf(“\n”);} 注意:字母a的ASCⅡ码值为97 A.d B.go C.god D.good 6、已知 int t=0; while(t=1){...} 则以下叙述正确的是( B )。 A)循环控制表达式的值为0 B)循环控制表达式的值为1 C)循环控制表达式不合法 D)以上说法都不对 7、设有以下程序段 B int x=0,s=0; while(!x!=0)s+=++x; printf("%d",s); 则 A)运行程序段后输出0

程序框图、顺序结构、循环结构(精)

程序框图、顺序结构、循环结构 1.程序框图 (1程序框图又称流程图,是一种用程序框、流程线及文字说明来表示算法的图形. (2在程序框图中,一个或几个程序框的组合表示算法中的一个步骤;带有方向箭头的流程线将程序框连接起来,表示算法步骤的执行顺序. 2.常见的程序框、流程线及各自表示的功能 图形符号名称功能 终端框(起止框表示一个算法的起始和结束 输入、输出框表示一个算法输入和输出的信息 处理框(执行框赋值、计算

判断框判断某一条件是否成立,成立时在出口处标明“是”或“Y”;不成立时标明“否”或“N” 流程线连接程序框 ○连接点连接程序框图的 两部分 3.条件结构的概念 在一个算法中,经常会遇到一些条件的判断,算法的流程根据条件是否成立有不同的流向.条件结构就是处理这种过程的结构. 名称双条件结构单条件结构 结构 形式 特征两个步骤A、B根据条件是否满足选 择其中一个执行 根据条件是否成立选择是否执行步 骤A

4.循环结构的定义 在一些算法中,经常会出现从某处开始,按照一定的条件反复执行某些步骤的情况,这就是循环结构.反复执行的步骤称为循环体. 名称 双条件结构单条件结构 结构形式 特征 两个步骤 A 、 B 根据条件是否满足选择其中一个执行 根据条件是否成立选择是否执行步 骤A 对条件结构的理解

(1如图1-1-16是算法流程图的一部分,其算法的逻辑结构是( 图1-1-16 A .顺序结构 B .条件结构 C .判断结构 D .以上都不对 (2给出以下四个问题:

①输入一个数x ,输出它的相反数;②求面积为6的正方形的周长;③求三个数 a , b , c 中的最大数;④求函数f (x x -1,x ≥0,x +2,x <0 的函数值. 其中不需要用条件结构来描述其算法的有( A .1个 B .2个 C .3个 D .4个 [再练一题] 1.条件结构不同于顺序结构的特征是含有( A .处理框 B .判断框 C .输入、输出框 D .起止框 简单条件结构的设计

实验四 循环结构

实验报告 班级:电信13-1班学号:130******** 姓名:谢朗星成绩: 实验四循环结构 一、实验目的 1.掌握循环结构C程序的编写和调试方法。 2.掌握循环结构C程序中使用while语句和do while语句。 二、实验内容和步骤 1.调试下面三个程序,分析执行的结果。 1. #include int main( ) { int sum=0,i=1; while(i<=100) { sum=sum+i; i++; } printf(“%d\n”,sum); return 0; } 5050 在该程序中,先判断i是否<=100,如果是,在循环体先执行了sum=sum+i,接着再执行i++,然后再返回判断i是否<=100,接着再重复上步骤,直到i>100,然后输出最终结果,结束该程序。 2. #include int main( ) { int sum=0,i=1; while(i<=100) { sum=sum+i; i++; printf(“%d\n”,sum);} return 0;

} 在该程序中,先判断i是否<=100,如果是,在循环体先执行了sum=sum+i,接着再执行i++,然后输出当次运行的结果,然后再返回判断i是否<=100,接着再重复上步骤,直到i>100,结束该程序。 3.#include int main( ) { int sum=0,i=1; do { sum=sum+i; i++; printf(“%d\n”,sum); }while(i<=100); return 0; } 在该程序中,在循环体中先执行了sum=sum+i,接着再执行i++,然后输出当次运行的结果,接着再判断i是否<=100,如果是,返回执行循环体,接着再重复上步骤,直到i>100,结束该程序。 2.编写如下2道题目的程序,要求详细写出程序编写、编译、运行的过程,源程序关键执 行语句需要给出注释。 (a)统计全单位人员的平均工资。单位的人数不固定,工资数从键盘先后输入,当输入-1 时表示输入结束(前面输入的是有效数据) 分析:循环执行的条件while(i!=-1) , 循环结束条件是单位的人数n,循环体采用累加的方法。 (b)求∑= 20 1 n !n 分析:循环体采用累加和累乘。(a) #include int main() {

循环结构典型试题

第3章循环结构程序设计 3.1 典型等考试题剖析 3.1.1 选择题 【例1】若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c 均已赋值(c大于0) s=a; for(b=1;b<=c;b++) s=s+1; 则与上述程序段功能等价的赋值语句是_______。(等考2003年9月第22题)A)s=a+b; B)s=a+c; C)s=s+c; D)s=b+c; ?考点:本例考查for循环。 ?分析:初始赋值时s=a,那么s的值一定与a有关,C、D答案中不含a 所以排除掉。只用清楚for循环的次数,不管b以前的值为多少,第一 次循环时b=1,当b>c时循环结束,那么显然s要加c次1。所以s的值 为a与c的和。 ?答案:B 【例2】设x和y均为int型变量,则执行下面的循环后,y值为。(等考1998年9月第29题) for(y=1,x=1;y<=50;y++) { if(x>=10) break; if(x%2==1) { x+=5;continue; } x-=3; } A) 2 B) 4 C) 6 D) 8 ?考点:本例考查for循环中break和continue的用法,以及区别。 ?分析:break用在循环中,只能退出一层循环。尤其是在嵌套循环中, 只能退出它所在的那一层循环。不能期望用break从最内层循环一下子 退出最外层循环(可以用goto实现)。continue语句只能用在循环中, 它的作用是跳过其后面的语句,直接将控制转移到下一轮循环条件的测 试。语句“if(x>=10) break;”中的break只有当x>=10时,才会执行, 并且跳出for循环;语句“x+=5;continue;”是每次执行完一次跳过其 后面的语句,直接将控制转移到下一轮循环条件的测试 for(y=1,x=1;y<=50;y++)中。 ?答案:C

循环结构(While_Do循环)

四. While循环 1.While循环的格式: While <条件表达式> 循环体 Wend 说明:<条件表达式>为关系或逻辑表达式。 2.执行过程:判断条件;条件满足,执行循环体语句;再继续判断条件,继续执行循环; 直到条件不满足,结束循环。 结合下面我们熟悉的For程序,来说明: For I = 1 To 10 S = S + I Next I Print I 改用While循环表示: I = 1 ‘初值 While I<=10 ‘循环条件 S=S+I I=I+1 ‘变量自增,加步长 Wend Print S 3.While循环的说明 For循环语句必须给出初值、终值、步长值;循环条件也就给出了。 While循环语句中只给出循环条件和终值,所以一定要注意给出初值和增量。如上面程序段中的3处颜色部分语句。 例如:以下程序段循环几次,y值结果如何。 y = 2 While y < = 8 y = y + y Wend Print y 分析: 循环条件:y<=8 执行过程如下: Y=2,y<=8 满足,执行语句:y = y + y,y=4;遇到Wend返回继续判断条件。 Y=4,y<=8 满足,执行语句:y = y + y,y=8;遇到Wend返回继续判断条件。 Y=8,y<=8 满足,执行语句:y = y + y ,y=16;遇到Wend返回继续判断条件。 Y=16,y<=8 不满足,结束循环。 循环执行了3次。

五.Do循环 Do循环是在While循环基础上做了一点修改。整个格式结构和执行过程基本一样。 但增加了一种格式:条件不满足就循环,满足就结束循环。 格式1:Do While (条件) 循环体 Loop I=1 Do While I<4 S=S+1 I=I+1 Loop Print S I=1 Do Until I>=40 S=S+1 I=I+1 Loop 格式2:Do 循环体 Loop While (条件) 说明:格式1、格式2和While基本一样,格式2不同在于先执行一次循环,再判断条件是否满足。 格式3:Do Until(条件) 循环体 Loop 格式4:Do 循环体 Loop Until(条件) 说明:Until和While的不同在于条件不满足才循环。 注意:为了避免循环条件的混淆,我们一般是将Until 循环转换为While 循环做题。即将Until改为While,后面的条件改取相反值条件。

实验三 循环结构

实验三循环结构 一.实验目的 1.熟悉用while语句,do-while语句和for语句实现循环的方法。 2.掌握循环嵌套的用法。 3.掌握在程序设计中用循环的方法实现各种算法(如迭代,递推,穷举等)。4.掌握break和continue语句的用法。 二.实验要点 在C语言中主要用以下方法实现循环: 1.while语句格式:while (表达式)语句 2.do- while语句格式:do 语句 while (表达式); 3.for语句 for语句的一般格式: for (表达式1;表达式2;表达式3)语句 for (初值表达式;条件表达式;增值表达式) 语句 三.实验要求 1.上机前编写好以下程序。 2.上机输入和调试自己所编的程序并存在自己的U盘上。 3.检查实验结果是否正确。 4.上机结束后,整理实验报告,以“学号—姓名-第3次实验”命名的文件上传到作业服务器。 四.实验内容 上机调试运行以下程序。 1.下面的程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环.请填空. #include”stdio.h” void main(){ int n=0; char c; c=getchar(); while (【】) { if ( 【】) n++; c=getchar(); } printf(“n=%d”,n);}

键盘输入:abcdef12345k(表示回车) 输出结果: 2.当运行下面程序时,从键盘输入1 2 3 4 5 –1(表示回车)时,输出结果: #include void main() { int k=0,n; do {scanf(“%d”,&n); k+=n;} while(n!=-1); printf("k=%d n=%d\n",k,n); } 3.下列程序是求水仙花数的程序,所谓水仙花数是指一个三位数,其各位数字立方和等于该数。例如,153是一个水仙花数。 #include void main() { int i,j,k,n; printf(" The number is: "); for(【】;n++) { i= 【】; j=n/10-i*10; k=【】; if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) { printf("%d\t", 【】); } } } 程序输出结果: 4.下面程序完成把100~120之间的不能被3整除的数输出,并求其和,请填空。 #include void main( ) { int n,sum=0; for (【】) { if (n % 3 == 0) 【】; sum+=n; printf(“%d,”, n);

C语言循环结构复习题

循环结构程序设计复习题 一.选择题 1.以下while循环中,循环体执行的次数是:() k=1; while (--k) k=10; a) 10次b) 无限次c) 一次也不执行d) 1次2.有以下程序段,其中x为整型变量,以下选项中叙述正确的是:() x=0; while (!x!=0) x++; a) 退出while循环后,x的值为0 b) 退出while循环后,x的值为1 c) while的控制表达式是非法的 d) while循环执行无限次 3. 有以下程序段,其中n为整型变量,执行后输出结果是:() n=20 ; while(n--) ; printf(“%d”,n) ; a) 2 b) 10 c) -1 d) 0 4. 有以下程序段,其中t为整型变量,以下选项中叙述正确的是:() t=1;

while (-1) { t--; if(t) break;} a) 循环一次也不执行 b) 循环执行一次 c) 循环控制表达式(-1)不合法 d) 循环执行2次 5. 有以下程序段,其中x为整型变量,以下选项中叙述正确的是:() x=-1; do {;} while (x++); printf(“x=%d”,x); a) 该循环没有循环体,程序错误 b) 输出x=1 c) 输出x=0 d) 输出x=-1 6. 有以下程序段,其中x,y为整型变量,程序输出结果是:() for(x=0,y=0;(x<=1)&&(y=1);x++,y--) ; printf(“x=%d,y=%d”,x,y); a) x=2,y=0 b) x=1,y=0

x=0,y=0 d) x=1,y=1 c) 解析:在开始时 x=0,y=0; 进入循环判断(x<=1)&&(y= 1) 条件成立,同时把1赋给y,此时x=0,y=1; 然后执行 x++,y--,执行之后x=1,y=0; 再进入循环判断(x<=1)&&(y= 1),条件成立,同时同时把1赋给y,此时x=1,y=1; 然后执行 x++,y--,执行之后x=2,y=0; 再进入循环判断(x<=1)&&(y= 1),条件不成立,跳出循环 输出x=2,y=0 。 7. 有以下程序: main() { int x=0,y=0; while(x<5&&++y) y--,x++; printf(“%d,%d”,y,x); } 程序的输出结果是:() a) 0,5 b) 1,5 c) 0,4 d) 1,4 8. 有以下程序:main() int num=0; { do ,num); } { num++ ;printf(“%d\n” while(num<=2); } 程序的输出结果是:() 1 1c) 1 d)

实验2-循环结构题目

实验2 循环结构 程序填空 1. 本题分值:10 题目描述:马克思曾经出过这样一道趣味数学题:有30个人在一家小饭馆里用餐,其中有男人、女人和小孩。每个男人花了3先今,每个女人花了2先令,每个小孩花了1先令,一共花去50先令。问男人、女人以及小孩各有几个人。以下是完成此项工作的程序,请将未完成的部分填入,实现其功能,并在计算机上调试程序,以测试填入的部分是否正确。 代码: #include using namespace std; int main() { int n; //n记录解的个数 int a,b,c; //分别记录男、女、小孩的人数 n=__(1)__; //初始化n的值 for(a=1;a<=30;a++) { for(b=1;b<=30;b++) { c=__(2)__; if( __(3)__ ) { cout<<"男人有:"< using namespace std;

{ int n, k=1, s=0, m ; for (n=1 ; n<=100 ; n++) { k=1 ; s=0 ; __(1)__; while ( __(2)__ ) { k*=m%10; s+=m%10; __(3)__; } if (k>s) cout< using namespace std; int main() { int n,s,i,count=0; cout<<"1000以内的完数为:"; for(n=1;n<1000;n++) { s=0; for(i=1;i

while循环结构例题

引子 #include "stdio.h" main() { int i=1; for(i=1;i<=10000;i++) printf(“%d\t”,i); } 题型1 输入输出多个数据 eg1、输出1~10000之间所有的整数#include "stdio.h" main() { int i=1; while(i<=1000) {printf(“%d\t”,i); i++;} } 拓展:1、换成所有的奇数 2、换成所有的偶数 题型2 有限个数连加和连乘

eg2.1、求1+2+3+4+………+100的值 #include "stdio.h" main() { int i=1,s=0; while(i<=100) {s=s+i; i++;} printf(“%d\n”,s); } 拓展:1、求1+2+3+4+………+n的值 2、求12+22+32+………+n2的值 3、求1+1/2+1/3+………+1/n的值eg2.2、求n!的值 #include "stdio.h" main() { int i=1,n,p=1; scanf(“%d”,&n); while(i<=n) {p=p*i; i++;} printf(“%d\n”,p); }

拓展:求1!+2!+3!+………+n!的值 #include "stdio.h" main() { int i=1,n,p=1,s; scanf(“%d”,&n); while(i<=n) {p=p*i; s=s+p; i++;} printf(“%d\n”,s); } 题型3 无限个数连加 eg3、求1-1/3+1/5-1/7+………的近似值,要求精度要达到10-4 #include "stdio.h" #include "math.h" main() { float n=1,s=0,f=1,t=1; while(fabs(t)>=1e-4) {t=f/(2*n-1); s=s+t;

实验(5)-循环结构.

C语言程序设计实验教学(5) 【实验目的】通过程序设计实现,掌握while结构、do-while结构和for结构各种类型的循环结构,完成各种循环程序的设计和实现。 【实验要求】同一个题目尝试使用多种循环控制结构来实现,并分析其设计和实现的差别和难易程度。 【实验课时】6.0 【实验内容】 1、完成课堂实例的实现。 (1)计算s=1+2+…+100。(累加型) (2)请输入数n,计算n!。(连乘型) (3)输出所有的水仙花数。(范围型) (4)判断n是否为素数。(反向思维型) (5)输出100-200之间能同时被3和5整除的数。(用continue语句) (6)输入任意n个数,输出其中最大数和最小数,并输出它们在序列中的位置。 (7)输出以下图形(1): (8)输出以下图形(2): (9)输出以下图形(3): 图形(1)图形(2)图形(3) (10)编写输出如下字母塔的程序: A A B A A B C B A A B C D C B A

……………… …………………… ………………………… A B C D E F G H I J K L M N O P Q R S T U V W X W V U T S R Q P O N M L K J I H G F E D C B A A B C D E F G H I J K L M N O P Q R S T U V W X Y X W V U T S R Q P O N M L K J I H G F E D C B A A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Y X W V U T S R Q P O N M L K J I H G F E D C B A 2、计算多项式7+72+73+······+7n 的值,n 由键盘输入。 3、求 ∑=201! n n (即求1!+2!+3!+……+20!) 4、输入2个正整数m,n ,求其最大公约数和最小公倍数。 5、请编程序打印出以下数列:1、1、2、3、5、8、13、…的前40项。每行输出4个数。(斐波那契数列) 6、求100~200间的全部素数。每行输出6个数。 7、“鸡兔同笼”是一个中国古算题,最早出现在《孙子算经》中。笼中有若干只鸡和兔子,它们共有88个头,244只脚,问鸡和兔各有多少只? 8、求下列分数序列的前20项之和。 12,23,35,58,813,1321,…… 9、输入x 值,按照公式计算cos(x)的值,直到最后一项小于10-6为止。 ,! 6x !4x 2!x 1)x (cos 6 42 +-+-= 10、找出1000之内的所有完数,一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。输出时按下面的格式输出其因子: 6 its factors are 1,2,3 补充作业:(以下题目任选2题) 1、我国古代有一道有名的数学难题,称为“百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买了百鸡,问鸡翁、鸡母、鸡雏各买了多少只? 2、猴子吃桃问题。猴子第一天摘下若干桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上再想吃时,就

C语言循环结构测习题带答案

精心整理 第5章循环结构程序设计 5.1基本知识点 ?while语句的使用格式和注意事项 ?do-while语句的使用格式和注意事项 ?for语句的使用格式和注意事项 ?break和continue语句在循环语句中的应用 ? ? ? ? 1. C. A.do-while的循环体至少无条件执行一次 B.while的循环控制条件比do-while的循环控制条件严格 C.do-while允许从外部转到循环体内 D.do-while的循环体不能是复合语句 (5)以下程序段C。 intx=-1; do { x=x*x; } while(!x);

A.是死循环 B.循环执行二次 C.循环执行一次 D.有语法错误 (6)下列语句段中不是死循环的是__C__。 A.i=100; while(1) { i=i%100+1; if(i==20)break; } B.for(i=1;;i++) sum=sum+1; C. C. COUT< main() { intnum=0; while(num<=2) {

num++; cout< else ++i; }while(s<15); Cout< main() { inti,j; for(i=4;i>=1;i--) {

实验三循环结构程序设计

实验三循环结构程序设计 一、实验学时 4学时。 二、实验目的 1.熟练掌握用while、do-while以及for语句实现循环程序设计的方法。 2.理解循环条件和循环体的含义。理解循环结构中语句的执行过程。 3.熟练掌握break和continue语句的功能及应用。 4.掌握应用嵌套循环结构进行程序设计的方法。 5.掌握应用循环结构及穷举算法解决有关问题。 6.掌握运行到光标位置、使用断点等程序调试方法。 三、实验内容 1.程序调试 【例1】改正下列程序中的错误,求S=1!+2!+3!+…+n!的值,n的值通过键盘输入(n ≤10)。 程序: #include void main() { int n,i; long int s,sum; printf("请通过键盘输入具体数据给变量n赋值:"); scanf("%d",&n); for(i=1;i<=n;i++) { s=s*i sum+=s; } printf("1!+2!+3!+...+%d!=%ld\n",n,sum); } (1)按照前面章节实验中介绍的步骤,保存源程序代码。 (2)单击编译按钮(Compile),出现第一条编译错误信息是:missing ';' before identifier 'sum',改正后,重新编译和连接,都正确。 (3)开始调试程序,鼠标单击第11行,光标在第11行闪烁,这就是当前光标的位置,单击,程序运行到光标位置。在变量窗口中,第一次循环时i的值为 1 ,n的值为 5 , 正确;而s的值为-858993460,不正确。请分析错误原因:s示未赋初值,long int s,sum;改为long int s=1,sum;,改正后,重新编译和连接,继续进行上述操作,这时s的值为1正确。

循环结构测试题

《循环结构》测试题 班别:姓名:学号:填空题: (1)在VB中,几种不同性质的运算符的优先级别如下:() A.算术运算符>字符运算符>关系运算符>逻辑运算符 B.算术运算符>关系运算符>字符运算符>逻辑运算符 C.关系运算符>算术运算符>字符运算符>逻辑运算符 D.字符运算符>算术运算符>关系运算符>逻辑运算符 (2)(06真题)下面程序段的运行结果是: FOR I=5 To 1 Step -2 Print i Next A. 5 B. 5 3 C. 5 3 1 D. 5 3 1 -1 (3)(05真题)下面程序段的运行结果是: FOR I=1 To 9 Step 3 Print I Next I A. 1 4 B. 1 4 7 C 1 4 7 10 D. 1 4 7

(4)下面哪一个不是程序设计的基本结构()。 (1)分析下列程序段,写出程序运行结果 x = 0 For k = 1 To 2 Step 0.3 x = x + k Next Print x, k (2)分析下列程序段,写出程序运行结果 For k = 15 To 1 Step -5 Print k Next (3)分析下列程序段,写出程序运行结果 For k = 1 To 3 Circle (2000, 2000), k * 300 Next (4)分析下列程序段,写出程序运行结果 Dim m, n, k As Integer m = 6 n = 1 For k = 1 To m Step 2 n = n * k Next Print "n="; n (5)分析下列程序段,写出程序运行结果 k = 1 For m = 1 To 5 Print k, k = k + 3 Next (6)在横线上填上适合的语句,使程序完成:计算s=1+2+3+4+5+…+150的和S=0 For k=_______ to ________ step ________ S=________________________________ Next Print “1+2+3+…+150=”;s (7)在横线上填上适合的语句,使程序完成:计算5-10的乘积 T=1 For k=5 to _________ T=_________________________ Next Print t

while循环练习

一、选择题 1.设有程序段 int k=10; while(k=0)k=k-1; 这下面描述中正确的是_________. a)while循环执行10次 b)循环是无限循环 c)循环体语句以此也不执行 d)循环体语句执行一次 a)E==0 b)E!=1 c)E!=0 d)E==1 2.语句while(!E);中的表达式!E等价于________. 3.下面程序段的运行结果是__________. int n=0; while(n++<=2);printf("%d",n); a)2 b)3 c)4 d)有语法错 4.下面程序的运行结果是____. #include main() { int num=0; while(num<=2) { num++; printf("%d\n",num); } } a)1 b)1 c)1 d)1 2 2 2 3 3 4 二、编程计算 1、求1~100中所有偶数的和。 2、下面程序的功能是输出1至100之间每位数的乘积大于每位数的和的数。 3、计算并输出1-3+5-7+……-99+101的值。

三、写一个小型计算器。 界面如下: 要求: 1.有简单运算选择界面 2.采用循环实现菜单显示 3.采用switch结构实现菜单的选择 4.运算对象为两个操作数,从键盘输入 5.运算结果输出 1、计算下列式子的值: (1)1+3+……+99 (2)1+2+4+8+……+128+256 2、输入一个整数,计算它各位上数字的和。(注意:是任意位的整数) 3、输入一整数A,判断它是否质数。(提示:若从2到A的平方根的范围内,没有一个数能整除A,则A是质数。) 4、求两个数的最小公倍数和最大公约数。(提示:公约数一定小于等于两数中的小数,且能整除两数中的大数。公倍数一定大于等于两数中的大数,且是大数的倍数,又能给两数中的小数整除。) 5、编写一个译码程序,把一个英语句子译成数字代码。译码规则是以数字1代替字母A,数字2代替字母B,……,26代替字母Z,如遇空格则打印一个星号…*?,英文句子以….…结束。 6、求水仙花数。所谓水仙花数,是指一个三位数abc,如果满足a^3+b^3+c^3=abc,则abc 是水仙花数。 7、“百钱买百鸡”是我国古代的著名数学题。题目这样描述:3文钱可以买1只公鸡,2文钱可以买一只母鸡,1文钱可以买3只小鸡。用100文钱买100只鸡,那么各有公鸡、母鸡、小鸡多少只?与之相似,有"鸡兔同笼"问题。

C语言循环结构练习题带答案

C语言循环结构练习题 带答案 Company Document number:WTUT-WT88Y-W8BBGB-

第5章循环结构程序设计 基本知识点 while语句的使用格式和注意事项 do-while语句的使用格式和注意事项 for语句的使用格式和注意事项 break和continue语句在循环语句中的应用 循环结构的嵌套 使用goto语句实现循环结构 穷举法程序设计方法 迭代程序设计方法 练习题5 1.单项选择题 (1)语句while(!e);中的条件!e等价于A。 ==0 !=1 !=0 D.~e (2)下面有关for循环的正确描述是D。 循环只能用于循环次数已经确定的情况 循环是先执行循环体语句,后判定表达式 C.在for循环中,不能用break语句跳出循环体 循环体语句中,可以包含多条语句,但要用花括号括起来(3)C语言中D。 A.不能使用do-while语句构成的循环 语句构成的循环必须用break语句才能退出 语句构成的循环,当while语句中的表达式值为非零时结束循环语句构成的循环,当while语句中的表达式值为零时结束循环(4)C语言中while和do-while循环的主要区别是A。 的循环体至少无条件执行一次 的循环控制条件比do-while的循环控制条件严格 允许从外部转到循环体内 的循环体不能是复合语句 (5)以下程序段C。 intx=-1; do { x=x*x; }

while(!x); A.是死循环 B.循环执行二次 C.循环执行一次 D.有语法错误(6)下列语句段中不是死循环的是__C__。 =100; while(1) { i=i%100+1; if(i==20)break; } (i=1;;i++) sum=sum+1; =0; do { ++k; }while(k<=0); =3379; while(s++%2+3%2) s++; (7)与以下程序段等价的是__A__。 while(a) { if(b)continue; c; } (a) (c) {if(!b)c;} {if(!b)break;c;} (c) (a) {if(b)c;} {if(b)break;c;} (8)以下程序的输出结果是_B___。 #include<> main() { inti; for(i=4;i<=10;i++) { if(i%3==0)continue; COUT<

C语言循环结构练习题带答案

第5章循环结构程序设计 练习题 1. 单项选择题 (1)语句while (!e);中的条件!e等价于 A 。 A. e==0 B. e!=1 C. e!=0 D. ~e (2)下面有关for循环的正确描述是 D 。 A. for循环只能用于循环次数已经确定的情况 B. for循环是先执行循环体语句,后判定表达式 C. 在for循环中,不能用break语句跳出循环体 D. for循环体语句中,可以包含多条语句,但要用花括号括起来 (3)C语言中 D 。 A. 不能使用do-while语句构成的循环 B. do-while语句构成的循环必须用break语句才能退出 C. do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 D. do-while语句构成的循环,当while语句中的表达式值为零时结束循环 (4)C语言中while和do-while循环的主要区别是 A 。 A. do-while的循环体至少无条件执行一次 B. while的循环控制条件比do-while的循环控制条件严格 C. do-while允许从外部转到循环体内 D. do-while的循环体不能是复合语句 (5)以下程序段 C 。 int x=-1; do { x=x*x; } while (!x); A. 是死循环 B. 循环执行二次 C. 循环执行一次 D. 有语法错误 (6)下列语句段中不是死循环的是__C__。

第5章循环结构程序设计35 A. i=100; while (1) { i=i%100+1; if (i==20) break; } B.for (i=1;;i++) sum=sum+1; C.k=0; do { ++k; } while (k<=0); D.s=3379; while (s++%2+3%2) s++; (7)与以下程序段等价的是__A__。 while (a) { if (b) continue; c; } A. while (a) B. while (c) { if (!b) c; } { if (!b) break; c; } C. while (c) D. while (a) { if (b) c; } { if (b) break; c; } (8)以下程序的输出结果是_B___。 #include main() { int i; for (i=4;i<=10;i++) { if (i%3==0) continue; COUT<

相关文档
最新文档