文档库 最新最全的文档下载
当前位置:文档库 › (完整版)c语言第六章循环结构程序设计(习题册答案)

(完整版)c语言第六章循环结构程序设计(习题册答案)

(完整版)c语言第六章循环结构程序设计(习题册答案)
(完整版)c语言第六章循环结构程序设计(习题册答案)

第六章循环结构程序设计

基础练习(A)

一、选择题

1、C语言中while和do-while循环的主要区别是(A)。

A) do-while的循环体至少无条件执行一次

B) while的循环控制条件比do-while的循环控制条件严格

C) C)do-while允许从外部转到循环体内

D) do-while的循环体不能是复合语句

2、以下描述中正确的是(C)。

A) 由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用

复合语句

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

C) 在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操

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

3、设有程序段

int k=10;

while(k) k=k-1;

则下面描述中正确的是(A)。

A)while循环执行10次B)循环是无限循环

C)循环体语句一次也不执行D)循环体语句执行一次

4、下列循环语句中有语法错误的是( D )。

A) while(x=y) 5;B) while(0) ;

C) do 2;while(x==b);D) do x++ while(x==10);

5、已知int i=1;执行语句while (i++<4) ;后,变量i的值为(C)。

A) 3 B) 4 C) 5 D) 6

6、语句while(!E);中的表达式!E等价于(A)。

A)E==0 B)E!=1 C)E!=0 D)E==1

7、下面程序段的运行结果是(A)。

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

8、下面程序的运行结果是(C)。

#include

main()

{

int num=0;

while(num<=2)

{

num++;

printf(“%d\n”,nu m);

}

}

A)1 B)1 C)1 D)1

2 2 2

3 3

9、以下能正确计算1×2×3×…×10的程序段是(C)。

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);

10、下面程序的运行结果是(D)。

#include

main()

{

int y=10;

do{ y--; }while(--y);

printf(“%d\n”,y--);

}

A)-1 B)1 C)8 D)0

11、已知int i=1,j=0;执行下面语句后j的值是(D)。

while(i)

switch(i)

{ case 1: i+=1;j++;break;

case 2: i+=2;j++;break;

case 3: i+=3;j++;break;

default: i--;j++;break;

}

A) 1 B) 2 C) 3 D) 死循环

12、若运行以下程序时,从键盘输入2473<回车>,则下面程序的运行结果是(A)。

#include

main()

{

int c;

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);

default: putchar(c+2); break;

}

printf(“\n”);

}

A)668977 B)668966 C)66778777 D)6688766

二、填空题

1、执行下面程序段后,k值是36。

k=1; n=263;

do{ k*=n%10; n/=10; }while(n);

2、下面程序的运行结果是s=254。

#include

main()

{

int a,s,n,count;

a=2; s=0; n=1; count=1;

while(count<=7) { n=n*a; s=s+n; ++count; }

printf(“s=%d”,s);

}

3、下面程序段的运行结果是* *。

x=2;

do{ printf(“*”); x--; }while(!x==0);

4、运行以下程序时,从键盘键入China#代表回车),则下面程序的运行结果

是5,5。

#include

main()

{

int v1=0,v2=0; char ch;

while((ch=getchar())!=‘#’)

switch(ch)

{

case ‘a’:

case ‘h’:

default: v1++;

case ‘o’: v2++;

}

printf(“%d,%d\n”,v1,v2);

}

三、编程:

1、编程求1*3*5*7*9的值

2、编写程序计算下列算式的值:

直到某一项A<=0.000001时为止。输出最后C的值。

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

1、参考答案:

main()

{ int i;

long p=1;

do

{ p=p*i;

i=i+2;

} while (i<=9);

printf(“1*3*5*9=%ld\n”,t);

}

2、参考答案:

#define E 0.000001

main()

{ float x,y=1,s=0;

printf("Please enter x=");

scanf("%f",&x);

while(1/y>E)

{ s=s+1/y;

y=y*x;

}

printf("S=%f\n",s);

}

3、参考答案:

{ int n=0;

char c;

c=getchar();

while(c!=’\n’)

{ if(c>=’0’&&c<=’9’) n++;

c=getchar();

}

printf(“%d\n”,n);

}

能力提高(B)

一、选择填空题

1、下面程序的功能是将从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个

数n,并输出m、n中的较大者,请选择填空。

#include

main()

{

int m=0,n=0;

char c;

while(( A)!=‘\n’)

{

if(c>=‘A’&&c<=‘Z’) m++;

if(c>=‘a’&&c<=‘z’) n++;

}

printf(“%d\n”,m

}

(1) A)c=getchar() B)getchar() C)scanf(“%c”,c)

(2) A)n:m B)m:n C)m:m D)n:n

2、下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环,请选择填空。

#include

main()

{

int a,max=0;

scanf(“%d”,&a);

while( B)

{

if(max

scanf(“%d”,&a);

}

printf(“%d”,max);

}

A)a==0 B)a C)!a==1 D)!a

