A. c==getchar()
B.getchar()
C.c=getchar()
D.scanf(“%c”,c)
A. n:m
B.m:n
C.m:m
D.n:n
37、下面程序的功能是将小写字母变成对应大写字母后的第二个字母。其中y变成A,Z变
成B。填空
#include
main()
{char c;
while((c=getchar( ))!=’\n’)
{if(c>=’a’&&c<=’z’)
{_______;
if(c>=’Z’&&c<=’Z’+2)
___________;}
printf(“%c”,c);}
A.c+=2
B.c-=32
C.c=c+32+2
D.c-=30
A.c=’B’
B.c=’A’
C.c-=26
D.c=c+26
38、下面程序的运行结果是()
main( )
{int num=0;
while(num<=2)
{num++; printf(“%d\n”,num);}
A.1
B.12
C.123
D.1234
39、C语言中while和do-while循环的主要区别是()
A.do-while的循环体至少无条件执行一次
B.while的循环控制条件比do–while的循环控制条件严格
C.do-while允许从外部转到循环体内
D.do-while的循环体不能是复合语句
40、以下描述中正确的是()
A.由于do -while循环中循环语句中只能是一条可执行语句,所以循环体内不能使用复合语句。
B.do-while循环由do开始,且while结束,在while(表达式)后面不能写分号。
C.在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作。
D.do-while循环中,根据情况可以省略while
41、若有以下后句
int x=3;
do{print("%d\n",x- =2);} while(!(--x));则上面程序段()
A.输入的是1
B.输出的是1和-2
C.输出的是3和0
D.死循环
42、下面程序的运行结果是()
main()
{int y=10;
do{y--;} while(--y);
printf("%d\n",y--);}
A .-1 B.1 C.8 D.0
43、.下面有关for循环的正确描述是()
A.for循环只能有于循环次数已经确定的情况
B.for 循环是先执行循环体语句,后判断表达式
C.在for循环中,不能用break语句跳出循环体
D.for循环的循环体语句中,可以包含多条语句,但必须花括号括起来
44、对for(表达式1;; 表达式3)可理解为()
A.for(表达式1;0;表达式3)
B.for(表达式1;1;表达式3)
C.for(表达式1;表达式1;表达式3)
D.for(表达式1;表达式3;表达式3)
45、以下程序段的运行结果是()
for (y=1;y<10;) y=((x=3*y,x+1),x-1);
printf(“x=%d,y=%d”,x,y);
A. x=27,y=27
B.x=12,y=13
C.x=15,y=14
D.x=y=27
46、下面程序的功能是计算1到50中是7的倍数的数值之和,请选择填空。
Main()
{int I,sum=0;
for(I=1;I<=50;I++)
if(______)sun+=I;
printf(“%d”,sum);}
A.(int)(i/7)==i/7 B.(int)i/7==i/7 C.i%7=0 D.i%7==0
47、下面程序段()
for(t=1;t<=100;t++)
{scanf(“%d”,&x);
if(x<0) continue;
ptintf(“%3d”,t);}
A. 当x<0时整个循环结束
B. x>=0时什麽也不输出
C. printf函数永也不执行
D. 最多允许输出100个非负整数
48、下面程序的运行结果是()
main()
{int I,b,k=0;
for(I=1;I<=5;I++)
{b=I%2;
while(b-->=0) k++;}
printf(“%d,%d”,k,b);}
A.3,-1
B.8-1
C.3,0
D.8,-2
49、下面程序段()
x=3;
do{y=x--;
if(!y) {printf(“x”); continue;}
printf(“#”);}
while(1<=x<=2);
A.将输出##
B.将输出##*
C.是死循环
D.含有不合法的控制表达式
50、以下描述正确的是()
A. goto语句只能用于退出多层循环 B. switch语句中不能出现continue语句C.只能用continue语句来终止本次循环 D.在循环中break语句不能独立出现
51、下面程序的运行结果是()
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;}
ptintf(“%d\n”,a);}
A.7
B.8
C.9
D.10
52、下面程序的运行结果是()
main()
{int I,j,x=0;
for(I=0;I<2;I++)
{x++;
for(j=0;j<=3;j++)
{if(j%2)continue;
x++;}}
ptintf(“x=%d\n”,x);}
A.x=4
B.x=8
C.x=6
D.x=12
53、下面程序的运行结果是()
main()
{int I;
for(I=1;I<=5;I++)
{if(I%2) printf(“*”);
else continue;
printf(“#”);}
printf(“$\n”);}
A.*#*#*#$
B.#*#*#*$
C.*#*#$
D.#*#*$
54、下面程序的运行结果是()
main()
{int I,j,a=0;
for(I=0;I<2;I++)
{for(j=0;j<4;j++)
{if(j%2) break;
a++;}
a++;}
printf(“%d\n”,a);}
A.4
B.5
C.6
D.7
55、下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。请填空:
int n=0,c; c=getchar();
while( )
{if( ) n++; c=getchar();}
56、当运行以下程序时,从键盘输入right?,则下
面程序的运行结果是:#include
main( )
{char c;
while((c=getchar()!=’?’); putchar(++c);)
57、下面程序的运行结果是
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”,d);}
58、执行以下程序段以后,K 值是:________________
K=1;n=263;
Do{k*=n%10; n/=10;}while(n);
59、下面程序段中循环体的执行次数是______________
a=10; b=0;
do{b+=2;a-=2+b;}while(a>0);
60、当运行以下程序进,从键盘输入-1 0,则下面程序的运行结果是:______________________
main()
{int a,b,m,n; m=n=1;
scanf(“%d%d”,&a,&b);
do{if(a>0){m=2*n;b++;}
else {n=m+n;a+=2;b++;}
}while(a==b);
printf(“m=%dn=%d”,m,n);}
61、鸡兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,请填空。 For(x=1;x<=29;x++)
{y=30-x;
if(______________) printf(“%d,%d \n”,x,y);}
62、当运行以下程序进,从键盘输入-1 0,则下面程序的运行结果是:______________________ main() {int a,b,m,n; m=n=1;
scanf(“%d%d”,&a,&b);
do{if(a>0){m=2*n;b++;}
else {n=m+n;a+=2;b++;}
}while(a==b);
printf(“m=%dn=%d”,m,n);}
63、鸡兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,请填空。 For(x=1;x<=29;x++)
{y=30-x;
if(______________) printf(“%d,%d \n”,x,y);}
64、若for 循环体用以下形式表示:
for(表达式1;表达式2;表达式3)循环体语句
m=4
n=2
# # 则执行语句for(I=0;I<3;I++) printf(“*”);时,表达式1
执行(______________________)次,表达式3执行(______________________)次。
65、下面程序的功能是计算1-3+5-7+…-99+
100的值,请填空。
Main()
{int I,t=1,s=0;
for(I=1;I<=101;I+=2) {___________;s=s+t;__________;}
printf(“%d \n”,s);}
66、下面程序的运行结果是:
main()
{int I,t,sum=0;
for(t=I=1;I<=10;)
{sum+=t; ++I;
if(I%3==0)t=-I;
else t=I}
printf(“sum=%d”,sum);}
67、下面程序的运行结果是:_________________
main()
{int I;
for(I=1;I<=5;I++)
switch(I%2)
{case0:I++;printf(“#”);break;
case 1:I+=2;printf(“#”)
default:printf(“\n”);}}
68、下面程序的运行结果是:
main()
{int I=1;
while(I<=15)
if(++I%3!=2) continue;
else printf(“%d”,I ) ;
printf(“n \”);}
69、下面程序的输出结果是:
main()
{int I,j,k=19;
while(I=k-1)
{k-=3;
if(k%5==0) {I++;continue;}
else if(k<5) break;
I++;}
Printf(“I=%d,k=%d \n”,I,k);}
70、
下面程序的运行结果是:
main()
{int a,y;
a=10;y=0;
do{a+=2;y+=a;
if(y>50)break;
}while(a=14);
printf(“a=%d y=%d”,a,y);}
读程题:
1.以下程序的输出结果是 357 。
main( )
{ int i,x[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0; i<3; i++) printf("%d ",x[i][2-i]); }
2.以下程序的输出结果是 0 。
main()
{int n[2],i,j;
for(i=0;i<2;i++)n[i]=0;
for(i=0;i<2;i++)
for(j=0;j<2;j++)n[j]=n「i」+1;
printf(”%d\n”,n[1]);}
3.以下程序的输出结果是 3 5 7 。
main()
{ int i, a[6]={2,3,4,5,6,7};
for(i=1; i<6; i+=2)
printf("%d ", a[i]);
}
4.以下程序的输出结果是 7 8 0 0
4 5 6
2 0 。
main()
{ int i, j, a[3][4]={{0,1,2},{3,4,5,6},{7,8}}; for(i=0;i<3;i++)
{ for(j=i;j<4;j++)
printf("%5d", a[2-i][j]);
printf("\n"); }
}
5、以下程序的输出结果是 3 。
main()
{ char s[ ]="012xy\08s34f4w2";
int i,n=0;
for(i=0;s[i]!=0;i++)
if(s[i]>='0'&&s[i]<='9') n++;
printf("%d\n",n); }
)
6.写出下面程序运行的结果。————20 70————
main ( )
{ int x,i ;
for (i=1 ; i<=100 ; i++) {
x=i;
if (++x%2==0)
if (++x%3==0)
if(++x%7==0)
printf(“%d ”,x) ; }}
7.写出下面程序运行的结果。 -------3 -1-----
main ( )
{ int i,b,k=0 ;
for (i=1; i<=5 ; i++) { b=i%2; while (b--) k++ ; }
printf(“%d,%d”,k,b);}
8.写出下面程序运行的结果。 ----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;
}
printf(“%d\n”,a);}
9.写出下面程序运行的结果。 _________36_________
main ( )
{ int k=1,n=263 ;
do { k*= n%10 ; n/=10 ; } while (n) ;
printf(“%d\n”,k);}
10.写出下面程序运行的结果。 ---- 31-1----
main ( )
{ int i=5 ;
do {
switch (i%2) {
case 4 : i-- ; break ;
case 6 : i-- ; continue ;
}
i-- ; i-- ;
printf(“%d”,i);
}while (i>0) ;
}
11.写出下面程序运行的结果。------3,1,-1,3,1,-1,----- main ( )
{ int i,j;
for (i=0;i<3;i++,i++) {
for (j=4 ; j>=0; j--) {
if ((j+i)%2) {
j-- ;
printf(“%d,”,j);
continue ;
}
--i ; j-- ;
printf(“%d,”,j) ; }}}
12.写出下面程序运行的结果。 ------a=16 y=60------ main ( )
{ int a=10,y=0 ;
do {
a+=2 ; y+=a ;
if (y>50) break ;
} while (a=14) ;
printf(“a=%d y=%d\n”,a,y) ;
}
13.写出下面程序运行的结果。 -------i=6,k=4------ main ( )
{ int i,j,k=19;
while (i=k-1) {
k-=3 ;
if (k%5==0) { i++ ; continue ; }
else if (k<5) break ;
i++;
}
printf(“i=%d,k=%d\n”,i,k);
}
14.写出下面程序运行的结果。 --------1,-2------ main ( )
{ int y=2,a=1;
while (y--!=-1)
do {
a*=y ;
a++ ;
} while (y--) ;
printf(“%d,%d\n”,a,y);
}
15.写出下面程序运行的结果。 -----2,3------
main ( )
{ int i,k=0;
for (i=1; ; i++) {
k++ ;
while (k
k++ ;
if (k%3==0) goto loop ;
}
}
loop:
printf(“%d,%d\n”,i,k);
}
编程题:
1.输入两个正整数m和n,求其最大公约数和最小公倍数。
2.输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。
3.求(即求1!+2!+3!+…+19!+20!)。
4.打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方之和等于该数本身。
5.编写程序,求s=1+2+3+……+n,直到累加和大于或等于5000为止,输出s及n
的值。
6.编写程序输出如下图形。
*
**
***
****
*****
(1)#include "stdio.h"
main()
{ int a,b,num1,num2,temp;
printf("please input two numbers:\n");
scanf("%d,%d",&num1,&num2);
if(num1{ temp=num1;
num1=num2;
num2=temp;
}
a=num1;
b=num2;
while(b!=0)/*利用辗除法,直到b为0为止*/
{
temp=a%b;
a=b;
b=temp; }
printf("gongyueshu:%d\n",a);
printf("gongbeishu:%d\n",num1*num2/a);
}
(2)
#include
#include
#include
using namespace std;
void main()
{
char c;
int letters=0,space=0,digit=0,others=0;
cout<<"please input some characters"<while((c=getchar())!='\n')
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
letters++;
else if(c==' ')
space++;
else if(c>='0'&&c<='9')
digit++;
else
others++;
}
cout<<"字母"<(2)#include "stdio.h"
main()
{char c;
int letters=0,space=0,digit=0,others=0;
printf("please input some characters\n");
while((c=getchar())!='\n')
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
letters++;
else if(c==' ')
space++;
else if(c>='0'&&c<='9')
digit++;
else
others++;
}
printf("all in all:char=%d space=%d digit=%d others=%d\n",letters, space,digit,others);
}
(3) #include "stdio.h"
main()
{
int i,j;
long a,total=0;
for(i=1;i<21;i++)
{
a=1;
for(j=1;j
a*=j;
total+=a;
}
printf("%d\n",total);
}
(4)#include
int main()
{
int n=0,i=0,j=0,k=0;//n表示这个三位数,i,j,k分别代表百位,十位,个位. for(n=100; n<=999; n++)
{
i = n / 100;//i表示百位数
j = (n / 10) % 10;//j表示十位数
k = n % 10;//k表示个位数
if(n == (i*i*i + j*j*j + k*k*k))
{
printf("%d ",n);
}
}
}
include
main()
{
int i,j,k;
for(i=1;i<10;i++)
for(j=0;j<10;j++)
for(k=0;k<10;k++)
if( (i*100+j*10+k)==((i*i*i)+(j*j*j)+(k*k*k))) printf("%d%d%d ",i,j,k);
}
循环结构程序设计课后习题及答案
循环结构程序设计习题及答案 1、循环语句的三要素分别是、、。 2、for语句括号内的3个表达式的作用分别 是、、。 3、在2层循环嵌套中,外层循环语句的每个执行周期中,内层循环语句都要完整 地,只有当时,才结束整个循环。 4、在循环结构中,break语句的作用是;continue语句的作用是。 5、当循环条件一开始就为假时,对于while语句、do…while语句、for语句,分别执行循环体次、次、次。 6、下面程序段的执行次数: int a=0; while(a=0) { printf("good\n"); a--; } 7、下面程序段的执行次数: int a=0; while(a==0) { printf("good\n"); a--; } 8、下面程序段的执行次数: int a=1; while(a=1) { printf("good\n"); a++; } 9、下面程序段的执行次数: int a=1; while(a==1) { printf("good\n"); a++; } 10、下列程序段的运行结果是。 for(i=5;i>=0;i--) printf(“%d “,i); 11、下列程序段的运行结果是。 for(n=1;n<20;n=n+3) printf(“%d “,n); 12、下列程序段的运行结果是。 for( ch='a' ;ch<='e' ;ch++) printf(“%d“,ch-97);
13、下列程序段的运行结果是。 for(i=1,j=5 ; i100) break; } C、int a=0; D、int x=21; do while(x) { ++a; --x; }while(a>=0); 三、阅读程序,写出程序运行结果。 1、#include"stdio.h" main() { int i=0,sum=1; do { sum+=i; i++; }while(i<5); printf("%d\n",sum); } 程序运行结果: 2、 #include"stdio.h" main() { int a,b;
实验四-循环结构汇编语言程序的设计实验报告
循环结构汇编语言程序设计实验报告
实验四循环结构汇编语言程序设计 一、实验目的 1、学习循环结构的汇编语言程序的设计和调试。 2、学习通过直接对8086计算机的寄存器和存的直接访问,编写更高效简洁的汇编程序。 3、加深掌握计算机整体的工作过程。 3、加深对排序算法的理解。 二、实验任务 编写程序求出数组A中(20个元素)的最大值和最小值(数组没有排序)。 要求至少采用二种不同的排序算法来实现。( 快速排序,归并排序、堆排序、Shell排序、插入排序、冒泡排序、交换排序、选择排序、基数排序……) 三、实验容 为了更好地实现老师所布置的实验任务,我们根据情况选取以下两种方式实
验。 1、利用冒泡排序的方式求解数组A中元素的最大值最小值。设计流程图如 下所示: 2、利用选择排序的方式求得数组A中元素的序列。设计流程图如下所示:
四、实验环境 PC机: winXP/win7(32位)/win7(64位)+winxp 虚拟机 汇编工具:Masm.exe+Link.exe。 五、实验步骤 1)建立和生成的文件 (1)编写的源程序,源程序名为abc、扩展名为.asm (2)源程序经汇编程序Masm.exe汇编(翻译)后生成二进制目标程序,文件名为abc.obj (3)目标程序需要经Link.exe连接生成可执行程序,文件名为abc.exe 2)汇编环境 最基本的汇编环境只需要两个文件:Masm.exe和Link.exe。将这两个文件拷入到已经建好的文件夹(例如 huibian)中,并将文件夹huibian放在硬盘根
目录C :\>下 3)上机步骤 进入DOS窗口中执行。 4)调试程序 进入DEBUG后,调试程序 5)调试成功后重新汇编、连接并生成可执行代码 6)执行程序,并对运行结果截图。 利用冒泡排序求得数组A中元素的最大值最小值的实验结果如下图所示:(说明:输入数据为:13,0,59,900,587,1,657,234,34,48) 利用选择排序对数组A中元素排序得到的序列得实验结果如下图所示:(说明:输入数据为13,0,59,900,587,1,657,234,34,48)
C语言 循环结构程序设计模拟题
第五章循环结构程序设计 一、选择题 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级)
实验2-循环结构程序设计
实验2 循环结构程序设计 一、实验目的 1.学习循环语句for、while和do-while语句的使用方法。 2.学习用循环语句实现各种算法,例如穷举法、迭代法等。 3.进一步熟悉C语言集成环境的使用方法 二、实验内容 1.用while循环实现数据统计问题。:从键盘输入一批任意数量的整数,统 计其中不大于100的非负数数值的个数。 2.编写并调试程序,使用do-while循环控制语句实现上面的数据统计问 题。调试数据仍参照上面给出的几种情况设计使用。 3.编写并调试程序,使用for循环控制语句实现上面的数据统计问题。 4.阶乘累加问题。编写程序,求1+2!+3!+…+n!的值。 三、实验指导 1.用while循环实现数据统计问题。 ?编程分析 由于输入数据个数是不确定的,因此每次执行程序时,循环次数都是不确定的。在进行程序设计时,确定循环控制的方法是本实验的一个关键问题。循环控制条件可以有多种确定方法: (1).使用一个负数作为数据输入结束标志。 (2).输入一个数据后通过进行询问的方式决定是否继续输入下一个数 据。 ?参考程序 参考程序一 /* 使用负数作为数据输入结束标志的程序 */ #include "stdio.h" void main()
{ int m,counter=0; while(1) { printf("请输入一个整数:"); scanf("%d",&m); if(m<0) break; if(m<=100) counter++; printf("\n"); } printf("符合要求的整数个数为: %d\n",counter); } 参考程序二 /* 通过进行询问的方式决定是否继续输入下一个数据的程序 */ #include int main() { int m,counter=0; char ask; while(1) { printf("请输入一个整数:"); scanf("%d",&m); getchar(); if(m>=0&&m<=100) counter++; printf("继续输入下一个数据?(Y/N)"); ask=getchar();
循环结构程序设计练习题 内含答案
第三单元循环结构练习题 选择题: 1、有以下程序执行后的输出结果是( D )。 main( ) { int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf("%d\n",s);} A.自然数1~9的累加和 B.自然数1~10的累加和 C.自然数1~9中的奇数之和 D.自然数1~10中的偶数之和 2、以下关于for语句的说法不正确的是( A )。 A. for循环只能用于循环次数已经确定的情况 B. for循环是先判断表达式,后执行循环体语句 C. for循环中,可以用break跳出循环体 D. for循环体语句中,可以保含多条语句,但要用花括号括起来 3、若i和k都是int类型变量,有以下for语句 for(i=0,k=-1;k=1;k++) printf("*****\n"); 下面关于语句执行情况的叙述中正确的是( d )。 A.循环体执行两次 B.循环体执行一次 C.循环体一次也不执行 D.构成无限循环 4、以下程序程序的执行后的输出结果是( c )。 main() {int i,t[][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<3;i++) printf(“%d”,t[2-i][i]);} A.7 5 3 B. 3 5 7 C.3 6 9 D.7 5 1 5、以下程序运行后的输出结果是( A )。 void fun(char*s) { while(*s) { if(*s%2==0) printf(“%c”,*s); s++;} } main() { char a[]={“good”};fun(a);printf(“\n”);} 注意:字母a的ASCⅡ码值为97 A.d B.go C.god D.good 6、已知 int t=0; while(t=1){...} 则以下叙述正确的是( B )。 A)循环控制表达式的值为0 B)循环控制表达式的值为1 C)循环控制表达式不合法 D)以上说法都不对 7、设有以下程序段 B int x=0,s=0; while(!x!=0)s+=++x; printf("%d",s); 则 A)运行程序段后输出0
循环结构程序设计代码
实验五代码: 基础能力落实: 1)编写一个程序,将用分钟表示的时间转化成以小时和分钟表示的时间。使用#define 或者const来创建一个代表60的字符常量。使用while循环来允许用户重复键入值,并且当键入一个小于等于0的时间时终止循环。要求用while语句 #include int main(void) { const int minperhour = 60; int minutes, hours, mins; printf("Enter the number of minutes to convert: "); scanf("%d", &minutes); while (minutes > 0 ) { hours = minutes / minperhour; mins = minutes % minperhour; printf("%d minutes = %d hours, %d minutes\n", minutes, hours, mins); printf("Enter next minutes value (0 to quit): "); scanf("%d", &minutes); } printf("Bye\n"); return 0; } 2)编写一个程序打印一个表,表的每一行都给出一个整数,它的平方以及它的立方,要求用户输入表的上限和下限。使用一个for循环。 #include int main( void ) { int lower, upper, index; int square, cube; printf("Enter starting integer: "); scanf("%d", &lower);
循环结构程序设计(C语言实验报告)
仲恺农业工程学院实验报告纸 信息学院(院、系) 专业 班 C 语言程序设计 课 实验目的: (1)熟练掌握用三种循环语句实现循环的方法。 (2)掌握在程序设计中用循环方法实现的一些常用算法。 (3)进一步学习调试程序。 实验内容与总结: 编程练习 1、打印出所有“水仙花数”——教材P129-6.6 程序如下: #include void main() { int i,j,k,n; for(n=100;n<1000;n++) { i=n/100; j=(n-i*100)/10; k=n-i*100-j*10; if(n==i*i*i+j*j*j+k*k*k) printf("水仙花数为:%d\n",n); } } (1)程序编制要点: ①用for 语句实现循环; ②立方的表示; ③if 语句的表达。 (2)该题目涉及的知识点和难点: ①for 语句的输入与使用; ②if 语句的使用。 2、用迭代法求a x = 。求平方根的公式为:)(211n n n x a x x +=+ 程序如下:
#include #include void main () { float x1,x2=1,a; printf("请输入求平方跟的数a="); scanf("%f",&a); do { x1=x2; x2=(x1+a/x1)/2; } while (fabs(x2-x1)>1e-5); printf("x的平方根是:%f\n",x2); } (1)程序编制要点: ①用do…while语句实现循环; ②平方根公式的输入; ③前后两次求出的x的差的绝对值小于1E-5。 (2)该题目涉及的知识点和难点: ①scanf函数,求绝对值函数fabs; ②do…while语句的输入与使用。 3、猜数字:编程先由计算机“想”一个1到100之间的整数请人猜,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平,否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,则结束游戏。 程序如下: #include #include /*使用srand和rand函数*/ #include /*使用time函数*/ void main() { int magic,guess,count=0; srand(time(NULL)); magic = rand() % 100 + 1; /*magic得到一个1到100的随机数*/ printf("请输入一个1到100之间的数,你共有10次机会:\n"); do { scanf("%d",&guess); count++; if((guess<=0)||(guess>=100))
实验4_循环结构程序设计1题目及解答
4.3 循环结构程序设计1 【(1)题中页码均为《C 语言程序设计教程》中的页码 (2)题后为原程序文件名 (3)仅提交名为【*.c 】的源程序文件,可一起提交,也可逐题提交 】 1、 按照右边给出的流程图用while 语句求1~100之间的偶数之和。(007张三t411.c, 007张三t412.c ) 【提示:参见p89—例4.18 ,并按照下面的左流程图书写007张三t411.c ,右流程图书写007张三t412.c 程序运行结果: s=2550 】 2、 按照右边给出的流程图用while 语句求出所有的水仙花数(如135: 153=13+53+33)。(007张三t42.c )【限制用一重循环实现】 【提示: 程序运行结果: 全部水仙花数如下:??153??370??371??407 】 3、 根据公式,求)(1n n 1 4313212 11 ....+????++++ 的前n 项之和。 (007张三t431.c ,007张三t432.c ) 【提示:参见p90—例4.19了解类似算法的实现 参见p93--例4.18了解do-while 语句的应用 007张三t431.c---用while 语句实现, 007张三t432.c 用do —while 语句实现 程序运行时: 程序运行结果: 请输入n :10? 前10项之和=0.91 请输入n :20? 前20项之和=0.95 】
4、求1!+2!+……+n!(007张三441.c和007张三442.c)【要求n≤10】 【提示:参见p90—例4.20,注意当n=10时,结果超过int 的最大值,建议用长整型(long int--%ld)007张三441.c---用while语句实现, 007张三442.c 用do—while语句实现 程序运行时:程序运行结果: 请输入n:1?1!~1!之和=1 请输入n:3?1!~3!之和=9 请输入n:10?1!~10!之和=4037913 请输入n:20?20超出本程序的求解范围! 请输入n:0?0超出本程序的求解范围! 】 5、输出个位数字是6,且能被3整除的所有3位数(007张三45.c)【要求:输出时,每个数字占4位,右对齐】 程序运行结果: 附加题: 1、编制一个能破解4位数字组成的数字密码的程序(即密码不能以0开头),假设数字密码为:1234(007张三4附加1.c)。【程序运行结果: 密码是:1234 】 2、鸡兔同笼问题,已知鸡和兔的总头数为a,总脚数为b,求鸡和兔的有多少只?(007张三4附加21.c,007张三4附加 22.c)【要求:(1)用循环结构实现,存于007张三4附加21.c (2)顺序结构实现,存于007张三4附加22.c 【程序运行时:程序运行结果: 请输入鸡和兔的总头数和总脚数:4 8?当4个头,8只脚时:鸡4只, 兔0只 请输入鸡和兔的总头数和总脚数:4 12?当4个头,12只脚时:鸡2只, 兔2只 】
循环结构程序设计典型例题
循环结构程序设计典型例题 例1有数列2/3、4/5、6/9、10/15……求此数列前30项的和。 算法分析: 对于数列的题,首先要找出通项公式,或前后项的计算关系公式,根据公式求所需。由于数列的题一般执行次数能确定,用for语句来编写比较方便。 此题,前后项的关系是:后一项的分子是前一项的分母加1,后一项的分母是前一 项的分子加分母。解题思路是用循环语句求各项,并把值累加,因为是求前30项的和,循环执行30次。 1.初值i=2,j=3,s=0; 2.用n从1到30循环 3.s=s+ i/j; 4.c=i; i=j+1; j=c+j; 5输出s; 程序: #in clude mai n() { int i=2,j=3, n,c; float s=0; for(n=1; n<=30 ;n++) { s=s+(float)i/j; c=i; i=j+1; j=c+j; } printf( "n%f” ,s); } 此题中的n与循环体中的执行语句没有数值上的联系,仅仅用做决定循环执行的次数。 例2:下面这个程序,想想它实现的是什么功能? #in clude mai n() { int i,s=0; for(i=1;i<=100;i++) {if(i%5==0) continue; s=s+i; } printf( n“d' ,s); } 在左边的程序中,i从1到100循环,当i是5的倍数时,直接进入下一个i,当i不是5的倍数时,把i累加到s,最后输出s。所以,这个程序实现的是求1~100中间所有非5的倍数的数之和。 例3:输出n~m中(0<*m)能被3整除,且至少有一个数字是5的所有数。 算法分析:
c语言实验报告4 循环结构程序设计
《C程序设计》课程实验报告 学院:班级:姓名:学号: 实验设备:计算机1台实验日期:2011年3月1日 实验项目名称循环结构程序设计 实验目的 掌握使用三种循环语句实现循环结构的方法。 实验要求:能用while~ do~while for 三种循环语句实现循环结构,编写简单的程序,掌握这三种循环语句。 实验内容(包括步骤):1.猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半另一个,以后每天早晨都吃剩下的一半另一个,到第十天早晨再想吃时,就剩一个桃子。问第一天共摘了多少桃子。 要求:分别用三种语句编写程序。 2.编写程序验证下列结论:任何一个自然数n的立方都等于n个连续奇数之和。例如:13=1;23=3+5;33=7+9+11;43=13+15+17+19。 要求:程序对每个输入的自然数计算并输出相应的连续奇数,直到输入的自然数为0时止。 3.编写程序,求1-3+5-7+…-99+101的值。 4.编写程序,求e的值。e ≈ 1+1/1!+1/2!+1/3!+1/4!+…+1/n! (1)用for循环,计算前50项。 (2)用while循环,要求直至最后一项的值小于10-6。 5.编写程序,输出从公元1600年至2000年所有闰年的年号。每输出5个年号换一行。判断公元年是否为闰年的条件是:
(1)公元年数如能被4整除,而不能被100整除,则是闰年。 (2)公元年数如能被400整除也是闰年。 6.编写程序,打印以下图形: * *** ***** ******* ***** *** * 7.输入一行字符,统计输入的字符中字母‘a’出现的次数(包括大小写)。 8.我国1991年有11.6亿人口,要求根据人口平均年增长率,计算从1991年算起经过多少年后我国的人口增加到15亿。 9.有一个四位数F=BBAA,前二位数相同,后二位数相同,此数又是某个自然数T的平方,求此数。 10.分解一个正整数的所有质因数 调试与结果测试:部分程序出现错误经过调整后调试正常,达到题目要求的结果,运行正常。
C语言数组与循环结构程序设计实验报告
实验报告 课程名称程序设计基础 实验项目数组与循环结构程序设计(一) 实验仪器计算机 系别计算机学院 专业 班级/学号 学生姓名 实验日期 2014.12.4 成绩 指导教师
实验三 一、实验目的 (1)熟悉掌握用while语句、do…while语句和for语句实现循环的方法。 (2)掌握在程序设计中用循环的方法实现一些常用算法。 (3)进一步学习调试程序。 二、实验内容 (1)输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 在得到正确结果后,请修改程序使之能分别统计大小写字母、空格、数字和其他字符的个数。 (2)输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为153=13+53+33。 (3)猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第一天共摘多少个桃子。 在得到正确结果后,修改题目,改为猴子每天吃了前一天剩下的一半零两个。请修改程序并运行,检查结果是否正确。 三、实验课时 2课时 四、实验步骤(20分) (1).先分析题目,想一个能达成目标的算法,然后打开vc6.0开始打码,等到完成后先编译看是否有错误,若有则查看软件给出的提示再进行修改,直到成功再运行程序并输入数字检验,看是否正确,不正确则返回代码再修改直到结果正确,最后截图完成实验。 (2).分析题目初步确定算法,然后打开vc6.0开始打码,注意格式,防止犯错误,代码打好后F7查看是否正确,不正确则修改,正确则开始运行,验证输出是否正确,错误则返回修改,否则完成实验。 (3).分析题目初步确定算法,打开VC6.0,新建文件C++SF,输入代码,运行,
实验5_循环结构程序设计2题目及解答
4.3 循环结构程序设计2 【注意事项: (1)题中页码均为《C语言程序设计教程》中的页码 (2)题后为原程序文件名 (3)仅提交名为【*.c】的源程序文件,可一起提交,也可逐题提交 调试程序中常见问题及处理方法: (1)出现死循环时:关闭运行窗口即可。 】 1、按照下面的流程图书程序,用for语句实现。 【提示:参见p97—例4.23 ,并按照下面的左流程图书写007张三511.c,右流程图书写007张三512.c 程序运行结果: s=2550 】 2、用for语句编程,求300~500之间的水仙花数(如135:153=13+53+33)。(007张三52.c) 【程序运行结果: 300~500之间的全部水仙花数如下:??370??371??407 】 3、判断输入的数是否为素数。【提示:素数是只能被1和其自身和整除的数,】(007张三53.c) 【提示:参见p114—例4.36 程序运行时:程序运行结果: 请输入一个正整数:25?25不是素数 请输入一个正整数:12?125不是素数 请输入一个正整数:13?13是素数 】 4、判断输入的一个不超过32767的正整数是几位数。(007张三54.c)【提示:按照右侧的N-S图编程 运行时:运行结果: 请输入一个正整数(1~32767): 135?135是3位数请输入一个正整数(1~32767): 1356?1356是4位数请输入一个正整数(1~32767): 28906?28906是5位数】
附加题: 1、求出100~200间的所有素数。(007张三5附加1.c )。 【 运行结果: 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 】 2、根据以下公式求π值(直到最后一项小于10 –6 为止)(007张三5附加2.c ) 【 运行结果: pi=3.141590 】 3、百钱百鸡问题中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?(007张三5附加3.c ) 【提示:在编程之前,需先根据题意列出方程, 如: 设鸡翁x 只,鸡母y 只,鸡雏z 只 则有下列方程: x+y+z=100 和 5x+3y+z/3=100 因为2个方程,3个未知数,故为不定方程,需用穷举法解题。 运行结果: x=0??? y=25??z=75?? x=4??? y=18??z=78?? x=8??? y=11??z=81?? x=12?? y=4???z=84?? 】 参考解答: 1、~2、略 3、 #include void main( ) { int x, I, k; printf(“请输入一个正整数:”); scanf("%d", &x); k=x/2; while ( i <=k ) { if( x%i ==0 ) break; } if ( i>k ) { printf(“%d is \n”, x); } ??????+???+??+?++=9 4 73523173523152313112π
循环结构程序设计典型例题
循环结构程序设计典型例题 例1:有数列2/3、4/5、6/9、10/15……求此数列前30项的和。 算法分析: 对于数列的题,首先要找出通项公式,或前后项的计算关系公式,根据公式求所需。由于数列的题一般执行次数能确定,用for语句来编写比较方便。 此题,前后项的关系是:后一项的分子是前一项的分母加1,后一项的分母是前一项的分子加分母。解题思路是用循环语句求各项,并把值累加,因为是求前30项的和,循环执行30次。 1. 初值i=2,j=3,s=0; 2. 用n从1到30循环 3. s=s+ i/j; 4. c=i; i=j+1; j=c+j; 5.输出s; 程序: #include<> main( ) { int i=2,j=3,n,c; float s=0; for(n=1;n<=30;n++) { s=s+(float)i/j; c=i; i=j+1; j=c+j; } printf(“\n%f”,s); } 此题中的n与循环体中的执行语句没有数值上的联系,仅仅用做决定循环执行的次数。 例2:下面这个程序,想想它实现的是什么功能? #include<> main( ) { int i,s=0; for(i=1;i<=100;i++) {if(i%5==0) continue; s=s+i; } printf(“\n%d”,s); } 在左边的程序中,i从1到100循环,当i是5的倍数时,直接进入下一个i,当i不是5的倍数时,把i累加到s,最后输出s。所以,这个程序实现的是求1~100中间所有非5的倍数的数之和。 例3:输出n~m中(0循环结构程序设计实验报告
嘉应学院计算机学院 实验报告 课程名称程序设计基础实验名称实验地点 指导老师实验时间提交时间 班级姓名座号 一、实验目的和要求 (1)熟悉掌握用while语句、do…while语句和for语句实现循环的方法。 (2)掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。 (3)进一步学习调试程序。 二、实验环境和方法 实验方法: (一)综合运用课本所学的知识,用不同的算法实现在不同的程序功能。 (二)结合指导老师的指导,解决程序中的问题,正确解决实际中存在的异常情况,逐步改善功能。 (三)根据实验内容,编译程序。 实验环境:Windows xp Visual C++6.0 三、实验内容及过程描述 实验步骤: ①进入Visual C++ 6.0集成环境。 ②输入自己编好的程序。 ③检查一遍已输入的程序是否有错(包括输入时输错的和编程中的错误),如发现有错, 及时改正。 ④进行编译和连接。如果在编译和连接过程中发现错误,频幕上会出现“报错信息”, 根据提示找到出错位置和原因,加以改正。再进行编译,如此反复直到不出错为止。 ⑤运行程序并分析运行结果是否合理。在运行是要注意当输入不同的数据时所得结果 是否正确,应运行多次,分别检查在不同情况下结果是否正确。 实验内容:编译以下题目的程序并调试运行。 (1)输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。 编写程序如下: #include int main() { char c; int letters=0,space=0,digit=0,other=0; printf("请输入一行字符:\n"); while((c=getchar())!='\n')
循环程序设计习题及答案
模块三循环程序设计习题及答案 一、填空题 1、当在数据处理中要重复执行相同的操作时,宜采用程序结构来实现。 2、循环的3要素是、、。 3、在循环语句体中包含另一个循环语句的用法称为。 4、执行循环语句体中的break语句后将使用包含它的循环语句。 5、要结束当前正在执行循环体语句而直接进入下一循环周期,需要执行语句。 6、在for语句中表达式允许省略,但不能少,语句for( ; ;) ;构成的是循环。 7、在for语句中,省略表达式2时,则循环为循环。 8、执行语句for(i=1;i++<4; );后变量i的值是。 9、要使用循环程序提前结束本次循环周期并开始下一个循环周期,应在循环体内有条件使用语句。 10、在每次循环周期均要执行一次的语句,称为。 11、for语句括号内的3个表达式的作用分别是、和循环控制变量的更新。 二、选择题 1、若k为整形变量,则while循环共循环()。 k=5; while(k>=0) k-1; A、无限循环 B、6次 C、5次 D、4次 2、与while( ! n) ; 中表达式!dn等价的是()。 A、dn>=0 B 、dn!=0 C、dn == 0 D、dn != 1 3、以下程序段,while循环执行的次数是() int k=0;
while( k == 1) k++; A、无限次 B、有语法错,不能执行 C、一次也不执行 D、执行1次 4、在C语言中,当do while语句中的条件为()时,结束该循环。 A、0 B、1 C、TRUE D、非0 5、下面程序段的输出结果是() do { b-=a; a++; }while(b--<0); A、10,-1 B、2,8 C、9,0 D、4,-3 6、以下描述正确的是() A、由于do while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。 B、do while循环由do开始,用while结束,在while(表达式)后面不能写分号 C、在do while循环体中,一定要有能使while后面匠值变为零的操作 D、do while循环中,根据情况可以省略while 7、若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)。 s=c; for(b=1;b<=c;b++) s=s+1; 则与上述程序段功能等价的赋值语句是() A、s=a+b; B、s=a+c; C、s=s+c; D、s=b+c; 8、假定a,b,c,d均已定义为整型变量,且a、c均已赋值,a大于0,c大于0,则与程序段for(d=a,b=1;b<=c;b++) d--;功能等价的语句是() A、d=a+b; B、d=a+c; C、d=a-b; D、d=a-c 9、下列关于for循环的说法正确的是() A、for循环只能用于循环次数已经确定的情况
C语言循环结构程序设计实验报告
甘肃政法学院 本科生实验报告 ( 五) 姓名:赵明翔 学院:公安技术学院 专业:安全防范工程 班级: 2015级安全防范工程班 实验课程名称:程序设计 实验日期:2016年月日 开课时间:2015学年第二学期
(2)输出所有的水仙花数,所谓水仙花数是指一个3位数,其各位数字李方和等于该数本身。例如,153是水仙花数,因为153=12+53+33程序如下: #include int main() { int i,j,k,n; printf("paicissus numbers are"); for (n=100;n<1000;n++) { i=n/100; j=n/10-i*10; k=n%10; if(n==i*i*i+j*j*j+k*k*k) printf("%d",n); } printf("\n"); return 0; } 运行结果: (3)猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又
多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下了1个桃子了。求第一天共摘了多少桃子。 程序如下: #include int main() { int day,x1,x2; day=9; x2=1; while(day>0) {x1=(x2+1)*2; x2=x1; day--; } printf("total=%d\n",x1); return 0; } 运行结果: (4)①用牛顿迭代法求方程0634223=-+-x x x 在1.5附近的根. #include #include int main() {double x1,x0,f,f1; x1=1.5; do {x0=x1; f=((2*x0-4)*x0+3)*x0-6; f1=(6*x0-8)*x0+3; x1=x0-f/f1;
循环结构程序设计:三种循环语句
一、循环结构(Iteration Structure)的概述 1.目的 为了解决含有重复处理内容的问题,必须采用循环语句(Loop Statement)来编程实现。 2.类型 (1)当型循环结构 (2)直到型循环结构 二、循环语句 1.while语句 ①功能:实现当型循环结构。 ②形式 while(表达式){ 循环体 } ③特点:先判断后执行。 ④举例:(累加和问题)编程计算整数1~100的和。 int i ; //循环变量 int sum = 0 ; //累加和清0 i = 1 ; //循环变量i赋初值 while( i <= 100){ sum = sum + i ; //循环变量累加到sum中 i = i + 1; //改变循环变量i的值 } 2.do-while语句 ①功能:实现直到型循环结构。 ②形式 do{ 循环体
}while(表达式); //注意最后的分号 ③特点:先执行后判断。 ④举例:修改上例。 /*利用do-while语句编程实现整数1~100的和。*/ int i ; //循环变量 int sum = 0 ; //累加和清0 i = 1 ; //循环变量i赋初值 do{ sum = sum + i ; //循环变量累加到sum中 i = i + 1; //改变循环变量i的值 }while(i<=100);//注意最后的分号 3.for语句 ①功能:实现当型循环结构。 ②形式 for(表达式1;表达式2;表达式3){ 循环体 } ③特点:先判断后执行;使用频率最高。 ④举例:修改上例。 /*使用for语句编程计算整数1~100的和。*/ int i ; //循环变量 int sum = 0 ; //累加和清0 for( i = 1 ; i <=100 ; i++ ){//第一个表达式完成循环变量i赋初值;第三个表达式实现改变循环变量i的值 sum = sum + i ; //循环变量累加到sum中 } 4.几种循环语句的比较 ①由于while语句和for语句均实现当型循环结构,两者是完全等价的。 for(表达式1;表达式2;表达式3){
循环结构程序设计课后习题及答案
循环结构程序设计习题及答案1、循环语句的三要素分别 是、、。 2、for语句括号内的3个表达式的作用分别 是、、。 3、在2层循环嵌套中,外层循环语句的每个执行周期中,内层循环语句都要完整地,只有当时,才结束整个循环。 4、在循环结构中,break语句的作用是;continue语句的作用是。 5、当循环条件一开始就为假时,对于while语句、do…while语句、for 语句,分别执行循环体次、次、 次。 6、下面程序段的执行次数: int a=0; while(a=0) { printf("good\n"); a--; } 7、下面程序段的执行次数: int a=0; while(a==0)
{ printf("good\n"); a--; } 8、下面程序段的执行次数: int a=1; while(a=1) { printf("good\n"); a++; } 9、下面程序段的执行次数: int a=1; while(a==1) { printf("good\n"); a++; } 10、下列程序段的运行结果是。 for(i=5;i>=0;i--) printf(“%d “,i); 11、下列程序段的运行结果是。 for(n=1;n<20;n=n+3) printf(“%d “,n); 12、下列程序段的运行结果是。
for( ch='a' ;ch<='e' ;ch++) printf(“%d“,ch-97); 13、下列程序段的运行结果是。 for(i=1,j=5 ; i实验3-循环结构程序设计
实验报告 课程名称C程序设计 实验项目循环结构程序设计 实验仪器PC机一台 学院_____信息管理学院_______ 专业信息管理与信息系统 班级/学号_信管1301/2013012054_ 学生姓名_____姜猛__________________ 实验日期_______________________ 成绩_______________________ 指导教师_______陈立南 _________
北京信息科技大学 信息管理学院 (课程上机)实验报告 实验课程名称: C程序设计专业:信息管理与信息系统班级: 信管1301 学号:2013012054 姓名:姜猛成绩: 实验名称循环结构程序设计实验地点小营校区计算中心实验时间 1.实验目的: 1)熟练掌握用while语句、do……while语句和for语句实现循环的方法 2)掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推) 3)进一步学习调试程序的方法 2.实验内容及要求: 1) 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 2) 求Sn=a+aa+aaa+aaaa+……(n个a)之值,其中a表示一个数字,n表示a 的位数,n由键盘录入。 3) 1!+2!+3!+4!+……+n! 4)输出所有“水仙花数”。“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身,如153=1^3 +5^3+3^3 。 5)一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。例如6=1+2+3。编程找出1000以内的所有完数。 6)编写程序,完成课本P141的第10题。 7)猴子第一天摘了若干个桃子,当即吃了一半,还不解馋,又多吃了一个;第二天,吃剩下的桃子的一半,还不过瘾,又多吃了一个;以后每天都吃前一天剩下的一半多一个,到第10天想再吃时,只剩下一个桃子了。问第一天共摘了多少个桃子? 8)编写程序,完成课本P141的第16题。