第六章循环结构程序设计Word文档下载推荐.docx
- 文档编号:22771782
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:35
- 大小:32.06KB
第六章循环结构程序设计Word文档下载推荐.docx
《第六章循环结构程序设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《第六章循环结构程序设计Word文档下载推荐.docx(35页珍藏版)》请在冰豆网上搜索。
=1C)E!
=0D)E==1
7、下面程序段的运行结果是( )。
a=1。
b=2。
c=2。
while(a<
b<
c){t=a。
a=b。
b=t。
c--。
}
printf(“%d,%d,%d”,a,b,c)。
A)1,2,0B)2,1,0C)1,2,1D)2,1,1
8、下面程序的运行结果是( )。
#include<
stdio.h>
main()
{
intnum=0。
while(num<
=2)
{
num++。
printf(“%d\n”,num)。
}
A)1B)1C)1D)1
222
33
9、以下能正确计算1×
2×
3×
…×
10的程序段是( )。
A)do{i=1。
s=1。
B)do{i=1。
s=0。
s=s*i。
s=s*i。
i++。
i++。
}while(i<
=10)。
C)i=1。
D)i=1。
do{s=s*i。
do{s=s*i。
10、下面程序的运行结果是( )。
inty=10。
do{y--。
}while(--y)。
printf(“%d\n”,y--)。
A)-1B)1C)8D)0
11、已知inti=1,j=0;
执行下面语句后j的值是()。
while(i)
switch(i)
{case1:
i+=1;
j++;
break;
case2:
i+=2;
case3:
i+=3;
default:
i--;
}
A)1B)2C)3D)死循环
12、若运行以下程序时,从键盘输入2473<
回车>
,则下面程序的运行结果是( )。
intc。
while((c=getchar())!
=‘\n’)
switch(c-‘2’)
{
case0:
case1:
putchar(c+4)。
case2:
break。
case3:
putchar(c+3)。
default:
putchar(c+2)。
}
printf(“\n”)。
A)668977B)668966C)66778777D)6688766
二、填空题
1、执行下面程序段后,k值是。
k=1。
n=263。
do{k*=n%10。
n/=10。
}while(n)。
2、下面程序的运行结果是。
inta,s,n,count。
a=2。
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#<
CR>
(<
代表回车),则下面程序的运行结果是。
intv1=0,v2=0。
charch。
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、从键盘输入的字符中统计数字字符的个数,用换行符结束循环。
能力提高(B)
一、选择填空题
1、下面程序的功能是将从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者,请选择填空。
intm=0,n=0。
charc。
while(()!
if(c>
=‘A’&
&
c<
=‘Z’)m++。
=‘a’&
=‘z’)n++。
printf(“%d\n”,m<
n?
)。
(1)A)c=getchar()B)getchar()C)scanf(“%c”,c)
(2)A)n:
mB)m:
nC)m:
mD)n:
n
2、下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环,请选择填空。
inta,max=0。
scanf(“%d”,&
a)。
while()
if(max<
a)max=a。
scanf(“%d”,&
printf(“%d”,max)。
A)a==0B)aC)!
a==1D)!
a
3、下面程序的功能是计算正整数2345的各位数字平方和,请选择填空。
intn,sum=0。
n=2345。
do{
sum=sum+。
n=。
}while(n)。
printf(“sum=%d”,sum)。
(1)A)n%10B)(n%10)*(n%10)C)n/10D)(n/10)*(n/10)
(2)A)n/1000B)n/100C)n/10D)n%10
二、读懂程序,并按照程序的功能将程序补充完整
1、下面程序的功能是用“辗转想除法”求两个正整数的最大公约数。
请填空。
intr,m,n。
scanf(“%d%d”,&
m,&
n)。
if(m<
r=m%n。
while(r){m=n。
n=r。
r=。
printf(“%d\n”,n)。
2、下面程序的功能是用do-while语句求1至1000之间满足“用3除余2;
用5除余3;
用7除余2”的数,且一行只打印五个数。
inti=1,j=0。
do{
if()
printf(“%4d”,i)。
j=j+1。
if()printf(“\n”)。
i=i+1。
}while(i<
1000)。
3、等差数列的第一项a=2,公差d=3,下面程序的功能是在前n项和中,输出能被4整除的所有的和。
inta,d,sum。
d=3。
sum=0。
sum+=a。
;
if()printf(“%d\n”,sum)。
}while(sum<
200)。
1、从键盘输入任意的字符,按下列规则进行分类计数。
第一类'
0'
,'
1'
2'
3'
4'
5'
6'
7'
8'
9'
第二类'
+'
-'
*'
/'
%'
='
第三类其它字符
当输入字符'
\'
时先计数,然后停止接收输入,打印计数的结果。
2、求解爱因斯坦数学题。
有一条长阶梯,若每步跨2阶,则最后剩余1阶,若每步跨3阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶,若每步跨7阶,最后才正好一阶不剩。
请问,这条阶梯共有多少阶?
分析:
据题意,阶梯数满足下面一组同余式:
xmod2==1
xmod3==2
xmod5==4
xmod6==5
xmod7==0
3、从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。
第2讲
1、for语句:
for循环的一般形式:
for(表达式1。
表达式2。
表达式3)
{语句}
(1)for语句中三个表达式,对应循环中的三要素;
表达式1-----循环变量的初值;
表达式2------循环的条件;
表达式3-------循环趋于结束语句;
(2)for语句中的三个表达式,可以变换位置,但功能不变;
如:
表达式1。
for(。
for(表达式1。
)
{表达式3;
语句}
for(表达式1。
。
{if!
(表达式2)break。
表达式1。
2、循环的嵌套
(1)三种循环可以互相嵌套;
3、break和continue
(1)break语句作用:
强行终止循环,转到循环体下面语句去执行;
(2)continue语句作用:
结束本次循环,再去判断条件,根据条件决定循环是否继续执行;
二者区别:
continue只是结束本次循环,而不是终止整个循环的执行;
break则是结束整个循环过程,不再判断执行循环的条件是否成立;
另:
continue只能用于循环体中;
而break即可用于循环体中,还可用于switch语句中;
一、一、选择题
1、下面有关for循环的正确描述是 ( )。
A)A)for循环只能用于循环次数已经确定的情况
B)B)for循环是先执行循环体语句,后判断表达式
C)C)在for循环中,不能用break语句跳出循环体
D)D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
2、对for(表达式1。
。
表达式3)可理解为( )。
A)A)for(表达式1。
0。
表达式3)
B)B)for(表达式1。
1。
表达式3)
C)for(表达式1。
表达式1。
D)for(表达式1。
表达式3。
3、下列说法中正确的是( )。
A)break用在switch语句中,而continue用在循环语句中。
B)break用在循环语句中,而continue用在switch语句中。
C)break能结束循环,而continue只能结束本次循环。
D)continue能结束循环,而break只能结束本次循环。
4、以下正确的描述是( )。
A)A)continue语句的作用是结束整个循环的执行
B)B)只能在循环体内和switch语句体内使用break语句
C)C)在循环体内使用break语句或continue语句的作用相同
D)D)从多层循环嵌套中退出时,只能使用goto语句
5、若i为整型变量,则以下循环执行次数是( )。
for(i=2。
i==0。
)printf(“%d”,i--)。
A)无限次B)0次C)1次D)2次
6、以下for循环的执行次数是( )。
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)B)for(。
x++=i)。
C)C)while
(1){x++。
D)D)for(i=10。
i--)sum+=i。
8、执行语句for(i=1。
i++<
4。
后变量i的值是( )。
A)3B)4C)5D)不定
9、下面程序段( )。
for(t=1。
t<
=100。
t++)
x)。
if(x<
0)continue。
printf(“%3d”,t)。
A)当x<
0时整个循环结束B)x>
=0时什么也不输出
C)printf函数永远也不执行D)最多允许输出100个非负整数
10、下面程序段( )。
x=3。
do{
y=x--。
if(!
y){printf(“x”)。
continue。
printf(“#”)。
}while(1<
=x<
=2)。
A)将输出##B)将输出##*
C)是死循环D)含有不合法的控制表达式
二、写出下列程序的运行结果
1、#include<
inti。
for(i=1。
i<
=5。
i++)
if(i%2)printf(“*”)。
elsecontinue。
printf(“$\n”)。
2、#include<
stdio.h>
inti,j。
for(i=4。
i>
=1。
i--)
for(j=1。
j<
=i。
j++)putchar(‘#’)。
=4-i。
j++)putchar(‘*’)。
putchar(‘\n’)。
3、#include<
inti,k=0。
k++。
while(k<
i*i)
k++。
if(k%3==0)gotoloop。
loop:
printf(“%d,%d”,i,k)。
1、求1-3+5-7+……-99+101的值。
一、写出下列程序的运行结果
inti,j,x=0。
for(i=0。
2。
x++。
for(j=0。
=3。
j++)
if(j%2)continue。
x++。
printf(“x=%d\n”,x)。
inti,j,k=19。
while(i=k-1)
k-=3。
if(k%5==0){i++。
elseif(k<
5)break。
i++。
printf(“i=%d,k=%d\n”,i,k)。
二、根据程序的功能将程序补充完整
下面程序的功能是求1至1000之间满足“用3除余2;
用7除余2”的数,且一行只打印5个数。
#include<
inti,j=0。
for()
if(i%3==2&
i%5==3&
i%7==2)
{printf(“%4d”,i)。
j=j+1。
if()printf(“\n”)。
1、有一分数序列2/1,3/2,5/3,8/5,13/8,21/13,…求出这个数列的前20项之和
2、从键盘输入的10个整数中,找出第一个能被7整除的数。
若找到,打印此数后退出循环;
若未找到,打印“notexist”。
第3讲
总复习,增强用循环解决实际问题的能力;
一、一、编程:
1、每个苹果0.8元,第一天买2个苹果,第二天开始,每天买前一天的2倍,直至购买的苹果个数达到不超过100的最大值。
编写程序求每天平均花多少钱?
1、2、编写程序,输出用一元人民币兑换成1分、2分和5分硬币的不同兑换方法。
3、输入n值,输出如图所示高为n的等腰三角形。
*
***
*****
*******
*********
***********
1、编写程序,从键盘输入6名学生的5门成绩,分别统计出每个学生的平均成绩。
2、猴子吃桃问题。
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个.第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上再想吃时,只剩下一个桃子了.求第一天一共摘了多少桃子.
链接二级考试
1、以下程序的输出结果是()。
A)10192B)9876C)10990D)101091
main()
{intx=10,y=10,I;
for(i=0;
8;
y=++i)
printf("
%d,%d"
,x--,y);
2、以下程序的输出结果是()。
A)20B)31C)321D)210
{intn=4;
while(n--)printf("
%d"
,--n);
3、以下程序的输出结果是()。
A)#*#*#B)#####C)*****D)*#*#*
{inti;
for(i=1;
6;
{if(i%2){printf("
#"
);
continue;
*"
\n"
4、以下程序的输出结果是()。
A)编译不通过,无输出B)aceg
C)acegiD)abcdefghi
for(i='
A'
'
I'
i++,i++)printf("
%c"
,i+32);
\n"
5、以下循环体的执行次数是()。
A)3B)2C)1D)0
main()
{inti,j。
for(i=0,j=1。
i<
=j+1。
i+=2,j--)printf("
%d\n"
i)。
6、以下叙述正确的是()。
A)do-while语句构成的循环不能用其它语句构成的循环来代替。
B)do-while语句构成的循环只能用break语句退出。
C)用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D)用do-while语句构成的循环,在while后的表达式为零时结束循环。
7、以下程序段的执行结果是()。
A)a=12y=12B)a=12y=12
a=14y=16a=16y=28
a=16y=20
a=18y=24
C)a=12y=12D)a=12y=12
a=14y=26
a=14y=44
inta,y。
a=10。
y=0。
do
{a+=2。
y+=a。
a=%dy=%d\n"
a,y)。
if(y>
20)break。
}while(a=14)。
8、有如下程序
main0
{inti,sum。
for(i=1。
sum++)sum+=i。
printf(“%d\n”,sum)。
该程序的执行结果是()。
A)6B)3C)不确定D)0
9、有如下程序
{intx=23。
{printf(“%d”,x--)。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第六 循环 结构 程序设计