3、下面程序的功能是计算正整数2345的各位数字平方和,请选择填空。

#include

main()

{

int n,sum=0;

n=2345;

do{

sum=sum+ B;

n= C;

}while(n);

printf(“sum=%d”,sum);

(1) A)n%10 B)(n%10)*(n%10) C)n/10 D)(n/10)*(n/10)

(2) A)n/1000 B)n/100 C)n/10 D)n%10

二、读懂程序,并按照程序的功能将程序补充完整

1、下面程序的功能是用“辗转想除法”求两个正整数的最大公约数。请填空。

#include

main()

{

int r,m,n;

scanf(“%d %d”,&m,&n);

if(m

r=m%n;

while(r) { m=n; n=r; r= m%n; }

printf(“%d\n”,n);

}

2、下面程序的功能是用do-while语句求1至1000之间满足“用3除余2;用5除余3;

用7除余2”的数,且一行只打印五个数。请填空。

#include

main()

{

int i=1,j=0;

do{

if( i%3==2&&i%5==3&&i%7==2)

{

printf(“%4d”,i);

j=j+1;

if( j%5==0) printf(“\n”);

}

i=i+1;

}while(i<1000);

}

3、等差数列的第一项a=2,公差d=3,下面程序的功能是在前n项和中,输出能被4整除

的所有的和。请填空。

#include

main()

{

int a,d,sum;

a=2; d=3; sum=0;

do{

sum+=a;

a+=d;

if( sum%4==0) printf(“%d\n”,sum);

}while(sum<200);

}

第2讲

基础练习(A)

一、选择题

1、下面有关for循环的正确描述是(D)。

A)for循环只能用于循环次数已经确定的情况

B)for循环是先执行循环体语句,后判断表达式

C)在for循环中,不能用break语句跳出循环体

D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

2、对for(表达式1;;表达式3)可理解为(B)。

A)for(表达式1;0;表达式3)

B)for(表达式1;1;表达式3)

C)for(表达式1; 表达式1;表达式3)

D)for(表达式1; 表达式3;表达式3)

3、下列说法中正确的是(C)。

A)break 用在switch语句中,而continue 用在循环语句中。

B)break 用在循环语句中,而continue用在switch语句中。

C)break 能结束循环,而continue只能结束本次循环。

D)continue能结束循环,而break只能结束本次循环。

4、以下正确的描述是(B)。

A)continue语句的作用是结束整个循环的执行

B)只能在循环体内和switch语句体内使用break语句

C)在循环体内使用break语句或continue语句的作用相同

D)从多层循环嵌套中退出时,只能使用goto语句

5、若i为整型变量,则以下循环执行次数是(B)。

for(i=2;i==0;) printf(“%d”,i--);

A)无限次B)0次C)1次D)2次

6、以下for循环的执行次数是(C)。

for(x=0,y=0;(y=123)&&(x<4);x++)

A)是无限循环B)循环次数不定C)执行4次D)执行3次7、以下不是无限循环的语句为(A)。

A)for(y=0,x=1;x>++y;x=i++) i=x

B)for(;;x++=i);

C)while(1) { x++; }

D)for(i=10;;i--) sum+=i;

8、执行语句for(i=1;i++<4;);后变量i的值是(C)。

A)3 B)4 C)5 D)不定

9、下面程序段(D)。

for(t=1;t<=100;t++)

{

scanf(“%d”,&x);

if(x<0) continue;

printf(“%3d”,t);

}

A)当x<0时整个循环结束B)x>=0时什么也不输出

C)printf函数永远也不执行D)最多允许输出100个非负整数10、下面程序段(C)。

x=3;

do{

y=x--;

if(!y) { printf(“x”); continue; }

printf(“#”);

}while(1<=x<=2);

A)将输出## B)将输出##*

C)是死循环D)含有不合法的控制表达式

二、写出下列程序的运行结果

1、#include *#*#*#$

main()

{

int i;

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

{

if(i%2) printf(“*”);

else continue;

printf(“#”);

}

printf(“$\n”);

}

2、#include ####

###*

##**

#*** main()

{

int i,j;

for(i=4;i>=1;i--)

{

for(j=1;j<=i;j++) putchar(‘#’);

for(j=1;j<=4-i;j++) putchar(‘*’);

putchar(‘\n’);

}

}

3、#include 2,3

main()

{

int i,k=0;

for(i=1;;i++)

{

k++;

while(k

{

k++;

if(k%3==0) goto loop;

}

}

loop: printf(“%d,%d”,i,k);

}

三、编程:

1、求1-3+5-7+ ……-99+101的值。

解:main()

{ int i,t=1,s=0;

for(i=1;i<=101;i+=2)

{ t=t*i;

s=s+t;

t=t>0?-1:1;

}

printf("%d\n",s);

}

能力提高(B)

一、写出下列程序的运行结果

1、#include x=8

main()

{

int i,j,x=0;

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

{

x++;

for(j=0;j<=3;j++)

{

if(j%2) continue;

x++;

}

x++;

}

printf(“x=%d\n”,x);

}

2、#include i=6,k=4

main()

{

int i,j,k=19;

while(i=k-1)

{

k-=3;

if(k%5==0) { i++; continue; }

else if(k<5) break;

i++;

}

printf(“i=%d,k=%d\n”,i,k);

}

二、根据程序的功能将程序补充完整

下面程序的功能是求1至1000之间满足“用3除余2;用5除余3;用7除余2”的数,且一行只打印5个数。

#include

main()

{

int i,j=0;

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

if(i%3==2 && i%5==3 && i%7= =2)

{ printf(“%4d”,i);

j=j+1;

if( j%5= =0) printf(“\n”);

}

}

三、编程:

1、有一分数序列2/1,3/2,5/3,8/5,13/8,21/13,…求出这个数列的前20项之和

2、输入n值,输出如图所示高为n的等腰三角形。

*

***

*****

*******

*********

***********

1、参考答案:

main()

{int n,t,number=20;

float a=2,b=1,s=0;

for(n=1;n

{s=s+a/b;

t=a;

a=a+b;

b=t;

}

printf(“s=%9.6f\n”,s);

}

2、参考答案:

#include

main()

{

int i,a;

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

{

scanf(“%d”,&a);

if(a%7==0) { printf(“%d”,a); break ; }

}

if( i==11 ) printf(“not exist\n”);

}

c语言三种循环结构

任务1:控制LED 小灯亮灭 1.流程图如下: 2.程序如下: #include #define uint unsigned int #define uchar unsigned char void main() //主函数 { while(1) //while死循环 { if((P3&0x10)==0) //判断P3口上的八位与00010000相与后是否等于0,若是, 则P3.4口为低电平,也就是接在P3.4口上的开关按上了。 P1=0xfe; //当P3.4口上的开关按上了,那么就由用户使接在P1.0口 上的灯亮。 else if((P3&0x20)==0) //和上面的一样,判断P3.5口上的开关是否按上了。 P1=0Xfd; //当P3.5口上的开关按上了,点亮接在P1.1口上的灯。 else if((P3&0x40)==0) //判断P3.6口的开关是否按上了。

P1=0xfb; //当P3.6口上的开关按上了,点亮接在P1.2口上的灯。 else if((P3&0x80)==0) //判断P3.7口的开关是否按上了。 P1=0xf7; //当P3.7口上的开关按上了,点亮接在P1.3口上的灯。 else P1=0xff; //当没有按键按下时,P1口上的全部灯都不亮。 } } 3.仿真结果如下: 4.仿真结果分析: 从仿真图以及程序可以看出,当P3.4口上的开关按下时,不管其它三个开关有没有按下,只有受P3.4口开关控制的那个灯(p1.0口上的灯)才亮,以此类推,当只有P3.7口上的开关按下时,P1.3口上的灯才亮,而其它灯不亮,因为控制其它灯的按键没有按下,接在其它灯的IO口处于高电平状态。

C语言循环结构教学设计方案

《C语言循环结构》教学设计方案 一、教学内容分析 循环结构是面向过程编程中三种结构中最重要的一种结构,学好它是学好这门课程的关键。循环结构的实质是重复执行一系列语句,这种重复性是在循环条件的有效控制之下完成的。程序的关键在于如何控制循环的条件,在恰当的时机执行循环或退出循环。 二、学习者分析 循环结构是一种比较复杂的结构,在C语言中,循环结构主要包括for、while和do-while 三种语句,其中for语句的应用更为普遍一些。循环语句的用法对于有程序设计经验的学生来说轻而易举,但是对于那些没有经验的初学者来说,难度却不小。在一堂课的设计过程中,引例的作用至关重要。一个好的引例能把抽象问题简单化、具体化,有利于学生理解掌握。在学习循环结构时可先利用现实生活中的一些具体实例来说明什么是循环以及为什么要研究循环让一名初学者尽快摆脱日常的思维定式,更加透彻地理解和掌握程序设计中的基本思想,领会程序设计的精髓,总结出程序设计中每一种程序设计结构的本质及适合解决的问题,是高级语言程序设计这门课程在讲授过程中,应该时刻注意的问题。 三、教学目标 1.知识与能力 掌握循环构造的基本特点;区分多种不同类型循环结构的运行过程;掌握循环结构的格式及应用方法。 2.过程与方法 首先学会区分多种不同类型的循环结构,而后学会定义及应用方法,利用上机熟练应用技巧。 3.情感态度与价值观 我们必须抱有自己想学习的心态,多去问老师一些问题,那么你的漏洞将会越来越少,程序量和代码量才会越来越多。

四、重点难点及处理 1.循环语句的的分类和定义 For循环、while循环和do-while循环 特点:在一个程序中可以通过变换语句来使用不同的循环语句,而不改变程序 的功能。 2.循环语句的引用 例如:要从1累加到100 使用For循环:for(sum,=0,i=1;i<=100;i++) sum=sum+i 使用while循环:while(i<=100) sum=sum+i 使用do-while循环:do {sum=sum+i;} while(i<=100) 五、教学准备 1. PPT教学课件 2. 实验操作:Visual C++6.0软件平台,PC电脑,教学机房,网络课堂。 六、教学思路(教学策略等) 在一堂课的设计过程中,引例的作用至关重要。一个好的引例能把抽象问题简单化、具体化,有利于学生理解掌握。在学习循环结构时可先利用现实生活中的一些具体实例来说明什么是循环以及为什么要研究循环。现在我们可以提出一个问题:在计算机程序设计的世界里是否也有类似的这种相同操作重复出现的问题呢?利用最简单累加求和的例子。 例:求1+2+3+4+5+…+100的和。 下面就可以引出本节课的重点,通过分别使用For循环、while循环和do-while循环来完成本程序,我们在整个过程中都做着重复的、相同的事情,也就是前面所说的循环,在试着写出比较简单的程序时,可以试着选择素数或者奇数累加来增加难度,还可以使得让学生接受和探究双重循环。 七、教学过程 教学引入 掌握掌握循环结构的基本特点:for语句、while语句和do-while语句 如何计算1+2+3+4+…+100

C语言循环结构程序设计实验报告

甘肃政法学院 本科生实验报告 ( 五) 姓名:赵明翔 学院:公安技术学院 专业:安全防范工程 班级: 2015级安全防范工程班 实验课程名称:程序设计 实验日期:2016年月日 开课时间:2015学年第二学期 实验题目实验5 循环结构程序设计小组合作 姓名赵明翔班级安全防范工 程学号20158313 0145 一、实验目的 1.熟悉掌握用while语句,do...while 语句和for语句实现循环的方法。 2.掌握在程序设计中用循环的方法实现一些常用的算法(如穷举,代,递推等)。 3.进一步学习调试程序。 二.实验环境

Miscroft Visual C++6.0环境。 三、实验内容与步骤 编程序并上机调试程序。 (1)输入一行字符,分别统计出其中的英文字母,空格,数字和其他字符的个数。 程序如下: #include int main() { char c; int letters=0,space=0,digit=0,other=0; printf("请输入一行字符:\n"); while((c=getchar())!='\n') { if(c>='a'&&c<='z'||c>='A'&&c<='Z') letters++; else if(c==' ') space++; else if(c>='0'&&c<='9') digit++; else other++; } printf("字母数:%d\n空格数:%d\n数字数:%d\n其他字符数:%d\n",letters,space,digit,other); return 0; } 运行结果:

C语言 循环结构程序设计模拟题

第五章循环结构程序设计 一、选择题 1.while循环语句中,while后一对圆括号中表达式的值决定了循环体是否进行,因此,进入while循环后,一定有能使此表达式的值变为的操作,否则,循环将会无限制地进行下去。(0级) A)0 B)1 C)成立D)2 2.在do-while循环中,循环由do开始,用while结束;必须注意的是:在while表达式后面的不能丢,它表示do-while语句的结束。(0级) A)0 B)1 C);D), 3.for语句中的表达式可以部分或全部省略,但两个不可省略。但当三个表达式均省略后,因缺少条件判断,循环会无限制地执行下去,形成死循环。(0级)A)0 B)1 C);D), 4.程序段如下 int k=-20; while(k=0) k=k+1; 则以下说法中正确的是。(1级) A)while循环执行20次B)循环是无限循环 C)循环体语句一次也不执行D)循环体语句执行一次5.程序段如下 int k=1; while(!k==0) {k=k+1;printf("%d\n",k);} 说法正确的是。(1级) A)while循环执行2次B)循环是无限循环 C)循环体语句一次也不执行D)循环体语句执行一次6.以下for循环是。(1级) for(a=0,b=0;(b!=123)&&(a<=4);a++) A)无限循环B)循环次数不定C)执行4次D)执行5次7.在下列程序中,while循环的循环次数是。(1级) main( ) { int i=0; while(i<10) {if(i<1) continue; if(i= =5) break; i++; } ...... } A)1 B)10 C)6 D)死循环、不能确定次数8.程序段如下 int k=0; while(k++<=2) printf("%d\n",k);

C语言三种循环语句

三种基本的循环语句: for语句、while语句和do-while语句。 一、循环语句 (一)、for循环它的一般形式为: for(<初始化>;<条件表过式>;<增量>) 语句; 初始化总是一个赋值语句,它用来给循环控制变量赋初值;条件表达式是一个关系表达式,它决定什么时候退出循环;增量定义循环控制变量每循环一次后按什么方式变化。这三个部分之间用;分开。 例如: for(i=1;i<=10;i++) 语句; 上例中先给i赋初值1,判断i是否小于等于10,若是则执行语句,之后值增加1。再重新判断,直到条件为假,即i>10时,结束循环。 注意: (1).for循环中语句可以为语句体,但要用{和}将参加循环的语句括起来。 (2).for循环中的初始化、条件表达式和增量都是选择项,即可以缺省,但;不能缺省。省略了初始化,表示不对循环

控制变量赋初值。省略了条件表达式,则不做其它处理时便成为死循环。省略了增量,则不对循环控制变量进行操作,这时可在语句体中加入修改循环控制变量的语句。 (3).for循环可以有多层嵌套。 例如: for(;;) 语句; for(i=1;;i+=2) 语句; for(j=5;;) 语句; 这些for循环语句都是正确的。 main() { int i,j; printf(i j\n); for(i=0;i<2;i++) for(j=0;j<3;j++) printf(%d %d\n,i,j); } 输出结果为: i j 0 0 0 1 0 2

1 0 1 1 1 2 用for循环求1+2+……+100的和: main() { int sn=0,i; for(i=1;i<=100;i++) sn+=i; /*1+2+……+100*/ printf(%d\n,sn); } 从程序可以看出,使用循环语句可以大大简化代码。(二)、while循环它的一般形式为: while(条件) 语句; while循环表示当条件为真时,便执行语句。直到条件为假才结束循环。并继续执行循环程序外的后续语句。 例如: #include stdio.h main() {

C语言循环结构程序设计编程题

实验3 循环结构程序设计 一.实验目的: 1.掌握使用while 语句,do-while 语句和for 语句实现循环的方法。 2.掌握在循环结构中使用break 与continue 语句的方法。 3.掌握多重循环的使用方法。 二.实验内容: 1.编写程序输出半径为1到15的圆的面积,若面积在30到100之间则予以输出,否则,不予输出。 2.打印出所有“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字的立方 之和正好等于该数本身。例如:153是一个“水仙花数”,因为153=13+53+33。 3.编写程序,分行输出斐波那契序列的前20项(每行5个数)。 说明:斐波那契序列:1,1,2,3,5,8,13,21,…… 4.编写程序,输出“九九乘法口诀表”。 5.编写程序,分行输出100以内所有的素数(每行5个数)。 6.有两个红球、三个黄球、四个白球,任意取五个球,其中必须有一个黄球,编程输出所有可能的方案。 7.编写程序求解sn=a+aa+…+a …a,其中a 是1-9中的一个数字。n 为一正整数,a 和n 均从键盘输入。(例如输入n 为4,a 为2,sn=2+22+222+2222) 8.编程统计从键盘输入的字符中数字字符的个数,用换行符结束循环。 9. 编写程序,输出200以内所有能被7整除的数。 10. 编写程序,求1~1000之间能被13整除的最大的那个数。 11. 找出若干个非零数中的最小值m 以及它们的平均值a 。要求:从键盘输入若干个数,每次输入一个赋给变量x ,x 为零时,结束输入。 12. 从键盘输入整数 n ,输出 1+3+5+7+……前 n 项的和。(n<=100) 13. 编写一个程序,求s=1+(1+2)+(1+2+3)+…+(1+2+3+…+n)的值。 14. 编写一个程序,用户输入一个正整数,把它的各位数字前后颠倒一下,并输出颠倒后的结果。 15. 编写一个程序,求出200到300之间的数,且满足条件:它们三个数字之积为42,三个数字之和为12。 16. 编写一个程序,求出满足下列条件的四位数:该数是个完全平方数,且第一、三位数字之和为10,第二、四位数字之积为12。 17. 编写一个程序,求e 的值。 ! 1!21!111n e +?+++≈ 18.编写一个程序,求满足如下条件的最大的n : 10003212222≤+?+++n 19. 某人摘下一些桃子,卖掉一半,又吃了一只;第二天卖掉剩下的一半,又吃了一只;第三天、第四天、第五天都如此办理,第六天一看,发现就剩下一只桃子了。编写一个程序,采用迭代法问某人共摘了多少只桃子。 20. 输入一批非0数,直到输入0时为止,计算其中奇数的平均值和偶数的乘积。 21. 求一组整数中的正数之积与负数之和,直到遇到0时结束。

C语言循环结构小结

[C语言问题求解] 作者:苏丽媛 修订:李昕,高绍姝

