(完整版)c语言第六章循环结构程序设计(习题册答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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、参考答案: