文档库 最新最全的文档下载
当前位置:文档库 › C语言第六章循环结构复习题

C语言第六章循环结构复习题

C语言第六章循环结构复习题
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

c) x=1,y=1 d) x=0,y=0

解析:在开始时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++ ;printf(“%d\n”,num); }

while(num<=2);

}

程序的输出结果是:()

a) 1 b) 1c) 1 d) 1

2 2 2

3 3

4

9. 有以下程序:

main()

{ int x=3;

do

{ printf(“%d”,x-=2); }

while(!(--x));

}

程序的输出结果是:()

a) 1 b) 3 0 c) 1 -2 d) 死循环

10. 有以下程序:

main()

{ int y=10;

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

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

}

程序的输出结果是:()

a) 1 b) -1 c) 8 d) 0

11. 有以下程序:

main()

{ int x=3,y;

do

{ y=--x;

if( !y) printf(“x”) ;

else printf(“y”) ;

} while(x);

}

程序的输出结果是:()

a) xyx b) yyx c) yxx d) yxy

12. 有以下程序段,此处do-while循环的结束条件是:()

int n=0,p;

do {scanf(“%d”,&p);n++;} while (p!=12345&&n<3);

a) p的值不等于12345并且n的值小于3

b) p的值等于12345并且n的值大于等于3

c) p的值不等于12345或者n的值小于3

d) p的值等于12345或者n的值大于等于3

13. 有以下程序:

main()

{ int a,b,t;

for(a=3,b=0 ;!a==b ;a--,b++)

if(a>b) { t=a;a=b;b=t;}

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

}

程序的输出结果是:()

a) 4,1 b) 1,4 c) 4,-1 d) -1,4

14. 有以下程序:

main()

{ int x=3,y=0;

do

{ while( !y) y=-x;

} while(x--);

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

}

程序的输出结果是:()

a) -1,3 b) -1,-3c) 0,0 d) 1,-3

15. 有以下程序:

main()

{ int m,n;

printf(“Enter m,n:”) ;

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

while(m!=n)

{while(m>n) m-=n;

while(n>m) n-=m;}

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

}

程序的输出结果是:()

a) m=3 b) m=2 c) m=1 d) m=0

16. 有以下程序:

main()

{ int i,s=1;

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

if( !(i%5)&& !(i%3)) s+=i;

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

}

程序的输出结果是:()

a) 409 b) 277 c) 1 d) 91

17. 有以下程序:

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

18. 有以下程序:

main()

{ int i=0,a=0;

while(i<30)

{for(;;)

{if((i%10)==0) break;

else i--;}

i+=11; a+=i;

}

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

}

程序的输出结果是:()

a) 66 b) 63 c) 33 d) 32

19. 有以下程序:

main()

{ int a,b;

for(a=1,b=1 ;a<=100 ;a++)

{ if(b>=10) break;

if(b%3==1)

{ b+=3; continue; }

}

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

}

程序的输出结果是:()

a) 101 b) 6 c) 5 d) 4

20. 有以下程序:

main()

{ int i=0;

for(i+=3 ;i<=5 ;i=i+2)

switch(i%5)

{ case 0: printf(“*”);

case 1: printf(“#”); break;

default: printf(“!”); break;

case 2: printf(“&”);

}

}

程序的输出结果是:()

a) *# b) !& c) !*# d) *#*

二.填空题

1.要求使以下程序段输出10个整数,请填空。

for(i=0;i<=_18_;printf(“%d\n”,i+=2));

2. 执行下面程序段后,k的值是_____0_____。

r=1; n=203; k=1;

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

3. 下面程序的输出结果是_1 2 5 10_。

main()

{ int i,x=10;

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

if(x%i==0) printf(“%d ”,i);

}

4. 下面程序的输出结果是___无定值________。

main()

{ int i,sum;

for(i=1;i<6;i++) sum+=i;

printf(“%d”,sum);

}

5. 下面程序的输出结果是_20__。

main()