1While循环 当要进行的操作相同,数据不同,但是这些数据可以形成某种序列时,考虑采用循环处理。 1.1while循环架构 while(条件) { 语句; } 1.2循环与选择结构的区别 循环是多次的(条件满足,进入循环,循环结束后返回,再次判断条件是否满足,不断循环,直到条件不满足,执行后继语句),选择结构仅仅是一次的(判断条件满足后执行,执行后结束,并开始执行后继语句) 1.3循环三要素 循环控制变量的初始化(初始化相当于设置了一个开始的值) 循环条件(条件相当于设置了一个结尾) 循环控制变量的改变(一定使之从开始到结尾的方向进行) 1.4例: #include #include int sum(int n) { int result=0; int i=1; ///i用来控制循环,称为循环控制变量//循环变量的初始化 while(i<=n) ///循环条件 { result = result + i; i++; ///即i=i+1//循环控制变量的改变 } return result; } int main() { int n; scanf("%d",&n); printf("%d\n",sum(n)); return 0; } 注:当循环结束后,循环控制变量的值是第一个不满足条件的值。 2for循环 2.1for循环结构 for(循环变量的初始化;循环的条件;循环的控制变量的改变) {

循环体; } for循环的小括号中,有且仅有两个分号,分割了循环的三要素。 for()后不能接分号,分号代表空语句,如果接了分号,意味着循环体不再属于循环,整个循环只循环了一条空语句。 循环的条件判断比循环控制变量的改变多一次(多的一次是条件不成立的第一个数)。 建议:知道循环次数采用for循环,反之,采用while循环。 循环中定义的控制变量属于局部变量,出了循环便不可用了,如果出了循环仍想使用该变量,就必须重新定义。 2.2例: #include int sum(int n) { int result=0; for(int i=1;i<=n;i++) { result = result + i; } return result; } int main() { int n; scanf("%d",&n); printf("%d\n",sum(n)); return 0; }

《C语言循环程序设计for语句》教学案例

《C语言循环程序设计—for语句》教学案例漠河县职业技术学校尘威威

《C语言循环程序设计—for语句》教学案例 漠河县职业技术学校尘威威 C语言基础是中职计算机专业的一门必修课,也是要求计算机专业学生学习、掌握的一门重点课程,这门课程核心内容就是要让学生掌握一门编程的语言,学会编写简单的程序,能读懂C语言源程序。 案例背景: 在计算机应用专业教学中,C语言是一门理论与实践结合得比较紧的课程。要掌握和使用好这门语言,既要求学生有比较扎实的理论基础,又要具备较强的应用实践能力。如果只是按照传统的知识体系照本宣科,让学生理解这些枯燥的概念都难,更不要说达到良好的教学效果,而且易挫伤学生学习编程的积极性。因此,在教学中可以改为从案例入手,通过给学生演示、让学生模仿,在实际应用中去探究和领悟这些概念,并适时地加以归纳总结和进行概念的延伸,让学生在轻松愉快的气氛中学习新知识。所以从课程内容而言,案例教学是适用的,是切合学生的。 循环结构是程序设计三种基本结构的重中之重,而循环中的for 循环是程序中运用最多的,也是较灵活的语句之一,它既是前面知识的延续,又是后面知识的基础,在知识构架中起着重要的衔接作用,如果不采用一些恰当有效的方法,学生在学习过程中会难以掌握。在教学过程中教师应结合一些有趣的程序,提高学生的学习兴趣,引导

学生全身心地投入课堂。本文针对学生的实际情况,具体阐述for循环语句在具体编程时的灵活应用。 教学目标确定 (一)知识与技能 1、领会程序设计中构成循环的方法 2、能使用for循环语句编写C语言语句,并能运用for循环语句编写出正确的程序。 (二)过程与方法 C语言程序设计中for循环语句教学以行动导向教学为主线,通过“提出问题―分析问题―解决问题―问题扩展―讨论―总结归纳―实践”的程序,过渡到知识应用和练习。 本课采用多媒体课件进行教学,通过课件把文字和图片有机的结合,使学生在学习过程中更加容易理解,学习效率高。在课堂讨论和实践过程中,教师适当引导,学生主动探究、归纳总结学习内容,既有利于领会掌握新知识点,又能充分发挥学生的主体作用。在重点的突破上,采用范例比较教学法,给出具体的案例,让学生通过典型的例子掌握知识,同时通过用while、do while语句的所编写的程序进行比较,加深学生印象,让学生快速的掌握for循环语句的基本结构及使用方法。 (三)情感与价值观 1.让学生在自主解决问题的过程中培养成就感,为今后自主学习打下良好的基础。

C语言第三次作业(循环)

