河南理工大学C语言第五章课后习题答案.ppt_第1页
河南理工大学C语言第五章课后习题答案.ppt_第2页
河南理工大学C语言第五章课后习题答案.ppt_第3页
河南理工大学C语言第五章课后习题答案.ppt_第4页
河南理工大学C语言第五章课后习题答案.ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

,第五章 循环结构程序设计,1.选择题 下面这个程序的输出是 #include main() int y=10; while(y- -); printf(“y=%dn”,y); A. y=0 B. while构成死循环 C. y=1 D. y=-1,D,第五章 循环结构程序设计,1.选择题 (2)循环语句while(!E);中的表达式!E等价于 E!=0 B. E!=1 C. E=0 D. E=1 (3)以下程序执行后的输出结果是 main() int x=0, y=0; while(x20) x+=3, y+; printf(“%d,%dn”,y,x); A. 7,21 B. 8, 24 C. 1, 21 D. 21, 7,C,A,第五章 循环结构程序设计,1.选择题 (4)假定a和b为int型变量,则执行以下语句后b的值为 a=1; b=10; do b-=a; a+; while(b-0); A. 9 B. -2 C. -1 D. 8 (5)若“int a=5;”则执行以下语句后,打印的结果是 do printf(“%2dn”,a-); while(!a) A. 5 B. 不打印任何内容 C. 4 D. 陷入死循环,D,A,1.选择题 (6)循环 “for(i=0, j=5; +i!=-j;) printf(“%d%d”,i,j);”将执行 6次 B. 3次 C. 0次 D. 无限次 (7)以下程序执行后的输出结果是 main() int i, sum; for(i=0, sum=0; i100;) sum+=i; i+; printf(“%d,%dn”,i,sum); 101,5050 B. 100,5050 C. 99,5050 D. 无限循环,不会正常结束,第五章 循环结构程序设计,D,D,第五章 循环结构程序设计,1.选择题 (8)设有“int x,y;”,则以下for循环执行的次数为 for(x=0,y=0;(y!=123) A.0 B. 123456789 C.0123456789 D.10,D,B,第五章 循环结构程序设计,1.选择题 (10)以下程序的输出结果表明是 main() int i; for(i=A; iI;i+,i+) printf(“%c”,i+32); printf(“n”); 编译不通过,无输出 B. aceg C.acegi D.abcdefghi,B,相当于i=i+2,将大写字母转换为小写字母,第五章 循环结构程序设计,1.选择题 (11)以下叙述错误的是 使用while和do-while循环时,循环变量初始化的操作应在循环语句之前完成 while循环是先判断表达式,后执行循环体语句 do-while和for循环均是先执行循环体语句,后判断表达式 for、while和do-while循环中的循环体均可以由空语句构成,C,第五章 循环结构程序设计,1.选择题 (12)下列程序是求1100的累加和,其中有三个不能够完成规定的功能,只有一个能正确完成累加和,s=0; i=0; while(i=100) s+=i+;,B. s=0; i=1; while(i+100) s+=i;,C. s=0; i=0; while(i100) s+=i+;,D. s=0; i=1; while(+i=100) s+=i;,相当于:1+2+3+99+100=5050,相当于1+2+3+99+=4950,相当于:2+3+4+99+100=5049,相当于:2+3+4+99+100=5049,i=1改为i=0 s=5050,i100改为i=100 s=5050,i=1改为i=0 s=5050,A,第五章 循环结构程序设计,1.选择题 (13)以下不形成死循环的是 for( ; ; x+=i); while(1) x+; C.for(i=10; ; i-) sum+=i; D.for(; (c=getchar()!=n;) printf(“%c”,c);,D,缺少终止循环的条件,循环条件始终为真,缺少终止循环的条件,第五章 循环结构程序设计,1.选择题 (14)下列程序的运行结果为 #include main() int k=1; char c=A; do switch(c+) case A: k+; break; case B: k-; case C: k+=2; break; case D: k=k%2; continue; case E: k=k*2; break; default: k=k/3; k+; while(cF); printf(“k=%dn”,k); ,k=1 k=15 k=12 以上结果都不对,c+ c k k A B 2 3 B C 2 4 5 C D 7 8 D E 0 E F 0 1,A,第五章 循环结构程序设计,1.选择题 (15)执行下述程序的输出结果是 #include main() int i=0, j; for(j=9;i=j-1) printf(“%dn”,j); ,11 10 9 1011,C,外循环: j=9 内循环: i=9,i=j-1成立,输出j值9 i=10,ij不成立 外循环结束 程序结束,第五章 循环结构程序设计,2.填空题 华氏温度和摄氏温度的转换公式为C=5/9*(F-32),其中表示摄氏温度,F表示华氏温度。要求输出从华氏0到华氏300 ,每隔20 输出一个值。 main() int upper, step; float fahr=0, celsius; upper=300; step=20; while( upper) ; printf(“%4.0f, %6.1fn”,fahr,celsius); ; ,fahr,celsius = 5.0/9.0*(fahr-32),fahr+=step,或fahr+=20,第五章 循环结构程序设计,2.填空题 (2)当执行以下程序段后,i的值是 、j 的值是 、k的值是 。 int a,b,c,d,i,j,k; a=10; b=c=d=5; i=j=k=0; for(; ab; +b) i+; while(a+c) j+; do k+; while(ad+); (3)用for循环打印1 4 7 10 13 16 19 22 25,请完善printf函数。 for(i=1; i=9;i+) printf(“%3d”, );,a b i b(+b) 10 5 1 6 10 6 2 7 10 7 3 8 10 8 4 9 10 9 5 10,a c +c j 10 5 6 1 10 6 7 2 10 7 8 3 10 8 9 4 10 9 10 ,a d+ d k k(k+) 0 1 10 5 6 1 2 10 6 7 2 3 10 7 8 3 4 10 8 9 4 5 10 9 10 5 6 10 10 11,5,4,6,3*i-2,等差数列:an=a1+(n-1)*d an=1+(n-1)*3=3*n-2,第五章 循环结构程序设计,2.填空题 (4)下面函数用来计算xy,其中y为整型变量,且y0。 main() float x, z; int y; printf(“input x and y:n”); scanf(“%f,%d”, ,z*=x,y-,第五章 循环结构程序设计,2.填空题 (5)下面程序的输出结果是 main( ) int x=9; for( ; x0;) if(x%3=0) printf(“%d”,-x); continue; x-; ,x -x(printf) x- 9 8 8 7 7 6 6 5 5 4 4 3 3 2 1 1 0,852,第五章 循环结构程序设计,2.填空题 (6)在全国计算机等级C语言上机考试中,不少试题与素数有关。执行下述程序将输出3到100之间的所有素数。请填空。 #include main( ) int i, j; for( i=3; i=100; i+) for(j=2; j=i-1; ) if( ) break; if( ) printf(“%3d”,i); printf(“n”); ,j+,i%j=0,j=i,素数:也称质数,就是一个大于等2的整数,并且只能被1和本身整除,而不能被其他整数整除的数。,第五章 循环结构程序设计,2.填空题 (7)已知:任意一个正整数的立方都可以写成一串连续奇数的和.例如:131313=2197=157+159+.+177+179+181下列程序可以验证上述定理. main( ) long int n, i, k, j, sum; printf(“Enter n=”); scanf(“%ld”, ,sum=k,sumk,j-2,第五章 循环结构程序设计,2.填空题 (8)计算s= 的程序如下,请填空. main( ) long int s, p ; int i, j; ; for(i=1;i=20;i+) ; for(j=1; ; j+) /*计算i!*/ p=p*j; s=s+p; printf(“s=%ldn”,s); ,s=0,p=1,j=i,第五章 循环结构程序设计,3.改错题(每个/*found*/下面的几行语句中都有一处错误)将错误的地区方改正.注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.,第五章 循环结构程序设计,3.改错题 (1)按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出。程序如下。 main() int n,k,score,sum; float ave; /* found */ For (n=1;n=10;n+) sum=0; /* found */ for(k=0; k=4; k+) scanf(“%d”, ,For - for,k=0-k=1,ave=sum/4.0;,第五章 循环结构程序设计,3.改错题 (2)一个三位数,其各位数字的立方和等于读数本身,此数称为“水仙花数”,如:153是一个“水仙花数”,因为153=13+53+33。下列程序为打印出所有水仙花数的程序。 main( ) int i, j, k, m; for(i=1; i=9; i+) /* found */ for(j=0;j=9 ;i+) for(k=0; k=9; k+) /* found */ m=100*k + 10*j + i; if(m=i*i*i+ j*j*j+ k*k*k) printf(“%d”,m); ,m=100*i+10*j+k;,i+改为j+,第五章 循环结构程序设计,3.改错题 (3)根据以下公式求值。例如,给指定精度的变量eps输入0.0005时,应当输出Pi=3.140578.,#include main() double r,eps,temp; int m=1; printf(“n please enter a precision:“); scanf(“%lf“, ,while(temp=eps),temp=1,r*2,第五章 循环结构程序设计,3.改错题 (4)计算并输出n以内最大的10个能被 11或10整除的自然数之和。若n的值为300,则输出为2646.,#include main() int m=0,mix=0,n; /* found */ scanf(“%d“,n); while(n=2) ,if(n%11=0)|(n%10=0),n&n,第五章 循环结构程序设计,3.改错题 (5)统计一个无符号整数中各位数字值为0的个数,并求出各位上的最大数字值。例如,若输入无符号整数10080,则数字值为0的个数为3,各位上数字值最大的数是8.,#include main() usigned m; int n=0,max=0,t; scanf(“%d“, ,t=0;,t=m%10;,m=m/10;,第五章 循环结构程序设计,4.编程题 (1)求下列式子的值。,#include void main() int n=1; float sign=1.0, sum=0; while(n=100) sum+=sign/n; sign=-sign; n+; printf(“sum=%fn“,sum); ,符号进行交替变化,第五章 循环结构程序设计,4.编程题 (1)求下列式子的值。,#include void main() float sum=0,i; for(i=1;i=99;i=i+2) sum+=1/i; for(i=2;i=100;i=i+2) sum-=1/i; printf(“%fn“,sum); ,将正负两项分开来求和,第五章 循环结构程序设计,4.编程题 (1)求下列式子的值。,#include void main() float sum,n,t1,t2; sum=0;n=1; while(n=100) t1=1/n; t2=-1/(n+1); sum=sum+t1+t2; n=n+2; printf(“%fn“,sum); ,一次求两项,第五章 循环结构程序设计,4.编程题 (1)求下列式子的值。,void main( ) float s, n, t1, t2; s=0; n=1; while(n100) t1=1/n; t2=-1/(n+1); s=s+t1+t2; n=n+2; printf(“%f“,s); ,#include void main( ) float s, n, t1, t2; s=1; n=1; t1=1; while(n100) n+; t1=-t1; t2=t1/n; s+=t2; printf(“%f“,s); ,学生习作1:,#include void main() int sign=1; float deno=2.0,sum=1.0,term; while(deno=100) sign=-sign; term=sign/deno; sum+=term; deno+; printf(“The sum is %f.n”,sum); ,学生习作2:,#include void main() int i; float sum; for(sum=1.0,i=2;i=100;i+) if(i%2=0) sum+=-1.0/i; else sum+=1.0/i; printf(“the sum is %f“,sum); ,第五章 循环结构程序设计,4.编程题 (2) 编程求110的阶乘,并分别显示在屏幕上。,#include void main( ) int n; long s=1; for(n=1;n=10;n+) s*=n; printf(“%d!=%dn“,n,s); ,void main( ) int n, s; s=1; n=1; while(n=10) s*=n; printf(“%d!=%dn”,n,s); n+; ,第五章 循环结构程序设计,4.编程题 (2) 编程求110的阶乘,并分别显示在屏幕上。,#include main() int i; long int n=1; for(i=1;i=10;i+) n=n*i; printf(i%5=0?“%2d!=%-10ldn“:“%2d!=%-10ld“,i,n); ,分析:星号为等差数列an=a1+(n-1)d an=1+(n-1)*2=2*n-1,4.编程题 (3)输入n值,输出由*组成的高为n的等腰三角形。 分析:每行的起始位置不同,空格数(2*n-1)-(2*row-1)=2*(n-row) 每行的字符数不同,字符数2*row-1 用二重循环实现,外循环控制输出行数 两个并列内循环控制输出每行的空格数和字符数,void main() int n, row, col; printf(“Input n:“); scanf(“%d“, ,第五章 循环结构程序设计,4.编程题 (3)输入n值,输出由*组成的高为n的等腰三角形。,void main() int i,j; for(i=0;i=6;i+) for(j=0;j6-i;j+) printf(“ “); for(j=6-i;j=6+i;j+) printf(“*“); printf(“n“); ,第五章 循环结构程序设计,4.编程题 (3)输入n值,输出由*组成的高为n的等腰三角形。,#include main() int n,i,j; scanf(“%d“, ,第五章 循环结构程序设计,4.编程题 (4)一个数如果恰好等于它的因子之和,这个就称为“完数”。如:6的因子为1、2、3,而6=1+2+3,因此6是“完数”。编程序找出1000之内的所有完数,并按下面格式输出其因子。 6 its factors are 1、2、3,方法1: main( ) int m, i, j, s; for(m=6; m1000; m+) s=m-1; for(i=2; im; i+) if(m%i=0) s=s-i; if(s=0) printf(“%5d its factors are 1”,m); for(j=2; jm; j+) if(m%j=0) printf(“%d”,j); printf(“n”); ,第五章 循环结构程序设计,4.编程题 (4)一个数如果恰好等于它的因子之和,这个就称为“完数”。如:6的因子为1、2、3,而6=1+2+3,因此6是“完数”。编程序找出1000之内的所有完数,并按下面格式输出其因子。 6 its factors are 1、2、3,main() int m,s,i; for(m=6;m1000;m+) s=0; for(i=1;im;i+) if(m%i)=0) s=s+i; if(s=m) printf(“%d its factors are “,m); for(i=1;im;i+) if(m%i=0) printf(“%d,“,i); printf(“n“); ,第五章 循环结构程序设计,分析:转化成数学模型: 假设命中10环x,7环为y,5环为z,则: 10x+7y+5z=53 x+y+z=8,4.编程题 (5)某人打靶,8发打了53环,全部命中在10环、7环和5环上,问:他命中10环、7环和5环各几发?,第五章 循环结构程序设计,#include void main( ) int i,j,k; for(i=1;i8;i+) for(j=1;j8-i;j+) k=8-i-j; if(i*10+j*7+k*5=53) printf(“i=%d,j=%d,k=%dn“,i,j,k); ,分析: 假设:前一天的桃子是x1 第二天的桃子是x2 则:x2=x1/2-1 得:x1=2(x2+1),4.编程题 (6) 猴子吃桃问题猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第十天早上想再吃时,就只剩一个桃子了。求第一天共摘多少桃子。,#include main( ) int day,x1,x2; day=9;x2=1; while(day0) x1=(x2+1)*2; x2=x1; day-; printf(“total=%dn“,x1); ,第五章 循环结构程序设计,#include void main() int day,x=1; for(day=9;day=1;day-) x=(x+1)*2; printf(“总共%d桃子n“,x); ,4.编程题 (6) 猴子吃桃问题猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第十天早上想再吃时,就只剩一个桃子了。求第一天共摘多少桃子。,#include int peach(int n) int num=0; if(n=10) num=1; else num=(peach(n+1)+1)*2; return num; void main() pri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论