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

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

第六章循环结构程序设计

基础练习(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、参考答案:

相关文档
最新文档