{ int i,sum=0;

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

C语言第六章习题1

第6章作业 一.选择题 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) 19 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 c) x=1,y=1 d) x=0,y=0 7. 有以下程序: main() { int x=3,y; do { y=--x; if( !y) printf(“x”) ; else printf(“y”) ; } while(x); } 程序的输出结果是:() a) xyx b) yyx c) yxx d) yxy 8. 有以下程序段,此处do-while循环的结束条件是:() int n=0,p; do {scanf(“%d”,&p);n++;} while (p!=12345&&n<3); a) p的值不等于12345并且n的值小于3 b) p的值等于12345并且n的值大于等于3 c) p的值不等于12345或者n的值小于3 d) p的值等于12345或者n的值大于等于3 9. 有以下程序: main() { int a,b,t; for(a=3,b=0 ;!a==b ;a--,b++) if(a>b) { t=a;a=b;b=t;} printf(“%d,%d\n”,a,b); } 程序的输出结果是:() a) 4,1 b) 1,4 c) 4,-1 d) -1,4 10. 有以下程序: main() { int x=3,y=0; do { while( !y) y=-x; } while(x--); printf(“%d,%d\n”,x,y); } 程序的输出结果是:() a) -1,3 b) -1,-3 c) 0,0 d) 1,-3 11. 有以下程序: main() { int m,n;

大一上期C语言实验报告5 循环控制语句

成都工业学院·计算机工程学院 《程序设计基础》实验报告 1.实验目的 (1)熟练掌握while语句、do…while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用三 种循环语句实现循环结构; (2)掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧; (3)进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。2.实验内容 (1)输出两个整数m和n,求它们的最大公约数和最小公倍数。 要求: ①画出算法流程图,从键盘输入m和n; ②对负数和零可不做考虑; ③运行程序,对m>n、m

③按照数字、大写字母、小写字母及其他字符数的顺序输出结果 3.流程图 4.源程序

5. 运行结果 (1 ) 求最大公约数和最小公倍数 (2)求1000内最大的10个素数之和(3)计算π值

C语言第六章答案及详解

第六章指针 一、选择题 1答案:A 分析:本题主要考指针赋值,n2=n1;是把n2的值赋给n1,故根据指针赋值的定义可知选A,即把q所指对象的值赋给p所指对象。 2答案:B 分析:本题主要考指针定义,因为p指向变量x,故输出其值的时候应该是x的值。 3答案:C 分析:本题主要考指针的定义和赋值,C前面是定义一个量a并赋值为10,后面定义一个指针,并把a的值赋给这个指针。 4答案:C 分析:本题主要考指针的定义及赋值,开始时使p指向a,q指向b,把它们的值交换,然后再显示。故得正确答案C。 5答案:C 分析:本题主要考函数指针的定义,函数前面的*号表求返回值是指针类型,void表示返回无值弄的。故选C。 6答案:A 分析:本题主要考的是指针的变量的赋值,在使用scanf()函数的时候,后面跟的是一个地址,由于pa本身保存的是地址,故选A 7答案:D 分析:本题主要考的指针的赋值及指向指针的指针的赋值,根据定义知选D。 B的正确形式是**q=2;C的正确形式应该是q=&p。 8答案:C 分析:本题主要考的是全局变量和局部变量,以及指针的用法,第一个f(&a)的返回值是5,第二个返回值是2。 9答案:A 分析:本题主要考的是变量自加,指针传值,以及指针的赋值。通过第二行a=b可知p1,p2指向的变量的值相同,都指向了b所指的对象,也是p2所指的对象’a’,由于(*a)++;是实现a所指对象的自加,故由’a’变成’b’,故最终选A。 10答案:A 分析:本题主考NULL,一般来说当我们把一个空值以整数的形式输出出来的时候,默认的情况是0。

11答案:C 分析:本题考的是指针变量的赋值,虽然p没有赋值,表示没有指向某个具体的对象,但事实上系统会让它随机的指向存储单元里的一个对象,那么它的返回值应该是所指存储单元中的值。 12答案:B 分析:本题主要考函数中参数变量的定义,在B中连续定义两个变量,这在函数中是不可以的。 13答案:C 分析:本题主要考指针的指针,c先指向b,b是一个指针,它指向a,故c最终是指向a的,故其值是a中的值。 14答案:A 分析:本题主要考指针的赋值,我们不能把一个具体的值赋给一个指针变量。 B选项是w,p指向同一对象。C是p指向a。D是把w所指对象的值赋给p 所指对象。 15答案:B 分析:本题主要考指针传值,p,q分别指向a,b,然而r会指向它们的较小值。 16答案:D 分析:在D中把一个整形变量的值赋给一个指针的地址,故而是错的。应该写成p=&a。 17答案:D 分析:本题主要考调用函数时指针传值和一般的变量的传值区别。指针通过地址传值,而变量是直接传值。c指针指向b,故对c指针里面的值的修改等于直接修改b中的值。 18答案:D 分析:本题主要考指针的定义及指针变量的值的输出方式,指针b指向a,故输出其值是511。 19答案:C 分析:本题主要考指针标识符*和乘号*的区别,*p=*p1*(*p2)中第1,2,4个*号是指针标识符,而第三个是乘号,故其运算的结果是3。 20答案:C 分析:本题主考函数的嵌套调用和数据的类型转换,注意的是(int)(a+b),所以得到5.0。 21答案:A

c语言循环语句和循环控制例题解析

一、循环控制 (一)、break语句 break语句通常用在循环语句和开关语句中。当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则将成为一个死循环而无法退出。break在switch中的用法已在前面介绍开关语句时的例子中碰到,这里不再举例。 当break语句用于do-while、for、while循环语句中时,可使程序终止循环而执行循环后面的语句,通常break语句总是与if语句联在一起。即满足条件时便跳出循环。 例如: int main(int argc, char *argv[]) { int sn=0,i; for(i=1;i<=100;i++) { if(i==51) break; /*如果i等于51,则跳出循环*/ sn+=i; /*1+2+……+50*/ } printf(%d\n,sn); } 可以看出,最终的结果是1+2+……+50。因为在i等于51的时候,就跳出循环了。自己写写怎样在while和do--while循环中增加break语句。 注意: 1. break语句对if-else的条件语句不起作用。 2. 在多层循环中,一个break语句只向外跳一层。 例如: int main(int argc, char *argv[]) { int i,j; printf(i j\n); for(i=0;i<2;i++) for(j=0;j<3;j++) { if(j==2) break; printf(%d %d\n,i,j); } } 输出结果为: i j 0 0 0 1 1 0 1 1 当i==0,j==2时,执行break语句,跳出到外层的循环,i变为1。 (二)、continue语句

最新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 c) x=1,y=1 d) x=0,y=0

