1、C语言复习题答案语言程序设计教程(第2版)参考答案习题1-1 单选题15BBBC1-2 填空题1. 函数2 主函数mn(),主函数ma().主函数main()4. 函数首部,函数体 , 6. 顺序结构,选择结构,循环结构7. .c, .ob, exe第2章21 单选题15 DB 610 CABA 1115CABD 1620ABC125DAA 2630ACBC 135BADDA 40BBCCC4145BA 649BBB21 填空题1200000 .1,0.9,24.10,d6(1)0 () (3)607.(1)1,6,4 ()6,9,15 ()3,6,8 55. 11 6 10.511. dou
2、le12.整型 字符型 实型 枚举类型13.数据类型 数据类型14. 字母 数字 下划线 字母 下划线15. 单精度 双精度16变量初始化17. 双引号18 09. x=3.0000,i=3习题33-1 选择题1-5 BD 6-10ACA 1-1 BBBC 6-2 CDCDA2-25 CAA 2-29 BCBA32 填空题1. 32.0213.01. 2, 1 互换a,的值566.037 5.0,4,cEnte. 10,j=209 ()65 (2) 6, () 56.2400,4001 (4) 3.41600 (5) 8765.3 (6)5.8640e002 (7) .1600e+000 (8
3、) .1416 (9) 875 (10) 3.1416,865.310.= b=5=8.8 y76.34c165 c=9711. B12. 1=%dnn%dn13. 1214. 1115. 25 21 3716 1007 1. 8819 220000002 G习题4单选题15AADAD 60 C BB 1115ADA 1620BABA212CDBDD 630DCA 3DACB 640BDBAD4142AA4-2填空题1 12. (1) a | (2) x0 & 10 (3)a1.5 & =1.5 &c=15 (4)pa |p | pc?mx: 5.-4617.5,.()(a=0) ()(=)
4、(3) (sc=A&c=Z chc-321. -110 1习题5-1单选题5 CDAA 610 ABDB1115 DBCBC 162 DBCBCD-2填空题1.02.333(1) i0.0) =a1.; es aa10.0; if(b) ; ele ba-; rintf(a=%f, b%f,b); 实验4 循环结构程序设计(1)略(2)略(3)编写一个程序,打印输出半径为110的圆的面积,若面积为4090则予以打印,否则,不予打印。#iclude tio.hai() flot r=0,rea=0; whi(r0 & ra40) printf(=f, ea%fn,r,area); r=r+1;
5、ara=.1415926r*r; ()从键盘输入一批整数,统计其中不大于100的非负数数值的个数。(用whle循环实现。)#nclde stdio.hma() nt x,i=0; scanf(d,&); wie(x=) if(x=10) i+; sanf(%d,&x); printf(the mr is:%n,i);()用/4=1-1/4+1/5-1/7+/9-公式求的近似值,直到最后一项的绝对值小于0-为止。incluemathhmi() doble k=1.0,0,pi=0,t=1.0; hle (fabs(t)=1e) pi+t; n=+2.0; k=-k; tk/; pi=pi*4;
6、pritf(pi=%fn,p);(6)解决猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第1天早上想再吃时,只剩一个桃子了。求第一天猴子共摘了多少个桃子。#ncldmain()ti,m,n; or (n=1,=;i10;+) m2*n+2; n; pritf(totl=%dn,);(7)取彩球问题。现有2个彩球3个白球、3个红球、6个黑球,从中任意取(2n12)个球,求所有不同的取法。#ncude stdio.hma() int n,hte,ed,yo,count=0;
7、rintf(Ples input thenube f ball ok:); scanf(%d,&n); pritf(wite ed yllown); fr(whte=0;hit3;wte+) or(re=0;rd= & yellowv) a=; =v; v=a; hile((b=u%)!) u; v=b; retun(v);intle(int x,int y,t ) eturn(x*y/h);mai() t h,l; scaf(%d,&x,&y); hhe(x,); inf(HCF=%,h); ed(x,y,); ntf(CD=%dn,);不用全局变量:#icludstdiohint hf(i
8、nx,in y) in a,b; f() a=x; xy; y=; wi((b%y)!0) =; =b; retur();nt led(int ,iny,it h) reurn(x/h);mai() it ,y,h,l; cnf(%d%,&,&y); h=he(x,y); printf(CF=%dn,h); led(x,); pintf(C=%dn,l);()计算s = 11-1/21/-+1/99-1/1000,分别采用下列各种方法,每种方法单独用一个函数实现,最后加以比较: 从左到右各项相加; 从右到左各项相加;从左到右各个正项和负项分别相加; 从右到左各个正项和负项分别相加。#incld
9、estdioidlsu(int n);vid rsu(int n);voidlsumc(int n);id sumc(intn);min() lsum(1000); rum(10000); lsmc(10000); rsumc(10000);voi lsum(it ) in i,k1; doublesum0,t; or(i=1;i;i) =1.0*/i; su+=t; k=-k; prntf(he sum :%lf,sum);vid smc(ntn) in i; duble um=0; for(i=1;in-1;i+,+) sm+=1.0/i; f(=;=2;-,i-) m-=1.0/i; (
10、i=n;i=;-,i-) um+=1.0/i; printf(the rumc i:fn,u);(5)猴子吃桃问题的函数化。把猴子吃桃问题写成一个函数,使它能够求得指定一天开始时的桃子数。#incude stdo.hitmnkey(int k) it ,m,n; fo(n=1,i=1;i=1-k;i+) m2*+2; =; rur(n);mai() n a; rin(ease iput te day(=ay=10):n); caf(,&ay); pit(y: d, toal:%d,day,ney(ay); ()菜单程序。编写一个菜单程序,运行后首先在屏幕显示如图所示的菜单,当输入数值1时,调用
11、显示“”图案的函数;当输入数值2时,调用显示“”图案的函数;当输入数值3时,程序结束。#iclude stdio.hvoidvie1();d ie2();ain() int op; printf(n*n);print( Menu stion n); printf( 1.view() n); ptf( 2.view() n); printf( 3.exit ); rintf(*n); pitf(nPlese inputseleton:n); whil() scaf(%,o); if(op=1) vew1(); printf(nlease put eleton:); le if(op=) vew(
12、); pintf(nase iput seecton:); es rturn; oid view1() int i; for(i=;i5;i+) tca(); retrn;odview() int ,j; fo(i=1;5;i+) for(j1;ji;j+)putchar(); or(=1;j10;j+) utcar($); print(n); rtrn;实验6 数组(1)略(2)略(3)设有含1个元素的一维整型数组,其中偶数和奇数各占一半,将该数组变换为2的二维数组,且偶数和奇数各成一行。#incude s.hma() int a10,2,i,0,k0; rintf(Pls iptthe a
13、:n); for(=;i10;i+) scan(%d,a); f(=;i0;i+) f(a2=0) b=i;j+; ele k=ai; k+; for(j=;j=;j+) fr(k=;k=;k) prntf(%dd ,j,k,bj);(4)找出一个二维数组的鞍点,即该位置上的元素在所在行上最大,在所在列上最小,注意也可能没有鞍点。#incude stdioh#efneM3#efine N4main() in aMN,i,j,k; printf(lease iu e ara a:n); for(i0;iM;i) fo(j=0;jN;j+) cnf(%,&aij); r(i=0;aik) k=j;
14、 or(=0;jM;+) if(ajkaik) reak; if(j=M) printf(%d d,dn,ai,i,k); ()有个人围成一圈,顺序编号。从第1个人开始报数(从1到m),凡报到m的人退出圈子,求最后一个圈中的人的编号。ncude stdiomain() int = 0; in k ; nt uit_num 0; it ; /总人数int m; /报数的最大数it um10; /保存所有人的编号int *p= um; /初始化指针,使其指向nu数组rintf(leaseiunumber ofprson: n );scan(d, n);rint(Plae inu the nr m); scanf(%d, &m);/*给所有的人编号为1到n */o(i = 0 ; i n; i + ) (p+ i) i + 1; 0; /*当未退出人数大于1时 执行循环/ whie(quinm n - ) ile (i) (*
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1