C语言循环结构作业 一、实验目的: 1、熟悉掌握三种循环结构,while语句、do-while语句和for语句。 2、掌握在程序设计中用循环的方法实现一些常用算法。 3、进一步学习调试程序。 二、实验内容:(请写出程序代码及调试结果) 1.求Sn=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/(2n))其中n的值由键盘获得。 2.求S=aa….a -… -aaa - aa - a的值,其中a=3,n=6。 n个a 例如:22222-2222-222-22-2(例如:a=2,n=5) 3.根据以下公式求∏的值(要求满足精度0.0005,即某项小于0.0005 时停止迭代)∏/2=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+(1*2*3*4)/(3*5*7*9)+…+(1*2*3*4*…*n)/ (3*5*7*9*…*(2n+1))程序运行后,如果输入精度0.0005,则程序输出为3.140578 4.输出1至100之间每位数的乘积大于每位数的和的数 5.一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,因此6是“完数”。编程序找出1000之内的所有完数及这些完数之和,并按下面格式输出因子:6的因子是1,2,3 …… 完数和是…。 6. 有一数列:

2/1,3/2,5/3,8/5,13/8,21/13,…求出这个数列的前20项之和。 7. 大于m且紧靠m的k个素数打印出来。 例如,若输入m=17, k=5 ,则应输出“19,23,29,31,37”。 8、求1!+2!+3!+4!+ (10) 9、猴子吃桃子问题。猴子第1天摘下若干个桃子,当即吃了一半, 还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。 到第10天早上想再吃时,就只剩一个桃子了。求第1天共摘多少个桃子。 10、输出以下图案: * *** ***** ******* ***** *** *

C语言程序设计习题集第4章循环结构(答案)

第4章循环结构 一、选择题 1、有以下程序段 int k=0; while(k=1)k++; while 循环执行的次数是( A) A) 无限次B) 有语法错,不能执行 C) 一次也不执行D) 执行1次 2、t为int类型,进入下面的循环之前,t的值为0 while( t=1) { …… } 则以下叙述中正确的是( B) A) 循环控制表达式的值为0 B) 循环控制表达式的值为1 C) 循环控制表达式不合法 D) 以上说法都不对 3、在C程序中,与while(m)中表达式m完全等价的是(B ) A) m==0 B) m!=0 C) m==1 D) m!=1 4、有以下程序,程序运行后的输出结果是(C )。 main() {int i=1,sum=0; while(i<=4) { sum=sum+i; i=i+1; } printf(“%d\n”,sum);} A)4 B)5 C)10 D)死循环 5、有以下程序,程序运行后的输出结果是(D )。 main() { int i=1,sum=0; while(i<=4) sum=sum+i; i=i+1; printf(“%d\n”,sum); } A)4 B)5 C)10 D)死循环 6、有如下程序 main(){ int n=9; while(n>6){n--;printf(“%d”,n);} } 该程序段的输出结果是(B) A) 987 B) 876 C) 8765 D) 9876