C语言 个关键字九种控制语句 种运算符

总结归纳了C语言的32个关键字 第一个关键字:auto 用来声明自动变量。可以显式的声明变量为自动变量。只要不是声明在所有函数之前的变量,即使没加auto关键字,也默认为自动变量。并且只在声明它的函数内有效。而且当使用完毕后,它的值会自动还原为最初所赋的值。自动变量使用时要先赋值,因为其中包含的是未知的值。 例:auto int name=1; 第二个关键字:static 用来声明静态变量。可以显式的声明变量为静态变量。也为局部变量。只在声明它的函数内有效。它的生命周期从程序开始起一直到程序结束。而且即使使用完毕后,它的值仍旧不还原。即使没有给静态变量赋值,它也会自动初始化为0. 例:static int name=1. 第三个关键字:extern 用来声明全局变量。同时声明在main函数之前的变量也叫全局变量。它可以在程序的任何地方使用。程序运行期间它是一直存在的。全局变量也会初始化为0. 例:extern int name; 第四个关键字:register 用来声明为寄存器变量。也为局部变量,只在声明它的函数内有效。它是保存在寄存器之中的。速度要快很多。对于需要频繁使用的变量使用它来声明会提高程序运行速度。 例:register int name=1; 第五个关键字:int 用来声明变量的类型。int为整型。注意在16位和32位系统中它的范围是不同的。16位中占用2个字节。32位中占用4个字节。还可以显式的声明为无符号或有符号: unsigned int或signed int .有符号和无符号的区别就是把符号位也当作数字位来存储。也可用short和long来声明为短整型,或长整行。 例:int num; 第六个关键字:float 用来声明变量的类型。float为浮点型,也叫实型。它的范围固定为4个字节。其中6位为小数位。其他为整数位。 例:float name;

C语言实验报告第六章

实验报告 课程名称_____ C语言程序设计_____ 实验项目___数组(2)___ 实验仪器______计算机___________ 系别_____信息与通信工程学院_______ 专业______通信工程________ 班级/学号_____ 学生姓名______ ________ 实验日期____2013年6月25日___ 成绩_______________________ 指导教师______李文杰_________

