第五章循环结构程序设计
一、选择题
1.while循环语句中,while后一对圆括号中表达式的值决定了循环体是否进行,因此,进入while循环后,一定有能使此表达式的值变为的操作,否则,循环将会无限制地进行下去。(0级)
A)0 B)1 C)成立D)2
2.在do-while循环中,循环由do开始,用while结束;必须注意的是:在while表达式后面的不能丢,它表示do-while语句的结束。(0级)
A)0 B)1 C);D),
3.for语句中的表达式可以部分或全部省略,但两个不可省略。但当三个表达式均省略后,因缺少条件判断,循环会无限制地执行下去,形成死循环。(0级)A)0 B)1 C);D),
4.程序段如下
int k=-20;
while(k=0) k=k+1;
则以下说法中正确的是。(1级)
A)while循环执行20次B)循环是无限循环
C)循环体语句一次也不执行D)循环体语句执行一次5.程序段如下
int k=1;
while(!k==0) {k=k+1;printf("%d\n",k);}
说法正确的是。(1级)
A)while循环执行2次B)循环是无限循环
C)循环体语句一次也不执行D)循环体语句执行一次6.以下for循环是。(1级)
for(a=0,b=0;(b!=123)&&(a<=4);a++)
A)无限循环B)循环次数不定C)执行4次D)执行5次7.在下列程序中,while循环的循环次数是。(1级)
main( )
{ int i=0;
while(i<10)
{if(i<1) continue;
if(i= =5) break;
i++;
}
......
}
A)1 B)10 C)6 D)死循环、不能确定次数8.程序段如下
int k=0; while(k++<=2) printf("%d\n",k);
则执行结果是。(1级)
A)1 B)2 C)0 D)无结果
2 3 1
3 4 2
9.程序段如下
int k=0;
while(k++<=2); printf("last=%d\n",k);
则执行结果是last= 。(1级)
A)2 B)3 C)4 D)无结果10.执行下面的程序后,a的值为。(1级)
main()
{int a,b;
for(a=1,b=1;a<=100;a++)
{if(b>=20)break;
if(b%3==1)
{b+=3;
continue;
}
b-=5;
}
}
A)7 B)8 C)9 D)10 11.以下程序的输出结果。(1级)
main()
{
int x=3;
do
{printf("%3d",x-=2);
}while(--x);
}
A)1 B)30 3 C)1 -2 D)死循环12.定义如下变量:
int n=10;
则下列循环的输出结果是。(1级)
while(n>7)
{n--;
printf("%d\n",n);
}
A)10 B)9 C)10 D)9
9 8 9 8
8 7 8 7
7 6
13.以下程序的输出结果。(1级)
main()
{int n=0;
while(n++<=1)
printf("%d\t",n);
printf("%d\n",n);
}
A)1 2 3 B)0 1 2 C)1 1 2 D)1 2 2
14.以下程序的输出结果是。(1级)
main()
{int i;
for(i=1;i<=5;i++)
{if(i%2)printf("#");
else continue;
printf("*");
}
printf("$\n");
}
A)*#*#*#$ B)#*#*#*$ C)*#*#$ D)#*#*$ 15.以下程序的输出结果是。(1级)
main()
{int a=0,i;
for(i=;i<5;i++)
{swich(i)
{case 0:
case 3:a+=2;
case 1:
case2:a+=3;
default:a+=5;
}
}
printf("%d\n",a);
}
A)31 B)13 C)10 D)20 16.以下程序的输出结果是。(1级)
#include
main()
{int i=0,a=0;
while(i<20)
{for(;;) {if((i%10)= =0) break;else i--;}
i+=11; a+=i;
}
printf("%d\n",a);
}
A)21 B)32 C)33 D)11 17.当输入为"quert?"时,下面程序的执行结果是。(1级)
#include
main()
{char c;
c=getchar();
while((c=getchar())!='?') putchar(++c);
}
A)Quert B)vfsu C)quert? D)rvfsu? 18.当输入为"quert?"时,下面程序的执行结果是。(1级)
#include
main()
{while(putchar(getchar())!='?');}
A)quert B)Rvfsu C)quert? D)rvfsu?
19.当输入为"quert?"时,下面程序的执行结果是。(2级)
#include
main()
{char c;
c=getchar();
while(c!='?')
{
putchar(c);
c=getchar();
}
}
A)quert B)Rvfsu C)quert? D)rvfsu?
20.在C语言的循环语句for,while,do-while中,用于直接中断最内层循环的语句是。(0级)
A)swich B)continue C)break D)if
21.若i,j已定义为int型,则以下程序段中循环体的总的执行次数是。(1级)
for(i=5;i;i--)
for(j=0;j<4;j++)
{ }
A)20 B)24 C)25 D)30
22.以下程序的功能是:按顺序读入10名学生的4门课程的成绩,计算出每位学生的平均分并输出,程序如下:
main()
{int n,k;
float score,sum,ave;
sum=0.0;
for(n=1;n<=10;n++)
{for(k=1;k<=4;k++)
{scanf("%f",&score);sum+=score};}
ave=sum/4.0;
printf("NO%d:%f\n",n,ave);
}
}
上述程序有一条语句出现在程序的位置不正确。这条语句是。(2级)
A)sum=0.0; B)sum+=score;
C)ave=sum/4.0; D)printf("NO%d:%f\n",n,ave);
23. 有如下程序段, 其执行结果为。(02~03第一学期试题)
for ( n = 10; n > 7; n-- )
printf ( “ %d\n” , n ) ;
A)10 B)9 C)10 D)9
9 8 9 8
8 7 8 7
7 6
24. 循环语句中的for语句,其一般形式如下:
for(表达式1;表达式2;表达式3) 语句
其中表示循环条件的是。(01~02第二学期试题)
A)表达式1 B)表达式2 C)表达式3 D)语句
25.定义如下变量:
int n=10;
则下列循环的输出结果是。(01~02第二学期试题)
while (n>7){ n--;printf(“%d”,n); }
A)10 B)9 C)10 D)9
9 8 9 8
8 7 8 7
7 6
26.下面程序段的运行结果是:。(03试题)
x=y=0; while(x<15) y++, x+=++y;
printf(“%d,%d”, y, x);
A)20, 7 B)6, 12
C)20, 8 D)8, 20
27.以下程序的运行结果是:。(03试题)
main( )
{ int a=2, i ;
for(i=0;i<3;i++) printf(“%4d”,f(a) ) ; }
f( int a)
{ int b=0,c=3;
b++; c++; return(a+b+c); }
A)7 10 13 B)7 7 7
C)7 9 11 D)7 8 9
28.下面程序的运行结果是:。(往届试题)
main( )
{ int y=10;
do { y--; } while(--y) ;
printf(“%d\n”,y--); }
A)-1 B)1 C)8 D)0
29. 下面有关for循环的正确描述是。(04~05第二学期试题)
A)for循环只能用于循环次数已经确定的情况
B)for循环是先执行循环体语句,后判断表达式
C)在for循环中,不能用break语句跳出循环体
D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来30. 以下能正确计算1×2×3×…×10的程序段是。(04~05第二学期试题)
A)do {i=1;s=1; s=s*i; i++; } while(i<=10);
B)do {i=1;s=0; s=s*i; i++; } while(i<=10);
C)i=1;s=1; do {s=s*i; i++; } while(i<=10);
D)i=1;s=0; do {s=s*i; i++; } while(i<=10);
31. 以下程序段。(04~05第二学期试题)
x=-1; do { x=x *x;} while(!x);
A)是死循环B)循环执行二次
C)循环执行一次D)有语法错误
32.下面程序的运行结果是:。(往届试题)
#include
main( )
{ int y=10;
do { y--; } while(--y) ;
printf(“%d\n”,y--); }
A)-1 B)1 C)8 D)0
33.定义如下变量和数组:
int I;
int x[3][3]={1,2,3,4,5,6,7,8,9};
则下面执行语句的结果为:。(往届试题)
for(I=0;I<3;I++)
printf(“%3d”,x[I][2-I]);
A)1 5 9 B)1 4 7
C)3 5 7 D)3 6 9
34.以下程序的运行结果是:。(往届试题)
main( )
{ int n=4;
while(n--)
printf (“%2d”,--n);}
A)2 0 B)3 1
C)3 2 1 D)2 1 0
35.设有以下程序段,则执行该程序后为:。(往届试题)
int x = 0, s = 0 ;
while ( !x != 0 ) s += ++ x ;
printf ( “ %d ”, s ) ;
A)运行程序段后输出0
B)运行程序段后输出1
C)程序段中的控制表达式是非法的
D)程序段执行无限次
36.下面程序的运行结果是:。(往届试题)
#include
main( )
{ int I ;
for ( I = 1; I <=5; I++)
switch ( I%5 )
{ case 0: printf ( “ * ” ); break;
case 1: printf ( “ # ” ); break;
default : printf (“\n”);
case 2: printf ( “ &” ); break; }
}
A)#&&* B)#& C)# D)#&
& &
&* & *
&
*
二、填空题
1.while语句的特点是(1),do-while语句的特点是(2)。(0级)
2.将for(表达式1;表达式2;表达式3)语句改写为while语句是。(0级)3.break语句的功能是。(0级)
4.break语句只能用于(1)语句和(2)语句中。(0级)
5.continue语句的作用是,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。(0级)
6.在循环中,continue语句与break语句的区别是:continue语句只是(1),break 语句是(2)。(0级)
7.循环的嵌套是指。(0级)
8.要使以下程序段输出10个整数,请填入一个整数:
for(i=0;i<= ;printf("%d\n",i+=2));
9.goto语句的用途是和。(0级)
10.while语句的特点是,do_while语句的特点是。(0级)
11.把for(表达式1;表达式2;表达式3);改写为等价的while语句为。(0级)
12.语句标号由标识符表示,由,和组成。第一个字符必须是字母或下划线。(0级)
三、程序填空题
1.以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空。
main()
{float x,amax,amin;
scanf("%f",&x);
amax=x;
amin=x;
while (1)
{if(x>amax) amax=x;
if (2) amin=x; scanf("%f",&x); }
printf("\namax=%f\namin=%f\n",amax,amin); }
2.下面程序可求出1~1000的自然数中所有的完数(因子和等于该数本身的数)请填空。(03试题)
main( )
{ int m, n, s;
for(m=2;m<1000;m++) { ____(1)____ for(n=1;n<=m/2;n++) if(__(2)___) s+=n;
if(__(3)___) printf(“%d\n ”, m); } }
3.以下程序的功能是根据...!
31!21!111++++=e 求e 的近似值,精度要求为610-。请填空:(04~05第二学期试题) main( )
{int i=1; double e,new; e=1.0; new=1.0; while( (1) )
{new/=(double) i; e+=new; (2) ;} printf(“e=%e\n ”,e);
}
四、读程序写结果题
1.下面程序的输出结果是 。(1级) main() {int n=0;
while(n++<=1); printf("%d,",n); printf("%d\n",n); }
2.下面程序的输出结果是 。(1级) main() {int s,i;
for(s=0,i=1;i<3;i++,s+=i); printf("%d\n",s); }
3.下面程序的输出结果是 。(1级) main()
{int i=10,j=0; do
{j=j+i;i--;
while(i>2);
printf("%d\n",j);
}
4.设有以下程序
main()
{int n1,n2;
scanf("%d",&n2);
while(n2!=0)
{n1=n2%10;
n2=n2/10;
printf("%d",n1);
}
}
程序运行后,如果从键盘上输入1298,则输出结果为。(1级)5.下面程序的输出结果是。(1级)
main()
{int s=0,k;
for(k=5;k>=0;k--)
{swich(k)
{case 1:
case 5:s++;break;
case 3:
case 4:break;
case 0:
case 2:s+=2;break;
}
}
printf("s=%d\n",s);
}
6.下面程序运行结果是:。(03试题)
main( )
{ int x, i ;
for( i=1,x=1; i<=50; i++ )
{ if(x>=10) break;
if(x%2==1) { x+=5;continue;}
x - = 3;}
printf(“%d\n”, i ); }
7.下面程序运行结果是:。(04~05第二学期试题)
#include
main( )
{ int i,j;
for(i=4;i>=1;i--)
{ printf(“*”);
for(j=1;j<=4-i;j++)
printf(“*”);
printf(“\n”); } }
8.下面程序的运行结果是:。(往届试题)
main( )
{ int i;
for(i=1;i<=5;i++)
switch(i%5)
{ case 0: printf(“*”) ; break;
case 1: printf(“#”) ; break;
default: printf(“\n”);
case 2: printf(“&”); }
}
9.下面程序的运行结果是:_________。(往届试题)
# include
main( )
{ int i, j ;
for ( i = 0 ; i<= 3; i++ )
{ for ( j = 0; j<=5 ; j++ )
{ if ( i==0|| j==0|| i==3|| j==5) printf(“*”);
else printf( “” ) ;}
printf(“\n”); }
}
五、编程题
1.编写程序,求两个整数的最大公约数。(1级)
2.把输入的整数(最多不超过5位)按输入顺序的反方向输出,例如,输入数是12345,要求输出结果是54321,编程实现此功能。(1级)
3.中国古代数学家张丘建提出的“百鸡问题”:一只大公鸡值五个钱,一只母鸡值三个钱,三个小鸡值一个钱。现在有100个钱,要买100只鸡,是否可以?若可以,给出一个解,要求三种鸡都有。请写出求解该问题的程序。(1级)
4.求100~200间的全部素数。(1级)
5.整元换零钱问题。把1元兑换成1分,2分,5分的硬币,共有多少种不同换法,请编写求解此问题的程序。(1级)
6.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13,...,编写程序求这个数列的前20项之和。(1级)
7.编写程序,利用公式e=1+1/1!+1/2!+1/3!+....+1/n!求出e的近似值,其中n的值由用户输入(用于控制精确度)。(1级)
8..一个数如果恰好等于它的因子之和(除自身外),则称该数为完全数,例如:6=1+2+3,6就是完全数,请编写一程序,求出1000以内的整数中的所有完全数。其中1000由用户输
入。(2级)
9.编一程序,将2000年到3000年中的所有闰年年份输出并统计出闰年的总年数,要求每10个闰年放在一行输出。(1级)
10.请编写一程序,打印出九九乘法口诀表(例:1*1=1)。(1级) 11.请编写一程序,将所有“水仙花数”打印出来,并打印出其总数。“水仙花数”是一个其各位数的立方和等于该整数的三位数。(04~05第二学期试题)
12.编写一程序,求1-3+5-7+.........-99+101的值。(1级)
13.编写程序,计算1!+2!+3!+.......+n!的值,其中n 的值由用户输入。(1级)
14.求sn=a+aa+aaa+aaaa+......+aa.....a 的值,其中a 是一个数字,例如:2+22+222+2222+22222(此时n=5)。n 和a 的值由键盘输入,请编程实现以上和过程。(1级)
15.编写程序,用迭代法求x=√a 的近似根。求平方根的迭代公式为:X n+1=(X n +a/X n )/2。要求前后两次求出的x 的差的绝对值小于0.00001。(1级)
16.一个求从100米高度自由落下,每次落地后又反弹回原来高度的一半,再落下,求它在第10次落地时共经过多少米?第10次反弹多高?编写程序求解该问题。(1级)
17.若有如下公式:
62π≈ 21
1
+
2
21
+
2
31+。
。。。。。。+ 2
1
n
试根据上述公式编程计算π 的近似值 (精确到10-6)。(03试题)
任务1:控制LED 小灯亮灭 1.流程图如下: 2.程序如下: #include
P1=0xfb; //当P3.6口上的开关按上了,点亮接在P1.2口上的灯。 else if((P3&0x80)==0) //判断P3.7口的开关是否按上了。 P1=0xf7; //当P3.7口上的开关按上了,点亮接在P1.3口上的灯。 else P1=0xff; //当没有按键按下时,P1口上的全部灯都不亮。 } } 3.仿真结果如下: 4.仿真结果分析: 从仿真图以及程序可以看出,当P3.4口上的开关按下时,不管其它三个开关有没有按下,只有受P3.4口开关控制的那个灯(p1.0口上的灯)才亮,以此类推,当只有P3.7口上的开关按下时,P1.3口上的灯才亮,而其它灯不亮,因为控制其它灯的按键没有按下,接在其它灯的IO口处于高电平状态。
《C语言循环结构》教学设计方案 一、教学内容分析 循环结构是面向过程编程中三种结构中最重要的一种结构,学好它是学好这门课程的关键。循环结构的实质是重复执行一系列语句,这种重复性是在循环条件的有效控制之下完成的。程序的关键在于如何控制循环的条件,在恰当的时机执行循环或退出循环。 二、学习者分析 循环结构是一种比较复杂的结构,在C语言中,循环结构主要包括for、while和do-while 三种语句,其中for语句的应用更为普遍一些。循环语句的用法对于有程序设计经验的学生来说轻而易举,但是对于那些没有经验的初学者来说,难度却不小。在一堂课的设计过程中,引例的作用至关重要。一个好的引例能把抽象问题简单化、具体化,有利于学生理解掌握。在学习循环结构时可先利用现实生活中的一些具体实例来说明什么是循环以及为什么要研究循环让一名初学者尽快摆脱日常的思维定式,更加透彻地理解和掌握程序设计中的基本思想,领会程序设计的精髓,总结出程序设计中每一种程序设计结构的本质及适合解决的问题,是高级语言程序设计这门课程在讲授过程中,应该时刻注意的问题。 三、教学目标 1.知识与能力 掌握循环构造的基本特点;区分多种不同类型循环结构的运行过程;掌握循环结构的格式及应用方法。 2.过程与方法 首先学会区分多种不同类型的循环结构,而后学会定义及应用方法,利用上机熟练应用技巧。 3.情感态度与价值观 我们必须抱有自己想学习的心态,多去问老师一些问题,那么你的漏洞将会越来越少,程序量和代码量才会越来越多。
四、重点难点及处理 1.循环语句的的分类和定义 For循环、while循环和do-while循环 特点:在一个程序中可以通过变换语句来使用不同的循环语句,而不改变程序 的功能。 2.循环语句的引用 例如:要从1累加到100 使用For循环:for(sum,=0,i=1;i<=100;i++) sum=sum+i 使用while循环:while(i<=100) sum=sum+i 使用do-while循环:do {sum=sum+i;} while(i<=100) 五、教学准备 1. PPT教学课件 2. 实验操作:Visual C++6.0软件平台,PC电脑,教学机房,网络课堂。 六、教学思路(教学策略等) 在一堂课的设计过程中,引例的作用至关重要。一个好的引例能把抽象问题简单化、具体化,有利于学生理解掌握。在学习循环结构时可先利用现实生活中的一些具体实例来说明什么是循环以及为什么要研究循环。现在我们可以提出一个问题:在计算机程序设计的世界里是否也有类似的这种相同操作重复出现的问题呢?利用最简单累加求和的例子。 例:求1+2+3+4+5+…+100的和。 下面就可以引出本节课的重点,通过分别使用For循环、while循环和do-while循环来完成本程序,我们在整个过程中都做着重复的、相同的事情,也就是前面所说的循环,在试着写出比较简单的程序时,可以试着选择素数或者奇数累加来增加难度,还可以使得让学生接受和探究双重循环。 七、教学过程 教学引入 掌握掌握循环结构的基本特点:for语句、while语句和do-while语句 如何计算1+2+3+4+…+100
第五章循环结构程序设计 一、选择题 1.while循环语句中,while后一对圆括号中表达式的值决定了循环体是否进行,因此,进入while循环后,一定有能使此表达式的值变为的操作,否则,循环将会无限制地进行下去。(0级) A)0 B)1 C)成立D)2 2.在do-while循环中,循环由do开始,用while结束;必须注意的是:在while表达式后面的不能丢,它表示do-while语句的结束。(0级) A)0 B)1 C);D), 3.for语句中的表达式可以部分或全部省略,但两个不可省略。但当三个表达式均省略后,因缺少条件判断,循环会无限制地执行下去,形成死循环。(0级)A)0 B)1 C);D), 4.程序段如下 int k=-20; while(k=0) k=k+1; 则以下说法中正确的是。(1级) A)while循环执行20次B)循环是无限循环 C)循环体语句一次也不执行D)循环体语句执行一次5.程序段如下 int k=1; while(!k==0) {k=k+1;printf("%d\n",k);} 说法正确的是。(1级) A)while循环执行2次B)循环是无限循环 C)循环体语句一次也不执行D)循环体语句执行一次6.以下for循环是。(1级) for(a=0,b=0;(b!=123)&&(a<=4);a++) A)无限循环B)循环次数不定C)执行4次D)执行5次7.在下列程序中,while循环的循环次数是。(1级) main( ) { int i=0; while(i<10) {if(i<1) continue; if(i= =5) break; i++; } ...... } A)1 B)10 C)6 D)死循环、不能确定次数8.程序段如下 int k=0; while(k++<=2) printf("%d\n",k);
三种基本的循环语句: 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语言问题求解] 作者:苏丽媛 修订:李昕,高绍姝
1While循环 当要进行的操作相同,数据不同,但是这些数据可以形成某种序列时,考虑采用循环处理。 1.1while循环架构 while(条件) { 语句; } 1.2循环与选择结构的区别 循环是多次的(条件满足,进入循环,循环结束后返回,再次判断条件是否满足,不断循环,直到条件不满足,执行后继语句),选择结构仅仅是一次的(判断条件满足后执行,执行后结束,并开始执行后继语句) 1.3循环三要素 循环控制变量的初始化(初始化相当于设置了一个开始的值) 循环条件(条件相当于设置了一个结尾) 循环控制变量的改变(一定使之从开始到结尾的方向进行) 1.4例:
循环体; } for循环的小括号中,有且仅有两个分号,分割了循环的三要素。 for()后不能接分号,分号代表空语句,如果接了分号,意味着循环体不再属于循环,整个循环只循环了一条空语句。 循环的条件判断比循环控制变量的改变多一次(多的一次是条件不成立的第一个数)。 建议:知道循环次数采用for循环,反之,采用while循环。 循环中定义的控制变量属于局部变量,出了循环便不可用了,如果出了循环仍想使用该变量,就必须重新定义。 2.2例:
C语言循环结构作业 一、实验目的: 1、熟悉掌握三种循环结构,while语句、do-while语句和for语句。 2、掌握在程序设计中用循环的方法实现一些常用算法。 3、进一步学习调试程序。 二、实验内容:(请写出程序代码及调试结果) 1.求Sn=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/(2n))其中n的值由键盘获得。 2.求S=aa….a -… -aaa - aa - a的值,其中a=3,n=6。 n个a 例如:22222-2222-222-22-2(例如:a=2,n=5) 3.根据以下公式求∏的值(要求满足精度0.0005,即某项小于0.0005 时停止迭代)∏/2=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+(1*2*3*4)/(3*5*7*9)+…+(1*2*3*4*…*n)/ (3*5*7*9*…*(2n+1))程序运行后,如果输入精度0.0005,则程序输出为3.140578 4.输出1至100之间每位数的乘积大于每位数的和的数 5.一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,因此6是“完数”。编程序找出1000之内的所有完数及这些完数之和,并按下面格式输出因子:6的因子是1,2,3 …… 完数和是…。 6. 有一数列:
2/1,3/2,5/3,8/5,13/8,21/13,…求出这个数列的前20项之和。 7. 大于m且紧靠m的k个素数打印出来。 例如,若输入m=17, k=5 ,则应输出“19,23,29,31,37”。 8、求1!+2!+3!+4!+ (10) 9、猴子吃桃子问题。猴子第1天摘下若干个桃子,当即吃了一半, 还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。 到第10天早上想再吃时,就只剩一个桃子了。求第1天共摘多少个桃子。 10、输出以下图案: * *** ***** ******* ***** *** *
实验三 循环结构程序设计 一、实验目的 1.熟练掌握三种循环语句的应用。 2. 熟练掌握循环结构的嵌套。 3. 掌握break 和continue 语句的使用。 4. 练习调试与修改程序。 5. 掌握一组数据求和、求平均值、求最大值最小值的计算方法。 6.掌握循环次数已知、未知的处理方法(精度的控制、结束标志的使用等) 7.掌握简单图形的打印输出处理。 二、实验内容 1.[目的]掌握循环次数已知的循环控制处理方法。 [题目内容]编写一个程序,其功能为:计算并输出1~10的平方值。 [输入]无 [输出]如下形式 1 squared is 1 2 squared is 4 3 squared is 9 4 squared is 16 5 squared is 25 6 squared is 36 7 squared is 49 8 squared is 64 9 squared is 81 10 squared is 100 [提示]使用三种循环语句均可。 #include "stdio.h" void main( ) { int i; for(i=1;i<=10;i++) printf("\n %d squared is %d\n",i,i*i); printf("\n"); } 2.[目的]掌握循环次数已知的循环控制处理方法。 [题目内容]编写一个程序,其功能为:计算并输出 ∑==100 1 2n n x 。 [输入]键盘输入x 值 [输出]计算结果 [提示]使用三种循环语句均可。 #include "stdio.h" void main() {
int n,x,sum=0; printf("请输入x:"); scanf("%d",&x); for(n=1;n<=100;n++) sum=sum+x*x; printf("sum=%d\n",sum); } 如果程序功能为:计算并输出 n x 1 2 ,要求从键盘输入n、x值,程序应如何修改? 3.[目的]掌握循环次数已知的循环控制处理方法。 [题目内容]编写一个程序,其功能为:求1-100之间的奇数之和。 [输入]无 [输出]计算结果 [提示]使用三种循环语句均可。 #include "stdio.h" void main() { int i,sum=0; for(i=1;i<=100;i=i+2) sum=sum+i; printf("sum=%d\n",sum); } 4.[目的]掌握循环次数已知的循环控制处理方法。 [题目内容]编写一个程序,其功能为:输出100以内能被7整除的数。 [输入]无 [输出]判断结果 [提示]使用三种循环语句均可。 #include "stdio.h" void main() { int i,sum=0; for(i=1;i<=100;i++) if(i%7==0) printf("%d\t",i); } 5.[目的]掌握循环次数已知的循环控制处理方法。 [题目内容]编写一个程序,其功能为:计算并输出一年12个月的总降雨量和平均降雨量。 [输入]12个月的降雨量 [输出]总降雨量和平均降雨量 [提示]使用for循环语句,和值、平均值变量采用双精度类型,和值初值设为零。#include "stdio.h" void main() {