7、以下程序的输出结果是( B ) main() { int num= 0; while(num<=2) { num++; printf(“%d\n”,num);} } A) 1 B) 1 C)1 D) l 2 2 2 3 3 4 8、有以下程序,若运行时输入3.6 2.4<回车>,则输出的结果是( B)。main() {float x,y,z; scanf(“%f%f”,&x,&y); z=x/y; while(1){ if(fabs(z)>1.0) { x=y; y=z; z=x/y;} else break;} printf(“%f\n”,y);} A)1.500000 B)1.600000 C)2.000000 D)2.400000 9、执行以下程序段时 x=-1; do { x=x*x; } while(! x); 则下面描述正确的是(A ) A) 循环体将执行一次B) 循环体将执行两次 C) 循环体将执行无限次D) 系统将提示有语法错误 10、有以下程序段其输出结果是(C ) int x=3; do { printf("%d",x-=2); } while (!(--x)); A) 1 B) 3 0 C) 1 -2D) 死循环 11、有如下程序 main(){ int x=23; do {

C语言实验三、循环结构程序的设计解答

实验三 循环结构程序设计 一、实验目的 1.熟练掌握三种循环语句的应用。 2. 熟练掌握循环结构的嵌套。 3. 掌握break 和continue 语句的使用。 4. 练习调试与修改程序。 5. 掌握一组数据求和、求平均值、求最大值最小值的计算方法。 6.掌握循环次数已知、未知的处理方法(精度的控制、结束标志的使用等) 7.掌握简单图形的打印输出处理。 二、实验内容 1.[目的]掌握循环次数已知的循环控制处理方法。 [题目内容]编写一个程序,其功能为:计算并输出1~10的平方值。 [输入]无 [输出]如下形式 1 squared is 1 2 squared is 4 3 squared is 9 4 squared is 16 5 squared is 25 6 squared is 36 7 squared is 49 8 squared is 64 9 squared is 81 10 squared is 100 [提示]使用三种循环语句均可。 #include "stdio.h" void main( ) { int i; for(i=1;i<=10;i++) printf("\n %d squared is %d\n",i,i*i); printf("\n"); } 2.[目的]掌握循环次数已知的循环控制处理方法。 [题目内容]编写一个程序,其功能为:计算并输出 ∑==100 1 2n n x 。 [输入]键盘输入x 值 [输出]计算结果 [提示]使用三种循环语句均可。 #include "stdio.h" void main() {

int n,x,sum=0; printf("请输入x:"); scanf("%d",&x); for(n=1;n<=100;n++) sum=sum+x*x; printf("sum=%d\n",sum); } 如果程序功能为:计算并输出 n x 1 2 ,要求从键盘输入n、x值,程序应如何修改? 3.[目的]掌握循环次数已知的循环控制处理方法。 [题目内容]编写一个程序,其功能为:求1-100之间的奇数之和。 [输入]无 [输出]计算结果 [提示]使用三种循环语句均可。 #include "stdio.h" void main() { int i,sum=0; for(i=1;i<=100;i=i+2) sum=sum+i; printf("sum=%d\n",sum); } 4.[目的]掌握循环次数已知的循环控制处理方法。 [题目内容]编写一个程序,其功能为:输出100以内能被7整除的数。 [输入]无 [输出]判断结果 [提示]使用三种循环语句均可。 #include "stdio.h" void main() { int i,sum=0; for(i=1;i<=100;i++) if(i%7==0) printf("%d\t",i); } 5.[目的]掌握循环次数已知的循环控制处理方法。 [题目内容]编写一个程序,其功能为:计算并输出一年12个月的总降雨量和平均降雨量。 [输入]12个月的降雨量 [输出]总降雨量和平均降雨量 [提示]使用for循环语句,和值、平均值变量采用双精度类型,和值初值设为零。#include "stdio.h" void main() {

c语言第六章 循环结构程序设计(习题册答案)

第六章循环结构程序设计 基础练习(A) 一、选择题 1、C语言中while和do-while循环的主要区别是(A)。 A) do-while的循环体至少无条件执行一次 B) while的循环控制条件比do-while的循环控制条件严格 C) C)do-while允许从外部转到循环体内 D) do-while的循环体不能是复合语句 2、以下描述中正确的是(C)。 A) 由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用 复合语句 B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号 C) 在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操 作 D)do-while循环中,根据情况可以省略while 3、设有程序段 int k=10; while(k) k=k-1; 则下面描述中正确的是(A)。 A)while循环执行10次B)循环是无限循环 C)循环体语句一次也不执行D)循环体语句执行一次 4、下列循环语句中有语法错误的是( D )。 A) while(x=y) 5;B) while(0) ; C) do 2;while(x==b);D) do x++ while(x==10); 5、已知int i=1;执行语句while (i++<4) ;后,变量i的值为(C)。 A) 3 B) 4 C) 5 D) 6 6、语句while(!E);中的表达式!E等价于(A)。 A)E==0 B)E!=1 C)E!=0 D)E==1 7、下面程序段的运行结果是(A)。 a=1; b=2; c=2; while(a main() { int num=0; while(num<=2) { num++; printf(“%d\n”,nu m); } } A)1 B)1 C)1 D)1 2 2 2 3 3 9、以下能正确计算1×2×3×…×10的程序段是(C)。

C语言-第5章 循环结构程序设计

第5章循环结构程序设计 一、单项选择题 1.在C语言中,下列说法中正确的是()。 A) do-while语句构成的循环不能用其它语句构成的循环来代替。 B) do-while语句构成的循环只能用break语句退出。 C) do-while语句构成的循环在while后的表达式非零时结束循环。 D) do-while语句构成的循环,在while后的表达式为零时结束循环。 2. break语句不能出现在语句中() A) switch B)for C) while D) if…else 3.对于break语句和continue语句的说法错误的是() A) break语句不能用于循环语句和switch语句之外的任何其他语句中。 B) break和continue也可以用于if语句中 C) continue语句只结束本次循环,而不是终止整个循环的执行。 D) break语句是结束整个循环过程,不再判断执行循环的条件是否成立。 4. 语句while(!y);中的表达式!y等价于 A)y==0 B)y=1 C)y=!0 D) y==1 5. 若有“int a=1,x=1;”,则循环语句“while(a<10) x++; a++;”的循环执行()。 A)无限次B)不确定次C)10次D)9次 6. 有以下程序段 int k=0 while(k) k++; 则while循环体执行的次数是 A) 无限次B) 有语法错,不能执行 C) 一次也不执行D) 执行1次 7. 下列循环语句中有语法错误的是( ) A while(x=y) 5; B while(0) ; C do 2;while(x= =b); D do x++ while(x= =10); 8. 当运行时输入:abcd$abcde ,下面程序的运行结果是。 #include main() {char c; while(putchar(getchar())!='$'); printf("end"); } A)abcd$abcde B)abcd$end C)abcdend D)abcd$abcdeend 9. 以下程序段( ) x=-1; do { x=x*x; } while(x>0); A) 是死循环B) 循环执行一次C) 循环执行二次D) 有语法错误 10. 下面程序段执行后的结果为: ( ) int sum=0, n=10; do { sum=sum+n; n++; } while(n<10);

相关文档
相关文档 最新文档