一、实验目的 1、掌握二维数组的定义。 2、掌握二维数组元素的应用。 3、掌握字符数组的定义和元素的引用。 4、掌握字符数组元素和字符串的应用。 二、实验内容 1、描述 输入一个字符串str和一个子串s,统计str中子串s的个数。 输入 输入数据有2行,第一行为str,第二行为s,字符串长度不超过128。输出 输出子串的个数 样例输入 输入样例1: sdf$$$sdf$$ sdf 输入样例2: abcabcaaannnnbbbnc abc 样例输出 样例输出1: 2

样例输出2: 2 提示 所有的测试样例都不包含类似于下面的统计:输入:aaaabbbaaabbabaaaa aa 程序代码: #include "stdio.h" char st[500],str[500]; int ji; int shu1,shu2; int pd; int strl(char tt[1000]) { int sum=0; while (tt[sum]!='\0') sum++; return sum; } int main(void) { scanf("%s",&st); scanf("%s",&str); shu1=strl(st); shu2=strl(str); int i,j; int kk; for(i=0;i<=shu1-shu2;i++) { pd=0; kk=0; for(j=i;j

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

C语言第六章课后答案

xt6-1 #include #include int main() {int i,j,n,a[101]; for (i=1;i<=100;i++) a[i]=i; a[1]=0; for (i=2;i int main() {int i,j,min,temp,a[11]; printf("enter data:\n"); for (i=1;i<=10;i++) {printf("a[%d]=",i); scanf("%d",&a[i]); } printf("\n"); printf("The orginal numbers:\n"); for (i=1;i<=10;i++)

printf("%5d",a[i]); printf("\n"); for (i=1;i<=9;i++) {min=i; for (j=i+1;j<=10;j++) if (a[min]>a[j]) min=j; temp=a[i]; a[i]=a[min]; a[min]=temp; } printf("\nThe sorted numbers:\n"); for (i=1;i<=10;i++) printf("%5d",a[i]); printf("\n"); return 0; } xt6-3 #include int main() { int a[3][3],sum=0; int i,j; printf("enter data:\n"); for (i=0;i<3;i++) for (j=0;j<3;j++) scanf("%3d",&a[i][j]); for (i=0;i<3;i++) sum=sum+a[i][i]; printf("sum=%6d\n",sum); return 0; }

C语言的32个关键字和9种控制语句

C语言的32个关键字和9种控制语句 C语言的关键字共有32个,根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。 1 数据类型关键字(12个): (1) char :声明字符型变量或函数 (2) double :声明双精度变量或函数 (3) enum :声明枚举类型 (4) float:声明浮点型变量或函数 (5) int:声明整型变量或函数 (6) long :声明长整型变量或函数 (7) short :声明短整型变量或函数 (8) signed:声明有符号类型变量或函数 (9) struct:声明结构体变量或函数 (10) union:声明共用体(联合)数据类型 (11) unsigned:声明无符号类型变量或函数 (12) void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用) 2控制语句关键字(12个): A循环语句 (1) for:一种循环语句(可意会不可言传) (2) do :循环语句的循环体 (3) while :循环语句的循环条件 (4) break:跳出当前循环 (5) continue:结束当前循环,开始下一轮循环 B条件语句 (1)if: 条件语句 (2)else :条件语句否定分支(与if 连用) (3)goto:无条件跳转语句 C开关语句 (1)switch :用于开关语句 (2)case:开关语句分支 (3)default:开关语句中的“其他”分支 D返回语句 return :子程序返回语句(可以带参数,也看不带参数) 3 存储类型关键字(4个) (1)auto :声明自动变量一般不使用 (2)extern:声明变量是在其他文件正声明(也可以看做是引用变量)

c语言循环控制语句

循环控制结构(又称重复结构)是程序中的另一个基本结构.在实际问题中,常常需要 进行大量的重复处理,循环结构可以使我们只写很少的语句,而让计算机反复执行,从而完成大量类同的计算. C语言提供了while语句、do...while语句和for语句实现循环结构. 3.4.1while语句 while语句是当型循环控制语句,一般形式为: while<表达式>语句; 语句部分称为循环体,当需要执行多条语句时,应使用复合语句. while语句的流程图见图3-8,其特点是先判断,后执行,若条件不成立,有可能一次也不执行. [例3-11]求n! 分析:n!=n*(n-1)*(n-2)*..2*1,0!=1.即S0=1,Sn=Sn-1*n.可以从S0开始,依次求出S1、S2、...Sn. 统一令S等于阶乘值,S的初值为0!=1;变量i为计数器,i从1变到n,每一步令S=S*i,则最终S中的值就是n!. 流程图见图3-9,程序如下:

考察图3-9中循环部分的流程图可以看出,在循环前各变量应有合适的值(s=1),另外,控制循环结束的变量(此处为i)必须在循环体中被改变,否则,循环将无限进行下去,成为死循环.

本题中,将多项式的每一项用t表示,s代表符号,在每一次循环中,只要改变s、n的值,

就可求出每一项t. 一般情况下,while型循环最适合于这种情况:知道控制循环的条件为某个逻辑表达式的值,而且该表达式的值会在循环中被改变,如同例3-12的情况一样. 3.4.2do...while语句 在C语句中,直到型循环的语句是do...while,它的一般形式为: do语句while<表达式> 其中语句通常为复合语句,称为循环体. do...while语句的流程图见图3-10,其基本特点是:先执行后判断,因此,循环体至少被执行一次. 但需要注意的是,do...while与标准的直到型循环有一个极为重要的区别,直到型循环是当条件为真时结束循环,而do...while语句恰恰相反,当条件为真时循环,一旦条件为假,立即结束循环,请注意do...while语句的这一特点. 例[3-13]计算sin(x)=x-x3/3!+x5/5!-x7/7!+... 直到最后一项的绝对值小于1e-7时为止. 分析:这道题使用递推方法来做. 让多项式的每一项与一个变量n对应,n的值依次为1,3,5,7,...,从多项式的前一项算后一项,只需将前一项乘一个因子: (-x2)/((n-1)*n) 用s表示多项式的值,用t表示每一项的值,程序如下: #include # include m a i n ( ) { double s,t,x ; int n ; printf("please input x :"); scanf("%lf",&x); t=x; n=1; s=x; do { n=n+2; t=t*(-x*x)/((float)(n)-1)/(float)(n); s=s+t;

(完整版)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语言三种循环语句

三种基本的循环语句: 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语言for循环语句教案

for循环结构程序设计教案 课程名称:C语言程序设计 本课内容:循环结构程序设计——for 语句 一、教学目标 1、领会程序设计中构成循环的方法 2 、掌握 for 语句的用法 二、教学重点 1、for 语句的一般格式 2、for语句的执行过程 三、教学难点 for 语句的综合利用 四、教学方法 1、课堂讲授,给出主要内容。 2、讲解其基本格式。 3、应用示例,结合相应的知识讲解。 4、执行过程用流程图和例题用(演示法和讲解法)进行详细说明。 五、教学过程 (一)导入 1、复习前两节课我们学习的两种循环语句——while语句和do~while 语句的基本格式和执行过程和特征。 2、给出例子如下:

main( ) {int x=1; (表达式1) s=0; while(x<=100) (表达式2) {s=s+x; x=x+1; (表达式3) } printf(“%d”,s); } 分析用while语句来完成的程序,主要完成1到100的累加和,对一个循环程序来说最关键的三个部分:循环变量的赋初值、控制循环条件、循环控制变量的更新。 (二)教学过程 1、写出本节课要介绍的for语句的一般格式 for(表达式1;表达式2;表达式3) 循环体; 2、掌握:基本格式和各个表达式的功能和特征 强调:for语句中的所有表达式和while语句中的表达式所完成的功能是相同的。 表达式1:循环变量的初始化(初始值) 表达式2:循环条件(终止值) 表达式3:循环变量自增 3、for语句的执行过程 for ( int i = 0 ; i < 10 ; i++) { printf("我最棒"); }

C语言循环控制练习题

