循环章节练习题目Word文档下载推荐.docx
《循环章节练习题目Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《循环章节练习题目Word文档下载推荐.docx(25页珍藏版)》请在冰点文库上搜索。
}while(--i);
D)for(i=1;
i;
6.设有程序段intk=10;
while(k=0)k=k-1;
则下面描述正确的是【】。
A)while循环执行10次B)循环是无限循环
7.下列程序段不能实现阶乘8!
(结果存放在p中)的是【】。
A)p=1;
for(i=1;
i<
9;
i++)p=p*i;
B)p=2;
for(i=8;
i>
3;
i--)p=p*i;
C)p=1;
i=1;
while(i<
9)p=p*i++;
D)p=1;
i=8;
do{p=p*i--;
}while(i>
1)
8.语句”while(!
e){……}”中的表达式!
e等价于【】。
A)e==0B)e!
=1
C)e!
=0D)e==1
9.下面程序段的运行结果是【】。
inta=1,b=2,c=2,t;
while(a<
b<
c){t=a;
a=b;
b=t;
c--;
printf("
\n%d,%d,%d"
a,b,c);
A)1,2,0B)2,1,0C)1,2,1D)2,1,1
10.对for(表达式1;
;
表达式3)可以理解为【】。
A)for(表达式1;
0;
表达式3)
B)for(表达式1;
1;
C)for(表达式1;
表达式1;
D)for(表达式1;
表达式3;
11.下面有关for循环的正确描述是【】。
A)for循环只能用于循环次数已经确定的情况
B)for循环中是先执行循环体语句,后判断表达式
C)在for循环中,不能用break语句跳出循环
D)for循环的循环体可以包含多条语句,但必须用花括号括起来
12.执行语句for(i=1;
i++<
);
之后,变量i的值为【】。
A)3B)4
C)5D)不确定
13.若x是int型变量,且有下面的程序片段:
for(x=3;
x<
6;
x++)
printf((x%2)?
("
**%d"
):
##%d\n"
),x);
上面程序片段的输出结果是【】。
A)**3B)##3
**4##5**5
C)**3##4D)##3**4
**5**5
14.若运行以下程序时,从键盘输入2437<
回车>
,则以下程序段的输出结果是【】。
voidmain()
{
intc;
while((c=getchar())!
='
\n'
)
switch(c-'
2'
case0:
case1:
putchar(c+4);
case2:
break;
case3:
putchar(c+3);
default:
putchar(c+2);
\n"
);
A)668779B)6879
C)2437D)087967
读程序训练
1.读程序,写结果
{
intj,n,s=1;
scanf("
&
n);
for(j=0;
n;
s=s*n;
printf("
“%d"
s);
}
程序实现的功能是什么?
2.#include<
stdio.h>
main()
{intm,n,sign,t;
%d%d"
&
m,&
while(m*n)
{if(m>
=0&
&
n>
=0||m<
n<
=0)sign=0;
elsesign=1;
m=m>
0?
m:
-m;
n=n>
n:
-n;
t=0;
while(n--)t+=m;
\nTheresultis:
"
if(sign)printf("
-"
%d\n"
t);
}_
3.循环执行多少次?
for(x=0,y=1;
x!
=123&
y<
10;
y=y+2);
4.程序实现了什么功能?
#include<
main()
{intn=0,sum=0;
while(n<
10)
{n++;
if(n==(n/2)*2)
continue;
sum=sum+n;
printf("
sum=%d\n"
sum);
5.读程序,写结果
#include"
stdio.h"
voidmain()
{intj=0,num;
do
{if(++j>
9)break;
num=j*10+2;
if(num%3)continue;
printf("
%d"
num);
}while
(1);
6.读程序,写结果
#include<
{intn,i,j;
for(i=0;
i<
i++)
{for(j=0;
j<
n-1-i;
j++)printf("
"
2*i+1;
*"
7.读程序,程序实现了什么功能?
{intn=0,posn=0,negn=0,a;
Inputintegers:
20)
{scanf("
a);
if(a==0)break;
if(a>
0)posn++;
elsenegn++;
posn=%d,negn=%d\n"
posn,negn);
8.读程序,写出程序实现的功能
longn=1,an=1,longs=0;
while(s<
2000000)
{
an=an*n;
s=s+an;
n++;
printf(“%ld%ld”,s,n);
9.读程序,写出程序实现的功能。
longa=1,b=1;
inti;
=20;
i++)
%16ld%16ld"
a,b);
if(i%2==0)printf("
a=b+a;
b=a+b;
改错题目:
1.
打印一个如下的九九乘法表的一部分:
1*1=1
2*1=22*2=4
3*1=33*2=63*3=9
4*1=44*2=84*3=124*4=16
程序中有两处错误,错误都在提示行:
/***********found***********/的下面一行,请考生注意。
请改正程序中的错误,使它能得出正确的结果。
注意:
程序中的其它地方请考生不要随意改动,不得增行
或删行,也不得更改程序的结构!
#include<
conio.h>
stdlib.h>
math.h>
{inti,j,k;
clrscr();
=4;
/************found************/
{for(j=1;
j++)
%3d*%3d=%3d"
i,j,i*j);
n"
2.学习优良奖的条件如下:
所考5门课的总成绩在450分(含)以上;
或
者每门课都在88分(含)以上。
输入某学生5门课的考试成绩,输出
是否够学习优良奖的条件。
/***********found***********/的下面一行,请考生注意。
{intscore,sum=0;
inti,n=0;
=5;
score);
sum+=score;
n++;
if(sum>
=450&
n==5)
Thestudentisverygood!
else
Thestudentisnotverygood!
}
3.输出100~200之间既不能被3整除也不能被7整除的整数并统计这些
整数的个数,要求每行输出8个数。
{inti;
intn;
for(i=100;
=200;
if(i%3==0&
i%7==0)
{if(n%8==0)printf("
%6d"
\nNumbersare:
%d\n"
n);
4.打印输出以下图形
*
***
*****
*******
*********
{inti,j;
{printf('
for(j=1;
=10-i;
=2*i+1;
5.
20
求∑n!
(即求:
1!
+2!
+3!
+……+20!
n=1
/*************found**************/
{longints,t;
s=0;
t=1;
for(n=1;
20;
n++)
{t=t*(n+1);
s=s+t;
1!
+2!
+3!
+…+20!
=%e\n"
s);
6.
输入一个百分制成绩,打印出五级记分成绩。
考试成绩在90分或90分以
上为优秀,80~89分为良好,70~79为中等,60~69为及格,低于60分
为不及格。
{intscore,t;
Pleaseenterascore:
while(score<
0||score>
100);
t=score/10;
switch(score)
{case10:
case9:
Excellent!
break;
case8:
Good!
case7:
Middle!
case6:
Pass!
else:
Fail!
填空题目
1.计算正整数num的各位上的数字之积。
例如,若输入:
252,则输出应该是:
20。
若输入:
202,则输出应该是:
0。
程序有两个空
(1)、
(2)需要补充完整。
并将程序调试出
所需的结果。
不要随意改动程序,不得增行或删行,也不得更
改程序的结构!
main()
{longintnum,k;
_____
(1)_______
clrscr();
\Pleaseenteranumber:
);
%ld"
num);
{k*=num%10;
_____
(2)______
}while(num);
\n%ld\n"
k);
2、计算1到100之间的奇数之和及偶数之和。
请填空。
请将程序调试出
{inta,b,c,i;
/**************found************/
___
(1)___;
=100;
i+=2)
{a+=i;
___
(2)___;
c+=b;
sumofevensis%d\n"
a);
sumofoddsis%d\n"
c-101);
3.从键盘上输入两个正整数x,y,求它们的最大公约数。
例如:
如果从键盘上输入24,36,程序的输出应为:
maxis:
12。
请将程序中的
____
(1)____和____
(2)____删除后,在相应的位置填入正确
答案并调试直到得到正确结果为止。
{intx,y,t,i;
Pleaseentertwonumbers:
%d,%d"
x,&
y);
if(x<
y)
{t=x;
x=y;
y=t;
t=x%y;
while(t)
{x=y;
____
(1)____;
%d"
____
(2)____);
编程题目
按下面的公式求s的近似值:
11111
s=1+——+——+——+——+……+————
2*23*34*45*510*10
部分源程序存在文件PROG1.C中,请将运算结果存入变量s中,结果保留
2位小数。
请在/*******begin********/与/********end*********/
之间填入你编写的若干语句,存盘并运行,直到得出正确结果。
如果需要定
义变量,可在前面添加,请勿改动其它位置的任何内容。
main()函数中的最后一行以及main()函数后面的内容,考
生不必阅读,但千万不要对这些内容作任何改动。
#include"
math.h"
stdlib.h"
{doubles;
/***********begin***********/
/************end************/
s=%.2f\n"
2.在考生目录下,要求程序PROG1.C的功能是:
将一个4位的整数m拆开,然后按相反顺序输出,每输出一位数其后留
2个空格。
例如,如果m=1234,则程序的输出结果应为:
m=1234,4321。
部分源程序存在文件PROG1.C中。
请勿
改动其它位置的任何内容。
conio.h"
{intm=1234,a,b,c,d,i;
m=%d,%d%d%d%d\n"
m,a,b,c,d);
3.
判断m是否为素数。
如果m为素数使变量f的值为1,否则使变量f值为0。
()
{intm=123,f=1,i;
if(f)printf("
%disaprime\n"
m);
elseprintf("
%disnotaprime\n"