循环控制练习题 1.设有程序段int k=10; while (k=0) k=k-1; 则下面描述中正确的是() A while循环执行10次 B 循环是无限循环 C 循环体语句一次也不执行 D 循环体语句执行一次 2.设有以下程序段int x=0,s=0; while(!x!=0)s+=++x;printf("%d",s) ;则() A 运行程序段后输出0 B 运行程序段后输出1 C 程序段中的控制表达式是非法的 D 程序段执行无限次 3、语句while(!E);中的表达式!E特等价于() A、E==0B、E!=1C、E!=0D、E==1 4、下面程序段的执行结果是() a=1;b=2;c=2; while(a

while(x<15) y++,x+=++y; printf("%d,%d",y,x); A、20,7 B、6,12 C、20,8 D 8,20 6、下面程序段的运行结果是() int n=0; while (n++<=2); printf("%d",n); A,2 B、3 C、4 D 有语法错误 7、设有程序段 t=0; while(printf("*")) {t++; if(t<3) break;}下面描述正确的是() A、其中循环控制表达式与0等价 B、其中循环控制表达式与’0‘等价 C 、其中循环表达式是不合法的 D、以上说法都不对 8、下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等的数时结束循环,请选择填空。 main()

C语言循环实验报告

实验名:循环结构实验目的 1、掌握在程序设计条件型循环结构时,如何正确地设定循环条件,以及如何控制循环的次数。 2、了解条件型循环结构的基本测试方法。 3、掌握如何正确地控制计数型循环结构的次数 4、了解对计数型循环结构进行测试的基本方法 5、了解在嵌套循环结构中,提高程序效率的方法 二、实验内容 (一))题目1 1、题目内容描述 1、下面是一个计算e的近似值(使误差小于给定的δ)的程序。 main() { doublee=,x=,y,detax; inti=1; printf(“\npleaseinputenteraerror:”); scanf(“%lf”,&detax); y=1/x; while(y>=detax) { x=x*I; y=1/x; e=e+y; ++i; } printf(“%”,e); } 2、实验步骤 (1)阅读上面的程序,写出程序所依据的计算公式。 (2)当输入的detax各是什么值时,能分别使程序按下面的要求运行:.不进入循环;.只循环一次;.只循环两次;.进入死循环(程序将永远循环下去)。为了能知道程序循环了多少次,应该在程序中增加一条什么样的语句? (3)原程序中while语句中的y>=detax,分别换成y>detax,y=detax,y

C语言实用三种循环语句

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

死循环。省略了增量,则不对循环控制变量进行操作,这时可在语句体中加入修改循环控制变量的语句。 (3).for循环可以有多层嵌套。 例如: for(;;) 语句; for(i=1;;i+=2) 语句; for(j=5;;) 语句; 这些for循环语句都是正确的。 main() { int i,j; printf(i j ); for(i=0;i2;i++) for(j=0;j3;j++) printf(%d %d ,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 ,sn); } 从程序可以看出,使用循环语句可以大大简化代码。 (二)、while循环它的一般形式为: while(条件) 语句; while循环表示当条件为真时,便执行语句。直到条件为假才结束循环。并继续执行循环程序外的后续语句。例如:#include stdio.h main() { char c; c=; /*初始化c*/ while(c!= ) /*回车结束循环*/

C语言32个关键字+9种控制语句34种运算符

C语言32个关键字九种控制语句34种运算符 第一个关键字:auto 用来声明自动变量。可以显式的声明变量为自动变量。只要不是声明在所有函数之前的变量,即使没加auto关键字,也默认为自动变量。并且只在声明它的函数内有效。而且当使用完毕后,它的值会自动还原为最初所赋的值。自动变量使用时要先赋值,因为其中包含的是未知的值。例:auto int name=1; 第二个关键字:static 用来声明静态变量。可以显式的声明变量为静态变量。也为局部变量。只在声明它的函数内有效。它的生命周期从程序开始起一直到程序结束。而且即使使用完毕后,它的值仍旧不还原。即使没有给静态变量赋值,它也会自动初始化为0.例:static int name=1. 第三个关键字:extern 用来声明全局变量。同时声明在main函数之前的变量也叫全局变量。它可以在程序的任何地方使用。程序运行期间它是一直存在的。全局变量也会初始化为0.例:extern int name; 第四个关键字:register 用来声明为寄存器变量。也为局部变量,只在声明它的函数内有效。它是保存在寄存器之中的。速度要快很多。对于需要频繁使用的变量使用它来声明会提高程序运行速度。例:register int name=1; 第五个关键字:int 用来声明变量的类型。int为整型。注意在16位和32位系统中它的范围是不同的。16位中占用2个字节。32位中占用4个字节。还可以显式的声明为无符号或有符号:unsigned int signed int.有符号和无符号的区别就是把符号位也当作数字位来存储。也可用short和long来声明为短整型,或长整行。例:int num; 第六个关键字:float 用来声明变量的类型。float为浮点型,也叫实型。它的范围固定为4个字节。其中6位为小数位。其他为整数位。例:float name; 第七个关键字:double 用来声明为双精度类型。它的范围为8个字节。14位为小数位。也可使用更高精度的long double它的范围则更大,达到10字节。例:double name;

相关文档